Back to Help Center

Getting started with the REST API

Crispy exposes 28 curated REST endpoints at /api/v1/. Every endpoint runs through the same executor as the MCP server, so a REST call and an MCP tool call behave identically: same validation, same rate limits, same safety checks.

Authentication

Create an API key in the dashboard under API Keys, then send it on every request:

Authorization: Bearer crispy_...

Discovering endpoints

The OpenAPI 3.1 spec lives at /api/v1/openapi.json. Import it into Postman, Swagger UI, or your codegen tool, it documents every path, method, and schema. If you call a path that does not exist, the 404 response points you back to the spec.

What is covered

The surface maps to the core workflows: people and company search, profiles, network and invitations, inbox conversations, contacts and imports, lists, campaigns, analytics, webhooks, and warm-up. A few examples:

  • POST /api/v1/search/people
  • GET /api/v1/campaigns
  • POST /api/v1/contacts/import
  • GET /api/v1/inbox/conversations

Response conventions

Every response carries an X-API-Version: 1 header plus rate-limit headers (see the rate limits article). Errors return a consistent JSON shape with error, retryable, and suggestion fields so your client can decide whether to retry or surface the message.

Send request bodies as JSON objects. A body that is an array or a primitive is rejected with a 400 and a pointer to the schema, and malformed JSON gets an explicit parse error instead of being silently ignored.

Still stuck? Email [email protected] or browse answered questions.