Anam.ai LL Ms API
The LLMs API from Anam.ai — 2 operation(s) for llms.
The LLMs API from Anam.ai — 2 operation(s) for llms.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/anamai:anamai-llms-api"
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.
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: 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)