Dynamic providers
Dynamic providers allow runtime configuration of LLM backends without restarting the gateway. Useful for BYOK (bring-your-own-key) scenarios.
Create a dynamic provider
Authorization
api_key API key authentication using Bearer token format
In: header
Request Body
application/json
Reference to API key in secrets manager
List of supported model names
Owner of a dynamic provider
Provider type (e.g., "open_ai", "anthropic")
Response Body
application/json
application/json
curl -X POST "https://loading/admin/v1/dynamic-providers" \ -H "Content-Type: application/json" \ -d '{ "base_url": "string", "name": "string", "owner": { "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b", "type": "organization" }, "provider_type": "string" }'{
"api_key_secret_ref": "string",
"base_url": "string",
"created_at": "2019-08-24T14:15:22Z",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"is_enabled": true,
"models": [
"string"
],
"name": "string",
"owner": {
"org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",
"type": "organization"
},
"provider_type": "string",
"updated_at": "2019-08-24T14:15:22Z"
}{
"error": {
"code": "budget_exceeded",
"message": "Budget limit exceeded for monthly period",
"param": null,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "invalid_request_error"
}
}Get a dynamic provider by ID
Authorization
api_key API key authentication using Bearer token format
In: header
Path Parameters
Dynamic provider ID
uuidResponse Body
application/json
application/json
curl -X GET "https://loading/admin/v1/dynamic-providers/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"api_key_secret_ref": "string",
"base_url": "string",
"created_at": "2019-08-24T14:15:22Z",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"is_enabled": true,
"models": [
"string"
],
"name": "string",
"owner": {
"org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",
"type": "organization"
},
"provider_type": "string",
"updated_at": "2019-08-24T14:15:22Z"
}{
"error": {
"code": "budget_exceeded",
"message": "Budget limit exceeded for monthly period",
"param": null,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "invalid_request_error"
}
}Update a dynamic provider
Authorization
api_key API key authentication using Bearer token format
In: header
Path Parameters
Dynamic provider ID
uuidRequest Body
application/json
Reference to API key in secrets manager
List of supported model names
Response Body
application/json
application/json
curl -X PATCH "https://loading/admin/v1/dynamic-providers/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{
"api_key_secret_ref": "string",
"base_url": "string",
"created_at": "2019-08-24T14:15:22Z",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"is_enabled": true,
"models": [
"string"
],
"name": "string",
"owner": {
"org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",
"type": "organization"
},
"provider_type": "string",
"updated_at": "2019-08-24T14:15:22Z"
}{
"error": {
"code": "budget_exceeded",
"message": "Budget limit exceeded for monthly period",
"param": null,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "invalid_request_error"
}
}Delete a dynamic provider
Authorization
api_key API key authentication using Bearer token format
In: header
Path Parameters
Dynamic provider ID
uuidResponse Body
application/json
curl -X DELETE "https://loading/admin/v1/dynamic-providers/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"error": {
"code": "budget_exceeded",
"message": "Budget limit exceeded for monthly period",
"param": null,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "invalid_request_error"
}
}List dynamic providers by organization
Authorization
api_key API key authentication using Bearer token format
In: header
Path Parameters
Organization slug
Query Parameters
Maximum number of results to return
int64Cursor for keyset pagination. Encoded as base64 string.
Pagination direction: "forward" (default) or "backward".
Include soft-deleted records in results
Response Body
application/json
application/json
application/json
curl -X GET "https://loading/admin/v1/organizations/string/dynamic-providers"{
"data": [
{
"api_key_secret_ref": "string",
"base_url": "string",
"created_at": "2019-08-24T14:15:22Z",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"is_enabled": true,
"models": [
"string"
],
"name": "string",
"owner": {
"org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",
"type": "organization"
},
"provider_type": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
],
"pagination": {
"has_more": true,
"limit": 100,
"next_cursor": "MTczMzU4MDgwMDAwMDphYmMxMjM0NS02Nzg5LTAxMjMtNDU2Ny0wMTIzNDU2Nzg5YWI",
"prev_cursor": "string"
}
}{
"error": {
"code": "budget_exceeded",
"message": "Budget limit exceeded for monthly period",
"param": null,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "invalid_request_error"
}
}{
"error": {
"code": "budget_exceeded",
"message": "Budget limit exceeded for monthly period",
"param": null,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "invalid_request_error"
}
}List dynamic providers by project
Authorization
api_key API key authentication using Bearer token format
In: header
Path Parameters
Organization slug
Project slug
Query Parameters
Maximum number of results to return
int64Cursor for keyset pagination. Encoded as base64 string.
Pagination direction: "forward" (default) or "backward".
Include soft-deleted records in results
Response Body
application/json
application/json
application/json
curl -X GET "https://loading/admin/v1/organizations/string/projects/string/dynamic-providers"{
"data": [
{
"api_key_secret_ref": "string",
"base_url": "string",
"created_at": "2019-08-24T14:15:22Z",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"is_enabled": true,
"models": [
"string"
],
"name": "string",
"owner": {
"org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",
"type": "organization"
},
"provider_type": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
],
"pagination": {
"has_more": true,
"limit": 100,
"next_cursor": "MTczMzU4MDgwMDAwMDphYmMxMjM0NS02Nzg5LTAxMjMtNDU2Ny0wMTIzNDU2Nzg5YWI",
"prev_cursor": "string"
}
}{
"error": {
"code": "budget_exceeded",
"message": "Budget limit exceeded for monthly period",
"param": null,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "invalid_request_error"
}
}{
"error": {
"code": "budget_exceeded",
"message": "Budget limit exceeded for monthly period",
"param": null,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "invalid_request_error"
}
}List dynamic providers by user
Authorization
api_key API key authentication using Bearer token format
In: header
Path Parameters
User ID
uuidQuery Parameters
Maximum number of results to return
int64Cursor for keyset pagination. Encoded as base64 string.
Pagination direction: "forward" (default) or "backward".
Include soft-deleted records in results
Response Body
application/json
application/json
curl -X GET "https://loading/admin/v1/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/dynamic-providers"{
"data": [
{
"api_key_secret_ref": "string",
"base_url": "string",
"created_at": "2019-08-24T14:15:22Z",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"is_enabled": true,
"models": [
"string"
],
"name": "string",
"owner": {
"org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",
"type": "organization"
},
"provider_type": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
],
"pagination": {
"has_more": true,
"limit": 100,
"next_cursor": "MTczMzU4MDgwMDAwMDphYmMxMjM0NS02Nzg5LTAxMjMtNDU2Ny0wMTIzNDU2Nzg5YWI",
"prev_cursor": "string"
}
}{
"error": {
"code": "budget_exceeded",
"message": "Budget limit exceeded for monthly period",
"param": null,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "invalid_request_error"
}
}