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

# Nimble CRM API

Jentic publishes the only available OpenAPI specification for Nimble CRM API, keeping it validated and agent-ready. Nimble is a CRM that consolidates contacts, deals, pipelines, messages, and notes alongside social and email signals so small teams can run a sales process from a single record. The API exposes 41 endpoints covering contact CRUD with batch deletes, custom contact fields and field groups, contact notes and tags, deals and deal pipelines with stats, deal notes and file attachments, message search across linked email and social channels, and the authenticated user's own profile. Auth is OAuth 2.0 authorisation code flow returning a bearer token.

## For AI agents

Create and update contacts, manage deals and pipelines, attach notes and files, and search linked messages on Nimble CRM across 41 endpoints under api.nimble.com/api/v1.

## Scope

Does not handle email sending, marketing automation, or telephony - use for Nimble CRM contact, deal, pipeline, note, and message operations only.

## Capabilities

- Create, update, and batch-delete contact records through /contacts and `/contact/{contact_id}`
- Define and group custom contact fields through `/contact/fields` and `/contact/fields/group`
- Attach, edit, and remove contact notes through `/contact/{contact_id}/notes`
- Tag contacts in bulk through PUT `/contact/{contact_id}/tags`
- Track deals through pipeline stages with /deals, `/deal/{deal_id}`, and `/deals/stats`
- Annotate deals with notes and file attachments through `/deal/{deal_id}` routes
- Resolve the authenticated user via /myself for permission-aware actions

## Use cases

### CRM contact sync from a marketing platform

When a contact is created in a marketing platform, an integration creates the corresponding Nimble record with full firmographic data. POST /contacts creates the record, PUT `/contact/{contact_id}` updates fields when the marketing record changes, and DELETE `/contact/{contact_id}` removes contacts that opted out. Custom fields defined through `/contact/fields` keep marketing attributes alongside Nimble's defaults.

Example prompt: POST a new contact to /contacts with first name, last name, primary email, and company, then PUT `/contact/{contact_id}` to add a custom 'lifecycle_stage' field value.

### Deal pipeline reporting

Sales managers need a daily roll-up of open deals by stage and value. /deals returns deals filtered by pipeline and stage, `/deals/stats` returns aggregate counts and amounts, and /pipelines lists the current pipeline schema. Together they power a CRM dashboard without scraping the Nimble UI.

Example prompt: Call GET `/deals/stats` and post the open deal count and total amount to a #sales Slack channel each morning.

### Activity logging from a meeting recorder

After a sales call, a meeting-recorder integration creates a contact note and attaches the recording. POST `/contact/{contact_id}/notes` adds the structured summary, and the matching deal-note endpoint can be used when the call relates to an open opportunity. PUT `/contact/{contact_id}/notes/{note_id}` edits the note as the human reviewer cleans up the summary.

Example prompt: POST a note to `/contact/{contact_id}/notes` with the meeting summary text and a reference to the recording URL.

### Tag-based campaign segmentation

Marketers need to tag a cohort of contacts before launching a campaign. PUT `/contact/{contact_id}/tags` assigns one or more tags to a contact, and the agent can iterate over a list of contact IDs returned by GET `/contacts/ids` to scope the operation to the right segment.

Example prompt: GET `/contacts/ids` filtered by city=Dublin, then PUT `/contact/{contact_id}/tags` for each ID with the tag 'dublin-event-2026'.

### AI agent CRM updates

An AI agent embedded in Slack or a sales workspace can create contacts, log notes, and update deals on Nimble without the user opening the CRM. Through Jentic, the agent searches for the right Nimble endpoint by intent and Jentic returns the schema with the OAuth bearer token attached server-side.

Example prompt: Search Jentic for 'create a contact in nimble', load POST /contacts, and execute it with name and email parsed from a chat message.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/contacts` | Create a new contact |
| GET | `/contacts` | List contacts with filters |
| PUT | `/contact/{contact_id}` | Update a contact |
| POST | `/contact/{contact_id}/notes` | Add a note to a contact |
| PUT | `/contact/{contact_id}/tags` | Assign tags to a contact |
| POST | `/deals` | Create a deal |
| GET | `/deals/stats` | Get aggregate deal stats |
| GET | `/myself` | Get the authenticated user profile |

## Key resources

- **Contacts** — Create, list, update, batch-delete, and look up contacts by identifier
- **Contact Fields** — Define custom contact fields and group them
- **Contact Notes** — Create, edit, and delete notes attached to a contact
- **Contact Tags** — Assign tags to a contact for segmentation
- **Deals** — Create, list, and update deals with aggregate stats
- **Deal Notes** — Annotate deals with notes
- **Deal Files** — Attach files to deal records
- **Pipelines** — List and manage deal pipelines
- **Messages** — Search and retrieve linked email and social messages
- **User** — Look up the authenticated user's profile

## Why Jentic

- **Setup:** Wiring Nimble CRM by hand means handling its bearer or OAuth2 auth, building requests against its versioned host (https://api.nimble.com/api/v1), and managing token refresh yourself. Through Jentic you install once, import the Nimble CRM API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Nimble puts the contact id in the URL path (`/contact/{contact_id}/...`), so a rule can pin your agent to one contact: it can add notes and update tags for that contact and nothing else. You choose the operations it may call, so destructive ones like deleting a contact or deal are not included unless you add them.
- **Credential handling:** Your Nimble token 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 'create a new contact' or 'add a note to a contact', and Jentic returns the matching Nimble operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **HubSpot CRM Contacts API** — HubSpot's CRM Contacts API offers a deeper data model with custom objects and lists for larger sales teams.
- **Pipedrive API** — Pipedrive is a sales-pipeline-first CRM with similar deal mechanics to Nimble.
- **Insightly API** — Insightly is another small-business CRM that overlaps with Nimble's contact and deal model.
- **SendGrid Mail API** — SendGrid sends transactional and marketing emails to contacts managed in Nimble.

## FAQ

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

Nimble does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Nimble 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 Nimble CRM API use?

Nimble uses OAuth 2.0 authorisation code flow; the resulting access token is sent as Authorization: Bearer <token> on every call. Through Jentic, the bearer token is held in the vault and attached server-side, so the agent never sees the raw token.

### Can I batch-delete contacts in Nimble?

Yes. DELETE /contacts accepts a list of contact IDs in the request body and removes them in a single call, useful for cleaning out a list of bounced or unsubscribed contacts.

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

Nimble enforces per-account rate limits but does not publish exact thresholds in this OpenAPI spec. If a script issues many writes in a short window expect HTTP 429; back off and retry.

### How do I create a deal through Jentic?

Run pip install jentic, search Jentic for 'create a deal in nimble', and load POST /deals. Provide the pipeline ID, stage ID, contact ID, and amount fields, then execute. Jentic attaches the OAuth bearer token automatically.

### Is the Nimble CRM API free?

API access is bundled with paid Nimble Business plans. There is no separate API fee, but a paid Nimble subscription is required.

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

Yes. Because you run Jentic One yourself, your own rules decide which Nimble operations and credentials the agent may use. Since Nimble puts the contact id in the URL path (`/contact/{contact_id}/...`), a rule can pin the agent to a single contact so it can add notes through POST `/contact/{contact_id}/notes` and update tags through PUT `/contact/{contact_id}/tags` and nothing else. You choose the exact operations it may call, so destructive ones like deleting a contact or a deal stay out of reach unless you add them.
