Skip to main content

Legacy API (v1)

This is the legacy API (v1). For new integrations, use API v2 — it has clearer resource paths, a consistent response envelope, and structured errors.
The Heffl v1 API lets you programmatically access and manage your CRM, sales, and project data. Existing integrations continue to work without changes. v1 remains fully supported, but new features ship in v2 first.

Base URL

All API endpoints are served over HTTPS. HTTP requests are not supported.

Authentication

Every request must include your API key in the x-api-key header:
See Authentication for how to create and manage API keys.

Request format

  • All request bodies must be JSON with Content-Type: application/json
  • Query parameters are used for filtering and pagination on list endpoints
  • Resource IDs in URLs are string-based public IDs (e.g., ld_abc123) across business entities (leads, clients, deals, tasks, invoices, webhooks).

Example: Create a lead

Response format

All responses return JSON. Successful responses include the data directly: Single resource:
List of resources:

Pagination

List endpoints support cursor pagination with these query parameters:

Error handling

Error responses include a descriptive message:

Error codes

Rate limiting

API requests are rate limited to 60 requests per minute per API key. If you exceed the limit, you’ll receive a 429 response with RateLimit-* headers indicating your current usage and reset time. Include retry logic with exponential backoff in your integration.

Custom fields

Entities that support custom fields (leads, deals, clients, invoices) accept them via the cf_ prefix in create and update requests:
Custom field keys are derived from the field label (lowercased, spaces replaced with underscores, prefixed with cf_).

Available resources

CRM

Reference data

Webhooks

Browse the endpoint reference in the sidebar to see full request/response details with code examples in multiple languages.

SDKs and tools

The Heffl API follows REST conventions and works with any HTTP client. Use tools like:
  • cURL for command-line testing
  • Postman for interactive exploration
  • Zapier / Make for no-code integrations
  • Any HTTP library in your programming language of choice