
The Productlane v2 API provides programmatic access to threads, contacts, companies, changelogs, help center articles, projects, issues, tags, the customer portal, and workspace members.
For the complete reference, including authentication, scopes, pagination, errors, rate limits, and every endpoint, see the full API guide.
https://productlane.com/api/v2
JSON request and response bodies
snake_case field names everywhere
ISO 8601 strings for every date
Cursor pagination on every list endpoint
Bearer token authentication on every request
A stable error envelope with a code, message, and request_id
An X-Request-Id header on every response (success or failure); quote it in support tickets
Threads - statuses (open, snoozed, done), messages, and internal comments
Contacts - look up by id or by email, and manage blocked senders
Companies - look up by external id or domain, and merge duplicates
Projects - manage projects and read available statuses
Issues - manage issues and read Linear workflow states
Tags - tags and tag groups
Changelogs - entries, changelog tags, and email or Slack broadcasts
Docs - help center articles, groups, and drafts
Portal - the public roadmap and a contact's portal view
Members - invite, change roles, remove, and manage pending invites
Files - upload attachments and inline media to the CDN
Mint a v2 key in Settings → Integrations → API, choose its scopes, and send it as a bearer token on every request:
Authorization: Bearer pl_v2_...
A key's scopes decide what it can read and write, so create a narrow key when an integration only needs part of your workspace.
Grant only the scopes an integration needs. Read scopes expose list and get endpoints; write scopes add create, update, and delete.
threads:read - list and read threads, messages, and comments
threads:write - create, update, and delete threads
messages:write - send messages on a thread
comments:write - create, update, and delete internal comments
contacts:read - list and read contacts
contacts:write - create, update, and delete contacts, and manage blocked senders
companies:read - list and read companies
companies:write - create, update, delete, and merge companies
changelogs:read - list and read changelogs and tags
changelogs:write - create, update, delete, and broadcast changelogs
docs:read - list and read articles, groups, and drafts
docs:write - create, update, and delete articles, groups, and drafts
projects:read - list and read projects and statuses
projects:write - create, update, and delete projects
issues:read - list and read issues and workflow states
issues:write - create, update, and delete issues
tags:read - list and read tags and tag groups
tags:write - create, update, and delete tags and tag groups
files:write - upload files to the CDN
portal:read - read the public roadmap and a contact's portal view
admin - manage members and invites; includes every other scope
Some endpoints require more than one scope. Listing a contact's issues, for example, needs both contacts:read and issues:read.
Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. The defaults, per key and per minute, are 1000 reads and 60 writes. A 429 response adds a Retry-After header; wait for that window before retrying. Use webhooks instead of polling list endpoints to stay well under the limit.
The v1 API is deprecated and sunsets on November 20, 2026. New integrations should use v2. If you have a v1 integration in production, follow the migration guide in the full API guide. A v1 key sent to v2 is rejected with 410 unsupported_key_version.