Skip to main content
A relay needs two things to go live: the upstream’s base URL and the credential Bifrost signs in with. Routes and pricing are added afterwards and can change at any time; the name cannot. We use a tavily relay in these examples. Replace the name, URL and secret with your upstream’s.

Create the relay

  1. Open Relays in the sidebar and select Add Relay.
  2. Enter a Name. Callers use /relay/<name>/...; it must match [A-Za-z0-9._-]{1,64} and cannot be changed later.
  3. Enter the Base URL, an absolute http(s) URL such as https://api.tavily.com. Every request is pinned under this origin and path. A base URL may carry a path prefix (https://speech.example.com/cognitiveservices/v1) but no query string, fragment or user info.
  4. Choose how the relay authenticates to the upstream and enter the credential. The value is stored encrypted and never shown again; an env.VAR_NAME reference reads it from the environment at startup.
  5. Select Add Relay.
The relay appears in the list on the left with an empty route table. Select Edit Relay Config to reach the General, Authentication, Advanced, Network and Proxy tabs described below.

Authentication types

The Authentication tab holds one credential and the way it is presented upstream. Callers never send this credential; whatever Authorization, x-api-key, api-key, x-goog-api-key, Ocp-Apim-Subscription-Key, x-functions-key or cookie header they send is dropped before the request leaves Bifrost.
A caller’s copy of header_name is dropped, and no route may match on it.

Extra headers

The Advanced tab’s Extra Headers are sent on every relayed request: a tenant id, an API version, a Content-Type an upstream insists on. They are the operator’s to set, so a caller’s copy of the same header is dropped rather than replacing it, and a route’s header matcher sees the operator’s value.
A header name may appear under one spelling only (X-Tenant and x-tenant together are refused). Values of credential-bearing headers are redacted in API responses; other literal values are shown.

Network

The Network tab bounds the direct connection to the upstream. A buffered reply is held up to 64 MB; a larger one is refused with 502 and the message relay response is too large to buffer, in which case set the route to stream.

Proxy

The Proxy tab sends this relay’s traffic through a forward proxy. proxy_config takes the same shape as a provider’s proxy: type (http, socks5, environment), url, username, password, ca_cert_pem.
A relay with no proxy_config inherits the global proxy when it is enabled for inference, and connects directly otherwise. Changing the global proxy rebuilds every relay that inherits it.

Update and delete

Edits in Edit Relay Config save per tab; routes are saved from the route table. Through the API, PUT /api/relays/{name} replaces the whole relay. A secret sent back in its redacted form keeps the stored value, so a client that only ever sees redacted values can save without wiping the credential. An env. or vault reference is a real change. Deleting a relay removes it from every virtual key that granted it. Calls already in flight finish on the old configuration.
Deleting a relay cannot be undone and takes effect immediately: callers get 404 relay "tavily" not found on the next request.

Next steps