Organizations & Workspaces
Overview
qr3.app uses a two-level hierarchy:
Organization (company/agency) └── Workspace 1 (Client A) └── Workspace 2 (Client B) └── Workspace 3 (Internal team)- Organization — top level, tied to a Stripe account and plan
- Workspace — isolated scope for QR codes, scans, and API keys
Organizations API
GET /v1/organizations
Returns the organization the current API key belongs to.
curl https://qr3.app/v1/organizations \ -H "Authorization: Bearer qr3_sk_..."POST /v1/organizations
Creates a new organization.
curl -X POST https://qr3.app/v1/organizations \ -H "Authorization: Bearer qr3_sk_..." \ -H "Content-Type: application/json" \ -d '{ "name": "Digital Heroes Ltd", "slug": "digital-heroes" }'PATCH /v1/organizations/:id
Updates name, slug, or settings.
DELETE /v1/organizations/:id
Soft-deletes the organization and all associated workspaces.
Workspaces API
GET /v1/workspaces
Lists all workspaces in the current organization.
POST /v1/workspaces
curl -X POST https://qr3.app/v1/workspaces \ -H "Authorization: Bearer qr3_sk_..." \ -H "Content-Type: application/json" \ -d '{ "name": "Client A — Campaign Q2", "description": "All QR codes for campaign" }'PATCH /v1/workspaces/:id
Update name, description, or settings.
DELETE /v1/workspaces/:id
Soft-deletes the workspace. Cannot delete the default workspace.
Plan Limits
| Plan | Workspaces | API keys per workspace |
|---|---|---|
| Free | 1 | 2 |
| Pro | 5 | 10 |
| Business | 25 | 50 |
| Agency | Unlimited | Unlimited |