listProviders.md

List providers

OpenAPI

api-reference/llm-gateway-openapi.yml
get /admin/providers
openapi: 3.1.0
info:
  title: Barndoor LLM Gateway API
  version: 1.0.0
  description: >
    REST API for the Barndoor LLM Gateway: configure providers, model routes,

pricing, governance, and operate a multi-provider LLM platform
    programmatically.

All endpoints in this document are scoped to your organization. They are the

same APIs powering the Barndoor portal under **LLM Configuration**,

**LLM Controls**, and **Settings - My Models**, exposed for teams that

prefer scripting over the UI.

## Base URL

All requests are issued against your Barndoor instance:

https://app.barndoor.ai/api/llm-gateway


Replace `app.barndoor.ai` with your tenant host if you run on Enterprise.

## Authentication

Endpoints accept a JWT Bearer token issued by your Barndoor identity

provider. Tokens can be obtained interactively via the Barndoor SDK:

```ts

const sdk = await loginInteractive();

The token must be sent in the Authorization header on every request:


Authorization: Bearer eyJhbGciOi...

Note: the bd-... API keys you create through these endpoints are for

runtime LLM traffic (/v1/chat/completions, /v1/messages, etc.), not for

administrative calls. Administrative endpoints require a user/admin JWT.

Permissions

Most endpoints require an admin (or higher) role on the calling user.

Read-only endpoints are typically accessible by all authenticated users.

Read-only listings under /user/... are scoped to the authenticated user.

Errors

Errors are returned as JSON with a stable shape:

    { "error": "BadRequest", "message": "request_timeout_secs must be between 1
    and 3600" }

contact: name: Barndoor Support url: https://barndoor.ai servers:

components: schemas: Provider: type: object description: A named upstream provider backed by a credential and a model family. required: - id - org_id - name - model_provider - auth_type - base_url - enabled - settings - created_at - updated_at properties: id: type: string format: uuid org_id: type: string format: uuid catalog_id: type: string format: uuid nullable: true description: Reference to a built-in provider catalog template, if used connection_id: type: string format: uuid nullable: true description: Reference to a shared Credentials record, if any name: type: string example: OpenAI Production (US) model_provider: $ref: '#/components/schemas/ModelProviderSlug' auth_type: $ref: '#/components/schemas/AuthType' base_url: type: string format: uri enabled: type: boolean default: true settings: type: object additionalProperties: true request_timeout_secs: type: integer nullable: true minimum: 1 maximum: 3600 description: | Provider-tier total-request timeout override. When null (the default) the gateway inherits the platform default. Affects every route served by this provider unless a more specific Model Route value overrides it. stream_idle_timeout_secs: type: integer nullable: true minimum: 1 maximum: 1800 description: | Maximum allowed idle gap between streamed response chunks. null inherits the platform default. catalog_slug: type: string nullable: true description: Catalog slug shorthand used in some response listings ModelProviderSlug: type: string description: Slug of the upstream model provider this resource speaks to enum: - openai - anthropic - azure_openai - google_ai - bedrock - vertex - groq - together - mistral - cohere - xai - fireworks - perplexity - openrouter - deepseek - custom example: openai AuthType: type: string description: > The authentication scheme this credential or provider uses to talk to

the upstream model provider. Valid values depend on model_provider:

for OpenAI/Anthropic-style vendors this is typically api_key; for AWS

Bedrock it is one of aws_role, aws_keys, or bedrock_api_key; for

Google Vertex it is google_adc, google_service_account, or

google_impersonation; Anthropic OAuth passthrough uses oauth_passthrough. example: api_key securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT description: | JWT obtained through Barndoor's authentication flow. Pass the token verbatim in Authorization: Bearer <token>. Use the Barndoor SDK's loginInteractive() helper to obtain a token in scripts and notebooks.