Anam.ai Share Links API

The Share Links API from Anam.ai — 2 operation(s) for share links.

OpenAPI Specification

anamai-share-links-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Anam AI Avatars Share Links API
  version: '1.0'
servers:
- url: https://api.anam.ai
  description: Anam API
security:
- BearerAuth: []
tags:
- name: Share Links
paths:
  /v1/share-links:
    get:
      description: Returns a list of all share links for the organization
      parameters:
      - in: query
        name: page
        schema:
          type: integer
          minimum: 1
          default: 1
        description: Page number for pagination
      - in: query
        name: perPage
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
        description: Number of items per page (max 100)
      - in: query
        name: search
        schema:
          type: string
        description: Search term to filter share links
      - in: query
        name: personaId
        schema:
          type: string
          format: uuid
        description: Filter share links by persona ID
      responses:
        '200':
          description: Successfully retrieved share links
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/PersonaShareLink'
                  meta:
                    $ref: '#/components/schemas/Pagination'
              examples:
                default:
                  $ref: '#/components/examples/ShareLinkListResponse'
        '400':
          description: Bad request - Invalid query parameters
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - API key lacks the required permission
        '500':
          description: Server error
      tags:
      - Share Links
      operationId: listShareLinks
      summary: list share links
      x-mint:
        metadata:
          title: list share links
        mcp:
          enabled: true
          name: list-share-links
          description: Returns a list of all share links for the organization
    post:
      description: Create a new share link
      requestBody:
        description: Persona to issue a share link for, plus optional lifetime and usage limits. A share link with no `expiresInHours` defaults to 168 (one week); with no `usageLimit` it defaults to 10.
        required: true
        content:
          application/json:
            examples:
              default:
                $ref: '#/components/examples/ShareLinkCreate'
            schema:
              type: object
              required:
              - personaId
              properties:
                personaId:
                  type: string
                  format: uuid
                expiresInHours:
                  type: number
                  default: 168
                usageLimit:
                  type: number
                  default: 10
      responses:
        '201':
          description: Successfully created share link
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShareLink'
              examples:
                default:
                  $ref: '#/components/examples/ShareLinkResponse'
        '400':
          description: Bad request - Invalid share link data
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - API key lacks the required permission
        '404':
          description: Not Found - Persona not found
        '500':
          description: Server error
      tags:
      - Share Links
      operationId: createShareLink
      summary: create share link
      x-mint:
        metadata:
          title: create share link
        mcp:
          enabled: true
          name: create-share-link
          description: Create a new share link
  /v1/share-links/{id}:
    get:
      description: Returns a share link by ID
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: Share link ID
      responses:
        '200':
          description: Successfully retrieved share link
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonaShareLink'
              examples:
                default:
                  $ref: '#/components/examples/PersonaShareLinkResponse'
        '400':
          description: Bad request - Invalid share link ID
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - API key lacks the required permission
        '404':
          description: Not Found - Share link not found
        '500':
          description: Server error
      tags:
      - Share Links
      operationId: getShareLink
      summary: get share link
      x-mint:
        metadata:
          title: get share link
        mcp:
          enabled: true
          name: get-share-link
          description: Returns a share link by ID
    put:
      description: Update a share link by ID
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: Share link ID
      requestBody:
        description: Fields to update on the share link. Omit a field to leave it unchanged.
        required: true
        content:
          application/json:
            examples:
              default:
                $ref: '#/components/examples/ShareLinkUpdate'
            schema:
              type: object
              properties:
                expiresInHours:
                  type: number
                usageLimit:
                  type: number
      responses:
        '200':
          description: Successfully updated share link
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShareLink'
              examples:
                default:
                  $ref: '#/components/examples/ShareLinkResponse'
        '400':
          description: Bad request - Invalid share link data
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - API key lacks the required permission
        '404':
          description: Not Found - Share link not found
        '500':
          description: Server error
      tags:
      - Share Links
      operationId: updateShareLink
      summary: update share link
      x-mint:
        metadata:
          title: update share link
        mcp:
          enabled: true
          name: update-share-link
          description: Update a share link by ID
    delete:
      description: Delete a share link by ID
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: Share link ID
      responses:
        '200':
          description: Successfully deleted share link
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Share link deleted successfully
        '400':
          description: Bad request - Invalid share link ID
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - API key lacks the required permission
        '404':
          description: Not Found - Share link not found
        '500':
          description: Server error
      tags:
      - Share Links
      operationId: deleteShareLink
      summary: delete share link
      x-mint:
        metadata:
          title: delete share link
        mcp:
          enabled: true
          name: delete-share-link
          description: Delete a share link by ID. Use with caution as this action cannot be undone.
components:
  schemas:
    PersonaShareLink:
      type: object
      description: A share link as returned by list and get endpoints — includes persona details for the link's target.
      allOf:
      - $ref: '#/components/schemas/ShareLink'
      - type: object
        properties:
          personaId:
            type: string
            format: uuid
            description: ID of the persona this link points to.
          personaName:
            type: string
            description: Name of the persona at the time the link was issued.
          organizationId:
            type: string
            description: ID of the organization that owns the link. IDs may be either UUIDs or nanoid-style strings depending on when the organization was created.
    Pagination:
      type: object
      description: Pagination metadata returned alongside the `data` array of every list endpoint.
      properties:
        total:
          type: integer
          description: Total number of items across all pages.
        lastPage:
          type: integer
          description: Number of the last page.
        currentPage:
          type: integer
          description: Number of the current page.
        perPage:
          type: integer
          description: Number of items per page.
        prev:
          type:
          - integer
          - 'null'
          description: Number of the previous page, or null if on the first page.
        next:
          type:
          - integer
          - 'null'
          description: Number of the next page, or null if on the last page.
    ShareLink:
      type: object
      description: A shareable link to a persona. Can be used as a direct URL or embedded via the widget.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the share link.
        token:
          type: string
          description: Opaque token appended to the public URL.
        type:
          type: string
          enum:
          - LINK
          - PLAYER_EMBED
          - ORB_EMBED
          description: Kind of share link — a direct URL, a player embed, or an orb embed.
        expiresAt:
          type:
          - string
          - 'null'
          format: date-time
          description: Timestamp after which the link no longer works, or `null` if the link does not expire.
        usageLimit:
          type:
          - integer
          - 'null'
          description: Maximum number of times the link can be used, or `null` for unlimited.
        usageCount:
          type: integer
          description: Number of times the link has been used.
        allowedOrigins:
          type: array
          items:
            type: string
          description: Origins permitted to load the link when embedded. Ignored when `allowAllOrigins` is true.
        allowAllOrigins:
          type: boolean
          description: Whether the link can be embedded on any origin.
        removeWatermark:
          type: boolean
          description: Whether the persona renders without the Anam watermark. Requires a plan that permits watermark removal.
        enabled:
          type: boolean
          description: Whether the link currently accepts connections.
        isPrimary:
          type: boolean
          description: Whether this is the persona's primary share link (at most one per persona).
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the share link was created.
  examples:
    ShareLinkListResponse:
      summary: A paginated list of share links
      value:
        data:
        - id: 00000000-0000-0000-0000-000000000000
          token: sh_2kL9pQxYzR4vN8mBwHfJc
          type: LINK
          expiresAt: '2026-04-27T10:00:00.000Z'
          usageLimit: 10
          usageCount: 3
          allowedOrigins: []
          allowAllOrigins: false
          removeWatermark: false
          enabled: true
          isPrimary: false
          createdAt: '2026-04-20T10:00:00.000Z'
          personaId: 00000000-0000-0000-0000-000000000000
          personaName: Cara
          organizationId: 00000000-0000-0000-0000-000000000000
        meta:
          total: 1
          lastPage: 1
          currentPage: 1
          perPage: 20
          prev: null
          next: null
    ShareLinkUpdate:
      summary: Raise the usage limit on a share link
      value:
        usageLimit: 50
    PersonaShareLinkResponse:
      summary: A single share link with its persona details (as returned by get)
      value:
        id: 00000000-0000-0000-0000-000000000000
        token: sh_2kL9pQxYzR4vN8mBwHfJc
        type: LINK
        expiresAt: '2026-04-27T10:00:00.000Z'
        usageLimit: 10
        usageCount: 3
        allowedOrigins: []
        allowAllOrigins: false
        removeWatermark: false
        enabled: true
        isPrimary: false
        createdAt: '2026-04-20T10:00:00.000Z'
        personaId: 00000000-0000-0000-0000-000000000000
        personaName: Cara
        organizationId: 00000000-0000-0000-0000-000000000000
    ShareLinkCreate:
      summary: Issue a share link valid for one week
      value:
        personaId: 00000000-0000-0000-0000-000000000000
        expiresInHours: 168
        usageLimit: 10
    ShareLinkResponse:
      summary: A single share link (as returned by create or update)
      value:
        id: 00000000-0000-0000-0000-000000000000
        token: sh_2kL9pQxYzR4vN8mBwHfJc
        type: LINK
        expiresAt: '2026-04-27T10:00:00.000Z'
        usageLimit: 10
        usageCount: 0
        allowedOrigins: []
        allowAllOrigins: false
        removeWatermark: false
        enabled: true
        isPrimary: false
        createdAt: '2026-04-20T10:00:00.000Z'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
x-mint:
  mcp:
    enabled: true