Elementum Agents API

Manage AI agents

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/elementum-agents-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

elementum-agents-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Elementum Access Token Agents API
  description: Manage access tokens using OAuth 2.0 standards
  contact:
    email: apiteam@elementum.io
  version: 0.0.1
servers:
- url: /v1
tags:
- name: Agents
  description: Manage AI agents
paths:
  /apps/{alias}/agents:
    get:
      tags:
      - Agents
      summary: List agents under an app
      operationId: listAgents
      parameters:
      - $ref: '#/components/parameters/alias'
      - $ref: '#/components/parameters/first'
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/last'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/filter'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentPagedList'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
      security:
      - ClientCredentials: []
      x-codegen-request-body-name: body
    post:
      tags:
      - Agents
      summary: Create an agent under an app
      operationId: createAgent
      parameters:
      - $ref: '#/components/parameters/alias'
      requestBody:
        description: Agent creation request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentBundleCreateRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PassthroughObject'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
      security:
      - ClientCredentials: []
      x-codegen-request-body-name: body
  /apps/{alias}/agents/{id}:
    put:
      tags:
      - Agents
      summary: Update an agent by ID
      operationId: updateAgent
      parameters:
      - $ref: '#/components/parameters/alias'
      - $ref: '#/components/parameters/passthroughId'
      requestBody:
        description: Agent update request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentBundleUpdateRequest'
        required: true
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PassthroughObject'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
      security:
      - ClientCredentials: []
      x-codegen-request-body-name: body
components:
  parameters:
    last:
      name: last
      in: query
      description: The number of elements to retrieve before the 'before' cursor location
      required: false
      schema:
        maximum: 1000
        minimum: 1
        type: integer
        format: int32
    first:
      name: first
      in: query
      description: The number of elements to retrieve after the 'after' cursor location
      required: false
      schema:
        maximum: 1000
        minimum: 1
        type: integer
        format: int32
        default: 100
    filter:
      name: filter
      in: query
      description: An RSQL filter string.
      required: false
      schema:
        type: string
        format: string
      examples:
        In:
          summary: In
          description: In the provided list
          value: Number=in=1:2:3:4:5
        Between:
          summary: Between
          description: Between two values
          value: Number=bt=1:10
        Equals:
          summary: Equals
          description: Equals
          value: Status==Open
        LikeIgnoreCase:
          summary: LikeIgnoreCase
          description: Contains value, case insensitive
          value: Title=lki=Incidents
        And:
          summary: And
          description: The and ';' operator
          value: Created At!=null;Created At=ge=2021-01-01T07:58:30.000Z
        NotLike:
          summary: NotLike
          description: Doesn't contains value
          value: Title!lk=Incidents
        -- select --:
          value: ''
        Or:
          summary: Or
          description: The or ',' operator
          value: Created At!=null,Created At=ge=2021-01-01T07:58:30.00Z
        NotLikeIgnoreCase:
          summary: NotLikeIgnoreCase
          description: Doesn't contains value, case insensitive
          value: Title!lki=Incidents
        GreaterOrEqualTo:
          summary: GreaterOrEqualTo
          description: Greater than inclusive
          value: Created At=ge=2021-01-01T07:58:30.000Z
        NotBetween:
          summary: NotBetween
          description: Not Between two values
          value: Number!bt=1:10
        NotIn:
          summary: NotIn
          description: Not in the provided list
          value: Number!in=1:2:3:4:5
        LessThan:
          summary: LessThan
          description: Less than exclusive
          value: Created At=lt=2022-03-15T07:58:30.000Z
        Like:
          summary: Like
          description: Contains value
          value: Title=lk=Incidents
        LessOrEqualTo:
          summary: LessOrEqualTo
          description: Less than inclusive
          value: Created At=le=2021-01-01T07:58:30.000Z
        NotEquals:
          summary: NotEquals
          description: Not Equals
          value: Created At!=null
        GreaterThan:
          summary: GreaterThan
          description: Greater than exclusive
          value: Created At=gt=2022-03-15T07:58:30.000Z
    passthroughId:
      name: id
      in: path
      description: The resource ID
      required: true
      schema:
        type: string
        format: string
    alias:
      name: alias
      in: path
      description: The app's namespace or its UUID
      required: true
      schema:
        type: string
        format: string
    after:
      name: after
      in: query
      description: The starting cursor to begin searching, defaults to the beginning of the list
      required: false
      schema:
        type: string
    before:
      name: before
      in: query
      description: The starting cursor to begin searching, defaults to the end of the list
      required: false
      schema:
        type: string
  schemas:
    PagingState:
      type: object
      properties:
        has_previous_page:
          type: boolean
        start_cursor:
          type: string
        end_cursor:
          type: string
        has_next_page:
          type: boolean
    PassthroughObject:
      type: object
      additionalProperties: true
      description: Free-form JSON object forwarded to/from the downstream service.
    AgentBundleCreateRequest:
      required:
      - agent
      type: object
      properties:
        tools:
          type: array
          description: Optional tools to attach to the new agent
          items:
            type: object
            additionalProperties: true
        a2aSkills:
          type: array
          description: Optional A2A skills to attach to the new agent
          items:
            type: object
            additionalProperties: true
        agent:
          $ref: '#/components/schemas/AgentCreateInput'
      description: Body for POST /v1/apps/{alias}/agents.
    AgentBundleUpdateRequest:
      required:
      - agent
      type: object
      properties:
        tools:
          type: array
          description: Optional tool list. If present, the agent's existing tools are replaced with this list.
          items:
            type: object
            additionalProperties: true
        a2aSkills:
          type: array
          description: Optional A2A skill list. If present, the agent's existing A2A skills are replaced with this list.
          items:
            type: object
            additionalProperties: true
        agent:
          $ref: '#/components/schemas/AgentUpdateInput'
      description: Body for PUT /v1/apps/{alias}/agents/{id}.
    AgentUpdateInput:
      type: object
      properties:
        elementum:
          $ref: '#/components/schemas/AgentSubtypeUpdateInput'
      description: Discriminator wrapper. Exactly one subtype field must be populated.
    AgentPagedList:
      type: object
      properties:
        paging:
          $ref: '#/components/schemas/PagingState'
        total:
          type: integer
          format: int32
        items:
          type: array
          items:
            $ref: '#/components/schemas/Agent'
    AgentSubtypeCreateInput:
      type: object
      properties:
        avatarAttachmentId:
          type: string
          description: Attachment ID for the agent's avatar image
          format: uuid
        maxLength:
          type: integer
          description: Maximum tokens the model may return per turn
          format: int32
        firstMessage:
          type: string
          description: Opening message the agent posts when a conversation starts
        reasoningEffort:
          type: string
          description: How much hidden reasoning the model is allowed before answering
          enum:
          - MINIMAL
          - LOW
          - MEDIUM
          - HIGH
        name:
          type: string
          description: The agent's display name
        description:
          type: string
          description: Short summary shown to users picking an agent
        aiProviderConnectorId:
          type: string
          description: ID of the AI provider connector the agent uses
          format: uuid
        temperature:
          type: number
          description: Model sampling temperature; typical range 0.0–2.0
        instructions:
          type: string
          description: System prompt steering the agent's behavior
      additionalProperties: true
      description: Agent creation input. Less common fields (voiceConfig, agentAuthentication, runAs, startingActions, skillAccessConfig, systemToolsConfig, a2aStreaming, a2aRecordConfig, conversationIdleTimeout) are accepted and forwarded as-is.
    AgentCreateInput:
      type: object
      properties:
        elementum:
          $ref: '#/components/schemas/AgentSubtypeCreateInput'
      description: Discriminator wrapper. Exactly one subtype field must be populated.
    AgentSubtypeUpdateInput:
      type: object
      properties:
        avatarAttachmentId:
          type: string
          description: Attachment ID for the agent's avatar image
          format: uuid
        maxLength:
          type: integer
          description: Maximum tokens the model may return per turn
          format: int32
        firstMessage:
          type: string
          description: Opening message the agent posts when a conversation starts
        reasoningEffort:
          type: string
          description: How much hidden reasoning the model is allowed before answering
          enum:
          - MINIMAL
          - LOW
          - MEDIUM
          - HIGH
        name:
          type: string
          description: The agent's display name
        description:
          type: string
          description: Short summary shown to users picking an agent
        aiProviderConnectorId:
          type: string
          description: ID of the AI provider connector the agent uses
          format: uuid
        temperature:
          type: number
          description: Model sampling temperature; typical range 0.0–2.0
        instructions:
          type: string
          description: System prompt steering the agent's behavior
      additionalProperties: true
      description: Agent update input. Only fields you wish to change need to be included; omitted fields keep their current value. Less common fields (voiceConfig, agentAuthentication, runAs, startingActions, skillAccessConfig, systemToolsConfig, a2aStreaming, a2aRecordConfig, conversationIdleTimeout) are accepted and forwarded as-is.
    Agent:
      type: object
      properties:
        type:
          type: string
          description: The agent variant (AgentElementum, AgentSystem, AgentBrowserUse, AgentSnowflake, AgentBedrock, AgentExternal)
        id:
          type: string
          description: The agent ID
          format: uuid
        maxLength:
          type: integer
          description: Maximum tokens the model may return per turn
          format: int32
        reasoningEffort:
          type: string
          description: How much hidden reasoning the model is allowed before answering
          enum:
          - MINIMAL
          - LOW
          - MEDIUM
          - HIGH
        description:
          type: string
          description: Short summary shown to users picking an agent
        name:
          type: string
          description: The agent's display name
        temperature:
          type: number
          description: Model sampling temperature; typical range 0.0–2.0
      description: An agent returned by the agents list endpoint (summary projection).
  responses:
    '401':
      description: Unauthorized
    '422':
      description: Unprocessable Entity
    '429':
      description: Too Many Requests
    '403':
      description: Forbidden
    '500':
      description: Internal Server Error
    '404':
      description: Not Found
    '400':
      description: Bad Request
  securitySchemes:
    ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /oauth/token
externalDocs:
  description: Find out more about Elementum
  url: https://www.elementum.com/