What is a project
A project is the unit of isolation, billing, and rate-limiting inside a tenant. Every API key belongs to exactly one project. Every call drains that project's budget and counts against that project's rate-limit bucket.
What a project owns
- Budget — micro-credits allocated to the project from the tenant wallet. Calls drain this number until it reaches zero.
- Rate limits — burst + sustained RPS. Each project has its own token bucket.
- Gallery scope — subjects, face vectors, and templates are
stamped with
ProjectId. Search-time scope follows the project's isolation mode. - Usage history — ledger rows, RequestLog rows, and analytics filters are project-scoped.
Isolation mode
Set at create time. Immutable afterwards.
| Mode | Behavior |
|---|---|
Shared | Subjects in this project are visible to every other Shared project in the same tenant. Default. |
Isolated | Subjects in this project are visible only inside this project. identify, verify, and enroll's dedup gate see exactly this project's gallery. |
Wallet → budget → spend
Wallet (tenant)
└── allocate ──► Project budget ──► spend (per-call ledger row)
Spend drains the project budget, not the wallet directly.