Ana içeriğe geç

Get LLM Provider

Endpoint​

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

Authentication​

Requires a Personal API Access Token.

Authorization: Bearer YOUR_TOKEN

Request​

Headers​

HeaderValueRequired
AuthorizationBearer {token}Yes

Path Parameters​

ParameterTypeRequiredDescription
projectNamestringYesProject name
providerNamestringYesLLM provider name

Query Parameters​

None

Response​

Success Response (200 OK)​

The single provider is returned as the only element of resultList. Unlike the list endpoint, the usedByRefs field is populated with the names of API proxies that reference this provider.

{
"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": [],
"usedByRefs": ["chat-proxy", "summarizer-proxy"]
}
],
"resultCount": 1
}

Response Fields​

FieldTypeDescription
statusstringResponse status: SUCCESS or FAILURE
resultListarraySingle-element list containing the requested provider
resultCountintegerAlways 1 on success

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
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
organizationIdstringOrganization identifier (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
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
providerRpmLimitintegerOrganization-level requests-per-minute limit
providerTpmLimitintegerOrganization-level tokens-per-minute limit
coldStartRetryEnabledbooleanRetry on 503 for self-hosted providers
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
usedByRefsarray[string]Names of API proxies referencing this provider (populated only by this endpoint)
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.

EnumStatus​

  • SUCCESS - Operation successful
  • FAILURE - Operation failed

Error Response (400 Bad Request)​

{
"status": "FAILURE",
"resultMessage": "LLM provider (name: deepseek-primary) was not found!"
}

or

{
"status": "FAILURE",
"resultMessage": "LLM provider name can not be empty!"
}

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/deepseek-primary/" \
-H "Authorization: Bearer YOUR_TOKEN"

Notes and Warnings​

  • Secret Masking (INV-06):
    • apiKey, apiSecret and serviceAccountJson are never returned in plaintext; only apiKeySet / apiSecretSet / serviceAccountJsonSet flags
    • Secret metadata values are returned as null
  • Name-based Lookup:
    • providerName is matched case-insensitively against the provider name
    • A non-existent name returns a 400 Bad Request with a "was not found" message
  • Usage References:
    • usedByRefs lists API proxies referencing this provider; use it to check impact before deleting