Claim your workspace
Your Stripe subscription creates the workspace automatically — the same email address you checked out with is your admin login. When the provisioning webhook fires, CipherRun sends a magic-link email from hello@polsia.app so you can sign in without a password.
Open /login and request a fresh link if the original invite expired or never landed — the link is valid for 15 minutes and single-use.
Need help? Reply to the provisioning email — it goes straight to the founder.
Create your first API key
Open /admin/apikeys, click Generate key, and copy the plaintext — we only show it once. The plaintext you copy should look like the placeholder below (yours will have a real workspace ID after the cr_ws_ prefix):
Lost it? Mint a new one — the SHA-256 hash is what we store, so the plaintext is unrecoverable.
Confirm your key works — GET /api/v1/me
Before you trigger anything, prove the key round-trips. GET /api/v1/me returns the workspace, tier, scopes, and live usage so you can confirm in one curl that the key, the workspace, and the Stripe provisioning all line up. Replace the placeholder below with your real key and run it — you should get a 200 back.
curl -sS \
-H "Authorization: Bearer cr_ws_REPLACE_WITH_YOUR_KEY_HERE…" \
https://cipherrun.polsia.app/api/v1/me
200 OK { "tier": "team", "workspace": { "id": 17, "name": "Acme SOC" }, "scopes": ["workflows:read", "workflows:run"], "usage": { "runs_this_period": 14, "incidents_triggered": 3 }, "quotas": { "runs_per_month": 5000 } }
See a 401? The key is wrong or revoked — regenerate from /admin/apikeys. See a 403? Your Stripe tier does not cover /api/v1; check /pricing.
Trigger a sample playbook from /app
The curl proves the key — now confirm the UI agrees. Open /app to see your workspace dashboard, then jump to /app/billing and /app/runs to verify the same numbers your curl returned. The two cards below walk you through the surfaces you'll use day-to-day:
/app
The customer dashboard renders a Quick Start curl block beside your workspace summary — paste your key into that same curl and the dashboard owns the /api/v1 test from here on out.
/app/billing
Live usage and Stripe tier, no refresh needed — mirrors the usage / quotas fields from /api/v1/me. Trigger a sample run from the Try a workflow button and watch the counter move.
Want the curl side too? POST /api/workflows/:slug/run is the same endpoint the dashboard button calls — see /docs/api-quickstart for tier-by-tier examples.
Your workspace is provisioned, your key is round-tripping, and the dashboard and billing surfaces agree. From here on out, the curl is for scripts and the UI is for everything else.