Read and write Insightly contacts, organisations, leads, opportunities, tasks and notes.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add a note (title + body) to a Contact, Organisation, Lead, Opportunity or Project. Insightly: POST /<Object>/{id}/Notes.
The record's numeric id.
Note title (required).
The record type to attach the note to.
Note body (may contain HTML).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Add a note (title + body) to a Contact, Organisation, Lead, Opportunity or Project. Insightly: POST /<Object>/{id}/Notes.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The record's numeric id. |
| body | string | Note body (may contain HTML). |
| title* | string | Note title (required). |
| object* | string | The record type to attach the note to. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"object",
"id",
"title"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The record's numeric id.",
"exclusiveMinimum": 0
},
"body": {
"type": "string",
"description": "Note body (may contain HTML)."
},
"title": {
"type": "string",
"minLength": 1,
"description": "Note title (required)."
},
"object": {
"enum": [
"Contacts",
"Organisations",
"Leads",
"Opportunities",
"Projects"
],
"type": "string",
"description": "The record type to attach the note to."
}
}
}Create a contact (first_name is required). Insightly: POST /Contacts.
| Argument | Type | Description |
|---|---|---|
| phone | string | Business phone. |
| title | string | Job title. |
| last_name | string | Last name. |
| background | string | Background / description text. |
| first_name* | string | First name (required). |
| salutation | string | e.g. Mr, Ms, Dr. |
| phone_mobile | string | Mobile phone. |
| custom_fields | array | Custom field values to set. |
| email_address | string | Primary email. |
| owner_user_id | integer | Owning user's id. |
Create a lead (last_name is required). Insightly's schema also marks lead_status_id and lead_source_id as required — get valid ids from insightly_list_lead_statuses / insightly_list_lead_sources. Insightly: POST /Leads.
| Argument | Type | Description |
|---|---|---|
| string | Email address. | |
| phone | string | |
| title | string | Job title. |
| mobile | string | |
| website | string | |
| industry | string | |
| last_name* | string | Last name (required). |
| first_name | string | |
| salutation | string | |
| lead_rating | integer | Rating, e.g. 1-5. |
Create a sales opportunity (opportunity_name is required). Insightly: POST /Opportunities.
| Argument | Type | Description |
|---|---|---|
| bid_type | string | BID_TYPE — how the bid is priced, using a value your Insightly instance accepts. |
| bid_amount | number | Bid value. |
| category_id | integer | Opportunity category id. |
| probability | integer | Win probability, 0-100. |
| bid_currency | string | ISO currency code, e.g. USD. |
| bid_duration | integer | Number of bid periods (for non-fixed bid types). |
| custom_fields | array | Custom field values to set. |
| owner_user_id | integer | |
| organisation_id | integer | Id of the linked organisation. |
| opportunity_name |
Create an organisation (company). Insightly: POST /Organisations.
| Argument | Type | Description |
|---|---|---|
| phone | string | |
| website | string | |
| background | string | Background / description text. |
| custom_fields | array | Custom field values to set. |
| owner_user_id | integer | Owning user's id. |
| social_linkedin | string | LinkedIn URL. |
| organisation_name* | string | Organisation name (required). |
| address_billing_city | string | |
| address_billing_state | string | |
| address_billing_street | string |
Create a task (title is required). Insightly requires OWNER_USER_ID and COMPLETED on a task: if owner_user_id is omitted it is filled with the API key's own user (via GET /Users/Me), and completed defaults to false. Insightly: POST /Tasks.
| Argument | Type | Description |
|---|---|---|
| title* | string | Task title (required). |
| status | string | Task STATUS text, using a value your Insightly instance accepts (read an existing task to see them). |
| details | string | Task description. |
| due_date | string | Due date, as "yyyy-MM-dd HH:mm:ss" in UTC (e.g. 2026-04-10 21:15:00). |
| priority | integer | Priority number. |
| completed | boolean | Whether the task is done. |
| project_id | integer | Link the task to this project. |
| start_date | string | Start date, as "yyyy-MM-dd HH:mm:ss" in UTC (e.g. 2026-04-10 21:15:00). |
| category_id |
Fetch the user the API key belongs to (USER_ID, name, email, admin flag). A cheap way to confirm the key and pod are right, and to get your own id for owner fields. Insightly: GET /Users/Me.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Fetch a single Contact, Organisation, Lead, Opportunity, Project, Task, Event or Note by id, with its custom fields, tags and links. Insightly: GET /<Object>/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The record's numeric id. |
| object* | string | Record type. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"object",
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The record's numeric id.",
"exclusiveMinimum": 0
},
"object": {
"enum": [
"Contacts",
"Organisations",
"Leads",
"Opportunities",
"Projects",
"Tasks",
"Events",
"Notes"
],
"type": "string",
"description": "Record type."
}
}
}List the lead sources defined in the instance (LEAD_SOURCE_ID, name). Insightly: GET /LeadSources.
| Argument | Type | Description |
|---|---|---|
| top | integer | Max records to return, 1-500 (API default 100). |
| skip | integer | Records to skip, for paging. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"top": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Max records to return, 1-500 (API default 100)."
},
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip, for paging."
}
}
}List the lead statuses defined in the instance (LEAD_STATUS_ID, name, type). Insightly: GET /LeadStatuses.
| Argument | Type | Description |
|---|---|---|
| top | integer | Max records to return, 1-500 (API default 100). |
| skip | integer | Records to skip, for paging. |
| include_converted | boolean | Also include statuses used for converted leads. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"top": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Max records to return, 1-500 (API default 100)."
},
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip, for paging."
},
"include_converted": {
"type": "boolean",
"description": "Also include statuses used for converted leads."
}
}
}List every pipeline stage (STAGE_ID, PIPELINE_ID, name, order) — map an opportunity's or project's STAGE_ID to a stage name. Insightly: GET /PipelineStages.
| Argument | Type | Description |
|---|---|---|
| top | integer | Max records to return, 1-500 (API default 100). |
| skip | integer | Records to skip, for paging. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"top": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Max records to return, 1-500 (API default 100)."
},
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip, for paging."
}
}
}List the sales and project pipelines (PIPELINE_ID, name, whether for opportunities or projects). Insightly: GET /Pipelines.
| Argument | Type | Description |
|---|---|---|
| top | integer | Max records to return, 1-500 (API default 100). |
| skip | integer | Records to skip, for paging. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"top": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Max records to return, 1-500 (API default 100)."
},
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip, for paging."
}
}
}List the Notes, Tasks or Events attached to one Contact, Organisation, Lead, Opportunity or Project — the activity history of that record. Insightly: GET /<Object>/{id}/Notes | Tasks | Events.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The parent record's numeric id. |
| top | integer | Max records to return, 1-500 (API default 100). |
| kind* | string | Which activity to list. |
| skip | integer | Records to skip, for paging. |
| brief | boolean | true = only top-level fields (no CUSTOMFIELDS, TAGS, LINKS, ...). Smaller and faster. |
| object* | string | The parent record's type. |
| count_total | boolean | true = also return the total number of matching records (response becomes {total_count, items}). |
| updated_after_utc | string | Only items updated after this time, yyyy-mm-ddThh:mm:ssZ. |
List records of one type — Contacts, Organisations, Leads, Opportunities, Projects, Tasks, Events or Notes — optionally filtered by one field value and/or last-updated time. With field_name + field_value (both required together) or updated_after_utc this uses GET /<Object>/Search; otherwise GET /<Object>. Field names are Insightly's UPPER_SNAKE names, e.g. EMAIL_ADDRESS, LAST_NAME, ORGANISATION_NAME, OPPORTUNITY_STATE, LEAD_RATING, or a custom field such as Industry__c.
| Argument | Type | Description |
|---|---|---|
| top | integer | Max records to return, 1-500 (API default 100). |
| skip | integer | Records to skip, for paging. |
| brief | boolean | true = only top-level fields (no CUSTOMFIELDS, TAGS, LINKS, ...). Smaller and faster. |
| object* | string | Record type. |
| field_name | string | Field to filter on, e.g. EMAIL_ADDRESS. |
| count_total | boolean | true = also return the total number of matching records (response becomes {total_count, items}). |
| field_value | string | Value the field must equal. |
List the users in the Insightly instance — needed to resolve OWNER_USER_ID / RESPONSIBLE_USER_ID. Insightly: GET /Users.
| Argument | Type | Description |
|---|---|---|
| top | integer | Max records to return, 1-500 (API default 100). |
| skip | integer | Records to skip, for paging. |
| count_total | boolean | true = also return the total number of matching records (response becomes {total_count, items}). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"top": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Max records to return, 1-500 (API default 100)."
},
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip, for paging."
},
"count_total": {
"type": "boolean",
"description": "true = also return the total number of matching records (response becomes {total_count, items})."
}
}
}List Contacts, Organisations, Leads, Opportunities or Projects carrying a tag. Insightly: GET /<Object>/SearchByTag?tagName=.
| Argument | Type | Description |
|---|---|---|
| tag* | string | The tag name. |
| top | integer | Max records to return, 1-500 (API default 100). |
| skip | integer | Records to skip, for paging. |
| brief | boolean | true = only top-level fields (no CUSTOMFIELDS, TAGS, LINKS, ...). Smaller and faster. |
| object* | string | Record type. |
| count_total | boolean | true = also return the total number of matching records (response becomes {total_count, items}). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"object",
"tag"
],
"properties": {
"tag": {
"type": "string",
"minLength": 1,
"description": "The tag name."
},
"top": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Max records to return, 1-500 (API default 100)."
},
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip, for paging."
},
"brief": {
"type": "boolean",
"description": "true = only top-level fields (no CUSTOMFIELDS, TAGS, LINKS, ...). Smaller and faster."
},
"object": {
"enum": [
"Contacts",
"Organisations",
"Leads",
"Opportunities",
"Projects"
],
"type": "string",
"description": "Record type."
},
"count_total": {
"type": "boolean",
"description": "true = also return the total number of matching records (response becomes {total_count, items})."
}
}
}Update a contact. Only the fields you pass are changed (v3.1 partial update). Insightly: PUT /Contacts with CONTACT_ID.
| Argument | Type | Description |
|---|---|---|
| phone | string | Business phone. |
| title | string | Job title. |
| last_name | string | Last name. |
| background | string | Background / description text. |
| contact_id* | integer | The contact's numeric id. |
| first_name | string | First name. |
| salutation | string | e.g. Mr, Ms, Dr. |
| phone_mobile | string | Mobile phone. |
| custom_fields | array | Custom field values to set. |
| email_address | string | Primary email. |
Update a lead. Only the fields you pass are changed. Insightly: PUT /Leads with LEAD_ID.
| Argument | Type | Description |
|---|---|---|
| string | Email address. | |
| phone | string | |
| title | string | Job title. |
| mobile | string | |
| lead_id* | integer | The lead's numeric id. |
| website | string | |
| industry | string | |
| last_name | string | Last name. |
| first_name | string | |
| salutation | string | |
| lead_rating | integer | Rating, e.g. 1-5. |
Update an opportunity's value, probability, dates, owner or details. Only the fields you pass are changed. Insightly: PUT /Opportunities with OPPORTUNITY_ID.
| Argument | Type | Description |
|---|---|---|
| bid_type | string | BID_TYPE — how the bid is priced, using a value your Insightly instance accepts. |
| bid_amount | number | Bid value. |
| category_id | integer | Opportunity category id. |
| probability | integer | Win probability, 0-100. |
| bid_currency | string | ISO currency code, e.g. USD. |
| bid_duration | integer | Number of bid periods (for non-fixed bid types). |
| custom_fields | array | Custom field values to set. |
| owner_user_id | integer | |
| opportunity_id* | integer | The opportunity's numeric id. |
Update an organisation. Only the fields you pass are changed. Insightly: PUT /Organisations with ORGANISATION_ID.
| Argument | Type | Description |
|---|---|---|
| phone | string | |
| website | string | |
| background | string | Background / description text. |
| custom_fields | array | Custom field values to set. |
| owner_user_id | integer | Owning user's id. |
| organisation_id* | integer | The organisation's numeric id. |
| social_linkedin | string | LinkedIn URL. |
| organisation_name | string | Organisation name. |
| address_billing_city | string | |
| address_billing_state | string |
Update a task — mark it completed, change due date, status, assignee or details. Only the fields you pass are changed. Insightly: PUT /Tasks with TASK_ID.
| Argument | Type | Description |
|---|---|---|
| title | string | Task title. |
| status | string | Task STATUS text, using a value your Insightly instance accepts (read an existing task to see them). |
| details | string | Task description. |
| task_id* | integer | The task's numeric id. |
| due_date | string | Due date, as "yyyy-MM-dd HH:mm:ss" in UTC (e.g. 2026-04-10 21:15:00). |
| priority | integer | Priority number. |
| completed | boolean | Whether the task is done. |
| project_id | integer | Link the task to this project. |
| start_date | string | Start date, as "yyyy-MM-dd HH:mm:ss" in UTC (e.g. 2026-04-10 21:15:00). |
| email_opted_out |
| boolean |
| Opted out of email. |
| organisation_id | integer | Id of the contact's organisation. |
| social_linkedin | string | LinkedIn URL. |
| address_mail_city | string |
| address_mail_state | string |
| address_mail_street | string |
| address_mail_country | string |
| address_mail_postcode | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"first_name"
],
"properties": {
"phone": {
"type": "string",
"description": "Business phone."
},
"title": {
"type": "string",
"description": "Job title."
},
"last_name": {
"type": "string",
"description": "Last name."
},
"background": {
"type": "string",
"description": "Background / description text."
},
"first_name": {
"type": "string",
"minLength": 1,
"description": "First name (required)."
},
"salutation": {
"type": "string",
"description": "e.g. Mr, Ms, Dr."
},
"phone_mobile": {
"type": "string",
"description": "Mobile phone."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"field_name",
"field_value"
],
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"type": [
"string",
"number",
"boolean",
"null"
],
"description": "The value (null clears it)."
}
}
},
"description": "Custom field values to set."
},
"email_address": {
"type": "string",
"description": "Primary email."
},
"owner_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Owning user's id."
},
"email_opted_out": {
"type": "boolean",
"description": "Opted out of email."
},
"organisation_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Id of the contact's organisation."
},
"social_linkedin": {
"type": "string",
"description": "LinkedIn URL."
},
"address_mail_city": {
"type": "string"
},
"address_mail_state": {
"type": "string"
},
"address_mail_street": {
"type": "string"
},
"address_mail_country": {
"type": "string"
},
"address_mail_postcode": {
"type": "string"
}
}
}| address_city |
| string |
| address_state | string |
| custom_fields | array | Custom field values to set. |
| owner_user_id | integer |
| address_street | string |
| employee_count | integer |
| lead_source_id | integer | Source id — see insightly_list_lead_sources. |
| lead_status_id | integer | Status id — see insightly_list_lead_statuses. |
| address_country | string |
| email_opted_out | boolean |
| address_postcode | string |
| lead_description | string | Description / notes on the lead. |
| organisation_name | string | Company name (free text — leads are not linked to organisations). |
| responsible_user_id | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"last_name"
],
"properties": {
"email": {
"type": "string",
"description": "Email address."
},
"phone": {
"type": "string"
},
"title": {
"type": "string",
"description": "Job title."
},
"mobile": {
"type": "string"
},
"website": {
"type": "string"
},
"industry": {
"type": "string"
},
"last_name": {
"type": "string",
"minLength": 1,
"description": "Last name (required)."
},
"first_name": {
"type": "string"
},
"salutation": {
"type": "string"
},
"lead_rating": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Rating, e.g. 1-5."
},
"address_city": {
"type": "string"
},
"address_state": {
"type": "string"
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"field_name",
"field_value"
],
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"type": [
"string",
"number",
"boolean",
"null"
],
"description": "The value (null clears it)."
}
}
},
"description": "Custom field values to set."
},
"owner_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"address_street": {
"type": "string"
},
"employee_count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"lead_source_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Source id — see insightly_list_lead_sources."
},
"lead_status_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Status id — see insightly_list_lead_statuses."
},
"address_country": {
"type": "string"
},
"email_opted_out": {
"type": "boolean"
},
"address_postcode": {
"type": "string"
},
"lead_description": {
"type": "string",
"description": "Description / notes on the lead."
},
"organisation_name": {
"type": "string",
"description": "Company name (free text — leads are not linked to organisations)."
},
"responsible_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
}
}| string |
| Opportunity name (required). |
| forecast_close_date | string | Forecast close date, as "yyyy-MM-dd HH:mm:ss" in UTC (e.g. 2026-04-10 21:15:00). |
| opportunity_details | string | Description. |
| responsible_user_id | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"opportunity_name"
],
"properties": {
"bid_type": {
"type": "string",
"description": "BID_TYPE — how the bid is priced, using a value your Insightly instance accepts."
},
"bid_amount": {
"type": "number",
"description": "Bid value."
},
"category_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Opportunity category id."
},
"probability": {
"type": "integer",
"maximum": 100,
"minimum": 0,
"description": "Win probability, 0-100."
},
"bid_currency": {
"type": "string",
"description": "ISO currency code, e.g. USD."
},
"bid_duration": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Number of bid periods (for non-fixed bid types)."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"field_name",
"field_value"
],
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"type": [
"string",
"number",
"boolean",
"null"
],
"description": "The value (null clears it)."
}
}
},
"description": "Custom field values to set."
},
"owner_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"organisation_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Id of the linked organisation."
},
"opportunity_name": {
"type": "string",
"minLength": 1,
"description": "Opportunity name (required)."
},
"forecast_close_date": {
"type": "string",
"description": "Forecast close date, as \"yyyy-MM-dd HH:mm:ss\" in UTC (e.g. 2026-04-10 21:15:00)."
},
"opportunity_details": {
"type": "string",
"description": "Description."
},
"responsible_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
}
}| address_billing_country | string |
| address_billing_postcode | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organisation_name"
],
"properties": {
"phone": {
"type": "string"
},
"website": {
"type": "string"
},
"background": {
"type": "string",
"description": "Background / description text."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"field_name",
"field_value"
],
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"type": [
"string",
"number",
"boolean",
"null"
],
"description": "The value (null clears it)."
}
}
},
"description": "Custom field values to set."
},
"owner_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Owning user's id."
},
"social_linkedin": {
"type": "string",
"description": "LinkedIn URL."
},
"organisation_name": {
"type": "string",
"minLength": 1,
"description": "Organisation name (required)."
},
"address_billing_city": {
"type": "string"
},
"address_billing_state": {
"type": "string"
},
"address_billing_street": {
"type": "string"
},
"address_billing_country": {
"type": "string"
},
"address_billing_postcode": {
"type": "string"
}
}
}| integer |
| Task category id. |
| custom_fields | array | Custom field values to set. |
| owner_user_id | integer | Owner's user id. |
| opportunity_id | integer | Link the task to this opportunity. |
| percent_complete | integer |
| responsible_user_id | integer | Assignee's user id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"minLength": 1,
"description": "Task title (required)."
},
"status": {
"type": "string",
"description": "Task STATUS text, using a value your Insightly instance accepts (read an existing task to see them)."
},
"details": {
"type": "string",
"description": "Task description."
},
"due_date": {
"type": "string",
"description": "Due date, as \"yyyy-MM-dd HH:mm:ss\" in UTC (e.g. 2026-04-10 21:15:00)."
},
"priority": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Priority number."
},
"completed": {
"type": "boolean",
"description": "Whether the task is done."
},
"project_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Link the task to this project."
},
"start_date": {
"type": "string",
"description": "Start date, as \"yyyy-MM-dd HH:mm:ss\" in UTC (e.g. 2026-04-10 21:15:00)."
},
"category_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Task category id."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"field_name",
"field_value"
],
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"type": [
"string",
"number",
"boolean",
"null"
],
"description": "The value (null clears it)."
}
}
},
"description": "Custom field values to set."
},
"owner_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Owner's user id."
},
"opportunity_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Link the task to this opportunity."
},
"percent_complete": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"responsible_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Assignee's user id."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"object",
"id",
"kind"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The parent record's numeric id.",
"exclusiveMinimum": 0
},
"top": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Max records to return, 1-500 (API default 100)."
},
"kind": {
"enum": [
"Notes",
"Tasks",
"Events"
],
"type": "string",
"description": "Which activity to list."
},
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip, for paging."
},
"brief": {
"type": "boolean",
"description": "true = only top-level fields (no CUSTOMFIELDS, TAGS, LINKS, ...). Smaller and faster."
},
"object": {
"enum": [
"Contacts",
"Organisations",
"Leads",
"Opportunities",
"Projects"
],
"type": "string",
"description": "The parent record's type."
},
"count_total": {
"type": "boolean",
"description": "true = also return the total number of matching records (response becomes {total_count, items})."
},
"updated_after_utc": {
"type": "string",
"description": "Only items updated after this time, yyyy-mm-ddThh:mm:ssZ."
}
}
}| updated_after_utc |
| string |
| Only records updated after this time, yyyy-mm-ddThh:mm:ssZ (e.g. 2026-04-09T16:58:14Z). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"object"
],
"properties": {
"top": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Max records to return, 1-500 (API default 100)."
},
"skip": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip, for paging."
},
"brief": {
"type": "boolean",
"description": "true = only top-level fields (no CUSTOMFIELDS, TAGS, LINKS, ...). Smaller and faster."
},
"object": {
"enum": [
"Contacts",
"Organisations",
"Leads",
"Opportunities",
"Projects",
"Tasks",
"Events",
"Notes"
],
"type": "string",
"description": "Record type."
},
"field_name": {
"type": "string",
"description": "Field to filter on, e.g. EMAIL_ADDRESS."
},
"count_total": {
"type": "boolean",
"description": "true = also return the total number of matching records (response becomes {total_count, items})."
},
"field_value": {
"type": "string",
"description": "Value the field must equal."
},
"updated_after_utc": {
"type": "string",
"description": "Only records updated after this time, yyyy-mm-ddThh:mm:ssZ (e.g. 2026-04-09T16:58:14Z)."
}
}
}| owner_user_id | integer | Owning user's id. |
| email_opted_out | boolean | Opted out of email. |
| organisation_id | integer | Id of the contact's organisation. |
| social_linkedin | string | LinkedIn URL. |
| address_mail_city | string |
| address_mail_state | string |
| address_mail_street | string |
| address_mail_country | string |
| address_mail_postcode | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contact_id"
],
"properties": {
"phone": {
"type": "string",
"description": "Business phone."
},
"title": {
"type": "string",
"description": "Job title."
},
"last_name": {
"type": "string",
"description": "Last name."
},
"background": {
"type": "string",
"description": "Background / description text."
},
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The contact's numeric id.",
"exclusiveMinimum": 0
},
"first_name": {
"type": "string",
"description": "First name."
},
"salutation": {
"type": "string",
"description": "e.g. Mr, Ms, Dr."
},
"phone_mobile": {
"type": "string",
"description": "Mobile phone."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"field_name",
"field_value"
],
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"type": [
"string",
"number",
"boolean",
"null"
],
"description": "The value (null clears it)."
}
}
},
"description": "Custom field values to set."
},
"email_address": {
"type": "string",
"description": "Primary email."
},
"owner_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Owning user's id."
},
"email_opted_out": {
"type": "boolean",
"description": "Opted out of email."
},
"organisation_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Id of the contact's organisation."
},
"social_linkedin": {
"type": "string",
"description": "LinkedIn URL."
},
"address_mail_city": {
"type": "string"
},
"address_mail_state": {
"type": "string"
},
"address_mail_street": {
"type": "string"
},
"address_mail_country": {
"type": "string"
},
"address_mail_postcode": {
"type": "string"
}
}
}| address_city | string |
| address_state | string |
| custom_fields | array | Custom field values to set. |
| owner_user_id | integer |
| address_street | string |
| employee_count | integer |
| lead_source_id | integer | Source id — see insightly_list_lead_sources. |
| lead_status_id | integer | Status id — see insightly_list_lead_statuses. |
| address_country | string |
| email_opted_out | boolean |
| address_postcode | string |
| lead_description | string | Description / notes on the lead. |
| organisation_name | string | Company name (free text — leads are not linked to organisations). |
| responsible_user_id | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"lead_id"
],
"properties": {
"email": {
"type": "string",
"description": "Email address."
},
"phone": {
"type": "string"
},
"title": {
"type": "string",
"description": "Job title."
},
"mobile": {
"type": "string"
},
"lead_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The lead's numeric id.",
"exclusiveMinimum": 0
},
"website": {
"type": "string"
},
"industry": {
"type": "string"
},
"last_name": {
"type": "string",
"description": "Last name."
},
"first_name": {
"type": "string"
},
"salutation": {
"type": "string"
},
"lead_rating": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Rating, e.g. 1-5."
},
"address_city": {
"type": "string"
},
"address_state": {
"type": "string"
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"field_name",
"field_value"
],
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"type": [
"string",
"number",
"boolean",
"null"
],
"description": "The value (null clears it)."
}
}
},
"description": "Custom field values to set."
},
"owner_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"address_street": {
"type": "string"
},
"employee_count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"lead_source_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Source id — see insightly_list_lead_sources."
},
"lead_status_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Status id — see insightly_list_lead_statuses."
},
"address_country": {
"type": "string"
},
"email_opted_out": {
"type": "boolean"
},
"address_postcode": {
"type": "string"
},
"lead_description": {
"type": "string",
"description": "Description / notes on the lead."
},
"organisation_name": {
"type": "string",
"description": "Company name (free text — leads are not linked to organisations)."
},
"responsible_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
}
}| organisation_id | integer | Id of the linked organisation. |
| opportunity_name | string | Opportunity name. |
| forecast_close_date | string | Forecast close date, as "yyyy-MM-dd HH:mm:ss" in UTC (e.g. 2026-04-10 21:15:00). |
| opportunity_details | string | Description. |
| responsible_user_id | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"opportunity_id"
],
"properties": {
"bid_type": {
"type": "string",
"description": "BID_TYPE — how the bid is priced, using a value your Insightly instance accepts."
},
"bid_amount": {
"type": "number",
"description": "Bid value."
},
"category_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Opportunity category id."
},
"probability": {
"type": "integer",
"maximum": 100,
"minimum": 0,
"description": "Win probability, 0-100."
},
"bid_currency": {
"type": "string",
"description": "ISO currency code, e.g. USD."
},
"bid_duration": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Number of bid periods (for non-fixed bid types)."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"field_name",
"field_value"
],
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"type": [
"string",
"number",
"boolean",
"null"
],
"description": "The value (null clears it)."
}
}
},
"description": "Custom field values to set."
},
"owner_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"opportunity_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The opportunity's numeric id.",
"exclusiveMinimum": 0
},
"organisation_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Id of the linked organisation."
},
"opportunity_name": {
"type": "string",
"description": "Opportunity name."
},
"forecast_close_date": {
"type": "string",
"description": "Forecast close date, as \"yyyy-MM-dd HH:mm:ss\" in UTC (e.g. 2026-04-10 21:15:00)."
},
"opportunity_details": {
"type": "string",
"description": "Description."
},
"responsible_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
}
}| address_billing_street | string |
| address_billing_country | string |
| address_billing_postcode | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"organisation_id"
],
"properties": {
"phone": {
"type": "string"
},
"website": {
"type": "string"
},
"background": {
"type": "string",
"description": "Background / description text."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"field_name",
"field_value"
],
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"type": [
"string",
"number",
"boolean",
"null"
],
"description": "The value (null clears it)."
}
}
},
"description": "Custom field values to set."
},
"owner_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Owning user's id."
},
"organisation_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The organisation's numeric id.",
"exclusiveMinimum": 0
},
"social_linkedin": {
"type": "string",
"description": "LinkedIn URL."
},
"organisation_name": {
"type": "string",
"description": "Organisation name."
},
"address_billing_city": {
"type": "string"
},
"address_billing_state": {
"type": "string"
},
"address_billing_street": {
"type": "string"
},
"address_billing_country": {
"type": "string"
},
"address_billing_postcode": {
"type": "string"
}
}
}| category_id | integer | Task category id. |
| custom_fields | array | Custom field values to set. |
| owner_user_id | integer | Owner's user id. |
| opportunity_id | integer | Link the task to this opportunity. |
| percent_complete | integer |
| responsible_user_id | integer | Assignee's user id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id"
],
"properties": {
"title": {
"type": "string",
"description": "Task title."
},
"status": {
"type": "string",
"description": "Task STATUS text, using a value your Insightly instance accepts (read an existing task to see them)."
},
"details": {
"type": "string",
"description": "Task description."
},
"task_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The task's numeric id.",
"exclusiveMinimum": 0
},
"due_date": {
"type": "string",
"description": "Due date, as \"yyyy-MM-dd HH:mm:ss\" in UTC (e.g. 2026-04-10 21:15:00)."
},
"priority": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Priority number."
},
"completed": {
"type": "boolean",
"description": "Whether the task is done."
},
"project_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Link the task to this project."
},
"start_date": {
"type": "string",
"description": "Start date, as \"yyyy-MM-dd HH:mm:ss\" in UTC (e.g. 2026-04-10 21:15:00)."
},
"category_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Task category id."
},
"custom_fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"field_name",
"field_value"
],
"properties": {
"field_name": {
"type": "string",
"description": "The custom field's FIELD_NAME, e.g. Industry__c."
},
"field_value": {
"type": [
"string",
"number",
"boolean",
"null"
],
"description": "The value (null clears it)."
}
}
},
"description": "Custom field values to set."
},
"owner_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Owner's user id."
},
"opportunity_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Link the task to this opportunity."
},
"percent_complete": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"responsible_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Assignee's user id."
}
}
}