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",
"enabled": true,
"aclEnabled": false,
"aclEntries": []
}
],
"onlyListedModels": false,
"lastHealthCheckAt": "2026-07-13T09:15:00Z",
"healthStatus": "HEALTHY",
"lastLatencyMs": 240,
"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). 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
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)
supportedModelsarrayThe models of the provider, with prices, enabled switch and access control — see Supported Model Fields
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
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 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.

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