Acts-as-user keys
Every API key is bound to a user. Effective permissions equal user role intersected with granted scopes. Same model as GitHub PAT and Stripe Restricted Keys.
Long-lived API keys and scope-bound endpoints for cron jobs, Workers, and external integrations.
Create a key (browser session, JWT auth):
curl -X POST https://<host>/api/auth/api-keys \
-H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
-d '{"name":"ingest-worker","scopes":["picture:upload"]}'Use the returned plaintext (shown once) to ingest:
curl -N -X POST https://<host>/api/picture/upload/batch/selected \
-H "Authorization: Bearer iph_live_..." \
-H "Content-Type: application/json" \
-d '{"urlList":["https://..."],"namePrefix":"cc0-","tags":["cc0"]}'See the API Reference for the full specification.