Skip to main content
POST
Error
This endpoint is available in Bifrost Enterprise only.

Authorizations

Authorization
string
header
required

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

application/json

A project starts with no members: the roster is written through the member routes, so this body has no members field.

name
string
required
access_rule
enum<string>
required

How the project's own access composes with the access the caller already holds. intersect permits only what both allow, so a project with no provider config permits nothing. union leaves the caller's access untouched and adds to it, so a project with no provider or MCP config only attributes and caps spend.

Available options:
intersect,
union
description
string | null
is_active
boolean
default:true
expires_at
string<date-time> | null
membership_mode
enum<string>
default:explicit

explicit admits only the users on the roster. open admits every authenticated caller and has no membership rows, which is why it cannot divide a budget between members.

Available options:
explicit,
open
accounting_mode
enum<string>
default:both

Which ledgers a request's spend lands on. both charges the project and the caller. project_only takes the request off everything the caller funds, including the teams and business units above them. principal_only leaves the project's caps on record but checks and charges none of them. The deployment's own global caps always apply.

Available options:
both,
project_only,
principal_only
split_policy
enum<string>
default:none

none keeps the project's caps shared, and individual members can still be capped by hand. equal gives every member an equal slice of every budget and rate limit the project holds, at every tier, as a second cap within it.

Available options:
none,
equal
calendar_aligned
boolean
default:false
budgets
object[]
rate_limit
object

A token and request rate limit on a project, on a provider inside it, or on a model under that provider. The two dimensions run independent windows, and a cap is enforced only together with its window.

provider_configs
object[]
mcp_configs
object[]
virtual_mcps
object[]

Response

Project created

project
object

A per-request access scope and accounting ledger that callers opt into with a header.