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",
"enabled": true,
"aclEnabled": false,
"aclEntries": []
}
],
"onlyListedModels": false,
"lastHealthCheckAt": "2026-07-13T09:15:00Z",
"healthStatus": "HEALTHY",
"lastLatencyMs": 240,
"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). Taken from the provider type or the connection settings. Writable through create and update. See note below.
defaultChatCompletionPathstringChat-completion path appended to endpoint. Writable through create and update.
defaultEmbeddingPathstringEmbedding path. Writable through create and update.
defaultAudioTranscriptionPathstringAudio-transcription path. Writable through create and update.
defaultAudioSpeechPathstringText-to-speech path. Writable through create and update.
defaultImageGenerationPathstringImage-generation path. Writable through create and update.
defaultResponsesPathstringResponses-API path. Writable through create and update.
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)
supportedModelsarrayThe models of the provider (see fields below)
coldStartRetryEnabledbooleanDeprecated, has no effect. Returned for compatibility only
onlyListedModelsbooleantrue if the gateway refuses a model ID that is not in supportedModels; null/false otherwise (unlisted model IDs are passed to the provider as is)
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)
deploymentTypestringDeployment type enum constant (CLOUD, ON_PREM, OTHER); a report-only label, OTHER for custom providers
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 stored with the connection, and the gateway reads this copy. You can write them through create and update. A write that omits them, or sends a blank path, keeps the stored values. A write that changes providerType does not keep them; the new type's own apply.

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 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)
pricePerImagenumberUSD per generated image
pricePerAudioMinutenumberUSD per minute of audio (STT)
pricePerCharacterTtsnumberUSD per input character (TTS)
enabledbooleanfalse makes the gateway refuse the model with 403 and leave it out of GET /v1/models
aclEnabledbooleantrue limits the callers of the model to the subjects in aclEntries
aclEntriesarrayAllowed consumers, applications and organizations — see Model Access Control Fields

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