A valid request URL is required to generate request examples{
"allow": true,
"reason": "<string>",
"plugin_logs": [
{
"plugin_name": "<string>",
"level": "<string>",
"message": "<string>",
"timestamp": 123
}
]
}{
"event_id": "<string>",
"type": "<string>",
"is_bifrost_error": true,
"status_code": 123,
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"event_id": "<string>"
},
"extra_fields": {
"provider": "anthropic",
"model_requested": "<string>",
"request_type": "<string>"
}
}{
"event_id": "<string>",
"type": "<string>",
"is_bifrost_error": true,
"status_code": 123,
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"event_id": "<string>"
},
"extra_fields": {
"provider": "anthropic",
"model_requested": "<string>",
"request_type": "<string>"
}
}Inspect a request without forwarding it
Runs the pre-model plugin checks against a request and answers whether forwarding it upstream is allowed, without calling any provider. Intended for an intercepting proxy that holds the original request and needs a verdict before releasing it.
Plugins that mutate execution or depend on a provider call are skipped.
Unlike the inference routes, this endpoint takes its request context in
the body rather than in HTTP headers: entries in metadata are read as
the request’s headers, so {"x-bf-project-id": "..."} scopes the
inspected request to a governance project exactly as the header would.
When called with phase: "response" and log: true, the resolved
project is recorded on the log row this endpoint writes.
A valid request URL is required to generate request examples{
"allow": true,
"reason": "<string>",
"plugin_logs": [
{
"plugin_name": "<string>",
"level": "<string>",
"message": "<string>",
"timestamp": 123
}
]
}{
"event_id": "<string>",
"type": "<string>",
"is_bifrost_error": true,
"status_code": 123,
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"event_id": "<string>"
},
"extra_fields": {
"provider": "anthropic",
"model_requested": "<string>",
"request_type": "<string>"
}
}{
"event_id": "<string>",
"type": "<string>",
"is_bifrost_error": true,
"status_code": 123,
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"event_id": "<string>"
},
"extra_fields": {
"provider": "anthropic",
"model_requested": "<string>",
"request_type": "<string>"
}
}Authorizations
Management API authentication for /api/* endpoints. Use the Authorization header with Bearer <API key>.
Virtual keys, dashboard/user/session tokens, and x-api-key headers are not supported on management APIs.
Body
A request to evaluate, plus the context the caller would otherwise have sent as HTTP headers.
request evaluates before the upstream call; response reports the outcome afterwards, which is the phase that can write a log row.
request, response Write a log row for this call. Honoured on the response phase, where the row carries the resolved governance project.
The Bifrost request being inspected.
The upstream response, on the response phase.
Error response from Bifrost
Show child attributes
Show child attributes
Read as the inspected request's headers, lowercased. This is how a caller scopes the inspection to a governance project, with x-bf-project-id or x-bf-project-name.
Lines carried over from an earlier phase.
Show child attributes
Show child attributes
Was this page helpful?

