Aha.io Idea Portals API

The Idea Portals API from Aha.io — 2 operation(s) for idea portals.

Operations 4

GET /idea_portals List all idea portals in an account #
GET /products/{product_id}/idea_portals List idea portals in a product #
POST /products/{product_id}/idea_portals Add idea portals to a product #
PUT /products/{product_id}/idea_portals Replace the idea portals linked to a product #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/aha:aha-idea-portals-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

aha-idea-portals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Aha! Idea Portals API
  version: 1.0.0
  description: Complete API documentation for Aha! generated from actual test responses
  contact:
    name: Aha! Support
    url: https://www.aha.io/support
servers:
- url: https://{account-domain}.aha.io/api/v1
  description: Aha! API Server
  variables:
    account-domain:
      description: Your Aha! account domain
      default: company
security:
- OAuth2: []
- ApiKeyAuth: []
- CookieAuth: []
tags:
- name: Idea Portals
paths:
  /idea_portals:
    get:
      summary: List all idea portals in an account
      description: null
      tags:
      - Idea Portals
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: string
        example: '1'
      - name: per_page
        in: query
        required: false
        schema:
          type: string
        example: '30'
      responses:
        '200':
          description: Successful operation
          headers:
            Content-Type:
              description: application/json; charset=utf-8
              schema:
                type: string
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/IdeaPortalsGetResponse'
              example:
                idea_portals:
                - id: '297813804'
                  title: Ideas 3
                  portal_enabled: true
                  access_type: public
                  external_url: https://testideaportal2.ideas.aha.io/
                  created_at: '2019-01-01T00:00:00.000Z'
                - id: '650606523'
                  title: Ideas 2
                  portal_enabled: true
                  access_type: public
                  external_url: https://testideaportal1.ideas.aha.io/
                  created_at: '2019-01-01T00:00:00.000Z'
                - id: '675900055'
                  title: portal with 1 endorsement per idea
                  portal_enabled: true
                  access_type: submit-only
                  external_url: https://testideaportal3.ideas.aha.io/ideas/new
                  created_at: '2019-01-01T00:00:00.000Z'
                - id: '747493361'
                  title: portal with 2 endorsements per idea
                  portal_enabled: true
                  access_type: submit-only
                  external_url: https://testideaportal4.ideas.aha.io/ideas/new
                  created_at: '2019-01-01T00:00:00.000Z'
                - id: '1070474755'
                  title: Ideas 1
                  portal_enabled: true
                  access_type: submit-only
                  external_url: https://testideaportal.ideas.aha.io/ideas/new
                  created_at: '2019-01-01T00:00:00.000Z'
                pagination:
                  total_records: 5
                  total_pages: 1
                  current_page: 1
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      operationId: getIdeaPortals
      x-operation-id-source: derived
  /products/{product_id}/idea_portals:
    get:
      summary: List idea portals in a product
      description: null
      tags:
      - Idea Portals
      parameters:
      - name: product_id
        in: path
        required: true
        schema:
          type: string
        description: ProductId identifier
      - name: page
        in: query
        required: false
        schema:
          type: string
        example: '1'
      - name: per_page
        in: query
        required: false
        schema:
          type: string
        example: '30'
      responses:
        '200':
          description: Successful operation
          headers:
            Content-Type:
              description: application/json; charset=utf-8
              schema:
                type: string
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/IdeaPortalsGetResponse'
              example:
                idea_portals:
                - id: '297813804'
                  title: Ideas 3
                  portal_enabled: true
                  access_type: public
                  external_url: https://testideaportal2.ideas.aha.io/
                  created_at: '2019-01-01T00:00:00.000Z'
                - id: '650606523'
                  title: Ideas 2
                  portal_enabled: true
                  access_type: public
                  external_url: https://testideaportal1.ideas.aha.io/
                  created_at: '2019-01-01T00:00:00.000Z'
                - id: '1070474755'
                  title: Ideas 1
                  portal_enabled: true
                  access_type: submit-only
                  external_url: https://testideaportal.ideas.aha.io/ideas/new
                  created_at: '2019-01-01T00:00:00.000Z'
                pagination:
                  total_records: 3
                  total_pages: 1
                  current_page: 1
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      operationId: getProductsByProductIdIdeaPortals
      x-operation-id-source: derived
    post:
      summary: Add idea portals to a product
      description: null
      tags:
      - Idea Portals
      parameters:
      - name: product_id
        in: path
        required: true
        schema:
          type: string
        description: ProductId identifier
      responses:
        '200':
          description: Successful operation
          headers:
            Content-Type:
              description: application/json; charset=utf-8
              schema:
                type: string
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/IdeaPortalsPostResponse'
              example:
                idea_portals:
                - id: '297813804'
                  title: Ideas 3
                  portal_enabled: true
                  access_type: public
                  external_url: https://testideaportal2.ideas.aha.io/
                  created_at: '2019-01-01T00:00:00.000Z'
                - id: '650606523'
                  title: Ideas 2
                  portal_enabled: true
                  access_type: public
                  external_url: https://testideaportal1.ideas.aha.io/
                  created_at: '2019-01-01T00:00:00.000Z'
                - id: '1070474755'
                  title: Ideas 1
                  portal_enabled: true
                  access_type: submit-only
                  external_url: https://testideaportal.ideas.aha.io/ideas/new
                  created_at: '2019-01-01T00:00:00.000Z'
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdeaPortalsPostRequest'
            example:
              idea_portal_ids:
              - '1070474755'
      operationId: postProductsByProductIdIdeaPortals
      x-operation-id-source: derived
    put:
      summary: Replace the idea portals linked to a product
      description: null
      tags:
      - Idea Portals
      parameters:
      - name: product_id
        in: path
        required: true
        schema:
          type: string
        description: ProductId identifier
      responses:
        '200':
          description: Successful operation
          headers:
            Content-Type:
              description: application/json; charset=utf-8
              schema:
                type: string
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/IdeaPortalsPutResponse'
              example:
                idea_portals:
                - id: '1070474755'
                  title: Ideas 1
                  portal_enabled: true
                  access_type: submit-only
                  external_url: https://testideaportal.ideas.aha.io/ideas/new
                  created_at: '2019-01-01T00:00:00.000Z'
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdeaPortalsPostRequest'
            example:
              idea_portal_ids:
              - '1070474755'
      operationId: putProductsByProductIdIdeaPortals
      x-operation-id-source: derived
components:
  schemas:
    IdeaPortalsGetResponse:
      type: object
      properties:
        idea_portals:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: '297813804'
              title:
                type: string
                example: Ideas 3
              portal_enabled:
                type: boolean
                example: true
              access_type:
                type: string
                example: public
              external_url:
                type: string
                example: https://testideaportal2.ideas.aha.io/
              created_at:
                type: string
                example: '2019-01-01T00:00:00.000Z'
            example:
              id: '297813804'
              title: Ideas 3
              portal_enabled: true
              access_type: public
              external_url: https://testideaportal2.ideas.aha.io/
              created_at: '2019-01-01T00:00:00.000Z'
          example:
          - id: '297813804'
            title: Ideas 3
            portal_enabled: true
            access_type: public
            external_url: https://testideaportal2.ideas.aha.io/
            created_at: '2019-01-01T00:00:00.000Z'
          - id: '650606523'
            title: Ideas 2
            portal_enabled: true
            access_type: public
            external_url: https://testideaportal1.ideas.aha.io/
            created_at: '2019-01-01T00:00:00.000Z'
          - id: '1070474755'
            title: Ideas 1
            portal_enabled: true
            access_type: submit-only
            external_url: https://testideaportal.ideas.aha.io/ideas/new
            created_at: '2019-01-01T00:00:00.000Z'
        pagination:
          type: object
          properties:
            total_records:
              type: integer
              example: 3
            total_pages:
              type: integer
              example: 1
            current_page:
              type: integer
              example: 1
          example:
            total_records: 3
            total_pages: 1
            current_page: 1
      example:
        idea_portals:
        - id: '297813804'
          title: Ideas 3
          portal_enabled: true
          access_type: public
          external_url: https://testideaportal2.ideas.aha.io/
          created_at: '2019-01-01T00:00:00.000Z'
        - id: '650606523'
          title: Ideas 2
          portal_enabled: true
          access_type: public
          external_url: https://testideaportal1.ideas.aha.io/
          created_at: '2019-01-01T00:00:00.000Z'
        - id: '1070474755'
          title: Ideas 1
          portal_enabled: true
          access_type: submit-only
          external_url: https://testideaportal.ideas.aha.io/ideas/new
          created_at: '2019-01-01T00:00:00.000Z'
        pagination:
          total_records: 3
          total_pages: 1
          current_page: 1
    IdeaPortalsPostResponse:
      type: object
      properties:
        idea_portals:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: '297813804'
              title:
                type: string
                example: Ideas 3
              portal_enabled:
                type: boolean
                example: true
              access_type:
                type: string
                example: public
              external_url:
                type: string
                example: https://testideaportal2.ideas.aha.io/
              created_at:
                type: string
                example: '2019-01-01T00:00:00.000Z'
            example:
              id: '297813804'
              title: Ideas 3
              portal_enabled: true
              access_type: public
              external_url: https://testideaportal2.ideas.aha.io/
              created_at: '2019-01-01T00:00:00.000Z'
          example:
          - id: '297813804'
            title: Ideas 3
            portal_enabled: true
            access_type: public
            external_url: https://testideaportal2.ideas.aha.io/
            created_at: '2019-01-01T00:00:00.000Z'
          - id: '650606523'
            title: Ideas 2
            portal_enabled: true
            access_type: public
            external_url: https://testideaportal1.ideas.aha.io/
            created_at: '2019-01-01T00:00:00.000Z'
          - id: '1070474755'
            title: Ideas 1
            portal_enabled: true
            access_type: submit-only
            external_url: https://testideaportal.ideas.aha.io/ideas/new
            created_at: '2019-01-01T00:00:00.000Z'
      example:
        idea_portals:
        - id: '297813804'
          title: Ideas 3
          portal_enabled: true
          access_type: public
          external_url: https://testideaportal2.ideas.aha.io/
          created_at: '2019-01-01T00:00:00.000Z'
        - id: '650606523'
          title: Ideas 2
          portal_enabled: true
          access_type: public
          external_url: https://testideaportal1.ideas.aha.io/
          created_at: '2019-01-01T00:00:00.000Z'
        - id: '1070474755'
          title: Ideas 1
          portal_enabled: true
          access_type: submit-only
          external_url: https://testideaportal.ideas.aha.io/ideas/new
          created_at: '2019-01-01T00:00:00.000Z'
    IdeaPortalsPutResponse:
      type: object
      properties:
        idea_portals:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: '1070474755'
              title:
                type: string
                example: Ideas 1
              portal_enabled:
                type: boolean
                example: true
              access_type:
                type: string
                example: submit-only
              external_url:
                type: string
                example: https://testideaportal.ideas.aha.io/ideas/new
              created_at:
                type: string
                example: '2019-01-01T00:00:00.000Z'
            example:
              id: '1070474755'
              title: Ideas 1
              portal_enabled: true
              access_type: submit-only
              external_url: https://testideaportal.ideas.aha.io/ideas/new
              created_at: '2019-01-01T00:00:00.000Z'
          example:
          - id: '1070474755'
            title: Ideas 1
            portal_enabled: true
            access_type: submit-only
            external_url: https://testideaportal.ideas.aha.io/ideas/new
            created_at: '2019-01-01T00:00:00.000Z'
      example:
        idea_portals:
        - id: '1070474755'
          title: Ideas 1
          portal_enabled: true
          access_type: submit-only
          external_url: https://testideaportal.ideas.aha.io/ideas/new
          created_at: '2019-01-01T00:00:00.000Z'
    IdeaPortalsPostRequest:
      type: object
      properties:
        idea_portal_ids:
          type: array
          items:
            type: string
            example: '1070474755'
          example:
          - '1070474755'
      example:
        idea_portal_ids:
        - '1070474755'
  securitySchemes:
    OAuth2:
      type: oauth2
      description: OAuth2 authentication with bearer tokens
      flows:
        authorizationCode:
          authorizationUrl: https://{account-domain}.aha.io/oauth/authorize
          tokenUrl: https://{account-domain}.aha.io/oauth/token
          scopes: {}
    ApiKeyAuth:
      type: http
      scheme: bearer
      description: API key authentication using Bearer token in Authorization header. Generate API keys at https://secure.aha.io/settings/api_keys
    CookieAuth:
      type: apiKey
      in: cookie
      name: session
      description: Cookie-based authentication for web browser integration
x-provenance:
  method: harvested
  publisher: Aha.io
  source: https://www.aha.io/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)