Users on all plans can use the REST-based Application Programming Interface (API) to query and update their Insightly data. Four HTTP verbs are supported: GET requests to retrieve information, POST to add new records, PUT to update records, and DELETE requests to remove records. The Resources sections below include detailed samples of Request bodies and Responses.


Resources such as Tasks, Contacts, Organisations, Opportunities, and Projects are accessible via the following URL:{resource_name}. Supported data formats are JSON and XML.

The API also supports limited OData queries. The current support of query string parameters is $top and $skip.


Requests that return over 10,000 records will exclude child objects such as addresses, phone numbers, and links. This is mostly applicable to large contact, organisation, or task lists. To retrieve the child objects, request each individual record from the server.


Insightly uses HTTP Basic authentication in order to determine which user is making calls to the API. You will need an API key for each user to uniquely identify them when making calls to the API. Users' API key can be found by logging into Insightly and going to the 'My Info' page, then the 'User Settings' tab. The 'My Info' page can be accessed via the small card icon in the top right corner.

You will need to include your API key as the Base64-encoded user name, leave the password blank. Calls made to the API will assume this user's identity; permissions to view, edit and delete records via the API will be the same as those available to that user through the Insightly website.