Coder AI Providers API
The AI Providers API from Coder — 2 operation(s) for ai providers.
The AI Providers API from Coder — 2 operation(s) for ai providers.
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/coder:coder-ai-providers-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:
description: Coderd is the service created by running coder server. It is a thin API that connects workspaces, provisioners and users. coderd stores its state in Postgres and is the only service that communicates with Postgres.
title: Coder AI Providers API
termsOfService: https://coder.com/legal/terms-of-service
contact:
name: API Support
url: https://coder.com
email: support@coder.com
license:
name: AGPL-3.0
url: https://github.com/coder/coder/blob/main/LICENSE
version: '2.0'
servers:
- url: /
tags:
- name: AI Providers
paths:
/api/v2/ai/providers:
get:
tags:
- AI Providers
summary: List AI providers
operationId: list-ai-providers
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/codersdk.AIProvider'
security:
- CoderSessionToken: []
post:
tags:
- AI Providers
summary: Create an AI provider
operationId: create-an-ai-provider
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/codersdk.AIProvider'
security:
- CoderSessionToken: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/codersdk.CreateAIProviderRequest'
description: Create AI provider request
required: true
/api/v2/ai/providers/{idOrName}:
get:
tags:
- AI Providers
summary: Get an AI provider
operationId: get-an-ai-provider
parameters:
- description: Provider ID or name
name: idOrName
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/codersdk.AIProvider'
security:
- CoderSessionToken: []
delete:
tags:
- AI Providers
summary: Delete an AI provider
operationId: delete-an-ai-provider
parameters:
- description: Provider ID or name
name: idOrName
in: path
required: true
schema:
type: string
responses:
'204':
description: No Content
security:
- CoderSessionToken: []
patch:
tags:
- AI Providers
summary: Update an AI provider
operationId: update-an-ai-provider
parameters:
- description: Provider ID or name
name: idOrName
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/codersdk.AIProvider'
security:
- CoderSessionToken: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/codersdk.UpdateAIProviderRequest'
description: Update AI provider request
required: true
components:
schemas:
codersdk.AIProviderStatus:
type: object
properties:
warnings:
type: array
items:
type: string
codersdk.AIProviderKey:
type: object
properties:
created_at:
type: string
format: date-time
id:
type: string
format: uuid
masked:
type: string
codersdk.AIProviderSettings:
type: object
codersdk.UpdateAIProviderRequest:
type: object
properties:
api_keys:
type: array
items:
$ref: '#/components/schemas/codersdk.AIProviderKeyMutation'
base_url:
type: string
display_name:
type: string
enabled:
type: boolean
icon:
type: string
settings:
$ref: '#/components/schemas/codersdk.AIProviderSettings'
codersdk.CreateAIProviderRequest:
type: object
properties:
api_keys:
type: array
items:
type: string
base_url:
type: string
display_name:
type: string
enabled:
type: boolean
icon:
type: string
name:
type: string
settings:
$ref: '#/components/schemas/codersdk.AIProviderSettings'
type:
$ref: '#/components/schemas/codersdk.AIProviderType'
codersdk.AIProviderKeyMutation:
type: object
properties:
api_key:
type: string
id:
type: string
format: uuid
codersdk.AIProvider:
type: object
properties:
api_keys:
type: array
items:
$ref: '#/components/schemas/codersdk.AIProviderKey'
base_url:
type: string
created_at:
type: string
format: date-time
display_name:
type: string
enabled:
type: boolean
icon:
type: string
id:
type: string
format: uuid
name:
type: string
settings:
$ref: '#/components/schemas/codersdk.AIProviderSettings'
status:
description: Status carries runtime routing status; nil when empty.
allOf:
- $ref: '#/components/schemas/codersdk.AIProviderStatus'
type:
$ref: '#/components/schemas/codersdk.AIProviderType'
updated_at:
type: string
format: date-time
codersdk.AIProviderType:
type: string
enum:
- openai
- anthropic
- azure
- google
- openai-compat
- openrouter
- vercel
- bedrock
- copilot
x-enum-varnames:
- AIProviderTypeOpenAI
- AIProviderTypeAnthropic
- AIProviderTypeAzure
- AIProviderTypeGoogle
- AIProviderTypeOpenAICompat
- AIProviderTypeOpenrouter
- AIProviderTypeVercel
- AIProviderTypeBedrock
- AIProviderTypeCopilot
securitySchemes:
AIGatewayKey:
type: apiKey
name: X-AI-Governance-Gateway-Key
in: header
Authorization:
type: apiKey
name: Authorization
in: header
CoderSessionToken:
type: apiKey
name: Coder-Session-Token
in: header
x-provenance:
method: harvested
publisher: Coder
source: https://raw.githubusercontent.com/coder/coder/main/coderd/apidoc/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)