A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.
The Productboard API is how an app or AI agent works with a Productboard workspace: capturing customer feedback as notes, creating and updating features in the product hierarchy, reading products and components, and tracking objectives. Access is granted through an access token created in the workspace, and that token inherits whatever the person who made it can see and do, with no per-method permissions to narrow it. Productboard can also push an event to a subscribed endpoint when a feature or note changes, so an integration stays current without polling.
How an app or AI agent connects to Productboard determines what it can reach. There is a route for making calls and a route for receiving events, and each is governed by the access token behind it and the workspace that token belongs to.
The REST API takes JSON bodies, returns JSON, and pages long lists 100 items at a time, at https://api.productboard.com. Every call must send an Authorization Bearer access token and an X-Version header set to 1, which selects the v1 API. A request missing the X-Version header is rejected.
Productboard POSTs an event to an HTTPS endpoint registered through the webhooks API when a feature or note changes. The endpoint must be publicly resolvable and cannot be localhost or an internal address. The receiver confirms the subscription and then processes events as they arrive, so an integration learns about activity without polling.
A workspace admin creates an access token on the integrations page in workspace settings. It is sent as a Bearer token and inherits the full workspace access of the person who made it, with no per-method scopes to narrow it. Every call must also send X-Version: 1.
OAuth 2.0 lets an app connect on behalf of a Productboard user through an authorization flow, rather than a long-lived admin token. The resulting access represents that user and, like a token, is bounded by what the user can see and do rather than by granular per-endpoint scopes.
The Productboard API is split into areas an agent can act on, like customer notes, the feature hierarchy, products and components, objectives, and webhooks. Each area has its own methods, and a write can change the product backlog or the feedback record an entire team works from.
Methods for working with customer feedback captured as notes.
Methods for working with features and subfeatures in the product hierarchy.
Methods for reading the products and components that features sit under.
Methods for reading the workflow statuses a feature can hold.
Methods for reading objectives that features are aligned to.
Methods for reading releases and the groups they belong to.
Methods for reading the companies feedback and accounts are attached to.
Methods for subscribing to and managing change notifications.
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.
| Method | Endpoint | What it does | Access | Permission | Version | |
|---|---|---|---|---|---|---|
Notes (feedback)Methods for working with customer feedback captured as notes.5 | ||||||
| GET | /notes | List all notes, ordered by creation date, with filters for time range, term, feature, company, owner, source, and tags. | read | — | Deprecated | |
Read-only. The token reaches every note its creator can see; Productboard has no per-method scopes. Acts onnote Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /notes | Create a new note from a piece of customer feedback, with title, content, and optional customer, company, and tags. | write | — | Deprecated | |
A core write. No granular permission to limit it; the token carries full creator access. Acts onnote Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook event note.createdRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /notes/{id} | Retrieve a single note by its identifier. | read | — | Deprecated | |
Read-only. Acts onnote Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| PATCH | /notes/{id} | Update one or more fields of an existing note; fields left out are unchanged. | write | — | Deprecated | |
A write. No granular permission to limit it. Acts onnote Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook event note.updatedRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /notes/{id} | Delete a note from the workspace. | write | — | Deprecated | |
Irreversible. Removes a piece of customer feedback. No granular permission to limit it. Acts onnote Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
FeaturesMethods for working with features and subfeatures in the product hierarchy.5 | ||||||
| GET | /features | List all features and subfeatures, with filters for status, parent, owner, archived, and linked note. | read | — | Deprecated | |
Read-only. Paginates 100 at a time; follow links.next for more. Acts onfeature Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| POST | /features | Create a new feature or subfeature under a product, component, or feature. | write | — | Deprecated | |
A core roadmap write. No granular permission to limit it. Acts onfeature Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook event feature.createdRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /features/{id} | Retrieve a single feature by its identifier. | read | — | Deprecated | |
Read-only. Acts onfeature Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| PATCH | /features/{id} | Update fields of an existing feature, such as name, description, status, or owner. | write | — | Deprecated | |
A write. No granular permission to limit it. Acts onfeature Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook event feature.updatedRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /features/{id} | Delete a feature from the product hierarchy. | write | — | Deprecated | |
Irreversible. Removes a roadmap item. No granular permission to limit it. Acts onfeature Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook event feature.deletedRate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
Products & componentsMethods for reading the products and components that features sit under.2 | ||||||
| GET | /components | List all components, the mid-level grouping that features sit under within a product. | read | — | Deprecated | |
Read-only. Paginates 100 at a time. Acts oncomponent Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /products | List all products, the top level of the product hierarchy. | read | — | Deprecated | |
Read-only. Paginates 100 at a time; follow links.next for more. Acts onproduct Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
Feature statusesMethods for reading the workflow statuses a feature can hold.1 | ||||||
| GET | /feature-statuses | List all feature statuses, the workflow states a feature can be in across the workspace. | read | — | Deprecated | |
Read-only. Paginates 100 at a time. Acts onfeature-status Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
ObjectivesMethods for reading objectives that features are aligned to.1 | ||||||
| GET | /objectives | List all objectives, with filters for archived, owner, parent, and status. | read | — | Deprecated | |
Read-only. Paginates 100 at a time; follow links.next for more. Acts onobjective Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
Releases & release groupsMethods for reading releases and the groups they belong to.1 | ||||||
| GET | /release-groups/{id} | Retrieve a single release group, the container that organizes a set of releases. | read | — | Deprecated | |
Read-only. Acts onrelease-group Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
CompaniesMethods for reading the companies feedback and accounts are attached to.1 | ||||||
| GET | /companies | List all companies, with filters for term, whether they have notes, and linked feature. | read | — | Deprecated | |
Read-only. Paginates 100 at a time. Acts oncompany Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
WebhooksMethods for subscribing to and managing change notifications.4 | ||||||
| POST | /webhooks | Create a webhook subscription to be notified on each change to the specified entities. | write | — | Deprecated | |
The notification URL must be HTTPS with a publicly resolvable host, not localhost or an internal address. Acts onwebhook Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /webhooks | List all webhook subscriptions in the workspace. | read | — | Deprecated | |
Read-only. Acts onwebhook Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| GET | /webhooks/{id} | Retrieve a single webhook subscription by its identifier. | read | — | Deprecated | |
Read-only. Acts onwebhook Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
| DELETE | /webhooks/{id} | Delete a webhook subscription so Productboard stops sending it events. | write | — | Deprecated | |
Stops delivery to that endpoint. Acts onwebhook Permission (capability)None required VersionDeprecated 2026-04-09 · Sunset 2026-07-08 Webhook eventNone Rate limitStandard limits apply SourceOfficial documentation ↗ | ||||||
Productboard can notify an app when something changes in a workspace, like a feature being created or updated or a note arriving. It posts an event to a subscribed endpoint, so an integration learns about activity without polling.
| Event | What it signals | Triggered by |
|---|---|---|
feature.created | A new feature or subfeature was created in the product hierarchy. | /features |
feature.updated | An existing feature changed, such as its name, description, status, or owner. | /features/{id} |
feature.deleted | A feature was deleted from the product hierarchy. | /features/{id} |
note.created | A new note was created, capturing a piece of customer feedback. | /notes |
note.updated | An existing note changed. | /notes/{id} |
Productboard limits how fast an app can call, by a request rate measured per second across the access token, and pages long lists rather than returning everything at once.
Productboard meters requests by rate, not by a per-method cost. The limit is 50 requests per second per access token. Going over returns HTTP 429 with a Retry-After header that says how long to wait before retrying.
List endpoints return at most 100 items by default. Some lists return a links.next link to follow for the next page; the notes list instead returns a pageCursor that is passed back on the next call and stays valid for one minute. The notes list accepts a pageLimit of 1 to 2000.
A list page returns up to 100 items by default. The notes list can raise its page size up to 2000 with pageLimit, and its pageCursor expires one minute after it is issued.
The status codes an agent should handle, and what to do about each.
| Status | Code | Meaning | What to do |
|---|---|---|---|
| 400 | bad_request | The request was malformed or failed schema validation, for example a missing required field or a bad parameter. | Read the error body, fix the request, and resend. The request is not retryable as-is. |
| 401 | unauthorized | Authentication is missing or the access token is invalid, or the X-Version header is absent. | Send a valid Bearer access token and include X-Version: 1 on every request. |
| 403 | forbidden | The token lacks permission for this action, or the OAuth grant is missing a required scope. | Use a token whose workspace access covers the action, or re-authorize with the needed scope. |
| 404 | not_found | The requested object does not exist or is not visible to this token. | Verify the object id and confirm the token's workspace can see it. |
| 422 | unprocessable_entity | Validation failed, for example an invalid or expired pageCursor, or a value that the field will not accept. | Correct the failing field, or request a fresh pageCursor, and resend. |
| 429 | too_many_requests | The per-token request rate was exceeded. | Back off and retry after the Retry-After header, and smooth the request rate. |
Productboard pins the API behind a single header value rather than a dated version string, and ships breaking changes as a new major version that runs alongside the old one for a migration window.
The v1 REST API, selected by the X-Version: 1 header at https://api.productboard.com. It covers notes, the product hierarchy of products, components, and features, feature statuses, objectives, releases and release groups, companies, and webhooks. It was deprecated on 9 April 2026 when v2 became generally available, and is scheduled to be switched off on 8 July 2026.
Productboard released Public API v2 as generally available and deprecated v1. v2 is designed to be more consistent and flexible, reorganizing products, components, and features under a single entities model and adding configuration endpoints that let an integration discover field definitions in a workspace.
Pin X-Version: 1 today, and plan the move to v2 before v1 is switched off on 8 July 2026.
Productboard API changelog ↗Bollard AI sits between a team's AI agents and Productboard. Grant each agent exactly the access it needs, read or write, area by area, and every call is checked and logged.