Anam.ai LL Ms API

The LLMs API from Anam.ai — 2 operation(s) for llms.

Operations 5

GET /v1/llms list llms #
POST /v1/llms create llm #
GET /v1/llms/{id} get llm #
PUT /v1/llms/{id} update llm #
DELETE /v1/llms/{id} delete llm #

Specifications

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/anamai:anamai-llms-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

anamai-llms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Anam AI LLMs API
  version: '1.0'
servers:
- url: https://api.anam.ai
  description: Anam API
security:
- BearerAuth: []
tags:
- name: LLMs
paths:
  /v1/llms:
    get:
      description: Returns a list of all LLMs available to the organization
      parameters:
      - in: query
        name: page
        schema:
          type: integer
        description: Page number for pagination
      - in: query
        name: perPage
        schema:
          type: integer
        description: Number of items per page
      - in: query
        name: search
        schema:
          type: string
        description: Search term to filter LLMs
      - in: query
        name: includeDefaults
        schema:
          type: boolean
        description: Include default LLMs in the response
      responses:
        '200':
          description: Successfully retrieved LLMs
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/LLM'
                  meta:
                    $ref: '#/components/schemas/Pagination'
              examples:
                default:
                  $ref: '#/components/examples/LlmListResponse'
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - API key lacks the required permission
        '500':
          description: Server error
      tags:
      - LLMs
      operationId: listLlms
      summary: list llms
      x-mint:
        metadata:
          title: list llms
        mcp:
          enabled: true
          name: list-llms
          description: Returns a list of all LLMs available to the organization
    post:
      description: Create a new LLM configuration
      requestBody:
        description: Endpoint URLs, model name, and credentials for the LLM. `secret` is encrypted at rest and is never returned in subsequent responses. Set `llmFormat` to match the upstream API's wire protocol.
        required: true
        content:
          application/json:
            examples:
              default:
                $ref: '#/components/examples/LlmCreate'
            schema:
              type: object
              required:
              - displayName
              - urls
              - llmFormat
              - modelName
              - secret
              properties:
                displayName:
                  type: string
                description:
                  type: string
                urls:
                  type: array
                  items:
                    type: object
                    properties:
                      url:
                        type: string
                        format: uri
                llmFormat:
                  type: string
                  enum:
                  - openai
                  - azure_openai
                  - groq_openai
                  - gemini
                  - none
                modelName:
                  type: string
                secret:
                  type: string
                metadata:
                  type: object
                reasoningEffort:
                  type:
                  - string
                  - 'null'
                  maxLength: 50
                  example: minimal
                  description: Reasoning effort for models that accept it. The value is forwarded verbatim to the provider/engine (e.g. default, none, minimal, low, medium, high, xhigh — supported values depend on the model). Omit or set null to use the model default.
                reasoningFormat:
                  type:
                  - string
                  - 'null'
                  enum:
                  - parsed
                  - hidden
                  - null
                  description: Groq reasoning format hint. Omit or set null to use the model default.
      responses:
        '201':
          description: Successfully created LLM
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LLM'
              examples:
                default:
                  $ref: '#/components/examples/LlmResponse'
        '400':
          description: Bad request - Invalid LLM data
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - API key lacks the required permission
        '500':
          description: Server error
      tags:
      - LLMs
      operationId: createLlm
      summary: create llm
      x-mint:
        metadata:
          title: create llm
        mcp:
          enabled: true
          name: create-llm
          description: Create a new LLM configuration
  /v1/llms/{id}:
    get:
      description: Get a specific LLM by ID
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
        description: The LLM ID
      responses:
        '200':
          description: Successfully retrieved LLM
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LLM'
              examples:
                default:
                  $ref: '#/components/examples/LlmResponse'
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - API key lacks the required permission
        '404':
          description: LLM not found
        '500':
          description: Server error
      tags:
      - LLMs
      operationId: getLlm
      summary: get llm
      x-mint:
        metadata:
          title: get llm
        mcp:
          enabled: true
          name: get-llm
          description: Get a specific LLM by ID
    put:
      description: Update an LLM configuration
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
        description: The LLM ID
      requestBody:
        description: Partial update of the LLM configuration. Only the fields you include are changed. Default LLMs (not owned by your organization) cannot be modified. Rotating `secret` replaces the stored credential. Changing `urls` to include a URL the LLM did not already have requires the top-level `secret` in the same request (a per-URL `urls[].secret` is not enough); otherwise the request is refused with 400.
        required: true
        content:
          application/json:
            examples:
              default:
                $ref: '#/components/examples/LlmUpdate'
            schema:
              type: object
              properties:
                displayName:
                  type: string
                description:
                  type: string
                url:
                  type: string
                llmFormat:
                  type: string
                  enum:
                  - openai
                  - azure_openai
                  - groq_openai
                  - anthropic
                  - custom
                modelName:
                  type: string
                secret:
                  type: string
                metadata:
                  type: object
                reasoningEffort:
                  type:
                  - string
                  - 'null'
                  maxLength: 50
                  example: minimal
                  description: Reasoning effort for models that accept it. The value is forwarded verbatim to the provider/engine (e.g. default, none, minimal, low, medium, high, xhigh — supported values depend on the model). Set null to clear and use the model default.
                reasoningFormat:
                  type:
                  - string
                  - 'null'
                  enum:
                  - parsed
                  - hidden
                  - null
                  description: Groq reasoning format hint. Set null to clear and use the model default.
      responses:
        '200':
          description: Successfully updated LLM
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LLM'
              examples:
                default:
                  $ref: '#/components/examples/LlmResponse'
        '400':
          description: Bad request - Invalid LLM data, or `urls` changed without `secret`
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - Cannot update default LLMs or API key lacks the required permission
        '404':
          description: LLM not found
        '500':
          description: Server error
      tags:
      - LLMs
      operationId: updateLlm
      summary: update llm
      x-mint:
        metadata:
          title: update llm
        mcp:
          enabled: true
          name: update-llm
          description: Update an LLM configuration
    delete:
      description: Delete an LLM configuration. When active personas (or their working drafts) still use the LLM, the request is refused with 409 because deleting it would make those personas' sessions fail. Move the impacted personas to another LLM (PUT /v1/personas/{id}), then retry.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
        description: The LLM ID
      responses:
        '204':
          description: Successfully deleted LLM
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - Cannot delete default LLMs or API key lacks the required permission
        '404':
          description: LLM not found
        '409':
          description: Conflict - the LLM is still used by active personas. Move those personas to another LLM, then retry.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: LLM is used by active personas. Move them to another LLM before deleting it.
                  impactedPersonaIds:
                    type: array
                    items:
                      type: string
                      format: uuid
        '500':
          description: Server error
      tags:
      - LLMs
      operationId: deleteLlm
      summary: delete llm
      x-mint:
        metadata:
          title: delete llm
        mcp:
          enabled: true
          name: delete-llm
          description: Delete an LLM configuration. When active personas (or their working drafts) still use the LLM, the request is refused with 409 because deleting it would make those personas' sessions fail. Move the impacted personas to another LLM (PUT /v1/personas/{id}), then retry.. Use with caution as this action cannot be undone.
components:
  schemas:
    LLM:
      type: object
      description: An LLM configuration a persona can use. Secrets are never returned.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the LLM configuration.
        displayName:
          type: string
          description: Human-readable name shown in the Lab.
        description:
          type:
          - string
          - 'null'
          description: Free-form description of the LLM configuration.
        llmFormat:
          type: string
          enum:
          - openai
          - azure_openai
          - groq_openai
          - gemini
          - none
          description: Wire format used to call the upstream LLM.
        urls:
          type: array
          items:
            $ref: '#/components/schemas/LlmUrl'
          description: Endpoints configured for this LLM.
        modelName:
          type:
          - string
          - 'null'
          description: Upstream model identifier (e.g. `gpt-4o`).
        temperature:
          type:
          - number
          - 'null'
          description: Sampling temperature applied when calling the LLM.
        maxTokens:
          type:
          - integer
          - 'null'
          description: Maximum tokens generated per response.
        deploymentName:
          type:
          - string
          - 'null'
          description: Azure OpenAI deployment name. Only used when `llmFormat` is `azure_openai`.
        apiVersion:
          type:
          - string
          - 'null'
          description: Azure OpenAI API version. Only used when `llmFormat` is `azure_openai`.
        metadata:
          type: object
          description: Free-form provider-specific metadata.
        displayTags:
          type: array
          items:
            type: string
          description: Tags used to categorise the LLM in the Lab UI.
        isDefault:
          type: boolean
          description: Whether this LLM is a built-in default available to every organization.
        isGlobal:
          type: boolean
          description: Whether this LLM is visible to every organization.
        isZdr:
          type: boolean
          description: Whether this LLM meets the Zero Data Retention requirements.
        isDeprecated:
          type: boolean
          readOnly: true
          description: Whether this stock LLM is deprecated. Deprecated LLMs remain available to ephemeral sessions but cannot be newly assigned to personas.
        reasoningEffort:
          type:
          - string
          - 'null'
          description: Reasoning effort hint for models that accept it. Forwarded verbatim to the provider/engine; supported values depend on the model. Null means the model default is used.
        reasoningFormat:
          type:
          - string
          - 'null'
          enum:
          - parsed
          - hidden
          - null
          description: Reasoning format hint for models that accept it. Null means the model default is used.
        createdByOrganizationId:
          type:
          - string
          - 'null'
          description: ID of the organization that created the LLM, or `null` for global defaults. IDs may be either UUIDs or nanoid-style strings depending on when the organization was created.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the LLM was created.
        updatedAt:
          type:
          - string
          - 'null'
          format: date-time
          description: Timestamp when the LLM was last updated.
    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.
    LlmUrl:
      type: object
      description: One endpoint configured on an LLM. Multiple URLs can be specified to route different regions to different upstreams.
      properties:
        url:
          type: string
          format: uri
          description: Upstream URL for the LLM endpoint.
        region:
          type: string
          description: Region hint used to pick this URL when the persona is streamed from a specific region.
  examples:
    LlmResponse:
      summary: A single LLM configuration
      value:
        id: a7cf662c-2ace-4de1-a21e-ef0fbf144bb7
        displayName: GPT-4o
        description: OpenAI GPT-4o default configuration.
        llmFormat: openai
        urls:
        - url: https://api.openai.com/v1/chat/completions
        modelName: gpt-4o
        temperature: 0.7
        maxTokens: 1024
        deploymentName: null
        apiVersion: null
        metadata: {}
        displayTags:
        - openai
        isDefault: true
        isGlobal: true
        isZdr: false
        isDeprecated: false
        createdByOrganizationId: null
        createdAt: '2026-04-20T10:00:00.000Z'
        updatedAt: null
    LlmListResponse:
      summary: A paginated list of LLMs
      value:
        data:
        - id: a7cf662c-2ace-4de1-a21e-ef0fbf144bb7
          displayName: GPT-4o
          description: OpenAI GPT-4o default configuration.
          llmFormat: openai
          urls:
          - url: https://api.openai.com/v1/chat/completions
          modelName: gpt-4o
          temperature: 0.7
          maxTokens: 1024
          deploymentName: null
          apiVersion: null
          metadata: {}
          displayTags:
          - openai
          isDefault: true
          isGlobal: true
          isZdr: false
          isDeprecated: false
          createdByOrganizationId: null
          createdAt: '2026-04-20T10:00:00.000Z'
          updatedAt: null
        meta:
          total: 1
          lastPage: 1
          currentPage: 1
          perPage: 10
          prev: null
          next: null
    LlmUpdate:
      summary: Adjust the temperature on an existing LLM
      value:
        temperature: 0.5
    LlmCreate:
      summary: Register an OpenAI-format LLM
      value:
        displayName: My GPT-4o
        urls:
        - url: https://api.openai.com/v1/chat/completions
        llmFormat: openai
        modelName: gpt-4o
        secret: sk-…
        temperature: 0.7
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
x-mint:
  mcp:
    enabled: true
x-provenance:
  method: harvested
  publisher: Anam.ai
  source: https://api.anam.ai/swagger.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)