Aha.io website screenshot

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

OPEN

Resources

👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
💰
Pricing
Pricing
📝
Signup
Signup

Sources

Raw ↑
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