Ana içeriğe geç

List LLM Providers

Endpoint​

GET /apiops/projects/{projectName}/llm-providers/

Authentication​

Requires a Personal API Access Token.

Authorization: Bearer YOUR_TOKEN

Request​

Headers​

HeaderValueRequired
AuthorizationBearer {token}Yes

Path Parameters​

ParameterTypeRequiredDescription
projectNamestringYesProject name

Query Parameters​

None

Response​

Success Response (200 OK)​

{
"status": "SUCCESS",
"resultList": [
{
"id": "6712a3f4e1b2c3d4e5f60011",
"projectId": "660f1e2a9c4b5a6d7e8f9012",
"projectName": "MyProject",
"name": "deepseek-primary",
"description": "DeepSeek production provider",
"enabled": true,
"providerType": "DEEPSEEK",
"endpoint": "https://api.deepseek.com/v1",
"apiVersion": "v1",
"organizationId": null,
"authScheme": "BEARER",
"authHeaderName": "Authorization",
"credentialSource": "GATEWAY",
"apiKeyLocation": "HEADER",
"apiKeyPrefix": null,
"allowClientOverride": false,
"apiKeySet": true,
"apiSecretSet": false,
"serviceAccountJsonSet": false,
"supportedModels": [
{
"modelId": "deepseek-chat",
"displayName": "DeepSeek Chat",
"contextWindow": 64000,
"maxOutputTokens": 8192,
"pricePerMillionInput": 0.27,
"pricePerMillionOutput": 1.10,
"capabilities": ["function_calling"],
"modality": "TEXT",
"isDeprecated": false
}
],
"providerRpmLimit": 500,
"providerTpmLimit": 100000,
"coldStartRetryEnabled": false,
"lastHealthCheckAt": "2026-07-13T09:15:00Z",
"healthStatus": "HEALTHY",
"lastLatencyMs": 240,
"providerDefinitionId": null,
"allowedModelIds": ["deepseek-chat"],
"deploymentType": "CLOUD",
"builtIn": false,
"metadata": []
}
],
"resultCount": 1
}

Response Fields​

FieldTypeDescription
statusstringResponse status: SUCCESS or FAILURE
resultListarrayList of LLM provider objects
resultCountintegerTotal number of providers returned

LLM Provider Object Fields​

FieldTypeDescription
idstringInternal identifier (read-only)
projectIdstringProject identifier (read-only)
projectNamestringProject name (read-only)
namestringProvider name (unique within the project)
descriptionstringFree-text description
enabledbooleanWhether the provider is active
providerTypestringProvider type enum constant (e.g. OPENAI, ANTHROPIC, AZURE_OPENAI, BEDROCK, VERTEX, DEEPSEEK, GROQ, VLLM, OLLAMA)
endpointstringBase API URL (e.g. https://api.deepseek.com/v1)
wireProtocolstringWire protocol the adapter speaks (OPENAI_COMPATIBLE, ANTHROPIC, BEDROCK, VERTEX, COHERE). Snapshot taken at save time from the built-in template or custom connection settings — read-only here. See note below.
defaultChatCompletionPathstringChat-completion path appended to endpoint. Snapshot; read-only.
defaultEmbeddingPathstringEmbedding path. Snapshot; read-only.
defaultAudioTranscriptionPathstringAudio-transcription path. Snapshot; read-only.
defaultAudioSpeechPathstringText-to-speech path. Snapshot; read-only.
defaultImageGenerationPathstringImage-generation path. Snapshot; read-only.
defaultResponsesPathstringResponses-API path. Snapshot; read-only.
apiVersionstringProvider API version (e.g. v1, 2024-02-15-preview)
organizationIdstringOrganization identifier (OpenAI org-...; optional)
authSchemestringAuth scheme enum constant (BEARER, API_KEY_HEADER, BASIC, AWS_SIGV4, OAUTH2, NONE, CUSTOM) — see Credential Type by authScheme
authHeaderNamestringHeader used to carry the credential (e.g. Authorization, x-api-key, api-key)
credentialSourcestringWho supplies the credential: GATEWAY or CLIENT. Never null in the response — legacy records default to GATEWAY
apiKeyLocationstringWhere the API key travels: HEADER or QUERY. Never null in the response — legacy records default to HEADER
apiKeyPrefixstringStored value prefix; null means the auth scheme's own prefix is used, "" means the raw key with no prefix
allowClientOverridebooleantrue if an incoming request's own auth header is kept instead of the stored credential (GATEWAY mode only); null/false otherwise
apiKeySetbooleantrue if an apiKey is configured (secret value never returned)
apiSecretSetbooleantrue if an apiSecret is configured (secret value never returned)
serviceAccountJsonSetbooleantrue if a GCP Vertex service-account JSON is configured (secret value never returned via APIops)
supportedModelsarrayPer-provider model snapshots (see fields below)
providerRpmLimitintegerOrganization-level requests-per-minute limit
providerTpmLimitintegerOrganization-level tokens-per-minute limit
coldStartRetryEnabledbooleanRetry on 503 for self-hosted providers (vLLM/Ollama cold start)
lastHealthCheckAtstringISO-8601 timestamp of the last health probe (read-only)
healthStatusstringLast probe result enum constant (UNKNOWN, HEALTHY, DOWN) (read-only)
lastLatencyMsintegerLast probe round-trip time in milliseconds (read-only)
providerDefinitionIdstringOptional catalog provider definition reference
allowedModelIdsarray[string]Integration-level model filter; empty/null = all models allowed
deploymentTypestringDeployment type enum constant (CLOUD, ON_PREM)
builtInbooleantrue for system-provided built-in templates (read-only).
metadataarrayCustom key/value metadata entries; secret values are nulled
Endpoint path snapshots

wireProtocol and the six default*Path fields are snapshots: the manager copies them from the built-in provider template (or custom connection settings) when the connection is saved, and the gateway reads only this copy. They are returned for visibility and are not writable through this API — send them and they are ignored; omit them and the stored values are preserved.

The effective request URL is endpoint + the path for the modality being called. Both halves support Apinizer variable resolution (${env.name} and #{contextVar}), resolved at request time, so one connection definition can point at different paths per environment. A path left empty falls back to the provider type's built-in default.

Supported Model (LlmModelDef) Fields​

FieldTypeDescription
modelIdstringModel identifier (e.g. deepseek-chat)
displayNamestringHuman-readable model name
contextWindowintegerMaximum context window in tokens
maxOutputTokensintegerMaximum output tokens
pricePerMillionInputnumberUSD per 1M input tokens
pricePerMillionOutputnumberUSD per 1M output tokens
pricePerMillionCachednumberUSD per 1M cached tokens (optional)
pricePerMillionCacheWritenumberUSD per 1M cache-write tokens (flat rate; optional)
cacheWritePricesByTtlarrayCache-write price per TTL — see Cache-Write Price Fields
contextTierPricesarrayLong-context price tiers — see Context-Tier Price Fields
serviceTierPricesarrayProvider service-tier price multipliers — see Service-Tier Price Fields
capabilitiesarray[string]Capability tags, normalized on save — see Capabilities Normalization
modalitystringModality enum constant (TEXT, VISION, AUDIO, EMBEDDING, RERANK, MULTIMODAL, IMAGE)
isDeprecatedbooleanWhether the model is deprecated

EnumStatus​

  • SUCCESS - Operation successful
  • FAILURE - Operation failed

Error Response (400 Bad Request)​

{
"status": "FAILURE",
"resultMessage": "Project (name: MyProject) was not found!"
}

Error Response (401 Unauthorized)​

{
"status": "FAILURE",
"resultMessage": "Token is not valid!"
}

cURL Example​

curl -X GET \
"https://demo.apinizer.com/apiops/projects/MyProject/llm-providers/" \
-H "Authorization: Bearer YOUR_TOKEN"

Notes and Warnings​

  • Secret Masking (INV-06):
    • apiKey, apiSecret and serviceAccountJson are never returned in plaintext
    • Presence is exposed via apiKeySet / apiSecretSet / serviceAccountJsonSet boolean flags
    • Secret metadata values are returned as null
  • Enum Serialization:
    • providerType, authScheme, credentialSource, apiKeyLocation, deploymentType and model modality serialize as the enum constant name (e.g. DEEPSEEK, BEARER, GATEWAY, HEADER, CLOUD, TEXT), not lowercase
  • Empty List:
    • If no providers exist, an empty resultList with resultCount: 0 is returned
  • Usage References:
    • The usedByRefs field (API proxies referencing the provider) is only populated by the single-provider Get LLM Provider endpoint, not by this list endpoint