Aha.io Ideas portal users API

The Ideas portal users API from Aha.io — 2 operation(s) for ideas portal users.

Operations 7

DELETE /idea_portals/{idea_portal_id}/portal_users/{id} Delete a portal user #
GET /idea_portals/{idea_portal_id}/portal_users/{id} Get a specific portal user #
PUT /idea_portals/{idea_portal_id}/portal_users/{id} Unsubscribe portal user from all communications #
GET /idea_portals/{idea_portal_id}/portal_users List portal users for a specific idea user #
POST /idea_portals/{idea_portal_id}/portal_users Create a portal user #
GET /portal_users List all portal users in the account #
GET /portal_users/{id} Get a specific portal user in the account #

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-ideas-portal-users-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-ideas-portal-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Aha! Ideas portal users 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: Ideas portal users
paths:
  /idea_portals/{idea_portal_id}/portal_users/{id}:
    delete:
      summary: Delete a portal user
      description: null
      tags:
      - Ideas portal users
      parameters:
      - name: idea_portal_id
        in: path
        required: true
        schema:
          type: string
        description: IdeaPortalId identifier
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: Id identifier
      responses:
        '204':
          description: No content - operation successful
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      operationId: deleteIdeaPortalsByIdeaPortalIdPortalUsersById
      x-operation-id-source: derived
    get:
      summary: Get a specific portal user
      description: null
      tags:
      - Ideas portal users
      parameters:
      - name: idea_portal_id
        in: path
        required: true
        schema:
          type: string
        description: IdeaPortalId identifier
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: Id 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/IdeasportalusersGetResponse'
              example:
                portal_user:
                  id: '646391926'
                  email: john@long.com
                  created_at: '2019-01-01T00:00:00.000Z'
                  updated_at: '2019-01-01T00:00:00.000Z'
                  idea_portal_id: '1070474755'
                  first_name: John
                  last_name: Long
                  enabled: true
                  verified: false
                  employee: false
                  max_endorsements_override: null
                  idea_user_id: '1056507375'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      operationId: getIdeaPortalsByIdeaPortalIdPortalUsersById
      x-operation-id-source: derived
    put:
      summary: Unsubscribe portal user from all communications
      description: null
      tags:
      - Ideas portal users
      parameters:
      - name: idea_portal_id
        in: path
        required: true
        schema:
          type: string
        description: IdeaPortalId identifier
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: Id 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/IdeasportalusersPutResponse'
              example:
                portal_user:
                  id: '646391926'
                  email: john@long.com
                  created_at: '2019-01-01T00:00:00.000Z'
                  updated_at: '2019-01-01T00:00:00.000Z'
                  idea_portal_id: '1070474755'
                  first_name: Sarah
                  last_name: Long
                  enabled: true
                  verified: false
                  employee: false
                  max_endorsements_override: null
                  idea_user_id: '1056507375'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdeasportalusersPostRequest'
            example:
              portal_user:
                unsubscribed: true
                unsubscribed_from_weekly_emails: true
      operationId: putIdeaPortalsByIdeaPortalIdPortalUsersById
      x-operation-id-source: derived
  /idea_portals/{idea_portal_id}/portal_users:
    get:
      summary: List portal users for a specific idea user
      description: null
      tags:
      - Ideas portal users
      parameters:
      - name: idea_portal_id
        in: path
        required: true
        schema:
          type: string
        description: IdeaPortalId identifier
      - name: page
        in: query
        required: false
        schema:
          type: string
        example: '1'
      - name: per_page
        in: query
        required: false
        schema:
          type: string
        example: '30'
      - name: idea_user_id
        in: query
        required: false
        schema:
          type: string
        example: '1056507375'
      - name: has_portal_user_subscriptions
        in: query
        required: false
        schema:
          type: string
        example: 'true'
      - name: fields
        in: query
        required: false
        schema:
          type: string
        example:
        - portal_user_subscriptions
      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/IdeasportalusersGetResponse'
              example:
                portal_users:
                - id: '144817500'
                  email: timmy@smith.com
                  idea_portal_id: '1070474755'
                  first_name: Timmy
                  last_name: Smith
                  enabled: true
                  verified: true
                  employee: true
                  max_endorsements_override: null
                  idea_user_id: '446386906'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
                  portal_user_subscriptions:
                    preferences: []
                - id: '477635308'
                  email: no-reply@aha.io
                  idea_portal_id: '1070474755'
                  first_name: Bill
                  last_name: Billings
                  enabled: true
                  verified: false
                  employee: false
                  max_endorsements_override: null
                  idea_user_id: '870840916'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
                  portal_user_subscriptions:
                    preferences: []
                - id: '646391926'
                  email: john@long.com
                  idea_portal_id: '1070474755'
                  first_name: John
                  last_name: Long
                  enabled: true
                  verified: false
                  employee: false
                  max_endorsements_override: null
                  idea_user_id: '1056507375'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
                  portal_user_subscriptions:
                    preferences:
                    - type: project
                      id: 517761884
                    - type: category
                      id: 552935478
                - id: '1066301902'
                  email: tim@smith.com
                  idea_portal_id: '1070474755'
                  first_name: Tim
                  last_name: Smith
                  enabled: true
                  verified: false
                  employee: false
                  max_endorsements_override: null
                  idea_user_id: '670061655'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
                  portal_user_subscriptions:
                    preferences: []
                pagination:
                  total_records: 4
                  total_pages: 1
                  current_page: 1
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      operationId: getIdeaPortalsByIdeaPortalIdPortalUsers
      x-operation-id-source: derived
    post:
      summary: Create a portal user
      description: null
      tags:
      - Ideas portal users
      parameters:
      - name: idea_portal_id
        in: path
        required: true
        schema:
          type: string
        description: IdeaPortalId 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/IdeasportalusersPostResponse'
              example:
                portal_user:
                  id: '6776834763843791935'
                  email: sam.doe@example.com
                  created_at: '2019-01-01T00:00:00.000Z'
                  updated_at: '2019-01-01T00:00:00.000Z'
                  idea_portal_id: '1070474755'
                  first_name: sam
                  last_name: doe
                  enabled: true
                  verified: false
                  employee: true
                  max_endorsements_override: null
                  idea_user_id: '6776834763838194044'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdeasportalusersPostRequest'
            example:
              portal_user:
                email: sam.doe@example.com
                first_name: sam
                last_name: doe
      operationId: postIdeaPortalsByIdeaPortalIdPortalUsers
      x-operation-id-source: derived
  /portal_users:
    get:
      summary: List all portal users in the account
      description: null
      tags:
      - Ideas portal users
      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/IdeasportalusersGetResponse'
              example:
                portal_users:
                - id: '143214937'
                  email: joe@shmo.com
                  created_at: '2019-01-01T00:00:00.000Z'
                  updated_at: '2019-01-01T00:00:00.000Z'
                  idea_portal_id: '675900055'
                  first_name: Joe
                  last_name: Shmo
                  enabled: true
                  verified: false
                  employee: false
                  max_endorsements_override: null
                  idea_user_id: '284648642'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
                - id: '144817500'
                  email: timmy@smith.com
                  created_at: '2019-01-01T00:00:00.000Z'
                  updated_at: '2019-01-01T00:00:00.000Z'
                  idea_portal_id: '1070474755'
                  first_name: Timmy
                  last_name: Smith
                  enabled: true
                  verified: true
                  employee: true
                  max_endorsements_override: null
                  idea_user_id: '446386906'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
                - id: '289659737'
                  email: timmy@smith.com
                  created_at: '2019-01-01T00:00:00.000Z'
                  updated_at: '2019-01-01T00:00:00.000Z'
                  idea_portal_id: '650606523'
                  first_name: Timmy
                  last_name: Smith
                  enabled: true
                  verified: true
                  employee: true
                  max_endorsements_override: null
                  idea_user_id: '446386906'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
                - id: '384687358'
                  email: sammy@smith.com
                  created_at: '2019-01-01T00:00:00.000Z'
                  updated_at: '2019-01-01T00:00:00.000Z'
                  idea_portal_id: '650606523'
                  first_name: Sammy
                  last_name: Smith
                  enabled: true
                  verified: true
                  employee: false
                  max_endorsements_override: null
                  idea_user_id: '244576613'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
                - id: '477635308'
                  email: no-reply@aha.io
                  created_at: '2019-01-01T00:00:00.000Z'
                  updated_at: '2019-01-01T00:00:00.000Z'
                  idea_portal_id: '1070474755'
                  first_name: Bill
                  last_name: Billings
                  enabled: true
                  verified: false
                  employee: false
                  max_endorsements_override: null
                  idea_user_id: '870840916'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
                - id: '569044079'
                  email: johnvery@long.com
                  created_at: '2019-01-01T00:00:00.000Z'
                  updated_at: '2019-01-01T00:00:00.000Z'
                  idea_portal_id: '297813804'
                  first_name: John
                  last_name: Long
                  enabled: true
                  verified: false
                  employee: false
                  max_endorsements_override: null
                  idea_user_id: '966050294'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
                - id: '646391926'
                  email: john@long.com
                  created_at: '2019-01-01T00:00:00.000Z'
                  updated_at: '2019-01-01T00:00:00.000Z'
                  idea_portal_id: '1070474755'
                  first_name: John
                  last_name: Long
                  enabled: true
                  verified: false
                  employee: false
                  max_endorsements_override: null
                  idea_user_id: '1056507375'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
                - id: '1066301902'
                  email: tim@smith.com
                  created_at: '2019-01-01T00:00:00.000Z'
                  updated_at: '2019-01-01T00:00:00.000Z'
                  idea_portal_id: '1070474755'
                  first_name: Tim
                  last_name: Smith
                  enabled: true
                  verified: false
                  employee: false
                  max_endorsements_override: null
                  idea_user_id: '670061655'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
                pagination:
                  total_records: 8
                  total_pages: 1
                  current_page: 1
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      operationId: getPortalUsers
      x-operation-id-source: derived
  /portal_users/{id}:
    get:
      summary: Get a specific portal user in the account
      description: null
      tags:
      - Ideas portal users
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: Id 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/IdeasportalusersGetResponse'
              example:
                portal_user:
                  id: '646391926'
                  email: john@long.com
                  created_at: '2019-01-01T00:00:00.000Z'
                  updated_at: '2019-01-01T00:00:00.000Z'
                  idea_portal_id: '1070474755'
                  first_name: John
                  last_name: Long
                  enabled: true
                  verified: false
                  employee: false
                  max_endorsements_override: null
                  idea_user_id: '1056507375'
                  unsubscribed: false
                  unsubscribed_from_weekly_emails: null
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      operationId: getPortalUsersById
      x-operation-id-source: derived
components:
  schemas:
    IdeasportalusersPostRequest:
      type: object
      properties:
        portal_user:
          type: object
          properties:
            unsubscribed:
              type: boolean
              example: true
            unsubscribed_from_weekly_emails:
              type: boolean
              example: true
          example:
            unsubscribed: true
            unsubscribed_from_weekly_emails: true
      example:
        portal_user:
          unsubscribed: true
          unsubscribed_from_weekly_emails: true
    IdeasportalusersGetResponse:
      type: object
      properties:
        portal_user:
          type: object
          properties:
            id:
              type: string
              example: '646391926'
            email:
              type: string
              example: john@long.com
            created_at:
              type: string
              example: '2019-01-01T00:00:00.000Z'
            updated_at:
              type: string
              example: '2019-01-01T00:00:00.000Z'
            idea_portal_id:
              type: string
              example: '1070474755'
            first_name:
              type: string
              example: John
            last_name:
              type: string
              example: Long
            enabled:
              type: boolean
              example: true
            verified:
              type: boolean
              example: false
            employee:
              type: boolean
              example: false
            max_endorsements_override:
              type: 'null'
            idea_user_id:
              type: string
              example: '1056507375'
            unsubscribed:
              type: boolean
              example: false
            unsubscribed_from_weekly_emails:
              type: 'null'
          example:
            id: '646391926'
            email: john@long.com
            created_at: '2019-01-01T00:00:00.000Z'
            updated_at: '2019-01-01T00:00:00.000Z'
            idea_portal_id: '1070474755'
            first_name: John
            last_name: Long
            enabled: true
            verified: false
            employee: false
            max_endorsements_override: null
            idea_user_id: '1056507375'
            unsubscribed: false
            unsubscribed_from_weekly_emails: null
      example:
        portal_user:
          id: '646391926'
          email: john@long.com
          created_at: '2019-01-01T00:00:00.000Z'
          updated_at: '2019-01-01T00:00:00.000Z'
          idea_portal_id: '1070474755'
          first_name: John
          last_name: Long
          enabled: true
          verified: false
          employee: false
          max_endorsements_override: null
          idea_user_id: '1056507375'
          unsubscribed: false
          unsubscribed_from_weekly_emails: null
    IdeasportalusersPutResponse:
      type: object
      properties:
        portal_user:
          type: object
          properties:
            id:
              type: string
              example: '646391926'
            email:
              type: string
              example: john@long.com
            created_at:
              type: string
              example: '2019-01-01T00:00:00.000Z'
            updated_at:
              type: string
              example: '2019-01-01T00:00:00.000Z'
            idea_portal_id:
              type: string
              example: '1070474755'
            first_name:
              type: string
              example: Sarah
            last_name:
              type: string
              example: Long
            enabled:
              type: boolean
              example: true
            verified:
              type: boolean
              example: false
            employee:
              type: boolean
              example: false
            max_endorsements_override:
              type: 'null'
            idea_user_id:
              type: string
              example: '1056507375'
            unsubscribed:
              type: boolean
              example: false
            unsubscribed_from_weekly_emails:
              type: 'null'
          example:
            id: '646391926'
            email: john@long.com
            created_at: '2019-01-01T00:00:00.000Z'
            updated_at: '2019-01-01T00:00:00.000Z'
            idea_portal_id: '1070474755'
            first_name: Sarah
            last_name: Long
            enabled: true
            verified: false
            employee: false
            max_endorsements_override: null
            idea_user_id: '1056507375'
            unsubscribed: false
            unsubscribed_from_weekly_emails: null
      example:
        portal_user:
          id: '646391926'
          email: john@long.com
          created_at: '2019-01-01T00:00:00.000Z'
          updated_at: '2019-01-01T00:00:00.000Z'
          idea_portal_id: '1070474755'
          first_name: Sarah
          last_name: Long
          enabled: true
          verified: false
          employee: false
          max_endorsements_override: null
          idea_user_id: '1056507375'
          unsubscribed: false
          unsubscribed_from_weekly_emails: null
    IdeasportalusersPostResponse:
      type: object
      properties:
        portal_user:
          type: object
          properties:
            id:
              type: string
              example: '6776834763843791935'
            email:
              type: string
              example: sam.doe@example.com
            created_at:
              type: string
              example: '2019-01-01T00:00:00.000Z'
            updated_at:
              type: string
              example: '2019-01-01T00:00:00.000Z'
            idea_portal_id:
              type: string
              example: '1070474755'
            first_name:
              type: string
              example: sam
            last_name:
              type: string
              example: doe
            enabled:
              type: boolean
              example: true
            verified:
              type: boolean
              example: false
            employee:
              type: boolean
              example: true
            max_endorsements_override:
              type: 'null'
            idea_user_id:
              type: string
              example: '6776834763838194044'
            unsubscribed:
              type: boolean
              example: false
            unsubscribed_from_weekly_emails:
              type: 'null'
          example:
            id: '6776834763843791935'
            email: sam.doe@example.com
            created_at: '2019-01-01T00:00:00.000Z'
            updated_at: '2019-01-01T00:00:00.000Z'
            idea_portal_id: '1070474755'
            first_name: sam
            last_name: doe
            enabled: true
            verified: false
            employee: true
            max_endorsements_override: null
            idea_user_id: '6776834763838194044'
            unsubscribed: false
            unsubscribed_from_weekly_emails: null
      example:
        portal_user:
          id: '6776834763843791935'
          email: sam.doe@example.com
          created_at: '2019-01-01T00:00:00.000Z'
          updated_at: '2019-01-01T00:00:00.000Z'
          idea_portal_id: '1070474755'
          first_name: sam
          last_name: doe
          enabled: true
          verified: false
          employee: true
          max_endorsements_override: null
          idea_user_id: '6776834763838194044'
          unsubscribed: false
          unsubscribed_from_weekly_emails: null
  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)