canonical: https://jentic.com/apis/insightly.com/insightly

# Insightly API

Jentic publishes the only available OpenAPI specification for Insightly API, keeping it validated and agent-ready. The Insightly API is the v3.1 REST interface for the Insightly CRM and project management platform, exposing 90 endpoints across contacts, organisations, leads, opportunities, projects, pipelines, custom objects, emails, notes, and tasks. It is suitable for syncing CRM records with external systems, automating deal stage transitions, and reading or writing custom object data. Authentication uses HTTP Basic with the API key as the username, which keeps integration boilerplate minimal.

## For AI agents

Read and write Insightly CRM data - contacts, organisations, leads, opportunities, projects, pipelines, and custom objects - across 90 v3.1 endpoints.

## Scope

Does not handle marketing email sends, transactional payments, or customer support ticketing - use for CRM and project records only.

## Capabilities

- Synchronise contacts and organisations between Insightly and an external system of record
- Move opportunities between pipeline stages and log activity on /Opportunities
- Search the CRM with /Contacts/Search and similar endpoints to dedupe inbound leads
- Manage custom objects defined by the customer schema through /CustomObjects
- Attach notes, emails, and events to CRM records to maintain a unified customer timeline
- Run project workflows through /Projects with pipeline-aligned stage tracking

## Use cases

### Web Lead to CRM Contact Sync

When a marketing site captures a lead, create a matching contact in Insightly via POST /Contacts and an organisation via POST /Organizations if a domain match is missing. Use GET /Contacts/Search to dedupe before insert so the CRM stays clean. The integration usually takes a day to wire end-to-end including field mapping.

Example prompt: Search /Contacts/Search by email; if no match, POST a new contact with the lead's name, email, and source, and link it to the matching organisation.

### Pipeline Stage Automation

Drive opportunities through the sales pipeline by listening to external signals (proposal sent, contract signed) and updating the opportunity's pipeline stage via PUT /Opportunities/{id}. Combine with /PipelineStages reads so the automation handles custom-defined stages instead of hard-coded names, which keeps it stable as the sales process evolves.

Example prompt: Look up the 'Closed Won' stage via /PipelineStages, then PUT /Opportunities/{id} with that stage id and a close date set to today.

### Custom Object Reporting

Read records from /CustomObjects to build internal reports that combine Insightly's customer-defined entities with standard contacts and opportunities. The endpoints support filter and pagination, so a nightly job can extract changed records and load them into a warehouse without scanning the entire object.

Example prompt: List custom object definitions, then for each definition page through GET /CustomObjects/{name} and write modified rows into the analytics destination.

### AI Agent CRM Operator via Jentic

An AI agent given access to Insightly through Jentic can answer questions like 'show me all open opportunities for ACME' or 'create a contact for this email signature' without holding the API key directly. Jentic exposes each Insightly operation by intent, so the agent picks the right endpoint and parameters from natural language.

Example prompt: Through Jentic, call insightly_search_contacts with the customer's email, then insightly_create_note to log an interaction summary on the matching contact.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /Contacts | List contacts |
| POST | /Contacts | Create a contact |
| GET | /Contacts/Search | Search contacts by field |
| PUT | /Contacts/{id} | Update a contact |
| GET | /Organizations | List organisations |
| POST | /Organizations | Create an organisation |

## Key resources

- **Contacts** — Create, read, update, delete, and search individual people.
- **Organizations** — Manage company records linked to contacts and opportunities.
- **Opportunities** — Track sales opportunities through pipeline stages.
- **Leads** — Capture and convert leads into contacts and opportunities.
- **Projects** — Run delivery projects after a deal closes.
- **CustomObjects** — Read and write customer-defined entity records.
- **Pipelines** — Read pipeline and stage definitions for sales and delivery.

## Why Jentic

- **Setup:** Wiring the Insightly API by hand means setting up HTTP Basic auth and base64-encoding your API key into every Authorization header yourself. Through Jentic you install once, import the Insightly API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Insightly carries record fields in the request body across its contact and organization operations, so limit the agent to the operations it needs, such as searching contacts or reading organizations. You choose which operations are allowed, so creating or updating records is not included unless you add them.
- **Credential handling:** Your Insightly API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'search Insightly contacts by email' or 'create an Insightly opportunity', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the 90 documented v3.1 paths.

## Related APIs

- **Pipedrive API** — Pipedrive is a sales-focused CRM with a comparable REST API for deals and pipelines.
- **Zoho CRM API** — Zoho CRM offers a broader business suite with overlapping CRM endpoints.
- **Mailchimp Marketing API** — Mailchimp sends marketing email to contacts sourced from CRM systems.

## FAQ

### Why is there no official OpenAPI spec for Insightly API?

Insightly does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Insightly API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Insightly API use?

The Insightly API uses HTTP Basic authentication: the API key is sent as the username with an empty password, base64 encoded into the Authorization header. Through Jentic, the API key is held in your encrypted Jentic One instance and injected at execution time, so the agent never sees the raw secret.

### Can I work with Insightly custom objects through this API?

Yes. The /CustomObjects endpoints expose customer-defined entity records, including list, get-by-id, create, and update operations. Custom field schemas are read from the spec, so an agent can populate the right fields when writing records.

### What are the rate limits for the Insightly API?

The OpenAPI specification does not encode explicit rate limits. Insightly enforces account-tier-based limits at the platform; in practice, paginate list endpoints with reasonable page sizes, batch updates where possible, and back off on 429 responses returned by the gateway.

### How do I search contacts in Insightly through Jentic?

Run pip install jentic, then have the agent issue the search-load-execute flow with the query 'search Insightly contacts by email'. Jentic returns the operation bound to GET /Contacts/Search, the agent supplies the email value, and gets back matching contact records.

### Can I move an opportunity to a closed stage with the API?

Yes. List stages via GET /PipelineStages, find the 'Closed Won' or 'Closed Lost' stage id, then PUT /Opportunities/{id} with the new STAGE_ID and an ACTUAL_CLOSE_DATE. Activity history on the opportunity records the change automatically.

### Can I limit what my agent is allowed to do with the Insightly API?

Yes. Because you run Jentic One yourself, your own rules decide which Insightly operations and credentials the agent can use, so you can allow read-only calls like GET /Contacts/Search and GET /Organizations while withholding writes. Since Insightly carries record fields in the request body on its contact and organization operations, create and update calls such as POST /Contacts or PUT /Opportunities/{id} stay unavailable unless you explicitly add them. The API key is injected at execution time and never enters the agent's prompt or context, so the agent only ever exercises the operations you have granted.
