Aha! API (1.0.0)

Download OpenAPI specification:

Complete API documentation for Aha! generated from actual test responses

Account backups

List account backups

Account backups let you create a complete off-site backup of your Aha! account. They can be created, listed, and downloaded via the API.

An account backup may only be created once every 24 hours.

The backup file contains a representation of all of the data in the Aha! account, including all relationships. It does not contain user authentication data or integration secrets. The backup does not include any uploaded files.

Account backups are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create an account backup

The backup may take some time to generate (as long as ten minutes in a large account). You should poll the GET endpoint to see when the backup is complete. You should not poll more frequently than once every twenty seconds. Returns an HTTP status of 429 if a backup was already created within the last 24 hours.

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "account_backup": {
    }
}

Get a specific account backup

The status field indicates whether the backup is ready. The possible values are: 0 (queued), 1 (in progress), 2 (completed), 3 (error).

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "account_backup": {
    }
}

Download an account backup

Account backups let you create a complete off-site backup of your Aha! account. They can be created, listed, and downloaded via the API.

An account backup may only be created once every 24 hours.

The backup file contains a representation of all of the data in the Aha! account, including all relationships. It does not contain user authentication data or integration secrets. The backup does not include any uploaded files.

Account backups are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Attachments

Create an attachment on a comment

Uploads a file attachment to a comment using multipart/form-data

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
comment_id
required
string

CommentId identifier

Request Body schema: multipart/form-data
required
attachment[data]
string <binary>

File to upload

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create an attachment on an idea comment

Files can be uploaded to Aha! as a sub-resource on any resource that supports them. These resources support attachments:

The format of an attachment is either a multipart/form-data upload with the input name attachment[data] or a JSON payload pointing to an URL link:

{
  "attachment": {
    "file_url": "http://www.aha.io/",
    "content_type": "text/html",
    "file_name": "home_page.html"
  }
}
Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_comment_id
required
string

IdeaCommentId identifier

Request Body schema: multipart/form-data
required
attachment[data]
string <binary>

File to upload

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create an attachment on a to-do

Files can be uploaded to Aha! as a sub-resource on any resource that supports them. These resources support attachments:

The format of an attachment is either a multipart/form-data upload with the input name attachment[data] or a JSON payload pointing to an URL link:

{
  "attachment": {
    "file_url": "http://www.aha.io/",
    "content_type": "text/html",
    "file_name": "home_page.html"
  }
}
Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
task_id
required
string

TaskId identifier

Request Body schema: multipart/form-data
required
attachment[data]
string <binary>

File to upload

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create an attachment on a custom note field

Files can be uploaded to Aha! as a sub-resource on any resource that supports them. These resources support attachments:

The format of an attachment is either a multipart/form-data upload with the input name attachment[data] or a JSON payload pointing to an URL link:

{
  "attachment": {
    "file_url": "http://www.aha.io/",
    "content_type": "text/html",
    "file_name": "home_page.html"
  }
}
Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
custom_field_id
required
string

CustomFieldId identifier

Request Body schema: multipart/form-data
required
attachment[data]
string <binary>

File to upload

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create an attachment on a custom attachment field

Files can be uploaded to Aha! as a sub-resource on any resource that supports them. These resources support attachments:

The format of an attachment is either a multipart/form-data upload with the input name attachment[data] or a JSON payload pointing to an URL link:

{
  "attachment": {
    "file_url": "http://www.aha.io/",
    "content_type": "text/html",
    "file_name": "home_page.html"
  }
}
Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
custom_field_value_id
required
string

CustomFieldValueId identifier

Request Body schema: multipart/form-data
required
attachment[data]
string <binary>

File to upload

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create an attachment on a record description

Many records throughout Aha! have an associated description: features, requirements, ideas, etc. You can find the ID of a record's description within the description attribute returned by any record show endpoint. You can then use that description ID to create an attachment on the record by providing it as the note_id URL parameter for this endpoint.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
note_id
required
string

NoteId identifier

Request Body schema: multipart/form-data
required
attachment[data]
string <binary>

File to upload

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Delete an attachment

Files can be uploaded to Aha! as a sub-resource on any resource that supports them. These resources support attachments:

The format of an attachment is either a multipart/form-data upload with the input name attachment[data] or a JSON payload pointing to an URL link:

{
  "attachment": {
    "file_url": "http://www.aha.io/",
    "content_type": "text/html",
    "file_name": "home_page.html"
  }
}
Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
attachment_id
required
string

AttachmentId identifier

Responses

Audits

Retrieve the history of only the description of a record

Audit records describe historical changes to records in Aha! and are created automatically when a record is created, updated, or deleted. Audits are immutable and cannot be modified or deleted.

Audits are stored not only for first-class objects such as Features or Release, but also for secondary objects attached to those records such as custom field values, equation field values, descriptions, and record links.

Audit records are only available for the last 12 calendar months. After that, they must be accessed using the Historical Audits endpoint.

The performance of the Audits API can be improved by judicious use of the created_since and created_before parameters. Since this is high-volume timeseries data, these parameters should be used when attempting to scan through record activity, and the after_id parameter should be used in lieu of pagination.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
associated_id
string
Example: associated_id=1007868956
associated_type
string
Example: associated_type=Feature
auditable_type
string
Example: auditable_type=Note

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "audits": [ ],
  • "pagination": {
    }
}

Historical Audits

Read the contents of the historical index

The historical audits endpoint is similar to the the Audits endpoint, but searches for audit records generated more than 12 calendar months ago. For searches of more recent data, the much more performant Audits API should be used.

The historical index should first be used to identify time-periods of interest, and then a search can be conducted to fetch the full details of the audit records from that period.

There are three important caveats to using this API:

  1. Searching through historical audits is an asynchronous operation. A search must first be created, and then the data may be consumed later
  2. Searching through historical audits imposes a stricter rate-limit than the general rate limit of the API. This API also enforces rate-limiting through a token-based system.
    1. Each Audits search consumes a specific number of tokens. The token cost of a search will be presented to the user through the read results operation.
    2. The token cost of a request is only known after the search completes, and corresponds to the amount of data which was required to be scanned to fulfill the request. Specifying additional filters, such as user_id, auditable_type, and audit_action will decrease the token cost.
    3. Upon making a request, the maximum token cost for a query will be charged to your account. The difference between the actual token cost and the maximum token cost will be refunded when the search completes and you read the search data.
    4. Tokens are continually replenished. You can see the current number of tokens available in the X-Historical-Tokens-Available header, present on every response to these resources.
    5. Reading from the historical index does not consume any tokens.
  3. Only administrators are able to perform historical audit searches.
Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
created_since
string
Example: created_since=2019-01-01T00:00:00Z
created_before
string
Example: created_before=2019-01-01T00:00:00Z
auditable_type
string
Example: auditable_type=Feature
user_id
string
Example: user_id=1049303076

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "historical_audits": [
    ],
  • "pagination": {
    }
}

Create an audit search

The historical audits endpoint is similar to the the Audits endpoint, but searches for audit records generated more than 12 calendar months ago. For searches of more recent data, the much more performant Audits API should be used.

The historical index should first be used to identify time-periods of interest, and then a search can be conducted to fetch the full details of the audit records from that period.

There are three important caveats to using this API:

  1. Searching through historical audits is an asynchronous operation. A search must first be created, and then the data may be consumed later
  2. Searching through historical audits imposes a stricter rate-limit than the general rate limit of the API. This API also enforces rate-limiting through a token-based system.
    1. Each Audits search consumes a specific number of tokens. The token cost of a search will be presented to the user through the read results operation.
    2. The token cost of a request is only known after the search completes, and corresponds to the amount of data which was required to be scanned to fulfill the request. Specifying additional filters, such as user_id, auditable_type, and audit_action will decrease the token cost.
    3. Upon making a request, the maximum token cost for a query will be charged to your account. The difference between the actual token cost and the maximum token cost will be refunded when the search completes and you read the search data.
    4. Tokens are continually replenished. You can see the current number of tokens available in the X-Historical-Tokens-Available header, present on every response to these resources.
    5. Reading from the historical index does not consume any tokens.
  3. Only administrators are able to perform historical audit searches.
Authorizations:
OAuth2ApiKeyAuthCookieAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "search": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "search_id": "6776881149486782892"
}

Capacity investments

Create a capacity investment on an initiative

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
initiative_id
required
string

InitiativeId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "capacity_investment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "capacity_investment": {
    }
}

List capacity investments for an initiative

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
initiative_id
required
string

InitiativeId identifier

query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "capacity_investments": [
    ],
  • "pagination": {
    }
}

Create a capacity investment on an epic

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
epic_id
required
string

EpicId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "capacity_investment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "capacity_investment": {
    }
}

List capacity investments for an epic

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
epic_id
required
string

EpicId identifier

query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "capacity_investments": [
    ],
  • "pagination": {
    }
}

Create a Capacity Investment with custom fields

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
feature_id
required
string

FeatureId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "capacity_investment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "capacity_investment": {
    }
}

List capacity investments for a feature

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
feature_id
required
string

FeatureId identifier

query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "capacity_investments": [
    ],
  • "pagination": {
    }
}

List capacity investments for a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "capacity_investments": [
    ],
  • "pagination": {
    }
}

Get a capacity investment

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "capacity_investment": {
    }
}

Update a capacity investment's custom fields

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "capacity_investment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "capacity_investment": {
    }
}

Capacity scenarios

List capacity scenarios

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "capacity_scenarios": [
    ],
  • "pagination": {
    }
}

Get a capacity scenario

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "capacity_scenario": {
    }
}

Comments

Create a comment on a feature

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
feature_id
required
string

FeatureId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List comments on a feature

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
feature_id
required
string

FeatureId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create a comment on an epic

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
epic_id
required
string

EpicId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List comments on an epic

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
epic_id
required
string

EpicId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create a comment on a requirement

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
requirement_id
required
string

RequirementId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List comments on a requirement

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
requirement_id
required
string

RequirementId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create a comment on a note

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
page_id
required
string

PageId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List comments on a note

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
page_id
required
string

PageId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "comments": [ ],
  • "pagination": {
    }
}

Create an internal comment for an idea

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List comments on an idea

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "comments": [ ],
  • "pagination": {
    }
}

Create a comment on an initiative

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
initiative_id
required
string

InitiativeId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List comments on an initiative

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
initiative_id
required
string

InitiativeId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create a comment on a goal

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
goal_id
required
string

GoalId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List comments on a goal

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
goal_id
required
string

GoalId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create a comment on a release

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
release_id
required
string

ReleaseId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List comments on a release

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
release_id
required
string

ReleaseId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create a comment on a release phase

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
release_phase_id
required
string

ReleasePhaseId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List comments on a release phase

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
release_phase_id
required
string

ReleasePhaseId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "comments": [ ],
  • "pagination": {
    }
}

Create a comment on a to-do

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
task_id
required
string

TaskId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List comments on a to-do

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
task_id
required
string

TaskId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Get a specific comment

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Update a comment

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

Delete a comment

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

List comments in a product

Comments can be added to and listed as a sub-resource on any resource that supports them. These resources support comments:

They can be listed product-wide, or retrieved from anywhere in the system using the root comments resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
project_id
required
string

ProjectId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Competitors

List competitors in a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "competitors": [
    ],
  • "pagination": {
    }
}

Create a competitor

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "competitor": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

Get a specific competitor

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "competitor": {
    }
}

Update a competitor

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "competitor": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "competitor": {
    }
}

Delete a competitor

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

id
required
string

Id identifier

Responses

Creative briefs

Create a creative brief

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "creative_brief": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List creative briefs in a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "creative_briefs": [
    ],
  • "pagination": {
    }
}

Get a specific creative_brief

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Update a creative brief

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "creative_brief": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

Delete a creative brief

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

id
required
string

Id identifier

Responses

Custom fields

List all custom fields

Custom fields are defined by record type, and are shared across all workspaces across the account. Fields must be added to a layout before they will appear on a record.

For custom fields that include options, (e.g. tags, choice lists), you can also load the list of all available options.

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "custom_field_definitions": [
    ]
}

List options for a custom field

Custom fields are defined by record type, and are shared across all workspaces across the account. Fields must be added to a layout before they will appear on a record.

For custom fields that include options, (e.g. tags, choice lists), you can also load the list of all available options.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
custom_field_definition_id
required
string

CustomFieldDefinitionId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "options": [
    ]
}

Custom field options

List all custom fields

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
custom_field_definition_id
required
string

CustomFieldDefinitionId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "custom_field_options": [
    ]
}

Create a custom field option

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
custom_field_definition_id
required
string

CustomFieldDefinitionId identifier

Request Body schema: application/json
required
object (CustomfieldoptionsPostRequest)

Responses

Request samples

Content type
application/json
{
  • "custom_field_option": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "id": "6776881149485179355",
  • "value": "New option",
  • "color": 6710886,
  • "hidden": false
}

Update a custom field option

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
custom_field_definition_id
required
string

CustomFieldDefinitionId identifier

id
required
string

Id identifier

Request Body schema: application/json
required
object (CustomfieldoptionsPostRequest)

Responses

Request samples

Content type
application/json
{
  • "custom_field_option": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "id": "486420793",
  • "value": "New option2",
  • "color": 6710886,
  • "hidden": false
}

Delete a custom field option

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
custom_field_definition_id
required
string

CustomFieldDefinitionId identifier

id
required
string

Id identifier

Request Body schema: application/json
required
object (CustomfieldoptionsPostRequest)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json; charset=utf-8
{
  • "id": "486420793",
  • "value": "P1",
  • "color": 6710886,
  • "hidden": false
}

Create a custom table record link associated with a product

Resources that can be linked to records from a custom table (called custom objects in the API) can be manipulated in a bulk ID-list format. To use custom table record links you must first add a many-to-many custom field definition to the resource. When you pass the IDs of custom table records to link to the feature, the existing list of links will be replaced.

Examples of linking custom objects to resources with a many-to-many customer field:

Custom tables are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "product": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "product": {
    }
}

Create a custom table record link associated with a release

Custom Tables are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "release": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "release": {
    }
}

Create a custom table record link associated with a feature

Resources that can be linked to records from a custom table (called custom objects in the API) can be manipulated in a bulk ID-list format. To use custom table record links you must first add a many-to-many custom field definition to the resource. When you pass the IDs of custom table records to link to the feature, the existing list of links will be replaced.

Examples of linking custom objects to resources with a many-to-many customer field:

Custom tables are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "feature": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "feature": {
    }
}

Create a custom table record link associated with a requirement

Resources that can be linked to records from a custom table (called custom objects in the API) can be manipulated in a bulk ID-list format. To use custom table record links you must first add a many-to-many custom field definition to the resource. When you pass the IDs of custom table records to link to the feature, the existing list of links will be replaced.

Examples of linking custom objects to resources with a many-to-many customer field:

Custom tables are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "requirement": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "requirement": {
    }
}

Create a custom table record link associated with an idea

Resources that can be linked to records from a custom table (called custom objects in the API) can be manipulated in a bulk ID-list format. To use custom table record links you must first add a many-to-many custom field definition to the resource. When you pass the IDs of custom table records to link to the feature, the existing list of links will be replaced.

Examples of linking custom objects to resources with a many-to-many customer field:

Custom tables are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "idea": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea": {
    }
}

Create a custom table record link associated with an initiative

Resources that can be linked to records from a custom table (called custom objects in the API) can be manipulated in a bulk ID-list format. To use custom table record links you must first add a many-to-many custom field definition to the resource. When you pass the IDs of custom table records to link to the feature, the existing list of links will be replaced.

Examples of linking custom objects to resources with a many-to-many customer field:

Custom tables are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "initiative": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "initiative": {
    }
}

Create a custom table record link associated with a goal

Resources that can be linked to records from a custom table (called custom objects in the API) can be manipulated in a bulk ID-list format. To use custom table record links you must first add a many-to-many custom field definition to the resource. When you pass the IDs of custom table records to link to the feature, the existing list of links will be replaced.

Examples of linking custom objects to resources with a many-to-many customer field:

Custom tables are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "goal": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "goal": {
    }
}

Link custom table records to another custom table record

Resources that can be linked to records from a custom table (called custom objects in the API) can be manipulated in a bulk ID-list format. To use custom table record links you must first add a many-to-many custom field definition to the resource. When you pass the IDs of custom table records to link to the feature, the existing list of links will be replaced.

Examples of linking custom objects to resources with a many-to-many customer field:

Custom tables are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "custom_object_record": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "custom_object_record": {
    }
}

Products

Get a specific product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "product": {
    }
}

Create a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "product": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "product": {
    }
}

List products in the account

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
include_teams
string
Example: include_teams=true
with_idea_portals
string
Example: with_idea_portals=true

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "products": [
    ],
  • "pagination": {
    }
}

Releases

Get a specific release

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "release": {
    }
}

Create a release

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "release": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "release": {
    }
}

List releases in a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "releases": [
    ],
  • "pagination": {
    }
}

List releases associated with a goal

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
goal_id
required
string

GoalId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "releases": [
    ],
  • "pagination": {
    }
}

List releases associated with an initiative

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
initiative_id
required
string

InitiativeId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "releases": [
    ],
  • "pagination": {
    }
}

List releases under a roll-up release

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
release_id
required
string

ReleaseId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "releases": [],
  • "pagination": {
    }
}

List releases under a roll-up release

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
release_id
required
string

ReleaseId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "releases": [
    ],
  • "pagination": {
    }
}

Duplicate a release

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "release": {
    }
}

Update a release

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "release": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "release": {
    }
}

Delete a release

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

id
required
string

Id identifier

Responses

Features

Get a specific feature

Features belong to releases. This means that if you want to create one then you must scope it to a release.

You can return a result set which is unfiltered, or filter by release , product , or epic. All these means of listing features can be further filtered by specific criteria like name, modification date, tag, or assignee.

Once you have the id of a specific feature, you can inspect, modify, or delete them on the root features resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "feature": {
    }
}

Delete a feature

Features belong to releases. This means that if you want to create one then you must scope it to a release.

You can return a result set which is unfiltered, or filter by release , product , or epic. All these means of listing features can be further filtered by specific criteria like name, modification date, tag, or assignee.

Once you have the id of a specific feature, you can inspect, modify, or delete them on the root features resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Create a feature

Creates a new feature in a release with full details including assignee and description

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
release_id
required
string

ReleaseId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "feature": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "feature": {
    }
}

List features in a release

Features belong to releases. This means that if you want to create one then you must scope it to a release.

You can return a result set which is unfiltered, or filter by release , product , or epic. All these means of listing features can be further filtered by specific criteria like name, modification date, tag, or assignee.

Once you have the id of a specific feature, you can inspect, modify, or delete them on the root features resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
release_id
required
string

ReleaseId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

List features

Retrieves a paginated list of all features across the account with optional filtering and field selection

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{}

List features in an epic

Features belong to releases. This means that if you want to create one then you must scope it to a release.

You can return a result set which is unfiltered, or filter by release , product , or epic. All these means of listing features can be further filtered by specific criteria like name, modification date, tag, or assignee.

Once you have the id of a specific feature, you can inspect, modify, or delete them on the root features resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
epic_id
required
string

EpicId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

List features in a product

Features belong to releases. This means that if you want to create one then you must scope it to a release.

You can return a result set which is unfiltered, or filter by release , product , or epic. All these means of listing features can be further filtered by specific criteria like name, modification date, tag, or assignee.

Once you have the id of a specific feature, you can inspect, modify, or delete them on the root features resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

List features associated with a goal

Features belong to releases. This means that if you want to create one then you must scope it to a release.

You can return a result set which is unfiltered, or filter by release , product , or epic. All these means of listing features can be further filtered by specific criteria like name, modification date, tag, or assignee.

Once you have the id of a specific feature, you can inspect, modify, or delete them on the root features resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
goal_id
required
string

GoalId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

List features associated with an initiative

Features belong to releases. This means that if you want to create one then you must scope it to a release.

You can return a result set which is unfiltered, or filter by release , product , or epic. All these means of listing features can be further filtered by specific criteria like name, modification date, tag, or assignee.

Once you have the id of a specific feature, you can inspect, modify, or delete them on the root features resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
initiative_id
required
string

InitiativeId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Convert a feature to an epic

Converts an existing feature into an epic, maintaining all relationships and data

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "": {
    }
}

Requirements

Get a specific requirement

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "requirement": {
    }
}

Delete a requirement

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

List requirements for a feature

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
feature_id
required
string

FeatureId identifier

query Parameters
updated_since
string
Example: updated_since=2019-01-01T00:00:00Z

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "requirements": [
    ],
  • "pagination": {
    }
}

Create a requirement

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
feature_id
required
string

FeatureId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "requirement": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "requirement": {
    }
}

Convert a requirement to a feature

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "feature": {
    }
}

Ideas

Get a specific idea

When creating an idea where the creator is an idea user we strongly suggest to provide the submitted_idea_portal_id attribute to the idea to ensure that the idea is created in the correct ideas portal and the user gets access to the portal.

If you don't want the idea to be submitted to any portal, you can skip this by setting skip_portal: true in the request body.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea": {
    }
}

Delete an idea

When creating an idea where the creator is an idea user we strongly suggest to provide the submitted_idea_portal_id attribute to the idea to ensure that the idea is created in the correct ideas portal and the user gets access to the portal.

If you don't want the idea to be submitted to any portal, you can skip this by setting skip_portal: true in the request body.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Create an idea

Creates a new idea with basic details including initial vote count

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
promotable_type
string
release_id
integer

Responses

Request samples

Content type
application/json
{
  • "idea": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea": {
    }
}

List ideas for a product

When creating an idea where the creator is an idea user we strongly suggest to provide the submitted_idea_portal_id attribute to the idea to ensure that the idea is created in the correct ideas portal and the user gets access to the portal.

If you don't want the idea to be submitted to any portal, you can skip this by setting skip_portal: true in the request body.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "ideas": [
    ],
  • "pagination": {
    }
}

List ideas

When creating an idea where the creator is an idea user we strongly suggest to provide the submitted_idea_portal_id attribute to the idea to ensure that the idea is created in the correct ideas portal and the user gets access to the portal.

If you don't want the idea to be submitted to any portal, you can skip this by setting skip_portal: true in the request body.

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "ideas": [
    ],
  • "pagination": {
    }
}

Get a specific idea with plain text body

When creating an idea where the creator is an idea user we strongly suggest to provide the submitted_idea_portal_id attribute to the idea to ensure that the idea is created in the correct ideas portal and the user gets access to the portal.

If you don't want the idea to be submitted to any portal, you can skip this by setting skip_portal: true in the request body.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

query Parameters
fields
string
Example: fields=description,plain_text_body

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea": {
    }
}

List ideas related to a particular term

When creating an idea where the creator is an idea user we strongly suggest to provide the submitted_idea_portal_id attribute to the idea to ensure that the idea is created in the correct ideas portal and the user gets access to the portal.

If you don't want the idea to be submitted to any portal, you can skip this by setting skip_portal: true in the request body.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
q
string
Example: q=ideas are a dime a dozen

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "ideas": [ ],
  • "pagination": {
    }
}

Promote an idea

When creating an idea where the creator is an idea user we strongly suggest to provide the submitted_idea_portal_id attribute to the idea to ensure that the idea is created in the correct ideas portal and the user gets access to the portal.

If you don't want the idea to be submitted to any portal, you can skip this by setting skip_portal: true in the request body.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
promotable_type
string
release_id
integer

Responses

Request samples

Content type
application/json
{
  • "promotable_type": "feature",
  • "release_id": 278327321
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea": {
    }
}

Initiatives

Get a specific initiative

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "initiative": {
    }
}

Create an initiative

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "initiative": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "initiative": {
    }
}

List initiatives in a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "initiatives": [
    ],
  • "pagination": {
    }
}

List initiatives

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "initiatives": [
    ],
  • "pagination": {
    }
}

List initiatives associated with a goal

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
goal_id
required
string

GoalId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "initiatives": [
    ],
  • "pagination": {
    }
}

Update an initiative

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "initiative": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "initiative": {
    }
}

Delete an initiative

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

id
required
string

Id identifier

Responses

Goals

Get a specific goal

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "goal": {
    }
}

Create a goal

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "goal": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "goal": {
    }
}

List goals in a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "goals": [
    ],
  • "pagination": {
    }
}

List goals

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "goals": [
    ],
  • "pagination": {
    }
}

List goals associated with an initiative

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
initiative_id
required
string

InitiativeId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "goals": [
    ],
  • "pagination": {
    }
}

Update a goal

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "goal": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "goal": {
    }
}

Delete a goal

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

id
required
string

Id identifier

Responses

Custom table records

Get a specific custom table record

Custom tables have a different set of records for each product. This means that if you want to create one or list them you must scope them to a product.

Once you have the ID of a specific custom table record, you can get, modify, or delete them on the root custom table records resource.

Custom tables are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "custom_object_record": {
    }
}

Delete a custom table record

Custom tables have a different set of records for each product. This means that if you want to create one or list them you must scope them to a product.

Once you have the ID of a specific custom table record, you can get, modify, or delete them on the root custom table records resource.

Custom tables are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Create a custom table record

Custom tables have a different set of records for each product. This means that if you want to create one or list them you must scope them to a product.

Once you have the ID of a specific custom table record, you can get, modify, or delete them on the root custom table records resource.

Custom tables are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

key
required
string

Key identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "custom_object_record": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "custom_object_record": {
    }
}

List records in a custom table for a product

Custom tables have a different set of records for each product. This means that if you want to create one or list them you must scope them to a product.

Once you have the ID of a specific custom table record, you can get, modify, or delete them on the root custom table records resource.

Custom tables are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

key
required
string

Key identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "custom_object_records": [
    ],
  • "pagination": {
    }
}

Custom pivots

Get the list view of a saved report

The list view responds with a JSON object with three attributes: pagination, columns, and rows.

The columns attribute is an array of objects that give detailed information about the columns of the list. The objects include the name of the table, the field, and a human readable title attribute.

The rows attribute is an of array of arrays. Each object within the inner array contains the value of that for a specific column. Each object contains attributes for various representations of the data. The fields are:

  • id: The unique id of the object
  • plain_value: A string representation of the object
  • html_value: An HTML representation of the object. This is the same HTML that is used in Aha! to represent the value in our reports.
  • rich_value: If the object is a reference to another object (such as a tag), the, this will be the object representation. For instance, a tag would be representated as:
{
  id: "6013053275679792248",
  name: "API"
}

The third attribute is pagination. This works like everywhere else in the Aha! API and is documented here.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
report_id
required
string

ReportId identifier

query Parameters
view
string
Example: view=list

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "top_level_columns": [
    ],
  • "columns": {
    },
  • "top_level_rows": [
    ],
  • "rows": {
    },
  • "cells": [
    ],
  • "field_definitions": {
    }
}

Deletions

List contents of recycle bin

The recycle bin contains recently deleted workspaces, teams, and records. It is possible to restore items up to 7 days after they have been deleted.

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "deletions": [ ],
  • "pagination": {
    }
}

restore a specific record

The recycle bin contains recently deleted workspaces, teams, and records. It is possible to restore items up to 7 days after they have been deleted.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "deletion": {
    }
}

Epics

List epics

Epics belong to releases. This means that if you want to create one then you must scope it to a release.

You can list them all at once, or filter by release or product. All these means of listing epics can be further filtered by specific critera like name, modification date, tag, or assignee.

Once you have the id of a specific epic, you can inspect, modify, or delete them on the root epics resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{}

List epics in a release

Epics belong to releases. This means that if you want to create one then you must scope it to a release.

You can list them all at once, or filter by release or product. All these means of listing epics can be further filtered by specific critera like name, modification date, tag, or assignee.

Once you have the id of a specific epic, you can inspect, modify, or delete them on the root epics resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
release_id
required
string

ReleaseId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create an epic

Epics belong to releases. This means that if you want to create one then you must scope it to a release.

You can list them all at once, or filter by release or product. All these means of listing epics can be further filtered by specific critera like name, modification date, tag, or assignee.

Once you have the id of a specific epic, you can inspect, modify, or delete them on the root epics resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
release_id
required
string

ReleaseId identifier

Request Body schema: application/json
required
name
string
description
string

Responses

Request samples

Content type
application/json
{
  • "epic": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "epic": {
    }
}

List epics in a product

Epics belong to releases. This means that if you want to create one then you must scope it to a release.

You can list them all at once, or filter by release or product. All these means of listing epics can be further filtered by specific critera like name, modification date, tag, or assignee.

Once you have the id of a specific epic, you can inspect, modify, or delete them on the root epics resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create an epic in the default release

Epics belong to releases. This means that if you want to create one then you must scope it to a release.

You can list them all at once, or filter by release or product. All these means of listing epics can be further filtered by specific critera like name, modification date, tag, or assignee.

Once you have the id of a specific epic, you can inspect, modify, or delete them on the root epics resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
name
string
description
string

Responses

Request samples

Content type
application/json
{
  • "epic": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "epic": {
    }
}

List epics associated with a goal

Epics belong to releases. This means that if you want to create one then you must scope it to a release.

You can list them all at once, or filter by release or product. All these means of listing epics can be further filtered by specific critera like name, modification date, tag, or assignee.

Once you have the id of a specific epic, you can inspect, modify, or delete them on the root epics resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
goal_id
required
string

GoalId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

List epics associated with an initiative

Epics belong to releases. This means that if you want to create one then you must scope it to a release.

You can list them all at once, or filter by release or product. All these means of listing epics can be further filtered by specific critera like name, modification date, tag, or assignee.

Once you have the id of a specific epic, you can inspect, modify, or delete them on the root epics resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
initiative_id
required
string

InitiativeId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Get a specific epic

Epics belong to releases. This means that if you want to create one then you must scope it to a release.

You can list them all at once, or filter by release or product. All these means of listing epics can be further filtered by specific critera like name, modification date, tag, or assignee.

Once you have the id of a specific epic, you can inspect, modify, or delete them on the root epics resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "epic": {
    }
}

Delete an epic

Epics belong to releases. This means that if you want to create one then you must scope it to a release.

You can list them all at once, or filter by release or product. All these means of listing epics can be further filtered by specific critera like name, modification date, tag, or assignee.

Once you have the id of a specific epic, you can inspect, modify, or delete them on the root epics resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Update an epic

Epics belong to releases. This means that if you want to create one then you must scope it to a release.

You can list them all at once, or filter by release or product. All these means of listing epics can be further filtered by specific critera like name, modification date, tag, or assignee.

Once you have the id of a specific epic, you can inspect, modify, or delete them on the root epics resource.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
name
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "New name",
  • "description": "New description"
}

Response samples

Content type
application/json; charset=utf-8
{
  • "epic": {
    }
}

Capacity estimate values

Create estimate values for a capacity investment

Estimate value objects should include the following keys: team_id, period_start, and total. This endpoint uses an "upsert" flow, updating existing records, or creating new ones if they do not exist. Returns all updated and destroyed estimate values, including computed sums and ignored values.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object (CapacityestimatevaluesPostRequest)

Responses

Request samples

Content type
application/json
{
  • "estimate_values": [
    ]
}

Response samples

Content type
application/json; charset=utf-8
{
  • "updated": [
    ],
  • "destroyed": [ ]
}

List estimate values for a capacity investment

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "estimate_values": [
    ],
  • "pagination": {
    }
}

Update an estimate value

Returns all updated estimate values, including computed sums and ignored values.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object (CapacityestimatevaluesPostRequest)

Responses

Request samples

Content type
application/json
{
  • "estimate_value": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "updated": [
    ],
  • "destroyed": [ ]
}

Delete an estimate value

Returns all updated and destroyed estimate values, including computed sums and ignored values.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object (CapacityestimatevaluesPostRequest)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json; charset=utf-8
{
  • "updated": [
    ],
  • "destroyed": [
    ]
}

Idea categories

List idea categories in a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_categories": [
    ],
  • "pagination": {
    }
}

Idea comments

Create an idea comment for an idea

Idea comments can appear in ideas portals. To reply to an idea_comment, specify the parent_idea_comment_id. Its visibility will come from its parent idea comment and cannot be overridden.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "idea_comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_comment": {
    }
}

List idea comments for an idea

Idea comments can appear in ideas portals. To reply to an idea_comment, specify the parent_idea_comment_id. Its visibility will come from its parent idea comment and cannot be overridden.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_comments": [
    ],
  • "pagination": {
    }
}

Mark an idea comment as spam

Idea comments can appear in ideas portals. To reply to an idea_comment, specify the parent_idea_comment_id. Its visibility will come from its parent idea comment and cannot be overridden.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "idea_comment": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_comment": {
    }
}

Delete an idea comment

Idea comments can appear in ideas portals. To reply to an idea_comment, specify the parent_idea_comment_id. Its visibility will come from its parent idea comment and cannot be overridden.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

id
required
string

Id identifier

Responses

Idea votes

Create an idea vote

"Idea votes" in the web interface are referenced as "idea endorsements" from API endpoints.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "idea_endorsement": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_endorsement": {
    }
}

List votes for an idea

"Idea votes" in the web interface are referenced as "idea endorsements" from API endpoints.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

query Parameters
fields
string
Example: fields=*,associated_idea_organizations

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_endorsements": [
    ],
  • "pagination": {
    }
}

Create additional idea votes

Create an additional vote for a user who has already voted on the idea. Only permitted for an ideas portal where users are allowed multiple votes on the same idea.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

query Parameters
multiple_endorsements
string
Example: multiple_endorsements=true
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "idea_endorsement": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_endorsement": {
    }
}

Create an idea vote for a user, using the vote limits of an idea portal

"Idea votes" in the web interface are referenced as "idea endorsements" from API endpoints.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

idea_portal_id
required
string

IdeaPortalId identifier

query Parameters
idea_portal_id
string
Example: idea_portal_id=747493361
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "idea_endorsement": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_endorsement": {
    }
}

List votes for an account

"Idea votes" in the web interface are referenced as "idea endorsements" from API endpoints.

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_endorsements": [
    ],
  • "pagination": {
    }
}

List only proxy votes for an idea

Only returns votes that have an associated organization (proxy votes).

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

query Parameters
proxy
string
Example: proxy=true

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_endorsements": [
    ],
  • "pagination": {
    }
}

Get a specific vote for an idea

"Idea votes" in the web interface are referenced as "idea endorsements" from API endpoints.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_endorsement": {
    }
}

Update an idea vote

"Idea votes" in the web interface are referenced as "idea endorsements" from API endpoints.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "idea_endorsement": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_endorsement": {
    }
}

Delete an idea vote

"Idea votes" in the web interface are referenced as "idea endorsements" from API endpoints.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

id
required
string

Id identifier

Responses

Idea organizations

List idea organizations

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Create an idea organization

Authorizations:
OAuth2ApiKeyAuthCookieAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "idea_organization": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_organization": {
    }
}

Get a specific organization

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_organization": {
    }
}

Update organization

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "idea_organization": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_organization": {
    }
}

Delete organization

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Idea Portals

List idea portals in a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

List all idea portals in an account

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
page
string
Example: page=1
per_page
string
Example: per_page=10

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Idea subscriptions

Create an idea subscription

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "idea_subscription": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_subscription": {
    }
}

List subscriptions for an idea

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_subscriptions": [
    ],
  • "pagination": {
    }
}

Get a specific subscription for an idea

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_subscription": {
    }
}

Delete an idea subscription

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

id
required
string

Id identifier

Responses

Idea users

Create a idea user

Authorizations:
OAuth2ApiKeyAuthCookieAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "idea_user": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_user": {
    }
}

List idea users for an account

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_users": [
    ],
  • "pagination": {
    }
}

Get a specific idea user

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_user": {
    }
}

Update an idea user

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "idea_user": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "idea_user": {
    }
}

Delete an idea user

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Identity providers

List active identity providers that can be used for SSO

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Get a specific identity provider

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Integration changes

Send a record to an integration

This endpoint mimicks the "Send to integration" button on a record in the UI.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
Request Body schema: application/json
required
integration_id
integer
model_class
string
model_id
integer

Responses

Request samples

Content type
application/json
{
  • "integration_id": 204584239,
  • "model_class": "Feature",
  • "model_id": 1007868956
}

Response samples

Content type
application/json; charset=utf-8
{
  • "status": "success"
}

Integration fields

Create an integration field for a feature by integration ID

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
feature_id
required
string

FeatureId identifier

integration_id
required
string

IntegrationId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "integration_field": {
    }
}

Response samples

Content type
application/json; charset=utf-8
[
  • 728894778,
  • 846945422
]

Create an integration field for a feature by service name

DEPRECATED: provide :integration_id rather than :service_name to identify the integration.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
feature_id
required
string

FeatureId identifier

service_name
required
string

ServiceName identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "integration_field": {
    }
}

Response samples

Content type
application/json; charset=utf-8
[
  • 728894778,
  • 846945422
]

Create an integration field for a epic by integration ID

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
epic_id
required
string

EpicId identifier

integration_id
required
string

IntegrationId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "integration_field": {
    }
}

Response samples

Content type
application/json; charset=utf-8
[
  • 907392375,
  • 790422735
]

Create an integration field for an idea vote

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_endorsement_id
required
string

IdeaEndorsementId identifier

integration_id
required
string

IntegrationId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "integration_field": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

Create an integration field for an idea by integration ID

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

integration_id
required
string

IntegrationId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "integration_field": {
    }
}

Response samples

Content type
application/json; charset=utf-8
[
  • "6776881149484343025",
  • "6776881149496067156"
]

Get a specific integration field value

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
feature_id
required
string

FeatureId identifier

integration_id
required
string

IntegrationId identifier

field_name
required
string

FieldName identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

List records with an associated integration field value

Possible records are releases, initiatives, features, epics, requirements, ideas or idea votes.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
integration_id
required
string

IntegrationId identifier

field_name
required
string

FieldName identifier

field_value
required
string

FieldValue identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "records": [
    ],
  • "pagination": {
    }
}

List releases with an associated integration field value

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
field_name
required
string

FieldName identifier

field_value
required
string

FieldValue identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "records": [ ],
  • "pagination": {
    }
}

List initiatives with an associated integration field value

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
field_name
required
string

FieldName identifier

field_value
required
string

FieldValue identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "records": [ ],
  • "pagination": {
    }
}

List features with an associated integration field value

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
field_name
required
string

FieldName identifier

field_value
required
string

FieldValue identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "records": [
    ],
  • "pagination": {
    }
}

List epics with an associated integration field value

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
field_name
required
string

FieldName identifier

field_value
required
string

FieldValue identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "records": [ ],
  • "pagination": {
    }
}

List requirements with an associated integration field value

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
field_name
required
string

FieldName identifier

field_value
required
string

FieldValue identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "records": [ ],
  • "pagination": {
    }
}

List ideas with an associated integration field value

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
field_name
required
string

FieldName identifier

field_value
required
string

FieldValue identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "records": [ ],
  • "pagination": {
    }
}

List idea votes with an associated integration field value

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
field_name
required
string

FieldName identifier

field_value
required
string

FieldValue identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "records": [
    ],
  • "pagination": {
    }
}

Delete an integration field

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Integrations

Create an integration for an account

Authorizations:
OAuth2ApiKeyAuthCookieAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "integration": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List integrations for an account

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "integrations": [
    ],
  • "pagination": {
    }
}

Create an integration for a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "integration": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List integrations for a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "integrations": [
    ],
  • "pagination": {
    }
}

Get a specific integration

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

integration_id
required
string

IntegrationId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Enable integration

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

integration_id
required
string

IntegrationId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "integration": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

Get a specific integration by service name

DEPRECATED: provide :integration_id rather than :service_name to identify the integration.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

service_name
required
string

ServiceName identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Key results

List key results for a goal

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
goal_id
required
string

GoalId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "key_results": [
    ],
  • "pagination": {
    }
}

Create a key result

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
goal_id
required
string

GoalId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "key_result": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "key_result": {
    }
}

Get a specific key result

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "key_result": {
    }
}

Update a key result

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "key_result": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "key_result": {
    }
}

Delete a key result

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Roll up releases

Get a specific roll up release

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Update a roll up release

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "roll_up_release": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List roll up releases in a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Creates a roll up release

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "roll_up_release": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

Me

Get the current user profile

Retrieves current user information including account memberships and basic profile data

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
include
string
Example: include=#<RSpec::Matchers::BuiltIn::Include:0x0000000336976830>

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "user": {
    }
}

List records assigned to the current user

The Me API provides access to current user information, assigned records, and pending tasks. This endpoint serves as the primary interface for user-specific data and personal workspace functionality.

Core Functionality:

  • User Profile - Current user information including accounts and permissions
  • Assigned Records - All records assigned to the current user across different types
  • Task Management - Pending tasks assigned to the current user

User Context:

  • All endpoints return data scoped to the authenticated user
  • Account context is automatically determined from user session
  • Permissions are enforced based on user roles and project access

Response Structure:

  • User profile includes account memberships and role information
  • Assigned records include features, epics, requirements, ideas, releases, and tasks
  • Task lists include status information and completion tracking

Authentication: Standard API authentication (OAuth, session cookies, HTTP Basic until 2025). All operations require valid authentication and return user-specific data.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
record_type
string
Example: record_type=InvalidType

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "assigned": [ ]
}

List pending tasks assigned to the current user

The Me API provides access to current user information, assigned records, and pending tasks. This endpoint serves as the primary interface for user-specific data and personal workspace functionality.

Core Functionality:

  • User Profile - Current user information including accounts and permissions
  • Assigned Records - All records assigned to the current user across different types
  • Task Management - Pending tasks assigned to the current user

User Context:

  • All endpoints return data scoped to the authenticated user
  • Account context is automatically determined from user session
  • Permissions are enforced based on user roles and project access

Response Structure:

  • User profile includes account memberships and role information
  • Assigned records include features, epics, requirements, ideas, releases, and tasks
  • Task lists include status information and completion tracking

Authentication: Standard API authentication (OAuth, session cookies, HTTP Basic until 2025). All operations require valid authentication and return user-specific data.

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "tasks": [
    ],
  • "pagination": {
    }
}

Notes

Create a note

"Notes" in the web interface are referenced as "pages" from API endpoints.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "page": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "page": {
    }
}

List notes for a product

"Notes" in the web interface are referenced as "pages" from API endpoints.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Get a specific note

"Notes" in the web interface are referenced as "pages" from API endpoints.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "page": {
    }
}

Update a note

"Notes" in the web interface are referenced as "pages" from API endpoints.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "page": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "page": {
    }
}

Delete a note

"Notes" in the web interface are referenced as "pages" from API endpoints.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Paid Seat Groups

List the administered paid seat groups

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "paid_seat_groups": [
    ]
}

Updates the paid seat group

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
user_id
integer
remove
null

Responses

Request samples

Content type
application/json
{
  • "name": "Group 2",
  • "capacity": 3
}

Response samples

Content type
application/json; charset=utf-8
{
  • "id": "572805993",
  • "name": "Group 2",
  • "administrators": [
    ],
  • "capacity": 3,
  • "allocated_seats": 2,
  • "description": {
    },
  • "created_at": "2019-01-01T00:00:00.000Z",
  • "updated_at": "2019-01-01T00:00:00.000Z"
}

Adds the user to the paid seat group

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
user_id
integer
remove
null

Responses

Request samples

Content type
application/json
{
  • "user_id": 1049303076,
  • "remove": null
}

Response samples

Content type
application/json; charset=utf-8
{
  • "id": "572805993",
  • "name": "Group 2",
  • "administrators": [
    ],
  • "capacity": 20,
  • "allocated_seats": 2,
  • "description": {
    },
  • "created_at": "2019-01-01T00:00:00.000Z",
  • "updated_at": "2019-01-01T00:00:00.000Z"
}

Personas

Create a persona

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "persona": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

List personas in a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "personas": [
    ],
  • "pagination": {
    }
}

Get a specific persona

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Update a persona

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "persona": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{}

Delete a persona

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

id
required
string

Id identifier

Responses

Ideas portal user subscriptions

List a portal user's preferences for the portal summary email

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_portal_id
required
string

IdeaPortalId identifier

portal_user_id
required
string

PortalUserId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "portal_user_subscriptions": {
    }
}

Set a portal user's preferences to specific project and category updates

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_portal_id
required
string

IdeaPortalId identifier

portal_user_id
required
string

PortalUserId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "portal_user_subscriptions": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "portal_user_subscriptions": {
    }
}

Subscribe a portal user to updates from all projects and categories

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_portal_id
required
string

IdeaPortalId identifier

portal_user_id
required
string

PortalUserId identifier

Responses

Ideas portal users

Create a portal user

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_portal_id
required
string

IdeaPortalId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "portal_user": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "portal_user": {
    }
}

List portal users for an ideas portal

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_portal_id
required
string

IdeaPortalId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "portal_users": [
    ],
  • "pagination": {
    }
}

Get a specific portal user

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_portal_id
required
string

IdeaPortalId identifier

id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "portal_user": {
    }
}

Update a portal user

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_portal_id
required
string

IdeaPortalId identifier

id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "portal_user": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "portal_user": {
    }
}

Delete a portal user

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_portal_id
required
string

IdeaPortalId identifier

id
required
string

Id identifier

Responses

List record links for a feature

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

query Parameters
parent_and_child_links
string
Example: parent_and_child_links=true

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "record_links": [
    ]
}

Get a specific record link

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "record_link": {}
}

Delete a record link

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Create a record link for a feature

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
record_type
required
string

RecordType identifier

id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "record_link": {
    }
}

Release phases

List release phases for a release

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "release_phases": [
    ],
  • "pagination": {
    }
}

Get a specific release phase

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "release_phase": {
    }
}

Update a release phase

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "release_phase": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "release_phase": {
    }
}

Delete a release phase

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

List release phases in the account

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "release_phases": [
    ],
  • "pagination": {
    }
}

Create a release phase

Authorizations:
OAuth2ApiKeyAuthCookieAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "release_phase": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "release_phase": {
    }
}

Schedulable changes

Create a schedulable change

Authorizations:
OAuth2ApiKeyAuthCookieAuth
Request Body schema: application/json
required
object (SchedulablechangesPostRequest)

Responses

Request samples

Content type
application/json
{
  • "schedulable_change": {
    },
  • "team_id": 949295028
}

Response samples

Content type
application/json; charset=utf-8
{
  • "schedulable_change": {
    }
}

List schedulable changes

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "schedulable_changes": [ ],
  • "pagination": {
    }
}

Update a schedulable change

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object (SchedulablechangesPostRequest)

Responses

Request samples

Content type
application/json
{
  • "team_id": 949295028,
  • "schedulable_change": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "schedulable_change": {
    }
}

Delete a schedulable change

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object (SchedulablechangesPostRequest)

Responses

Request samples

Content type
application/json
{ }

Update a scheduled change's team memberships

Adds, updates, or removes users via a scheduled change using the Team Membership relation. The schedulable change must be in the future

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
schedulable_change_id
required
string

SchedulableChangeId identifier

Request Body schema: application/json
required
object (SchedulablechangesPostRequest)

Responses

Request samples

Content type
application/json
{
  • "team_membership_id": 202266373,
  • "team_membership": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "schedulable_change": {
    }
}

Schedules

List schedules

Retrieves schedules for capacity planning, showing working hours, velocity, and weekly patterns

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
fields
string
Example: fields=name,hours_per_day,story_points_per_day,velocity,monday,tuesday,wednesday,thursday,friday,saturday,sunday

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "schedules": [
    ],
  • "pagination": {
    }
}

Custom Layouts

List all custom layouts

Custom layouts in Aha! Roadmaps help you define the information that you want your teammates to see at two important times: when they create a record and when they view a record's details. You must be a configuration administrator to view custom layouts on your account through the API.

For more information about custom layouts, consult our support documentation: https://www.aha.io/support/roadmaps/strategic-roadmaps/customizations/custom-layouts

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
page
string
Example: page=1
per_page
string
Example: per_page=50

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "screen_definitions": [
    ]
}

Get a custom layout by ID

Custom layouts in Aha! Roadmaps help you define the information that you want your teammates to see at two important times: when they create a record and when they view a record's details. You must be a configuration administrator to view custom layouts on your account through the API.

For more information about custom layouts, consult our support documentation: https://www.aha.io/support/roadmaps/strategic-roadmaps/customizations/custom-layouts

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "id": 19837977,
  • "screenable_type": "Feature",
  • "name": "Screen Definition 6",
  • "custom_field_definitions": [
    ]
}

Strategic models

List strategic models

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Get a specific strategic model

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Strategic positionings

List strategic positionings

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Get a specific strategic positioning

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Strategic visions

List strategic visions

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{}

Get a specific strategic vision

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{}

To-dos

Create a task

Authorizations:
OAuth2ApiKeyAuthCookieAuth
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "task": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "task": {
    }
}

List to-dos

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
updated_since
string
Example: updated_since=2019-01-01T00:00:00Z
type
string
Example: type=Approval

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "tasks": [
    ],
  • "pagination": {
    }
}

List to-dos associated with a feature

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
feature_id
required
string

FeatureId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "tasks": [
    ],
  • "pagination": {
    }
}

List to-dos associated with an epic

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
epic_id
required
string

EpicId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "tasks": [
    ],
  • "pagination": {
    }
}

List to-dos associated with a release

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
release_id
required
string

ReleaseId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "tasks": [ ],
  • "pagination": {
    }
}

List to-dos associated with an idea

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
idea_id
required
string

IdeaId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "tasks": [ ],
  • "pagination": {
    }
}

List to-dos associated with a requirement

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
requirement_id
required
string

RequirementId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "tasks": [
    ],
  • "pagination": {
    }
}

List to-dos associated with a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "tasks": [
    ],
  • "pagination": {
    }
}

List to-dos assigned to a user

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
user_id
required
string

UserId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "tasks": [ ],
  • "pagination": {
    }
}

Get a specific to-do

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "task": {
    }
}

Update a to-do

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "task": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "task": {
    }
}

Delete a to-do

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Team members

Create a virtual user

Manage virtual users used in capacity planning

Authorizations:
OAuth2ApiKeyAuthCookieAuth
Request Body schema: application/json
required
object (TeammembersPostRequest)

Responses

Request samples

Content type
application/json
{
  • "team_member": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "team_member": {
    }
}

List virtual team members

Manage virtual users used in capacity planning

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "team_members": [
    ],
  • "pagination": {
    }
}

Delete a virtual team member

Manage virtual users used in capacity planning

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object (TeammembersPostRequest)

Responses

Request samples

Content type
application/json
{ }

Team memberships

Add user to a team

Team memberships for capacity planning teams. Users can be either Aha! users or virtual users

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
team_id
required
string

TeamId identifier

Request Body schema: application/json
required
object (TeammembershipsPostRequest)

Responses

Request samples

Content type
application/json
{
  • "team_membership": {
    }
}

List team memberships for a team

Team memberships for capacity planning teams. Users can be either Aha! users or virtual users

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
team_id
required
string

TeamId identifier

query Parameters
fields
string
Example: fields=team_member,team,created_at

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "team_memberships": [
    ],
  • "pagination": {
    }
}

Remove a user from a team

Team memberships for capacity planning teams. Users can be either Aha! users or virtual users

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
team_id
required
string

TeamId identifier

id
required
string

Id identifier

Request Body schema: application/json
required
object (TeammembershipsPostRequest)

Responses

Request samples

Content type
application/json
{ }

Teams

Create a team

Authorizations:
OAuth2ApiKeyAuthCookieAuth
Request Body schema: application/json
required
object (TeamsPostRequest)

Responses

Request samples

Content type
application/json
{
  • "team": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "team": {
    }
}

List teams

Authorizations:
OAuth2ApiKeyAuthCookieAuth
query Parameters
fields
string
Example: fields=name,team_members_count,automatically_calculate_team_members_count,capacity,hourly_rate,color,start_date,end_date,project,schedule,custom_fields,team_members

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "teams": [
    ],
  • "pagination": {
    }
}

Create a team associated with a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
object (TeamsPostRequest)

Responses

Request samples

Content type
application/json
{
  • "team": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "team": {
    }
}

List teams in a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "teams": [ ],
  • "pagination": {
    }
}

Get a specific team

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

query Parameters
{}
string

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "team": {
    }
}

Update a team's product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object (TeamsPostRequest)

Responses

Request samples

Content type
application/json
{
  • "team": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "team": {
    }
}

Delete a team

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object (TeamsPostRequest)

Responses

Request samples

Content type
application/json
{ }

Time tracking events

Create a time tracking event for a feature with remaining estimate

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
feature_id
required
string

FeatureId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "time_tracking_event": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "time_tracking_event": {
    }
}

Create a time tracking event for a requirement

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
requirement_id
required
string

RequirementId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "time_tracking_event": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "time_tracking_event": {
    }
}

Create a time tracking event for an initiative

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
initiative_id
required
string

InitiativeId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "time_tracking_event": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "time_tracking_event": {
    }
}

Delete a time tracking event

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Users

Create a user

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "user": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "role": 20,
  • "role_description": "Owner",
  • "user": {
    }
}

List users associated with a product

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "project_users": [
    ],
  • "pagination": {
    }
}

List users

Custom roles are an Enterprise+ exclusive feature.

Authorizations:
OAuth2ApiKeyAuthCookieAuth

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "users": [
    ],
  • "pagination": {
    }
}

Get a specific user

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "user": {
    }
}

Update a user

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "user": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "id": "1020675218",
  • "name": "Sarah Humpty",
  • "email": "no-reply@aha.io",
  • "timezone": "America/Los_Angeles",
  • "created_at": "2019-01-01T00:00:00.000Z",
  • "updated_at": "2019-01-01T00:00:00.000Z",
  • "accessed_at": "2019-01-01T00:00:00.000Z",
  • "product_roles": [
    ],
  • "enabled": false,
  • "paid_seat": true,
  • "roadmaps_seat": true,
  • "develop_seat": false,
  • "teamwork_seat": false,
  • "administrator": false,
  • "administrator_roles": {
    },
  • "identity_provider": {
    }
}

List a user's product roles

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "product_roles": [
    ],
  • "pagination": {
    }
}

Update a user's product roles

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "product_role": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "role": 20,
  • "role_description": "Owner",
  • "product_id": "702241743",
  • "product_name": null
}

Delete a user's product role

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

product_id
required
string

ProductId identifier

Responses

List a user's custom roles

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "user_roles": [
    ],
  • "pagination": {
    }
}

Update a user's custom roles

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "user_role": {
    }
}

Response samples

Content type
application/json; charset=utf-8
{
  • "role_id": 409541421,
  • "name": "Project scoped role 1",
  • "scope": {
    }
}

Delete a user's custom role

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

product_id
required
string

ProductId identifier

Responses

Webhooks

Process a Jira webhook

Receives and processes a webhook from Jira when an issue is updated.

Typical Jira webhook payload includes:

  • issue: { id: "12345", key: "PROJ-123", fields: { summary: "Feature name", status: { name: "In Progress" } } }
  • webhookEvent: "jira:issue_updated"
  • timestamp: "2019-01-01T00:00:00Z"
Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
token
required
string

Token identifier

Responses

Validate webhook endpoint

This endpoint allows integration services to validate that the webhook URL is accessible and properly configured without triggering actual webhook processing. Useful for testing webhook connectivity during integration setup.

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
token
required
string

Token identifier

Responses

Workflows

List workflows

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
product_id
required
string

ProductId identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "workflows": [
    ]
}

Get a specific workflow

Authorizations:
OAuth2ApiKeyAuthCookieAuth
path Parameters
id
required
string

Id identifier

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "workflow": {
    }
}