Aha.io
Aha! is a product development suite that combines roadmapping, idea management, requirements specification, whiteboarding, knowledge bases, and development tracking into a single platform for product teams. The suite spans Aha! Roadmaps, Aha! Ideas, Aha! Whiteboards, Aha! Knowledge, and Aha! Develop with integrations into engineering tools like Jira and GitHub. The Aha! REST API offers full CRUD access to products, releases, features, ideas, and integrations with OAuth 2.0, API key, and Basic authentication options.
1 APIs
0 Features
Product ManagementRoadmappingIdea ManagementProduct DevelopmentRequirementsAgile
APIs
Aha.io REST API
REST API for managing products, releases, features, ideas, goals, initiatives, and integrations across Aha! Roadmaps, Ideas, and Develop. Supports OAuth 2.0, API key Bearer toke...
Collections
Aha! API
OPENResources
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
💰
Pricing
Pricing
📝
Signup
Signup
Sources
opencollection: 1.0.0
info:
name: Aha! API
version: 1.0.0
request:
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
items:
- info:
name: Account backups
type: folder
items:
- info:
name: List account backups
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/account_backups
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: "Account backups let you create a complete off-site backup of your Aha! account.\nThey can be [created](/api/resources/account_backups/create_an_account_backup),\n\
[listed](/api/resources/account_backups/list_account_backups), and [downloaded](/api/resources/account_backups/download_an_account_backup)\
\ via the API.\n\nAn account backup may only be created once every 24 hours.\n\nThe backup file contains a representation\
\ of all of the data in the Aha! account, including all relationships. \nIt does not con"
- info:
name: Create an account backup
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/account_backups
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: "The backup may take some time to generate (as long as ten minutes in a \nlarge account). You should poll the GET\
\ endpoint to see when the backup \nis complete. You should not poll more frequently than once every twenty \nseconds.\
\ Returns an HTTP status of 429 if a backup was already created\nwithin the last 24 hours."
- info:
name: Get a specific account backup
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/account_backups/:id
params:
- name: id
value: ''
type: path
description: Id identifier
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'The status field indicates whether the backup is ready. The possible
values are: 0 (queued), 1 (in progress), 2 (completed), 3 (error).'
- info:
name: Download an account backup
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/account_backups/:id.tgz
params:
- name: id
value: ''
type: path
description: Id identifier
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: "Account backups let you create a complete off-site backup of your Aha! account.\nThey can be [created](/api/resources/account_backups/create_an_account_backup),\n\
[listed](/api/resources/account_backups/list_account_backups), and [downloaded](/api/resources/account_backups/download_an_account_backup)\
\ via the API.\n\nAn account backup may only be created once every 24 hours.\n\nThe backup file contains a representation\
\ of all of the data in the Aha! account, including all relationships. \nIt does not con"
- info:
name: Attachments
type: folder
items:
- info:
name: Create an attachment on a comment
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/comments/:comment_id/attachments
params:
- name: comment_id
value: ''
type: path
description: CommentId identifier
body:
type: multipart-form
data:
- name: attachment[data]
type: text
value: ''
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Uploads a file attachment to a comment using multipart/form-data
- info:
name: Create an attachment on an idea comment
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/idea_comments/:idea_comment_id/attachments
params:
- name: idea_comment_id
value: ''
type: path
description: IdeaCommentId identifier
body:
type: multipart-form
data:
- name: attachment[data]
type: text
value: ''
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Files can be uploaded to Aha! as a sub-resource on any resource that supports them.
These resources support attachments:
- [Record descriptions](/api/resources/attachments/create_an_attachment_on_a_record_description) (the description of
a feature, requirement, etc.)
- [Comments](/api/resources/attachments/create_an_attachment_on_a_comment)
- [To-dos](/api/resources/attachments/create_an_attachment_on_a_to-do)
- [Custom note fields](/api/resources/attachments/create_an_attachment_on_a_custom_no'
- info:
name: Create an attachment on a to-do
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/tasks/:task_id/attachments
params:
- name: task_id
value: ''
type: path
description: TaskId identifier
body:
type: multipart-form
data:
- name: attachment[data]
type: text
value: ''
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Files can be uploaded to Aha! as a sub-resource on any resource that supports them.
These resources support attachments:
- [Record descriptions](/api/resources/attachments/create_an_attachment_on_a_record_description) (the description of
a feature, requirement, etc.)
- [Comments](/api/resources/attachments/create_an_attachment_on_a_comment)
- [To-dos](/api/resources/attachments/create_an_attachment_on_a_to-do)
- [Custom note fields](/api/resources/attachments/create_an_attachment_on_a_custom_no'
- info:
name: Create an attachment on a custom note field
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/custom_fields/:custom_field_id/attachments
params:
- name: custom_field_id
value: ''
type: path
description: CustomFieldId identifier
body:
type: multipart-form
data:
- name: attachment[data]
type: text
value: ''
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Files can be uploaded to Aha! as a sub-resource on any resource that supports them.
These resources support attachments:
- [Record descriptions](/api/resources/attachments/create_an_attachment_on_a_record_description) (the description of
a feature, requirement, etc.)
- [Comments](/api/resources/attachments/create_an_attachment_on_a_comment)
- [To-dos](/api/resources/attachments/create_an_attachment_on_a_to-do)
- [Custom note fields](/api/resources/attachments/create_an_attachment_on_a_custom_no'
- info:
name: Create an attachment on a custom attachment field
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/custom_field_values/:custom_field_value_id/attachments
params:
- name: custom_field_value_id
value: ''
type: path
description: CustomFieldValueId identifier
body:
type: multipart-form
data:
- name: attachment[data]
type: text
value: ''
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Files can be uploaded to Aha! as a sub-resource on any resource that supports them.
These resources support attachments:
- [Record descriptions](/api/resources/attachments/create_an_attachment_on_a_record_description) (the description of
a feature, requirement, etc.)
- [Comments](/api/resources/attachments/create_an_attachment_on_a_comment)
- [To-dos](/api/resources/attachments/create_an_attachment_on_a_to-do)
- [Custom note fields](/api/resources/attachments/create_an_attachment_on_a_custom_no'
- info:
name: Create an attachment on a record description
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/notes/:note_id/attachments
params:
- name: note_id
value: ''
type: path
description: NoteId identifier
body:
type: multipart-form
data:
- name: attachment[data]
type: text
value: ''
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: '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.'
- info:
name: Delete an attachment
type: http
http:
method: DELETE
url: https://{account-domain}.aha.io/api/v1/api/v1/attachments/:attachment_id
params:
- name: attachment_id
value: ''
type: path
description: AttachmentId identifier
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Files can be uploaded to Aha! as a sub-resource on any resource that supports them.
These resources support attachments:
- [Record descriptions](/api/resources/attachments/create_an_attachment_on_a_record_description) (the description of
a feature, requirement, etc.)
- [Comments](/api/resources/attachments/create_an_attachment_on_a_comment)
- [To-dos](/api/resources/attachments/create_an_attachment_on_a_to-do)
- [Custom note fields](/api/resources/attachments/create_an_attachment_on_a_custom_no'
- info:
name: Audits
type: folder
items:
- info:
name: Retrieve the history of only the description of a record
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/audits
params:
- name: associated_id
value: '1007868956'
type: query
- name: associated_type
value: Feature
type: query
- name: auditable_type
value: Note
type: query
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: '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 '
- info:
name: Historical Audits
type: folder
items:
- info:
name: Read the contents of the historical index
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/historical_audits
params:
- name: created_since
value: '2019-01-01T00:00:00Z'
type: query
- name: created_before
value: '2019-01-01T00:00:00Z'
type: query
- name: auditable_type
value: Feature
type: query
- name: user_id
value: '1049303076'
type: query
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: '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](/api/resources/audits)
should be used.
The [historical index](/api/resources/historical_audits/read_the_contents_of_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
fro'
- info:
name: Create an audit search
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/historical_audits
body:
type: json
data: '{}'
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: '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](/api/resources/audits)
should be used.
The [historical index](/api/resources/historical_audits/read_the_contents_of_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
fro'
- info:
name: Capacity investments
type: folder
items:
- info:
name: List capacity investments for an initiative
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/initiatives/:initiative_id/capacity_investments
params:
- name: initiative_id
value: ''
type: path
description: InitiativeId identifier
- name: '{}'
value: 'null'
type: query
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: List capacity investments for an initiative
- info:
name: Create a capacity investment on an initiative
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/initiatives/:initiative_id/capacity_investments
params:
- name: initiative_id
value: ''
type: path
description: InitiativeId identifier
body:
type: json
data: '{}'
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Create a capacity investment on an initiative
- info:
name: List capacity investments for an epic
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/epics/:epic_id/capacity_investments
params:
- name: epic_id
value: ''
type: path
description: EpicId identifier
- name: '{}'
value: 'null'
type: query
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: List capacity investments for an epic
- info:
name: Create a capacity investment on an epic
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/epics/:epic_id/capacity_investments
params:
- name: epic_id
value: ''
type: path
description: EpicId identifier
body:
type: json
data: '{}'
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Create a capacity investment on an epic
- info:
name: List capacity investments for a feature
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/features/:feature_id/capacity_investments
params:
- name: feature_id
value: ''
type: path
description: FeatureId identifier
- name: '{}'
value: 'null'
type: query
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: List capacity investments for a feature
- info:
name: Create a Capacity Investment with custom fields
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/features/:feature_id/capacity_investments
params:
- name: feature_id
value: ''
type: path
description: FeatureId identifier
body:
type: json
data: '{}'
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Create a Capacity Investment with custom fields
- info:
name: List capacity investments for a product
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/products/:product_id/capacity_investments
params:
- name: product_id
value: ''
type: path
description: ProductId identifier
- name: '{}'
value: 'null'
type: query
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: List capacity investments for a product
- info:
name: Get a capacity investment
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/capacity_investments/:id
params:
- name: id
value: ''
type: path
description: Id identifier
- name: '{}'
value: 'null'
type: query
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get a capacity investment
- info:
name: Update a capacity investment's custom fields
type: http
http:
method: PUT
url: https://{account-domain}.aha.io/api/v1/api/v1/capacity_investments/:id
params:
- name: id
value: ''
type: path
description: Id identifier
body:
type: json
data: '{}'
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Update a capacity investment's custom fields
- info:
name: Capacity scenarios
type: folder
items:
- info:
name: List capacity scenarios
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/capacity_scenarios
params:
- name: '{}'
value: 'null'
type: query
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: List capacity scenarios
- info:
name: Get a capacity scenario
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/capacity_scenarios/:id
params:
- name: id
value: ''
type: path
description: Id identifier
- name: '{}'
value: 'null'
type: query
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get a capacity scenario
- info:
name: Comments
type: folder
items:
- info:
name: List comments on a feature
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/features/:feature_id/comments
params:
- name: feature_id
value: ''
type: path
description: FeatureId identifier
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Comments can be added to and listed as a sub-resource on any resource that supports them.
These resources support comments:
- [Features](/api/resources/comments/list_comments_on_a_feature)
- [Epics](/api/resources/comments/list_comments_on_an_epic)
- [Requirements](/api/resources/comments/list_comments_on_a_requirement)
- [Ideas](/api/resources/comments/list_comments_on_an_idea)
- [Initiatives](/api/resources/comments/list_comments_on_an_initiative)
- [Goals](/api/resources/comments/list_commen'
- info:
name: Create a comment on a feature
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/features/:feature_id/comments
params:
- name: feature_id
value: ''
type: path
description: FeatureId identifier
body:
type: json
data: '{}'
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Comments can be added to and listed as a sub-resource on any resource that supports them.
These resources support comments:
- [Features](/api/resources/comments/list_comments_on_a_feature)
- [Epics](/api/resources/comments/list_comments_on_an_epic)
- [Requirements](/api/resources/comments/list_comments_on_a_requirement)
- [Ideas](/api/resources/comments/list_comments_on_an_idea)
- [Initiatives](/api/resources/comments/list_comments_on_an_initiative)
- [Goals](/api/resources/comments/list_commen'
- info:
name: List comments on an epic
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/epics/:epic_id/comments
params:
- name: epic_id
value: ''
type: path
description: EpicId identifier
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Comments can be added to and listed as a sub-resource on any resource that supports them.
These resources support comments:
- [Features](/api/resources/comments/list_comments_on_a_feature)
- [Epics](/api/resources/comments/list_comments_on_an_epic)
- [Requirements](/api/resources/comments/list_comments_on_a_requirement)
- [Ideas](/api/resources/comments/list_comments_on_an_idea)
- [Initiatives](/api/resources/comments/list_comments_on_an_initiative)
- [Goals](/api/resources/comments/list_commen'
- info:
name: Create a comment on an epic
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/epics/:epic_id/comments
params:
- name: epic_id
value: ''
type: path
description: EpicId identifier
body:
type: json
data: '{}'
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Comments can be added to and listed as a sub-resource on any resource that supports them.
These resources support comments:
- [Features](/api/resources/comments/list_comments_on_a_feature)
- [Epics](/api/resources/comments/list_comments_on_an_epic)
- [Requirements](/api/resources/comments/list_comments_on_a_requirement)
- [Ideas](/api/resources/comments/list_comments_on_an_idea)
- [Initiatives](/api/resources/comments/list_comments_on_an_initiative)
- [Goals](/api/resources/comments/list_commen'
- info:
name: List comments on a requirement
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/requirements/:requirement_id/comments
params:
- name: requirement_id
value: ''
type: path
description: RequirementId identifier
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Comments can be added to and listed as a sub-resource on any resource that supports them.
These resources support comments:
- [Features](/api/resources/comments/list_comments_on_a_feature)
- [Epics](/api/resources/comments/list_comments_on_an_epic)
- [Requirements](/api/resources/comments/list_comments_on_a_requirement)
- [Ideas](/api/resources/comments/list_comments_on_an_idea)
- [Initiatives](/api/resources/comments/list_comments_on_an_initiative)
- [Goals](/api/resources/comments/list_commen'
- info:
name: Create a comment on a requirement
type: http
http:
method: POST
url: https://{account-domain}.aha.io/api/v1/api/v1/requirements/:requirement_id/comments
params:
- name: requirement_id
value: ''
type: path
description: RequirementId identifier
body:
type: json
data: '{}'
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Comments can be added to and listed as a sub-resource on any resource that supports them.
These resources support comments:
- [Features](/api/resources/comments/list_comments_on_a_feature)
- [Epics](/api/resources/comments/list_comments_on_an_epic)
- [Requirements](/api/resources/comments/list_comments_on_a_requirement)
- [Ideas](/api/resources/comments/list_comments_on_an_idea)
- [Initiatives](/api/resources/comments/list_comments_on_an_initiative)
- [Goals](/api/resources/comments/list_commen'
- info:
name: List comments on a note
type: http
http:
method: GET
url: https://{account-domain}.aha.io/api/v1/api/v1/pages/:page_id/comments
params:
- name: page_id
value: ''
type: path
description: PageId identifier
auth:
type: oauth2
flow: authorization_code
authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
accessTokenUrl: https://{account-domain}.aha.io/oauth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Comments can be added to and listed as a sub-resource on any resource that supports them.
These resources support comments:
- [Features](/api/resources/comments/list_comments_on_a_feature)
- [Epics](/api/resources/comments/list_comments_on_an_epic)
- [Requirements](/api/resources/comments/list_comments_on_a_requirement)
- [Ideas](/api/resources/comments/list_comments_on_an_idea)
- [Initiatives](/api/resources/comments/list_comments_on_an_initiative)
- [Goals](/api/resources/comments/list_commen'
- info:
# --- truncated at 32 KB (243 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aha/refs/heads/main/apis.yml