canonical: https://jentic.com/apis/api.close.com/close

# Close CRM API

Jentic publishes the only available OpenAPI specification for Close CRM API, keeping it validated and agent-ready. The Close CRM API exposes the full sales workflow used by inside-sales teams: leads with embedded contacts, opportunities tracked through pipelines, activities such as calls and emails, tasks, users, organisations, and custom fields. You can list and filter leads, push updates from external systems, log activities programmatically, and reshape pipelines as a sales motion evolves. The API uses HTTP basic auth with the API key as the username, or OAuth 2.0 for partner integrations.

## For AI agents

Manage Close CRM leads, contacts, opportunities, activities, tasks, and pipelines so agents can read and write the full sales workflow programmatically.

## Scope

Does not handle email sending infrastructure, dialler hardware, or marketing automation campaigns - use for managing leads, opportunities, activities, and pipelines inside Close CRM only.

## Capabilities

- Create, update, and merge leads alongside their embedded contact records
- Move opportunities through pipeline stages and update value, status, and confidence
- Log calls, emails, notes, and other activity types against a lead's timeline
- Create, assign, and complete tasks for sales reps tied to a specific lead
- Manage custom fields, pipelines, users, and organisations to reshape the CRM schema
- Filter and search leads by smart-view query, custom-field value, or organisation

## Use cases

### Form-to-Lead Capture

Convert website form submissions into Close CRM leads in real time. The agent receives the form payload, calls POST /lead/ with a contact, organisation, and source custom field, then routes the lead to the right pipeline. Sales reps see the new lead in their inbox within seconds rather than waiting for nightly Zapier syncs.

Example prompt: Call POST /lead/ with name, contacts (email, phone), and a custom field setting source='Website Form', then return the new lead_id.

### Pipeline Stage Automation

When an external system signals that a deal has progressed (e.g. contract signed in a CLM tool), automate the matching update in Close. The agent calls PUT /lead/{lead_id}/ to update the opportunity stage and value. Combined with custom fields, this keeps the pipeline accurate without reps clicking through the UI.

Example prompt: Call PUT /lead/{lead_id}/ with the opportunity status set to 'Closed Won' and the value updated to the contract amount.

### Activity Logging from Outside Tools

Surface non-Close communications (e.g. WhatsApp messages, in-app chats, support tickets) on the Close lead timeline so reps see the full picture. The agent calls GET /activity/ to enumerate types, then POSTs structured note or call activity records to the relevant lead. This keeps Close as the single source of truth for customer interaction history.

Example prompt: POST a note activity to a lead's timeline whenever a WhatsApp message arrives, including the message body and timestamp.

### Daily Smart-View Digest

Send each rep a morning digest of leads they need to act on by querying Close's filtered lead list. The agent calls GET /lead/ with a smart-view query string, formats the matching leads into a chat or email, and links each entry back to its Close URL. This replaces manual smart-view checking and ensures nothing falls through the cracks.

Example prompt: Call GET /lead/ with a query string filtering opportunities in 'Negotiation' and post the resulting leads to the rep's Slack DM.

### Agent-Driven CRM Updates via Jentic

Connect Close to an AI assistant through Jentic so a rep can say 'log a 15-minute call with Acme Corp and set a follow-up task for Friday' in chat. The assistant searches Jentic for the right Close operations, loads the schemas, and executes them with the API key kept in your Jentic One instance. The Close API key never enters the assistant's prompt or response.

Example prompt: Use the Jentic Python SDK to search for 'log call activity', load the matching Close operation, and execute it with lead_id, duration, and direction.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /lead/ | List or filter leads |
| POST | /lead/ | Create a new lead |
| PUT | /lead/{lead_id}/ | Update an existing lead |
| POST | /lead/merge/ | Merge two duplicate leads |
| GET | /contact/ | List contacts |
| POST | /contact/ | Create a new contact |
| GET | /activity/ | List or filter activities |

## Key resources

- **Leads** — Create, update, merge, and filter leads with embedded contacts.
- **Contacts** — Manage individual contact records attached to leads.
- **Activities** — Log calls, emails, notes, and meetings against leads.
- **Opportunities** — Track deal value, stage, and confidence in pipelines.
- **Tasks** — Create and assign follow-up tasks to users.
- **Pipelines** — Manage pipelines and their stages.
- **Custom Fields** — Define and read custom fields on leads, contacts, and opportunities.
- **Users and Organizations** — List users and the organisation account.

## Why Jentic

- **Setup:** Wiring the Close CRM API by hand means choosing between its basic and OAuth 2.0 auth, targeting the v1 host, and mapping the lead, contact, and activity routes yourself. Through Jentic you install once, import Close from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** Close puts the lead id in the URL path (/lead/{lead_id}/), so a rule can pin your agent to one lead: it can update that lead and nothing else. You choose the operations it may call, so actions like merging leads are only included if you add them.
- **Credential handling:** Your Close API key or OAuth client credentials are stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a lead' or 'log a call', and Jentic returns the matching Close operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **HubSpot** — Larger CRM platform with marketing, sales, and service hubs and a wider API surface area.
- **Pipedrive** — Sales pipeline CRM with deals, persons, organisations, and activities.
- **Salesforce** — Enterprise CRM platform with deep customisation, multi-cloud product breadth, and global scale.
- **Twilio** — SMS and voice provider commonly used to power calls logged back into Close.

## FAQ

### Why is there no official OpenAPI spec for Close CRM API?

Close publishes HTML reference docs at developer.close.com but does not export a downloadable OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Close CRM 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 Close CRM API use?

The API supports HTTP Basic Auth with your Close API key as the username and an empty password, and OAuth 2.0 authorisation code flow for partner integrations. Through Jentic the API key (or OAuth tokens) are stored encrypted in the vault, and only scoped tokens reach the agent's context.

### Can I merge duplicate leads with the Close CRM API?

Yes. Call POST /lead/merge/ with the source and destination lead IDs. Close moves all contacts, activities, tasks, and opportunities to the destination lead and deletes the duplicate. This is the same operation surfaced in the Close UI's merge modal.

### What are the rate limits for the Close CRM API?

Close enforces a per-account rate limit (typically 240 requests per minute) and burst limits per endpoint. When approaching the limit, the API returns 429 with a Retry-After header. Through Jentic, watch this header and back off accordingly when bulk loading leads.

### How do I log a call activity through Jentic?

Search Jentic for 'log call activity' and the matching Close operation under POST /activity/call/ is returned with its schema for lead_id, contact_id, direction, and duration. Load the operation, then execute it with the call details. The standard quickstart is pip install jentic, search, load, execute.

### Is the Close CRM API free?

API access is included with all paid Close subscriptions; there is no separate per-call charge. The free trial includes API access for evaluation, but production use requires an active Close seat.

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

Yes. Because you run Jentic One yourself, your own rules decide which Close operations and credentials the agent may use. Since Close puts the lead id in the URL path (/lead/{lead_id}/), a rule can pin the agent to a single lead so it can update that lead and nothing else, and you choose exactly which operations it may call. High-impact actions like POST /lead/merge/ are only reachable if you explicitly add them to the agent's allowed set.
