Update an LLM provider
const url = 'https://app.everruns.com/api/v1/providers/example';const options = { method: 'PATCH', headers: {'Content-Type': 'application/json'}, body: '{"api_key":"example","base_url":"https://api.openai.com/v1","credentials":"example","name":"OpenAI Development","provider_type":"example","status":"active","trace":{"enabled":true,"generation_url_template":"example","session_url_template":"example"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://app.everruns.com/api/v1/providers/example \ --header 'Content-Type: application/json' \ --data '{ "api_key": "example", "base_url": "https://api.openai.com/v1", "credentials": "example", "name": "OpenAI Development", "provider_type": "example", "status": "active", "trace": { "enabled": true, "generation_url_template": "example", "session_url_template": "example" } }'Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Provider ID (prefixed, e.g., prov_…)
Request Body required
Section titled “Request Body required ”Request to update an LLM provider. Only provided fields will be updated.
object
API key for authenticating with the provider. Will be encrypted at rest if encryption is configured.
Single-field convenience for simple providers and programmatic clients.
Multi-field drivers (Bedrock, MAI) should send credentials instead.
Base URL for the provider’s API.
Example
https://api.openai.com/v1Typed credential fields keyed by the driver’s declared credential-schema
field names. Validated against the schema and assembled into the stored
credential document. Takes precedence over api_key when present.
Display name for the provider.
Example
OpenAI DevelopmentTrace/observability link configuration override. Merged into the provider’s stored settings, preserving other settings keys.
object
Whether trace links should be shown for this provider. Defaults to
false: vendors typically do not retain trace content unless logging is
explicitly enabled, so the org opts in once that is set up.
URL template for a single generation’s trace, e.g.
"https://openrouter.ai/logs?id={response_id}".
URL template for a session’s grouped trace, e.g.
"https://openrouter.ai/logs".
Responses
Section titled “ Responses ”Provider updated
Wrapper that adds API and UI links to a serialized resource.
Uses self_url (not url) for the API link to avoid collision with
resources that already have a url field (e.g. McpServer). The
allowed_actions array carries state-aware hypermedia links — empty
(and omitted from the wire shape) until the underlying resource opts
into the convention by overriding ResourceUrlable::allowed_actions.
object
Whether an API key is configured. The key itself is never returned.
Custom base URL for self-hosted / proxied providers. None means use the provider’s default endpoint.
Timestamp when this provider was created (RFC 3339).
Prefixed public identifier. See ID Schema.
Timestamp of the most recent successful model sync from the provider’s API (RFC 3339).
Human-readable provider name. Safe to render in user-facing messages.
Provider implementation type (OpenAI, Anthropic, Gemini, etc.).
Current lifecycle status of this provider.
Resolved trace/observability link configuration: the driver’s default
templates overlaid with this provider’s stored overrides. None when the
driver exposes no dashboard and the org configured nothing.
object
Whether trace links should be shown for this provider. Defaults to
false: vendors typically do not retain trace content unless logging is
explicitly enabled, so the org opts in once that is set up.
URL template for a single generation’s trace, e.g.
"https://openrouter.ai/logs?id={response_id}".
URL template for a session’s grouped trace, e.g.
"https://openrouter.ai/logs".
Timestamp when this provider was last updated (RFC 3339).
State-aware hypermedia actions the caller can take on this resource
next (e.g. cancel, events, update). Omitted from the wire
shape when empty so resources that haven’t opted into the
convention don’t grow their payloads.
Agent-actionable link describing a follow-up the caller can take. Used in two contexts:
- Error recovery —
ErrorResponse.allowed_actionscarriesrels likeretry,retry-later,unarchive,get-existingso the agent knows the right next call after a 4xx/429. - Entity hypermedia —
WithUrls<T>.allowed_actionscarries state-awarerels likecancel,events,self,updateon the entity itself so the agent can follow links instead of reconstructing routes from prose.
The shape is intentionally identical across both contexts; the closed
rel vocabulary documented in specs/api-conventions.md distinguishes
them.
object
Short, agent-readable hint (e.g. “Shorten ‘name’ to <= 200 chars.”, “Cancel the active turn for this session.”).
Absolute (preferred) or relative URL the caller may invoke
directly. Always present on entity hypermedia actions
(WithUrls<T>.allowed_actions); optional on error-recovery
actions (ErrorResponse.allowed_actions) where the matching
operation_id is enough and the URI is implicit from the failed
call.
HTTP method to use against href. Required for entity hypermedia
actions; usually omitted on error-recovery actions where the same
operation is retried with its original method.
OpenAPI operationId the caller should invoke. Lets an MCP client
resolve the call without parsing href.
Link relation describing the action. Closed vocabulary documented
in specs/api-conventions.md — examples: self, cancel, pause,
resume, events, retry, retry-later, unarchive,
get-existing, delete, update.
OpenAPI $ref to the request-body schema, when the action takes one
(e.g. #/components/schemas/UpdateSessionRequest). Lets a tool-calling
agent fetch the input shape without scanning the whole spec.
Full API endpoint URL for this resource.
Alias for view_url, used by command and MCP outputs.
Full UI URL for viewing this resource.
Example
{ "id": "provider_01933b5a00007000800000000000001", "status": "active", "allowed_actions": [ { "method": "POST" } ]}Invalid provider ID
Provider not found