Create a custom provider
https://api.respan.ai/api/providers/To update an existing provider, use PATCH /api/providers/{provider_id}/.
Servers
https://api.respan.ai — Respan API Server
Authentication
RespanApiKey
Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.
HTTP scheme: bearer; format: Respan API key.
Authorization: Bearer $RESPAN_API_KEYOr:
DashboardJwt
Use a dashboard JWT only for dashboard-authenticated endpoints. Respan API-key endpoints use the respanApiKey auth field instead.
HTTP scheme: bearer; format: Dashboard JWT.
Authorization: Bearer $RESPAN_DASHBOARD_JWTRequest body
A request body is required.
application/json
$ object Required body
provider_id string Required in parentExample:
"my-vllm"provider_name string Required in parentExample:
"My vLLM Server"extra_kwargs object OptionalAdditional properties are allowed
Example:
{"api_key":"sk_provider_xxxxx","base_url":"https://vllm.example.com/v1","timeout":60}OpenAPI request schema
{
"type": "object",
"required": [
"provider_id",
"provider_name"
],
"properties": {
"provider_id": {
"type": "string",
"description": "Unique provider identifier within your organization.",
"example": "my-vllm"
},
"provider_name": {
"type": "string",
"description": "Human-readable provider name.",
"example": "My vLLM Server"
},
"extra_kwargs": {
"type": "object",
"description": "Provider configuration. Put provider credentials under extra_kwargs.api_key.",
"additionalProperties": true,
"example": {
"api_key": "sk_provider_xxxxx",
"base_url": "https://vllm.example.com/v1",
"timeout": 60
}
}
}
}Responses
201
Created provider.
application/json
$ object Body
id string Required in parentprovider_id.Example:
"my-vllm"provider_id string Required in parentExample:
"my-vllm"provider_name string Required in parentExample:
"My vLLM Server"extra_kwargs object OptionalAdditional properties are allowed
Example:
{"base_url":"https://vllm.example.com/v1"}created_at string or null Optionaldate-timeupdated_at string or null Optionaldate-timeOpenAPI response schema
{
"type": "object",
"required": [
"id",
"provider_id",
"provider_name"
],
"properties": {
"id": {
"type": "string",
"description": "Provider string ID. Same value as `provider_id`.",
"example": "my-vllm"
},
"provider_id": {
"type": "string",
"description": "Unique provider identifier within your organization.",
"example": "my-vllm"
},
"provider_name": {
"type": "string",
"description": "Human-readable provider name.",
"example": "My vLLM Server"
},
"extra_kwargs": {
"type": "object",
"description": "Stored provider configuration. The current backend returns this object, including credentials it contains; handle the response as sensitive.",
"additionalProperties": true,
"example": {
"base_url": "https://vllm.example.com/v1"
}
},
"created_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"nullable": true
}
},
"additionalProperties": true
}400
Bad Request
application/json
$ object Body
detail string Optionalerror string OptionalOpenAPI response schema
{
"type": "object",
"properties": {
"detail": {
"type": "string"
},
"error": {
"type": "string"
}
}
}Example
{
"error": "Invalid request"
}403
The API key is missing, invalid or expired.
application/json
$ object Body
detail string Required in parentOpenAPI response schema
{
"type": "object",
"required": [
"detail"
],
"properties": {
"detail": {
"type": "string"
}
}
}Example
{
"detail": "Your API key is invalid or expired, please check your API key in the platform settings."
}OpenAPI source
The operation and referenced components below retain the complete OpenAPI definitions, including constraints and examples.
OpenAPI operation
{
"summary": "Create a custom provider",
"operationId": "createCustomProvider",
"tags": [
"Models"
],
"description": "To update an existing provider, use `PATCH /api/providers/{provider_id}/`.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"provider_id",
"provider_name"
],
"properties": {
"provider_id": {
"type": "string",
"description": "Unique provider identifier within your organization.",
"example": "my-vllm"
},
"provider_name": {
"type": "string",
"description": "Human-readable provider name.",
"example": "My vLLM Server"
},
"extra_kwargs": {
"type": "object",
"description": "Provider configuration. Put provider credentials under extra_kwargs.api_key.",
"additionalProperties": true,
"example": {
"api_key": "sk_provider_xxxxx",
"base_url": "https://vllm.example.com/v1",
"timeout": 60
}
}
}
}
}
}
},
"responses": {
"201": {
"description": "Created provider.",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"id",
"provider_id",
"provider_name"
],
"properties": {
"id": {
"type": "string",
"description": "Provider string ID. Same value as `provider_id`.",
"example": "my-vllm"
},
"provider_id": {
"type": "string",
"description": "Unique provider identifier within your organization.",
"example": "my-vllm"
},
"provider_name": {
"type": "string",
"description": "Human-readable provider name.",
"example": "My vLLM Server"
},
"extra_kwargs": {
"type": "object",
"description": "Stored provider configuration. The current backend returns this object, including credentials it contains; handle the response as sensitive.",
"additionalProperties": true,
"example": {
"base_url": "https://vllm.example.com/v1"
}
},
"created_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"nullable": true
}
},
"additionalProperties": true
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"detail": {
"type": "string"
},
"error": {
"type": "string"
}
}
},
"example": {
"error": "Invalid request"
}
}
}
},
"403": {
"$ref": "#/components/responses/InvalidApiKey"
}
},
"security": [
{
"RespanApiKey": []
},
{
"DashboardJwt": []
}
]
}OpenAPI path metadata
{}Referenced OpenAPI components
{
"responses": {
"InvalidApiKey": {
"description": "The API key is missing, invalid or expired.",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"detail"
],
"properties": {
"detail": {
"type": "string"
}
}
},
"example": {
"detail": "Your API key is invalid or expired, please check your API key in the platform settings."
}
}
}
}
},
"securitySchemes": {
"DashboardJwt": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "Dashboard JWT",
"description": "Use a dashboard JWT only for dashboard-authenticated endpoints. Respan API-key endpoints use the respanApiKey auth field instead.",
"x-fern-bearer": {
"name": "dashboardJwt",
"env": "RESPAN_DASHBOARD_JWT"
}
},
"RespanApiKey": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "Respan API key",
"description": "Use your Respan API key for Respan API authentication. Enter only the Respan API key value; clients send Authorization: Bearer <RESPAN_API_KEY>. For /api/responses, provider credentials such as Perplexity, OpenAI, or Azure OpenAI go in Settings -> Providers or respan_params.credential_override in the request body, not in this authentication field.",
"x-fern-bearer": {
"name": "respanApiKey",
"env": "RESPAN_API_KEY"
}
}
}
}