API Documentation

The Productive API provides programmatic access to Productive — a Professional Services Automation platform for agencies and consultancies. Use it to manage projects, track time, handle invoicing, plan resources, and automate your agency workflows.

This reference is generated from our OpenAPI specification and covers all available endpoints, request and response schemas, and query parameters. Resources are organized into categories in the sidebar — from Core Resources like people, companies, and projects, to domain-specific groups like Financials, Invoicing, Resource Management, and Time Tracking.

For tutorials and in-depth explanations, see the GuidesGUIDE .

Base URL

All API requests are made to:

https://api.productive.io/api/v2

Authentication

Every request requires two headers:

Header Description
X-Auth-Token Your personal API token, generated in Settings > API integrations
X-Organization-Id The numeric ID of your organization

For details on permission scoping and token management, see the AuthorizationGUIDE guide.

Conventions

The API follows the JSON:API specification. All requests and responses use JSON, and resource relationships are expressed through the standard JSON:API relationships and included mechanisms. For a detailed breakdown, see the Document FormatGUIDE and Resource RepresentationGUIDE guides.

  • Content type — Requests must include Content-Type: application/vnd.api+json. Bulk operations require the ext=bulk extension. See Content NegotiationGUIDE .
  • Filtering — Most index endpoints support filter query parameters (e.g. ?filter[project_id]=42). Filters support comparison operators like gt, lt, contains, and logical AND/OR. See FilteringGUIDE .
  • Sorting — Sort results with ?sort=name (ascending) or ?sort=-name (descending). See SortingGUIDE .
  • Pagination — Paginate with ?page[number]=2&page[size]=20. Responses include metadata with total counts and page information. See PaginationGUIDE .
  • Side-loading — Use ?include=company,project to side-load related resources in a single request, reducing round trips.

Rate limits

Scope Limit
General 100 requests per 10 seconds
Sustained 4,000 requests per 30 minutes
Reports 10 requests per 30 seconds

Exceeding these limits returns a 429 Too Many Requests response. For full details, see the Rate LimitsGUIDE guide.

Error handling

The API uses standard HTTP status codes and returns JSON:API-compliant error objects. See the Error HandlingGUIDE guide for response formats and common error codes.

Versioning

The API is versioned through the base URL (/api/v2). For details on breaking vs. non-breaking changes, see the API ChangesGUIDE guide.