Everything an AI agent can do with the Nutshell API.

A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.

Endpoints31
AuthenticationAPI key
Last updated23 June 2026
Orientation

How the Nutshell API works.

The Nutshell API is how an app or AI agent works with a Nutshell CRM account: finding and creating leads, adding people and companies, logging activities, and reading the pipeline a sales team sells through. Access is granted with an API key tied to a Nutshell user, and there are no per-method permissions, so a key inherits whatever that user can see and do. The REST API has no dated version and is updated continuously, and a record change can be pushed to a registered webhook.

31Endpoints
8Capability groups
17Read
14Write
0Permissions
Authentication
Nutshell authenticates with HTTP Basic auth: the username is a Nutshell user's email address and the password is an API key that user creates under Setup then API keys. The same credentials work for both the REST API and the older JSON-RPC API. All calls require HTTPS, and access is available to customers on any plan.
Permissions
Nutshell has no per-endpoint scopes. An API key acts as the Nutshell user it belongs to and inherits that user's own access to records, so the practical boundary is the user account behind the key, not a list of granted permissions. To narrow what an integration can reach, the key is created under a user with limited access.
Versioning
The REST API carries no dated version to pin and no version header; it is updated continuously as Nutshell ships new capabilities. The older JSON-RPC API is still supported indefinitely but is in maintenance, with no new methods being added.
Data model
Nutshell is built around leads (deals), contacts (people), and accounts (companies), with activities, tasks, notes, products, and pipeline stages attached. The REST API is resource-based with standard HTTP methods, uses JSON Patch for updates, and follows the JSON:API convention for relationships and links between records.
Connect & authenticate

Connection & authentication methods.

How an app or AI agent connects to Nutshell determines what it can reach. There is a REST API for working with records, an older JSON-RPC API that Nutshell still supports, and a webhook channel for receiving changes, and each is governed by the API key behind it and the Nutshell user that key belongs to.

Ways to connect

REST API

The primary API: resource-based endpoints for leads, contacts, accounts, activities, tasks, notes, products, pipelines, and more, served under app.nutshell.com/rest. It uses standard HTTP methods, JSON Patch for updates, and the JSON:API convention for links between records. A call authenticates with HTTP Basic auth using a user email and an API key.

Best forConnecting an app or AI agent to Nutshell.
Governed byThe API key and the Nutshell user it belongs to.
Docs ↗

JSON-RPC API (legacy)

The older API, where every call POSTs a method name and parameters to a single endpoint under app.nutshell.com/api/v1/json rather than addressing resources by URL. It is still supported indefinitely but no longer gains new methods. It authenticates with the same email and API key, and a discovery call (getApiForUsername) returns the host to use.

Best forExisting integrations already built on JSON-RPC.
Governed byThe API key and the Nutshell user it belongs to.
Docs ↗

Webhooks

Nutshell POSTs a JSON payload to a registered URL when a record changes, covering people, companies, leads, activities, scheduler bookings, and form submissions. The payload names the entity, the action, the actor, and the changed fields. Nutshell recommends re-fetching the full record through the REST API rather than trusting the payload fields. Webhooks are configured under Setup then API keys.

Best forReceiving Nutshell changes at an app or AI agent.
Governed byThe Nutshell account and the URL registered to receive events.
Docs ↗
Authentication

API key (HTTP Basic)

A Nutshell user creates an API key under Setup then API keys. Requests send HTTP Basic auth where the username is that user's email address and the password is the API key. The key acts as the user, inheriting that user's access to records, since Nutshell has no per-endpoint scopes. All calls require HTTPS.

TokenAPI key as the Basic-auth password (with the user email as username)
Best forServer-side access for both the REST and JSON-RPC APIs.
Docs ↗
Endpoint reference

Every Nutshell API method.

Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.

MethodEndpointWhat it doesAccessPermissionVersion

Leads

Methods for finding and managing leads, Nutshell's word for a deal or sale in progress.6

No per-endpoint scope; the key inherits the user's access. Large find requests are the most throttled.

Acts onlead
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts onlead
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access. Create requests are not rate limited.

Acts onlead
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventleads
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access. Adds append /- to the path; removes append the item id.

Acts onlead
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventleads
Rate limitStandard limits apply

Closes the deal; no per-endpoint scope, the key inherits the user's access.

Acts onlead
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventleads
Rate limitStandard limits apply

Removes the deal; an undelete endpoint can restore it. No per-endpoint scope.

Acts onlead
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Contacts (People)

Methods for the people a team sells to.4

No per-endpoint scope; the key inherits the user's access.

Acts oncontact
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts oncontact
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts oncontact
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventcontacts
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts oncontact
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventcontacts
Rate limitStandard limits apply

Accounts (Companies)

Methods for the companies a team sells to.4

No per-endpoint scope; the key inherits the user's access.

Acts onaccount
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts onaccount
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts onaccount
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventaccounts
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts onaccount
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventaccounts
Rate limitStandard limits apply

Activities

Methods for logged and scheduled activities, like calls and meetings.3

No per-endpoint scope; the key inherits the user's access.

Acts onactivity
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts onactivity
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts onactivity
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventactivities
Rate limitStandard limits apply

Tasks

Methods for to-do tasks assigned to users.3

No per-endpoint scope; the key inherits the user's access.

Acts ontask
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts ontask
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts ontask
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Notes

Methods for notes attached to records.2

No per-endpoint scope; the key inherits the user's access.

Acts onnote
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts onnote
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Products & Pipeline

Methods for products, pipelines, and the stages a lead moves through.5

No per-endpoint scope; the key inherits the user's access.

Acts onproduct
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts onproduct
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts onpipeline
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts onstage
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Moves the deal between pipelines; no per-endpoint scope.

Acts onpipeline
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventleads
Rate limitStandard limits apply

Users & Tags

Methods for reading the team's users and managing tags and sources.4

Returns the team roster, including names and email addresses. No per-endpoint scope.

Acts onuser
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts ontag
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts ontag
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

No per-endpoint scope; the key inherits the user's access.

Acts onsource
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply
No endpoints match those filters.
Webhooks

Webhook events.

Nutshell can notify an app when a record changes, like a lead moving to a new stage or a person being edited. It POSTs a payload describing what changed, which Nutshell recommends treating as a prompt to re-fetch the full record through the REST API rather than trusting the fields in the message.

EventWhat it signalsTriggered by
leads (create / update)A lead changed: an attribute edit, a stage transition, an outcome change (won, lost, or canceled), a value adjustment, a note, or a merge. The payload names the action and the changed fields./leads
/leads/{id}
/leads/{id}/status
people (create / update)A person (contact) changed: an attribute edit, a note, a file upload, a description update, an ownership change, or a merge./contacts
/contacts/{id}
companies (create / update)A company (account) changed: an attribute edit, a note, a file, a description, an assignment update, or a merge./accounts
/accounts/{id}
activities (create / update)An activity changed: a name, description, or time edit, or a status update such as scheduled, logged, or canceled./activities
No events match that search.
Rate limits & pagination

Rate limits, pagination & request size.

Nutshell does not publish fixed numeric rate limits. It throttles the heaviest read traffic, large list (find) requests and high volumes of single-record reads, and asks teams that need more to get in touch.

Request rate

Nutshell does not publish fixed numeric rate limits. It applies throttling to the heaviest read traffic, specifically large list (find) requests that return full records and high volumes of single-record reads, while incoming create and edit requests are not rate limited. Teams that expect heavy usage or hit throttling are asked to contact Nutshell to discuss higher limits rather than relying on a published ceiling.

Pagination

REST list endpoints page with two query parameters: page[page] selects the page using 0-based indexing, and page[limit] sets how many records come back per page. List endpoints also accept filter parameters in the form filter[type][]=value, including ranges, address subfields, and time ranges, to narrow results before paging.

Request size

Nutshell does not document a fixed maximum page size; page[limit] sets the records returned per page. A response follows the JSON:API shape, returning the requested records alongside related records and navigation links.

Errors

Status codes & error handling.

The status codes an agent should handle, and what to do about each.

StatusCodeMeaningWhat to do
400Bad RequestThe request was malformed, like an invalid filter, a bad JSON Patch operation, or a missing required field on a create.Check the request body and query parameters against the endpoint reference, fix them, and resend.
401UnauthorizedAuthentication failed: the email and API key pair was missing, wrong, or sent without HTTPS.Confirm the Basic-auth credentials use a valid user email and a current API key, and that the call is over HTTPS.
403ForbiddenThe authenticated user cannot perform this action on this record, because the key inherits that user's access and the user lacks it.Use a key created under a Nutshell user that has access to the record or action.
404Not FoundThe record id does not exist, or is not visible to the user behind the key.Verify the id and confirm the user can see the record.
429Too Many RequestsThrottling kicked in, most often on large list (find) requests or a high volume of single reads.Slow the request rate, page through large lists in smaller batches, and contact Nutshell if higher limits are needed.
Versioning & freshness

Version history.

The REST API has no dated version to pin and is updated continuously, while the older JSON-RPC API is still supported but no longer gains new methods.

Version history

What changed, and when

Latest versionCurrent
CurrentCurrent version
REST API (current, unversioned)

The REST API is Nutshell's primary API and carries no dated version to pin. It is resource-based, uses standard HTTP methods with JSON Patch for updates, and follows the JSON:API convention. Nutshell updates it continuously as new capabilities ship inside the product, so there is no version header to set.

What changed
  • REST API is the recommended API for new integrations.
  • Covers leads, contacts, accounts, activities, tasks, notes, products, pipelines, and stages.
  • An llms.txt index publishes all pages in Markdown and endpoints in OpenAPI for AI agents.
JSON-RPC (maintenance)
JSON-RPC API (legacy, still supported)

The older JSON-RPC API posts a method name and parameters to a single endpoint. Nutshell continues to support and maintain it indefinitely for existing integrations but is no longer adding new methods, directing new work to the REST API.

What changed
  • Still supported and maintained for existing integrations.
  • No new endpoints or methods being added.
  • Same email plus API key authentication as the REST API.

There is no version header to set on the REST API; track the changelog for new capabilities.

Nutshell developer site ↗
Questions

Nutshell API, answered.

How does an integration authenticate to Nutshell?+
Through HTTP Basic auth over HTTPS. The username is a Nutshell user's email address and the password is an API key that user generates under Setup then API keys. The same credentials authenticate both the REST API and the legacy JSON-RPC API.
Does Nutshell have scopes or per-endpoint permissions?+
No. An API key acts as the user it was created under and inherits that user's access to records. There is no list of granted scopes to choose from, so the way to limit an integration is to create its key under a Nutshell user that only has the access it needs.
Should an integration use the REST API or the JSON-RPC API?+
The REST API is the primary API and the recommended choice for new work; it is resource-based, uses standard HTTP methods, and is updated continuously. The JSON-RPC API, where every call posts a method name and parameters to a single endpoint, is still supported for existing integrations but is no longer gaining new methods.
How are records updated?+
REST updates use the PATCH method with JSON Patch operations, where each change names the field and its new value. Adding a related item, like a tag, appends /- to the path, and removing one appends the item's id. Creates use POST and reads use GET.
How do webhooks work in Nutshell?+
Nutshell POSTs a JSON payload to a registered URL when a record changes, describing the entity, the action (such as create or update), and the actor. Nutshell recommends treating the payload as a signal that something changed and re-fetching the full record through the REST API, rather than relying on the fields in the message.
What are the rate limits?+
Nutshell does not publish numeric limits. It throttles large list (find) requests that return full records and high volumes of single reads, while create and edit requests are not throttled. A team expecting heavy traffic is asked to contact Nutshell about higher limits.
Related

More crm API guides for agents

What is Bollard AI?

Control what every AI agent can do in Nutshell.

Bollard AI sits between a team's AI agents and Nutshell. Grant each agent exactly the access it needs, read or write, record type by record type, and every call is checked and logged.

  • Set read, write, or full access per agent, never a shared Nutshell API key.
  • Denied by default, so an agent reaches only what has been explicitly allowed.
  • Every call recorded in plain English: who, what, where, and the decision.
Nutshell
Sales Follow-up Agent
View leads ResourceOffReadFull use
Log activities ActionOffReadFull use
Delete records ActionOffReadFull use
Per-agent access, set in Bollard AI, not in Nutshell