Esc to close · ⌘K / Ctrl-K opens search anywhere
A BharatRouter account can belong to several orgs. When you sign up you get a personal org; you can also create or join team orgs that share one prepaid balance, one set of keys, and one ledger. Inside an org, workspaces group keys and usage by environment or team.
| Endpoint | What it does |
|---|---|
GET /me/orgs | Orgs you belong to, with your role and member count (the switcher list). |
POST /me/orgs | Create a team org — you become its owner. Up to 10 team orgs per user. |
POST /me/orgs/switch | Switch the active org and re-sign your session. |
Your personal org is single-user — create a team org to add people. The ₹100 signup credit is per person, not per org, so new team orgs start at ₹0.
You add members by email. An invitation is created and a notification email is sent; membership is established when the invitee accepts (matched on their OAuth-verified email). Roles:
| Role | Can |
|---|---|
owner | Everything, including billing, member roles, and deleting the org. At least one owner always exists — the last owner can't be demoted or removed. |
admin | Manage keys, BYOK, routing, workspaces, and invite members — but can't remove owners. |
member | Use keys and read org data; star and fork collections. |
| Endpoint | What it does |
|---|---|
GET /me/members | Members of the active org plus pending invites. |
POST /me/members | Invite by email + role (owner/admin). Up to 50 members + pending per org. |
PATCH /me/members/:id | Change a member's role (owner). |
DELETE /me/members/:id | Remove a member, or leave the org yourself (owner/admin to remove others). |
DELETE /me/members/pending/:id | Withdraw a pending invite (owner/admin). |
| Endpoint | What it does |
|---|---|
GET /me/invitations | Your pending invitations (matched to your sign-in email). |
POST /me/invitations/:id/accept | Join the org. |
POST /me/invitations/:id/decline | Decline. |
A workspace is a grouping of keys and usage within one org — staging vs production, or per-team — while the org keeps the single wallet and legal identity. Every org has a Default workspace that always exists and can't be archived; keys you don't assign elsewhere live there. Assign a key to another workspace when you create it. Archiving a workspace is a soft delete — an organizational boundary, not a kill switch, so its keys keep working.
| Endpoint | What it does |
|---|---|
GET /me/workspaces | Active workspaces with their active-key counts. |
POST /me/workspaces | Create one (owner/admin). Up to 20 per org. |
PATCH /me/workspaces/:id | Rename, set a monthly ₹ budget, or edit the description (owner/admin). |
DELETE /me/workspaces/:id | Archive (keys keep working) (owner/admin). |
A workspace can carry a monthly ₹ budget — a spend cap, drawn on the org's
single wallet, across every key in that workspace. It's enforced: once the workspace's spend for
the IST calendar month reaches the cap, requests on its keys are rejected with
429 budget_exceeded until the next month or until you raise the cap. Set or clear it
via PATCH (owner/admin); 0 or null removes the cap.
PATCH /me/workspaces/:id
{ "monthly_budget_inr": 5000 } // 0 or null clears the cap
→ { "workspace": { "id": 4, "name": "staging", "monthly_budget_uinr": 5000000000 } } This is the workspace-level companion to a per-key monthly
budget: a key's own budget caps that one key, while the workspace budget caps the whole
workspace. Either limit can trip first; both return 429 budget_exceeded and reset on
the IST month boundary. GET /me/workspaces returns each workspace's cap
(monthly_budget_uinr) and its spend so far this month (spent_month_uinr),
both in micro-rupees (₹ × 10⁶).