Aha.io Personas API

The Personas API from Aha.io — 3 operation(s) for personas.

Operations 5

DELETE /products/{product_id}/personas/{id} Delete a persona #
PUT /products/{product_id}/personas/{id} Update a persona #
GET /personas/{id} Get a specific persona #
GET /products/{product_id}/personas List personas in a product #
POST /products/{product_id}/personas Create a persona #

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-personas-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-personas-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Aha! Personas 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: Personas
paths:
  /products/{product_id}/personas/{id}:
    delete:
      summary: Delete a persona
      description: null
      tags:
      - Personas
      parameters:
      - name: product_id
        in: path
        required: true
        schema:
          type: string
        description: ProductId 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: deleteProductsByProductIdPersonasById
      x-operation-id-source: derived
    put:
      summary: Update a persona
      description: null
      tags:
      - Personas
      parameters:
      - name: product_id
        in: path
        required: true
        schema:
          type: string
        description: ProductId 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/PersonasPutResponse'
              example:
                persona:
                  id: '344093881'
                  name: Julie
                  created_at: '2019-01-01T00:00:00.000Z'
                  reference_num: PROD-P-1
                  color: 13421772
                  occupation: null
                  quote: null
                  updated_at: '2019-01-01T00:00:00.000Z'
                  url: https://company.aha.io/personas/PROD-P-1
                  resource: https://company.aha.io/personas/PROD-P-1
                  custom_fields: []
                  comments_count: 0
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PersonasPostRequest'
            example:
              persona:
                name: Julie
      operationId: putProductsByProductIdPersonasById
      x-operation-id-source: derived
  /personas/{id}:
    get:
      summary: Get a specific persona
      description: null
      tags:
      - Personas
      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/PersonasGetResponse'
              example:
                persona:
                  id: '344093881'
                  name: Jane the athlete
                  created_at: '2019-01-01T00:00:00.000Z'
                  reference_num: PROD-P-1
                  color: 13421772
                  occupation: null
                  quote: null
                  updated_at: '2019-01-01T00:00:00.000Z'
                  url: https://company.aha.io/personas/PROD-P-1
                  resource: https://company.aha.io/personas/PROD-P-1
                  custom_fields: []
                  comments_count: 0
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      operationId: getPersonasById
      x-operation-id-source: derived
  /products/{product_id}/personas:
    get:
      summary: List personas in a product
      description: null
      tags:
      - Personas
      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/PersonasGetResponse'
              example:
                personas:
                - id: '227222789'
                  name: Jim the cyclist
                  created_at: '2019-01-01T00:00:00.000Z'
                - id: '344093881'
                  name: Jane the athlete
                  created_at: '2019-01-01T00:00:00.000Z'
                - id: '982259096'
                  name: Tim the repairer
                  created_at: '2019-01-01T00:00:00.000Z'
                pagination:
                  total_records: 3
                  total_pages: 1
                  current_page: 1
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      operationId: getProductsByProductIdPersonas
      x-operation-id-source: derived
    post:
      summary: Create a persona
      description: null
      tags:
      - Personas
      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/PersonasPostResponse'
              example:
                persona:
                  id: '6776881149484114529'
                  name: John
                  created_at: '2019-01-01T00:00:00.000Z'
                  reference_num: PRJ1-P-1
                  color: 13421772
                  occupation: null
                  quote: null
                  updated_at: '2019-01-01T00:00:00.000Z'
                  url: https://company.aha.io/personas/PRJ1-P-1
                  resource: https://company.aha.io/personas/PRJ1-P-1
                  custom_fields: []
                  comments_count: 0
      security:
      - OAuth2: []
      - ApiKeyAuth: []
      - CookieAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PersonasPostRequest'
            example:
              persona:
                name: John
      operationId: postProductsByProductIdPersonas
      x-operation-id-source: derived
components:
  schemas:
    PersonasPostRequest:
      type: object
      properties:
        persona:
          type: object
          properties:
            name:
              type: string
              example: Julie
          example:
            name: Julie
      example:
        persona:
          name: Julie
    PersonasPostResponse:
      type: object
      properties:
        persona:
          type: object
          properties:
            id:
              type: string
              example: '6776881149484114529'
            name:
              type: string
              example: John
            created_at:
              type: string
              example: '2019-01-01T00:00:00.000Z'
            reference_num:
              type: string
              example: PRJ1-P-1
            color:
              type: integer
              example: 13421772
            occupation:
              type: 'null'
            quote:
              type: 'null'
            updated_at:
              type: string
              example: '2019-01-01T00:00:00.000Z'
            url:
              type: string
              example: https://company.aha.io/personas/PRJ1-P-1
            resource:
              type: string
              example: https://company.aha.io/personas/PRJ1-P-1
            custom_fields:
              type: array
              items: {}
            comments_count:
              type: integer
              example: 0
          example:
            id: '6776881149484114529'
            name: John
            created_at: '2019-01-01T00:00:00.000Z'
            reference_num: PRJ1-P-1
            color: 13421772
            occupation: null
            quote: null
            updated_at: '2019-01-01T00:00:00.000Z'
            url: https://company.aha.io/personas/PRJ1-P-1
            resource: https://company.aha.io/personas/PRJ1-P-1
            custom_fields: []
            comments_count: 0
      example:
        persona:
          id: '6776881149484114529'
          name: John
          created_at: '2019-01-01T00:00:00.000Z'
          reference_num: PRJ1-P-1
          color: 13421772
          occupation: null
          quote: null
          updated_at: '2019-01-01T00:00:00.000Z'
          url: https://company.aha.io/personas/PRJ1-P-1
          resource: https://company.aha.io/personas/PRJ1-P-1
          custom_fields: []
          comments_count: 0
    PersonasGetResponse:
      type: object
      properties:
        personas:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: '227222789'
              name:
                type: string
                example: Jim the cyclist
              created_at:
                type: string
                example: '2019-01-01T00:00:00.000Z'
            example:
              id: '227222789'
              name: Jim the cyclist
              created_at: '2019-01-01T00:00:00.000Z'
          example:
          - id: '227222789'
            name: Jim the cyclist
            created_at: '2019-01-01T00:00:00.000Z'
          - id: '344093881'
            name: Jane the athlete
            created_at: '2019-01-01T00:00:00.000Z'
          - id: '982259096'
            name: Tim the repairer
            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:
        personas:
        - id: '227222789'
          name: Jim the cyclist
          created_at: '2019-01-01T00:00:00.000Z'
        - id: '344093881'
          name: Jane the athlete
          created_at: '2019-01-01T00:00:00.000Z'
        - id: '982259096'
          name: Tim the repairer
          created_at: '2019-01-01T00:00:00.000Z'
        pagination:
          total_records: 3
          total_pages: 1
          current_page: 1
    PersonasPutResponse:
      type: object
      properties:
        persona:
          type: object
          properties:
            id:
              type: string
              example: '344093881'
            name:
              type: string
              example: Julie
            created_at:
              type: string
              example: '2019-01-01T00:00:00.000Z'
            reference_num:
              type: string
              example: PROD-P-1
            color:
              type: integer
              example: 13421772
            occupation:
              type: 'null'
            quote:
              type: 'null'
            updated_at:
              type: string
              example: '2019-01-01T00:00:00.000Z'
            url:
              type: string
              example: https://company.aha.io/personas/PROD-P-1
            resource:
              type: string
              example: https://company.aha.io/personas/PROD-P-1
            custom_fields:
              type: array
              items: {}
            comments_count:
              type: integer
              example: 0
          example:
            id: '344093881'
            name: Julie
            created_at: '2019-01-01T00:00:00.000Z'
            reference_num: PROD-P-1
            color: 13421772
            occupation: null
            quote: null
            updated_at: '2019-01-01T00:00:00.000Z'
            url: https://company.aha.io/personas/PROD-P-1
            resource: https://company.aha.io/personas/PROD-P-1
            custom_fields: []
            comments_count: 0
      example:
        persona:
          id: '344093881'
          name: Julie
          created_at: '2019-01-01T00:00:00.000Z'
          reference_num: PROD-P-1
          color: 13421772
          occupation: null
          quote: null
          updated_at: '2019-01-01T00:00:00.000Z'
          url: https://company.aha.io/personas/PROD-P-1
          resource: https://company.aha.io/personas/PROD-P-1
          custom_fields: []
          comments_count: 0
  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)