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

# Cloze CRM API

Cloze publishes an official OpenAPI specification in its API reference. The specification on this page is a curated, agent-optimized subset written and maintained by Jentic, covering 43 endpoints and kept validated and agent-ready. The Cloze API gives programmatic access to the Cloze relationship management platform: people, companies, projects, the activity timeline, custom fields, segments, stages, team roles, analytics, and webhooks. It supports creating and updating contacts and companies, recording communications and content against a timeline, querying project funnels and lead qualification data, and subscribing to change events. Authentication uses an API key passed as the api_key query parameter.

## For AI agents

Manage Cloze CRM data programmatically - create and update people, companies, and projects, log timeline communications, query funnel analytics, and subscribe to change webhooks.

## Scope

Does not handle outbound email delivery, payment processing, or marketing campaign execution - use for Cloze CRM contact, company, project, timeline, and analytics operations only.

## Capabilities

- Create, update, find, and delete people and company contact records
- Create and update projects, including stages, segments, and custom fields
- Log communications, content, and to-do items on a contact or project timeline
- Query analytics endpoints for team activity, lead qualification, and funnel data
- Manage team members, subteam nodes, and team roles
- Subscribe to webhook events for changes to people, companies, and projects

## Use cases

### Two-Way Contact Sync With Other Systems

Teams running Cloze alongside marketing automation or finance tools sync contacts both ways. `/v1/people/find` and `/v1/companies/find` detect existing records before `/v1/people/create` or `/v1/companies/create` insert new ones, while `/v1/people/update` keeps fields current as upstream systems change. Webhook subscriptions via `/v1/webhooks/subscribe` push change events outwards, removing the need to poll. The 43 endpoints cover the full read-write surface needed for a robust sync.

Example prompt: Find a person in Cloze by email via GET `/v1/people/find`, and if no match exists, create the record via POST `/v1/people/create` with name, email, and company

### Automated Timeline Logging From Email and Calls

Sales reps want every email, call, and meeting to land on the right contact's timeline without manual entry. POST `/v1/timeline/communication/create` records inbound and outbound communications against a person or company, and POST `/v1/timeline/content/create` attaches related content like decks or notes. Combined with `/v1/people/find` for resolution, an integration can listen on a mail server or telephony API and write a complete activity history into Cloze automatically.

Example prompt: When a sales call ends, find the contact in Cloze by phone number then POST `/v1/timeline/communication/create` with the call duration, direction, and a short summary

### Sales Funnel and Lead Qualification Analytics

Sales managers analysing pipeline health pull funnel and lead qualification data on demand rather than waiting for built-in reports. POST `/v1/analytics/funnel` returns funnel stage data, POST `/v1/analytics/leads` returns lead qualification metrics, and POST `/v1/analytics/teamactivity` surfaces what the team did in a given period. The results power a custom dashboard or feed a weekly forecasting report without exporting to spreadsheets.

Example prompt: Run POST `/v1/analytics/funnel` for the current quarter and POST `/v1/analytics/leads` for the same period, then summarise stage-by-stage conversion rates

### AI Agent Maintaining a Live CRM via Jentic

AI agents handling sales operations call Cloze through Jentic to keep records current as conversations happen. The agent expresses an intent like 'create a person' or 'log a call', and Jentic loads the matching Cloze operation, supplies the api_key from the vault, and returns structured results. The same flow handles webhooks, so the agent can react to changes without polling the Cloze feed endpoints.

Example prompt: Through Jentic, search for 'create a person in CRM', load the cloze.com `/v1/people/create` operation, and execute it with the prospect's name, email, and company

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v1/people/create` | Create a person record |
| POST | `/v1/people/update` | Update a person record |
| GET | `/v1/people/find` | Find people by email or other identifier |
| POST | `/v1/companies/create` | Create a company record |
| POST | `/v1/projects/create` | Create a project |
| POST | `/v1/timeline/communication/create` | Add a communication record to a timeline |
| POST | `/v1/webhooks/subscribe` | Subscribe to change events |
| POST | `/v1/analytics/funnel` | Query funnel information (BETA) |

## Key resources

- **People** — Create, update, find, get, and delete person records and walk the people feed
- **Companies** — Manage company records and walk the companies feed
- **Projects** — Create, update, find, and feed projects representing deals or initiatives
- **Timeline** — Add communications, content, and to-do items to a contact or project timeline
- **Analytics** — Team activity, user activity, project, lead qualification, and funnel queries
- **Team** — Roles, members, and subteam nodes
- **Webhooks** — Subscribe and unsubscribe from change events for people, companies, and projects
- **User** — Profile, custom fields, stages, segments, steps, and views

## Why Jentic

- **Setup:** Wiring Cloze by hand means appending its api_key query parameter to every call to api.cloze.com, keeping that key out of your logs, and handling retries across its CRM endpoints yourself. Through Jentic you install once, import the Cloze CRM API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Cloze passes person and company targets in the request body rather than the URL path, so scope the agent to the operations it needs, such as finding a person or logging a timeline communication. You choose that set, so write operations like creating a person or subscribing a webhook are not included unless you add them.
- **Credential handling:** Your Cloze api_key is stored once, encrypted, by your own Jentic One instance and appended as the query parameter at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a person', 'log a call', or 'query a sales funnel', and Jentic returns the matching Cloze operation with its input schema so the agent calls the right endpoint without browsing the Cloze docs.

## Related APIs

- **Pipedrive API** — Pipedrive is a sales-focused CRM with a similar contact, deal, and activity model
- **Copper API** — Copper is another relationship-management CRM with people, companies, opportunities, and activities
- **HubSpot API** — HubSpot covers marketing automation and email that complements Cloze's relationship-management focus

## FAQ

### Does Cloze publish an official OpenAPI spec for the Cloze CRM API?

Yes. Cloze publishes an official OpenAPI 3.1.1 document at https://api.cloze.com/api-docs/cloze-openapi.json, titled 'Cloze API Reference', covering 55 endpoints. That document is canonical. The specification on this page is a curated, agent-optimized subset written and maintained by Jentic, covering 43 endpoints and validated against the live API; the official document additionally exposes bulk-fetch and timeline operations for people, companies, and projects, and declares bearer and OAuth2 schemes alongside the api_key query parameter. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Cloze CRM API use?

The Cloze API uses an apiKey scheme with the key passed as the api_key query parameter on every request. Through Jentic the key is stored encrypted in the vault and appended to the request URL only at execution time, so the agent never sees the raw key.

### Can I create and update people and companies with the Cloze CRM API?

Yes. POST `/v1/people/create` and POST `/v1/people/update` handle person records, POST `/v1/companies/create` and POST `/v1/companies/update` handle companies, and DELETE `/v1/people/delete` removes a person. `/v1/people/find` and `/v1/companies/find` let you check for existing records before inserting.

### Can I subscribe to webhooks for Cloze changes?

Yes. POST `/v1/webhooks/subscribe` registers a callback URL for change events on people, companies, and projects. POST `/v1/webhooks/unsubscribe` removes a subscription, and GET `/v1/webhooks` lists active subscriptions.

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

The OpenAPI specification does not declare explicit rate limit headers or a 429 response. Cloze applies plan-based limits, so high-volume sync jobs should batch updates and back off if requests start to fail. Through Jentic, retries are handled by the SDK.

### How do I create a person record in Cloze through Jentic?

Install the SDK with pip install jentic, search for 'create a person in CRM', load the cloze.com `/v1/people/create` operation, and execute it with name, email, and company. Jentic supplies the api_key automatically and returns the created record's identifier.

### Can I query Cloze analytics endpoints from an integration?

Yes. POST `/v1/analytics/teamactivity`, `/v1/analytics/activity`, `/v1/analytics/projects`, `/v1/analytics/leads`, and `/v1/analytics/funnel` return team-, project-, lead-, and funnel-level metrics that can drive a custom dashboard or feed into a weekly report.

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

Yes. Because you run Jentic One yourself, your own rules decide which Cloze operations and credentials the agent can use, so you can grant only read-side calls such as GET `/v1/people/find` or POST `/v1/analytics/funnel` and leave write calls out. Cloze passes person and company targets in the request body rather than the URL path, so scoping is done at the operation level: you pick the exact set the agent may call. Write operations like POST `/v1/people/create` or POST `/v1/webhooks/subscribe` are not available to the agent unless you explicitly add them to that set.
