Overview
- GET /features/{id}
- PUT /features/{id}
- DELETE /features/{id}
- PATCH /features/{id}
- PARAMETERS /features/{id}
- GET /features
- POST /features
- GET /components/{id}
- PUT /components/{id}
- PATCH /components/{id}
- PARAMETERS /components/{id}
- GET /components
- POST /components
- GET /products
- GET /products/{id}
- PARAMETERS /products/{id}
- GET /hierarchy-entities/custom-fields
- GET /hierarchy-entities/custom-fields/{id}
- PARAMETERS /hierarchy-entities/custom-fields/{id}
- GET /hierarchy-entities/custom-fields-values/value
- PUT /hierarchy-entities/custom-fields-values/value
- DELETE /hierarchy-entities/custom-fields-values/value
- GET /hierarchy-entities/custom-fields-values
- GET /webhooks/{id}
- DELETE /webhooks/{id}
- PARAMETERS /webhooks/{id}
- GET /webhooks
- POST /webhooks
- GET /plugin-integrations/{id}/connections/{featureId}
- PUT /plugin-integrations/{id}/connections/{featureId}
- DELETE /plugin-integrations/{id}/connections/{featureId}
- PARAMETERS /plugin-integrations/{id}/connections/{featureId}
- GET /plugin-integrations/{id}/connections
- PARAMETERS /plugin-integrations/{id}/connections
- GET /plugin-integrations/{id}
- PUT /plugin-integrations/{id}
- DELETE /plugin-integrations/{id}
- PATCH /plugin-integrations/{id}
- PARAMETERS /plugin-integrations/{id}
- GET /plugin-integrations
- POST /plugin-integrations
- GET /jira-integrations/{id}/connections
- PARAMETERS /jira-integrations/{id}/connections
- GET /jira-integrations/{id}/connections/{featureId}
- PARAMETERS /jira-integrations/{id}/connections/{featureId}
- GET /jira-integrations/{id}
- PARAMETERS /jira-integrations/{id}
- GET /jira-integrations
- GET /users/{id}
- PATCH /users/{id}
- PARAMETERS /users/{id}
- GET /users
- GET /release-groups/{id}
- DELETE /release-groups/{id}
- PATCH /release-groups/{id}
- PARAMETERS /release-groups/{id}
- GET /release-groups
- POST /release-groups
- GET /releases/{id}
- DELETE /releases/{id}
- PATCH /releases/{id}
- PARAMETERS /releases/{id}
- GET /releases
- POST /releases
- GET /feature-release-assignments/assignment
- PUT /feature-release-assignments/assignment
- GET /feature-release-assignments
- GET /objectives
- GET /objectives/{id}
- PARAMETERS /objectives/{id}
- POST /notes
- GET /feature-statuses
GET /features/{id}
Summary: Get a specific feature
Returns detail of a specific feature.
OpenAPI snippet URL
PUT /features/{id}
Summary: Update a specific feature
Deprecated, use the PATCH method instead.
OpenAPI snippet URL
DELETE /features/{id}
Summary: Delete a specific feature
Deletes a specific feature. The feature with subfeatures cannot be deleted. Delete all subfeatures first.
OpenAPI snippet URL
PATCH /features/{id}
Summary: Update a specific feature
Updates a specific feature.
OpenAPI snippet URL
PARAMETERS /features/{id}
OpenAPI snippet URL
GET /features
Summary: List all features
Returns detail of all features and subfeatures.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
POST /features
Summary: Creates a new feature
Creates a new (sub)feature under a specific product, component or feature.
OpenAPI snippet URL
GET /components/{id}
Summary: Get a specific component
Returns detail of a specific component.
OpenAPI snippet URL
PUT /components/{id}
Summary: Update a specific component
Deprecated, use the PATCH method instead.
OpenAPI snippet URL
PATCH /components/{id}
Summary: Update a specific component
Updates a specific component.
OpenAPI snippet URL
PARAMETERS /components/{id}
OpenAPI snippet URL
GET /components
Summary: List all components
Returns detail of all components.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
POST /components
Summary: Creates a new component
Creates a new (sub)component under a specific product, or component.
OpenAPI snippet URL
GET /products
Summary: List all products
Returns detail of all products.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
GET /products/{id}
Summary: Get a specific product
Returns detail of a specific product.
OpenAPI snippet URL
PARAMETERS /products/{id}
OpenAPI snippet URL
GET /hierarchy-entities/custom-fields
Summary: List all custom fields
Returns detail of all custom field definitions. This API only returns the data regarding the custom field definition, not the values for hierarchy entities. Values are managed by Custom Fields Values endpoints.
When listing, the type filter has to be specified to allow us to add new types without breaking existing clients. It’s possible to specify multiple types in the filter.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
GET /hierarchy-entities/custom-fields/{id}
Summary: Get a specific custom field
Returns detail of one custom field.
OpenAPI snippet URL
PARAMETERS /hierarchy-entities/custom-fields/{id}
OpenAPI snippet URL
GET /hierarchy-entities/custom-fields-values/value
Summary: Get a specific custom field value
Returns a custom field value specified by custom field id and hierarchy entity id.
OpenAPI snippet URL
PUT /hierarchy-entities/custom-fields-values/value
Summary: Set value of a custom field for a hierarchy entity.
This method can be used for setting custom field value for a hierarchy entity and custom field.
OpenAPI snippet URL
DELETE /hierarchy-entities/custom-fields-values/value
Summary: Delete value of a custom field for a hierarchy entity.
This method can be used for unsetting (deleting) custom field value for a hierarchy entity and custom field.
OpenAPI snippet URL
GET /hierarchy-entities/custom-fields-values
Summary: List all custom fields values
Returns all set (non-empty) custom field values. It can be filtered by
type- returns all custom fields values of given types. Multiple types can be specified.hierarchyEntity.id- returns all custom fields values for the hierarchy entity (row).customField.id- returns all custom fields values for the custom field (column).
The filters can be combined. Either customField.id or type has to be specified to not break existing API consumers when adding a new custom field type.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
GET /webhooks/{id}
Summary: Get a subscription
Returns detail of a specific webhook subscription.
OpenAPI snippet URL
DELETE /webhooks/{id}
Summary: Delete a subscription
Deletes a specific webhook subscription.
OpenAPI snippet URL
PARAMETERS /webhooks/{id}
OpenAPI snippet URL
GET /webhooks
Summary: List all subscriptions
Returns detail of all webhook subscriptions.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
POST /webhooks
Summary: Create a new subscription
Creates a new webhook subscription to be actively notified on each change in the specified entities.
Part of the subscription process is a probe request to verify that the referenced service really intends to receive the webhook notifications and that the requests will be able to reach the destination, see the callback section below for details.
OpenAPI snippet URL
GET /plugin-integrations/{id}/connections/{featureId}
Summary: Get a Plugin integration connection
Returns detail of a specific plugin integration connection.
OpenAPI snippet URL
PUT /plugin-integrations/{id}/connections/{featureId}
Summary: Configure a Plugin integration connection
Configures a Plugin integration connection, possibly resulting in a change of the corresponding push button. This operation notifies Productboard that the 3rd party system tried (or is still trying, depending on the payload type) to establish a connection between Productboard feature and some entity in the other system. There are currently three possible outcomes of such an attempt:
- Connected: the connection has been established and a push button corresponding to the feature in related Plugin integration should change to represent the connection. This happens when the connection with state
connectedis received in the request body. - Error: the connection could not be established and a push button corresponding to the feature in related Plugin integration should change to show the error. This happens connection with state
erroris received in the request body. - In progress: the connection is still being created (possibly asynchronously) and a push button corresponding to the feature in related Plugin integration should display an “in progress” state. This happens when the state
progressis received in the request body.
There is an additional state a connection can be in which does not directly map to an outcome of a push event, the Initial state. This is the default state for all connections and has the semantics of “a connection does not currently exist for given feature”. The Initial state is, however, a fully valid type from the API’s perspective and it is thus possible to set a connection to the Initial state using this endpoint. The effect of that is exactly the same as if the Delete a plugin integration connection endpoint was called instead.
Note that this is the endpoint to be used when the 3rd party system processes feature push events asynchronously. In that case the flow would be similar to this:
- A feature is pushed from Productboard
- The 3rd party schedules a task to be processed asynchronously and returns an “in progress” response. This makes Producboard render an “in progress” state on the corresponding push button.
- Once the 3rd party finishes processing of the task, this endpoint is called to update the connection (and by extension, the state of said push button) to either a success or a failure.
OpenAPI snippet URL
DELETE /plugin-integrations/{id}/connections/{featureId}
Summary: Delete a plugin integration connection
Deletes a specific plugin integration connection. This voids the actual connection between a Productboard feature identified by featureId and the 3rd party system, effectively resetting the push button for that feature within correspoding Plugin integration to its initial state.
OpenAPI snippet URL
PARAMETERS /plugin-integrations/{id}/connections/{featureId}
OpenAPI snippet URL
GET /plugin-integrations/{id}/connections
Summary: List all Plugin integration connections
Returns detail of all plugin integration connections, except for those having their state set to initial. The initial state is the default and basically means that the connection does not exist at the moment.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
PARAMETERS /plugin-integrations/{id}/connections
OpenAPI snippet URL
GET /plugin-integrations/{id}
Summary: Get a plugin integration
Returns detail of a specific plugin integration.
OpenAPI snippet URL
PUT /plugin-integrations/{id}
Summary: Update Plugin integration
Deprecated, use the PATCH method instead.
OpenAPI snippet URL
DELETE /plugin-integrations/{id}
Summary: Delete a plugin integration
Deletes a specific plugin integration.
OpenAPI snippet URL
PATCH /plugin-integrations/{id}
Summary: Update Plugin integration
Updates Plugin integration. Fileds that are not set will preserve their current value. If the integration is enabled a probe request is sent to verify that the referenced service really intends to receive the notifications and that the requests will be able to reach the destination.
OpenAPI snippet URL
PARAMETERS /plugin-integrations/{id}
OpenAPI snippet URL
GET /plugin-integrations
Summary: List all plugin integrations
Returns detail of all plugin integrations.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
POST /plugin-integrations
Summary: Create new Plugin integration
Creates new Plugin integration. Part of the creation process is a probe request to verify that the referenced service really intends to receive the notifications and that the requests will be able to reach the destination, see the callback section below for details.
OpenAPI snippet URL
GET /jira-integrations/{id}/connections
Summary: List all Jira integration connections
Returns detail of all Productboard feature - Jira issue connections for given integration. It also allows to find a connection by Jira issue key or ID.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
PARAMETERS /jira-integrations/{id}/connections
OpenAPI snippet URL
GET /jira-integrations/{id}/connections/{featureId}
Summary: Get a Jira integration connection
Returns detail of a specific Productboard feature - Jira issue connection.
OpenAPI snippet URL
PARAMETERS /jira-integrations/{id}/connections/{featureId}
OpenAPI snippet URL
GET /jira-integrations/{id}
Summary: Get a Jira integration
Returns detail of a specific Jira integration.
OpenAPI snippet URL
PARAMETERS /jira-integrations/{id}
OpenAPI snippet URL
GET /jira-integrations
Summary: List all Jira integrations
Returns detail of all Jira integrations.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
GET /users/{id}
Summary: Get a specific user
Returns detail of a specific user
OpenAPI snippet URL
PATCH /users/{id}
Summary: Update a specific user
Updates a specific user.
OpenAPI snippet URL
PARAMETERS /users/{id}
OpenAPI snippet URL
GET /users
Summary: List all users
Returns detail of all users
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
GET /release-groups/{id}
Summary: Get a specific release group
Returns detail of a specific release group.
OpenAPI snippet URL
DELETE /release-groups/{id}
Summary: Delete a specific release group
Deletes a specific release group. A release group with releases cannot be deleted. Delete the releases first.
You can delete release groups only if you are on Scale or Enterprise plan and you have Multiple release groups enabled.
OpenAPI snippet URL
PATCH /release-groups/{id}
Summary: Update a specific release group
Updates a specific release group.
You can update release groups only if you are on Scale or Enterprise plan and you have Multiple release groups enabled.
OpenAPI snippet URL
PARAMETERS /release-groups/{id}
OpenAPI snippet URL
GET /release-groups
Summary: List all release groups
Returns detail of all release groups.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
POST /release-groups
Summary: Creates a new release group
Creates a new release group.
You can create new release groups only if you are on Scale or Enterprise plan and you have Multiple release groups enabled.
OpenAPI snippet URL
GET /releases/{id}
Summary: Get a specific release
Returns detail of a specific release.
OpenAPI snippet URL
DELETE /releases/{id}
Summary: Delete a specific release
Deletes a specific release. A release with feature release assignments cannot be deleted. Delete the feature release assignments first.
OpenAPI snippet URL
PATCH /releases/{id}
Summary: Update a specific release
Updates a specific release.
OpenAPI snippet URL
PARAMETERS /releases/{id}
OpenAPI snippet URL
GET /releases
Summary: List all releases
Returns detail of all releases.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
POST /releases
Summary: Creates a new release
Creates a new release.
OpenAPI snippet URL
GET /feature-release-assignments/assignment
Summary: Get a specific feature release assignment
Returns a feature release assignment specified by a given feature and a release. If such assignment does not exists false is returned in assigned parameter.
OpenAPI snippet URL
PUT /feature-release-assignments/assignment
Summary: Update feature release assignment
Assigns a feature into a release or removes a feature from a release depending on the assigned parameter.
Take into account that it’s possible to achieve use cases that are not possible in the UI. For example you can assign subfeature into a release without its parent feature, but then you won’t see it on a roadmap. If needed, assign the parent feature into the release. Subfeatures without a parent feature are not supported on a roadmap right now and might never be.
OpenAPI snippet URL
GET /feature-release-assignments
Summary: List feature release assignments
Returns list of feature release assignments based on query parameters. These parameters can be used to get features in release or releases for feature. Only “assigned” (existing) feature release assignments are returned i.e. every returned feature release assignment has assigned parameter set to true.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL
GET /objectives
Summary: List all objectives.
Returns detail of all objectives.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link
in the response to fetch the next page.
OpenAPI snippet URL
GET /objectives/{id}
Summary: Get a specific objective.
Returns detail of a specific objective.
OpenAPI snippet URL
PARAMETERS /objectives/{id}
OpenAPI snippet URL
POST /notes
Summary: Create a Note
Creates a new note in Productboard
Whenever email field is mentioned in descriptions of this endpoint it means the field user.email or customer_email
OpenAPI snippet URL
GET /feature-statuses
Summary: List all feature statuses
Returns detail of all feature statuses.
This API is paginated, only the first 100 items are returned by default. The client should then recursively follow links.next link in the response to fetch the next page.
OpenAPI snippet URL