Shared providers & model tests
A shared provider is a reusable tenant-owned connection. Apps hold references to its label, so credential/model changes can affect every linked app after synchronization. Provider label and type are immutable.
Provider inputs
Every creation body has label, provider_name and provider_settings. Optional selected_models, model_costs and enabled configure availability. Select the provider variant in the full body schema for the complete credential fields and conditional requirements.
SDK and Copilot Studio are app modes, not shared-provider types. Provider/protocol support remains deployment-dependent. See provider support.
Models and rates
selected_models is a full replacement list, with at most 1,000 names of up to 512 characters each. An empty list follows the existing unrestricted-provider convention where supported; it does not necessarily mean zero models are allowed. Use explicit model lists for finite allowlists.
model_costs is keyed by a selected model. Values are nullable, non-negative USD rates per million input/output/cache tokens. Null removes a rate override. These values are configuration, not a quotation of provider pricing.
Rotation and disabling
Omitted credentials remain unchanged on PATCH. Submit a new secret to rotate it. Do not send redacted placeholder values back. Changing authentication mode must supply required new-mode fields and removes incompatible old-mode credentials.
PATCH enabled:false to disable a shared provider. Its record and app attachments remain; re-enabling restores normal availability. There is no provider-delete endpoint. Detaching removes a reference from one app only.
Explicit connection/model tests
Saving configuration never contacts the upstream provider. Use a separate test request when you want to:
- Check the stored connection without generation, when the provider supports that test.
- Run a minimal configured-model check, which may incur usage.
Tests use stored credentials and endpoints; they accept no arbitrary payload, URL or credential overrides. Testing a disabled provider does not enable it. A private endpoint unreachable from the central service returns a diagnostic, not a failed configuration save.
Completed tests report passed, failed or unsupported. A connection test never silently becomes a model call. Model tests are unavailable in a deployment with COMPLETELY_NO_GPU; there are no automatic billable retries.
Endpoint reference
/providersList shared providers
List shared provider metadata, configured models and credential-presence flags.
readPath, query & header parameters 4
limit (query)integeroptionalItems per page.
cursor (query)stringoptionalOpaque cursor returned by this same collection and filters.
enabled (query)booleanoptionalprovider_name (query)stringoptionalNo request body.
curl --request GET \
'https://management.example.com/llmgateway/management/v1/providers?limit=50' \
--header 'Authorization: Bearer <management-key>'
/providersCreate a shared provider
Persist validated configuration without contacting upstream. The label/type are immutable and namespaced to the tenant.
providers:writePath, query & header parameters 1
Idempotency-Key (header)stringrequiredUnique operation key. Reuse only with the identical request; mismatch returns 409.
Full request body specification application/json
Select the variant matching provider_name. Each provider_settings object is fully specified below.
ApiKey provider object
labelstringrequiredExact, trimmed tenant-wide provider label. Immutable after creation.
enabledbooleanoptionalselected_modelsarray<string>optional[] preserves the existing unrestricted-provider convention where supported; use explicit model lists for a finite catalog.
Array item specification
stringExact configured model identifier; availability depends on the provider and deployment.
model_costsmap<string, object>optionalKeys must appear in selected_models; rates are USD per million tokens.
Map value specification
input_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
output_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
cache_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
Unknown fields are rejected in this object.
provider_namestringrequired"openai""anthropic""anthropic_messages""deepseek""gemini_chatcompletions""openai_responses""openai_assistants""openai_realtime""cohere_rerank""jina_rerank""voyage_rerank""sarvam"provider_settingsobjectrequiredAPI key
Object fields
api_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
base_urlstringoptionalOptional compatible upstream base URL.
anthropic_versionstringoptionalOptional Anthropic API version header.
Unknown fields are rejected in this object.
Unknown fields are rejected in this object.
Azure provider object
labelstringrequiredExact, trimmed tenant-wide provider label. Immutable after creation.
enabledbooleanoptionalselected_modelsarray<string>optional[] preserves the existing unrestricted-provider convention where supported; use explicit model lists for a finite catalog.
Array item specification
stringExact configured model identifier; availability depends on the provider and deployment.
model_costsmap<string, object>optionalKeys must appear in selected_models; rates are USD per million tokens.
Map value specification
input_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
output_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
cache_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
Unknown fields are rejected in this object.
provider_namestringrequired"azureopenai""openai_responses_azure""openai_assistants_azure""openai_realtime_azure"provider_settingsobjectrequiredAzure
Object fields
api_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
azure_endpointstringrequiredapi_versionstringoptionalAzure API version.
Unknown fields are rejected in this object.
Unknown fields are rejected in this object.
Custom provider object
labelstringrequiredExact, trimmed tenant-wide provider label. Immutable after creation.
enabledbooleanoptionalselected_modelsarray<string>optional[] preserves the existing unrestricted-provider convention where supported; use explicit model lists for a finite catalog.
Array item specification
stringExact configured model identifier; availability depends on the provider and deployment.
model_costsmap<string, object>optionalKeys must appear in selected_models; rates are USD per million tokens.
Map value specification
input_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
output_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
cache_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
Unknown fields are rejected in this object.
provider_namestringrequired"general""general_rerank""anthropic_messages_azure"provider_settingsobjectrequiredCustom endpoint
Object fields
api_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
base_urlstringrequiredUnknown fields are rejected in this object.
Unknown fields are rejected in this object.
Bedrock provider object
labelstringrequiredExact, trimmed tenant-wide provider label. Immutable after creation.
enabledbooleanoptionalselected_modelsarray<string>optional[] preserves the existing unrestricted-provider convention where supported; use explicit model lists for a finite catalog.
Array item specification
stringExact configured model identifier; availability depends on the provider and deployment.
model_costsmap<string, object>optionalKeys must appear in selected_models; rates are USD per million tokens.
Map value specification
input_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
output_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
cache_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
Unknown fields are rejected in this object.
provider_namestringrequired"bedrock""anthropic_messages_bedrock""bedrock_embeddings""bedrock_rerank"provider_settingsone of 2 variantsrequiredAWS static object
aws_auth_mode"static"requiredaws_regionstringrequiredaws_access_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
aws_secret_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
aws_session_tokenstringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
Unknown fields are rejected in this object.
AWS assume_role object
aws_auth_mode"assume_role"requiredaws_regionstringrequiredaws_role_arnstringrequiredaws_external_idstringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
aws_role_session_namestringoptionalaws_session_duration_secondsintegeroptionalUnknown fields are rejected in this object.
Unknown fields are rejected in this object.
Vertex provider object
labelstringrequiredExact, trimmed tenant-wide provider label. Immutable after creation.
enabledbooleanoptionalselected_modelsarray<string>optional[] preserves the existing unrestricted-provider convention where supported; use explicit model lists for a finite catalog.
Array item specification
stringExact configured model identifier; availability depends on the provider and deployment.
model_costsmap<string, object>optionalKeys must appear in selected_models; rates are USD per million tokens.
Map value specification
input_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
output_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
cache_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
Unknown fields are rejected in this object.
provider_namestringrequired"vertex_ai"provider_settingsone of 4 variantsrequiredVertex api_key object
auth_type"api_key"requiredgcp_regionstringoptionalapi_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
gcp_project_idstringrequiredUnknown fields are rejected in this object.
Vertex express object
auth_type"express"requiredgcp_regionstringoptionalapi_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
Unknown fields are rejected in this object.
Vertex service_account object
auth_type"service_account"requiredgcp_regionstringoptionalservice_account_jsonstringrequiredJSON-encoded Google service account document.
gcp_project_idstringoptionalUnknown fields are rejected in this object.
Vertex adc object
auth_type"adc"requiredgcp_regionstringoptionalgcp_project_idstringrequiredUnknown fields are rejected in this object.
Unknown fields are rejected in this object.
OracleChat provider object
labelstringrequiredExact, trimmed tenant-wide provider label. Immutable after creation.
enabledbooleanoptionalselected_modelsarray<string>optional[] preserves the existing unrestricted-provider convention where supported; use explicit model lists for a finite catalog.
Array item specification
stringExact configured model identifier; availability depends on the provider and deployment.
model_costsmap<string, object>optionalKeys must appear in selected_models; rates are USD per million tokens.
Map value specification
input_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
output_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
cache_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
Unknown fields are rejected in this object.
provider_namestringrequired"oracle"provider_settingsone of 6 variantsrequiredOnly fields for the selected auth_type are accepted. Deployment principal modes require the corresponding runtime identity. No base_url override.
OCI api_key object
auth_type"api_key"requiredoci_regionstringrequiredoci_project_idstringrequiredoci_compartment_idstringrequiredapi_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
Unknown fields are rejected in this object.
OCI gateway_user_principal object
auth_type"gateway_user_principal"requiredoci_regionstringrequiredoci_project_idstringrequiredoci_compartment_idstringrequiredUnknown fields are rejected in this object.
OCI user_principal object
auth_type"user_principal"requiredoci_regionstringrequiredoci_project_idstringrequiredoci_compartment_idstringrequiredoci_tenancy_idstringrequiredoci_user_idstringrequiredoci_fingerprintstringrequiredoci_private_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
oci_private_key_passphrasestringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
Unknown fields are rejected in this object.
OCI session_principal object
auth_type"session_principal"requiredoci_regionstringrequiredoci_project_idstringrequiredoci_compartment_idstringrequiredoci_session_tokenstringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
oci_private_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
oci_private_key_passphrasestringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
Unknown fields are rejected in this object.
OCI instance_principal object
auth_type"instance_principal"requiredoci_regionstringrequiredoci_project_idstringrequiredoci_compartment_idstringrequiredUnknown fields are rejected in this object.
OCI resource_principal object
auth_type"resource_principal"requiredoci_regionstringrequiredoci_project_idstringrequiredoci_compartment_idstringrequiredUnknown fields are rejected in this object.
Unknown fields are rejected in this object.
OracleResponses provider object
labelstringrequiredExact, trimmed tenant-wide provider label. Immutable after creation.
enabledbooleanoptionalselected_modelsarray<string>optional[] preserves the existing unrestricted-provider convention where supported; use explicit model lists for a finite catalog.
Array item specification
stringExact configured model identifier; availability depends on the provider and deployment.
model_costsmap<string, object>optionalKeys must appear in selected_models; rates are USD per million tokens.
Map value specification
input_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
output_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
cache_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
Unknown fields are rejected in this object.
provider_namestringrequired"oracle_responses"provider_settingsone of 6 variantsrequiredOnly fields for the selected auth_type are accepted. Deployment principal modes require the corresponding runtime identity. No base_url override.
OCI api_key object
auth_type"api_key"requiredoci_regionstringrequiredoci_project_idstringrequiredoci_compartment_idstringoptionalapi_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
Unknown fields are rejected in this object.
OCI gateway_user_principal object
auth_type"gateway_user_principal"requiredoci_regionstringrequiredoci_project_idstringrequiredoci_compartment_idstringoptionalUnknown fields are rejected in this object.
OCI user_principal object
auth_type"user_principal"requiredoci_regionstringrequiredoci_project_idstringrequiredoci_compartment_idstringoptionaloci_tenancy_idstringrequiredoci_user_idstringrequiredoci_fingerprintstringrequiredoci_private_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
oci_private_key_passphrasestringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
Unknown fields are rejected in this object.
OCI session_principal object
auth_type"session_principal"requiredoci_regionstringrequiredoci_project_idstringrequiredoci_compartment_idstringoptionaloci_session_tokenstringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
oci_private_keystringrequiredWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
oci_private_key_passphrasestringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
Unknown fields are rejected in this object.
OCI instance_principal object
auth_type"instance_principal"requiredoci_regionstringrequiredoci_project_idstringrequiredoci_compartment_idstringoptionalUnknown fields are rejected in this object.
OCI resource_principal object
auth_type"resource_principal"requiredoci_regionstringrequiredoci_project_idstringrequiredoci_compartment_idstringoptionalUnknown fields are rejected in this object.
Unknown fields are rejected in this object.
Managed provider object
labelstringrequiredExact, trimmed tenant-wide provider label. Immutable after creation.
enabledbooleanoptionalselected_modelsarray<string>optional[] preserves the existing unrestricted-provider convention where supported; use explicit model lists for a finite catalog.
Array item specification
stringExact configured model identifier; availability depends on the provider and deployment.
model_costsmap<string, object>optionalKeys must appear in selected_models; rates are USD per million tokens.
Map value specification
input_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
output_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
cache_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
Unknown fields are rejected in this object.
provider_namestringrequired"quilr_ai"provider_settingsobjectrequiredDeployment-managed provider. Do not send customer credentials or an endpoint.
Object fields
Unknown fields are rejected in this object.
Unknown fields are rejected in this object.
curl --request POST \
'https://management.example.com/llmgateway/management/v1/providers' \
--header 'Authorization: Bearer <management-key>' \
--header 'Idempotency-Key: operation-001' \
--header 'Content-Type: application/json' \
--data '{
"label": "ApiKey production",
"selected_models": [
"gpt-4.1-mini"
],
"provider_name": "openai",
"provider_settings": {
"api_key": "<provider-api-key>"
}
}'
/providers/{label}Read a shared provider
Read configured models, enabled state and credential-presence metadata. Raw upstream credentials are never returned.
readPath, query & header parameters 1
label (path)stringrequiredExact, trimmed tenant-wide provider label. Immutable after creation.
No request body.
curl --request GET \
'https://management.example.com/llmgateway/management/v1/providers/Production%20OpenAI' \
--header 'Authorization: Bearer <management-key>'
/providers/{label}Update or disable a provider
Change credentials, models, rates or enabled state. Omitted secrets remain. Disable preserves attachments and may affect every linked app after propagation.
providers:writePath, query & header parameters 2
label (path)stringrequiredExact, trimmed tenant-wide provider label. Immutable after creation.
If-Match (header)stringrequiredExact quoted ETag from a current resource read.
Full request body specification application/json
enabledbooleanoptionalselected_modelsarray<string>optional[] preserves the existing unrestricted-provider convention where supported; use explicit model lists for a finite catalog.
Array item specification
stringExact configured model identifier; availability depends on the provider and deployment.
model_costsmap<string, object>optionalKeys must appear in selected_models; rates are USD per million tokens.
Map value specification
input_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
output_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
cache_per_1mnumber | nulloptionalUSD per million tokens; null removes this override.
Variant 1 number
numberUSD per million tokens; null removes this override.
Also accepts null.
Unknown fields are rejected in this object.
provider_settingsobjectoptionalPartial update, then validate the complete merged state against the stored provider type. Only compatible fields are accepted. Switching auth modes removes old-mode credentials and requires all new-mode fields. Omitted secrets are preserved; null/empty/redacted echoes are rejected.
Object fields
api_keystringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
base_urlstringoptionalanthropic_versionstringoptionalOptional Anthropic API version header.
azure_endpointstringoptionalapi_versionstringoptionalAzure API version.
aws_regionstringoptionalaws_access_keystringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
aws_secret_keystringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
aws_session_tokenstringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
aws_role_arnstringoptionalaws_external_idstringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
aws_role_session_namestringoptionalaws_session_duration_secondsintegeroptionalgcp_regionstringoptionalgcp_project_idstringoptionalservice_account_jsonstringoptionalJSON-encoded Google service account document.
oci_regionstringoptionaloci_project_idstringoptionaloci_compartment_idstringoptionaloci_tenancy_idstringoptionaloci_user_idstringoptionaloci_fingerprintstringoptionaloci_private_keystringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
oci_private_key_passphrasestringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
oci_session_tokenstringoptionalWrite-only secret. Omission preserves an existing secret on PATCH. Never echo redacted placeholders.
auth_typestringoptional"api_key""express""service_account""adc""gateway_user_principal""user_principal""session_principal""instance_principal""resource_principal"aws_auth_modestringoptional"static""assume_role"Unknown fields are rejected in this object.
Unknown fields are rejected in this object.
curl --request PATCH \
'https://management.example.com/llmgateway/management/v1/providers/Production%20OpenAI' \
--header 'Authorization: Bearer <management-key>' \
--header 'If-Match: "resource-version"' \
--header 'Content-Type: application/json' \
--data '{
"enabled": false
}'
/providers/{label}/testTest connection or model
Explicit diagnostic using the stored endpoint/credentials. Connection checks never silently generate. Model checks may incur usage. No configuration mutation and no automatic billable retries.
providers:writePath, query & header parameters 1
label (path)stringrequiredExact, trimmed tenant-wide provider label. Immutable after creation.
Full request body specification application/json
Uses stored credentials and endpoints only. Model must be configured for this provider. No prompt, URL or credential overrides.
Variant 1 object
kind"connection"requiredUnknown fields are rejected in this object.
Variant 2 object
kind"model"requiredmodelstringrequiredExact configured model identifier; availability depends on the provider and deployment.
Unknown fields are rejected in this object.
curl --request POST \
'https://management.example.com/llmgateway/management/v1/providers/Production%20OpenAI/test' \
--header 'Authorization: Bearer <management-key>' \
--header 'Content-Type: application/json' \
--data '{
"kind": "connection"
}'