API keys
One key per channel.
Revocable in a click.
Every channel gets its own fa_ key. Your agent uses it to submit approvals. Lose it, leak it, or retire it without touching any of your other channels.
New channel · Content publishing
Channel created
Shown once · copy it now
API key
Send your first approval
curl https://www.finalapproval.ai/api/v1/approvals \
-H "Authorization: Bearer fa_7b2a…" \
-H "Content-Type: application/json" \
-d '{
"title": "Publish blog post",
"body": "<p>Ready to ship.</p>",
"agent_id": "blog-publisher"
}'Shown once
The raw key is displayed at creation. Never again.
We store a SHA-256 hash server-side. The plaintext exists only on the screen in front of you at creation time. That's the same contract Stripe, GitHub, and every other serious API uses.
- SHA-256 hash on disk · plaintext only in the reveal screen
- Copy-to-clipboard button with a quick confirmation
- If you lose it, you rotate — there's no recovery, by design
On your screen
On our disk
Rotate without downtime
New key issued. Old key still works until you kill it.
Agents in production don't love being edited mid-shift. Rotation issues a new key alongside the existing one. You deploy, confirm traffic on the new key, then revoke the old one when you're ready.
- Two keys can be live on a channel at once
- Revoke the old key from the channel page with one click
- All submissions are logged with the fingerprint of the key used
b14e…a902
active · 3m old
7f22…1c84
deprecated · 42 days old
Scoped to the channel
A leaked key only touches the channel it belongs to.
Keys aren't workspace-wide. Each one can only submit approvals to its own channel. Rate-limits and daily quotas are enforced per-key, so a runaway agent can't fill the disk for your whole workspace.
- Per-channel scope · a leaked key can't escalate to other channels
- Per-key rate limit and daily quota, configurable
- Submission history by key fingerprint for forensics
Content
fa_***
your key
Billing
fa_***
Deploys
fa_***
The Content key can't submit to Billing or Deploys. A leak stays in its lane.
Production-safe keys from minute one.
Create a channel. Copy the fa_ key into your agent. Revoke it if you ever need to.