Admin Provisioning

ADMIN-only control-plane API for creating API-only service accounts and their projects. Never call these endpoints from browser code.

Security Boundary

These endpoints require an API key owned by a Zonic ADMIN user. They are for trusted third-party backends only. Never send the admin key to a browser, mobile app, client-side bundle, analytics tool, or log output.

A service account represents one customer in your product. It is not a Zonic user: it cannot sign in to zonic.tech, has no email or API key, and its projects are not visible in the Zonic web app. The ADMIN user behind your key owns and is billed for its usage.

Create A Service Account

When a customer registers with your product, create one service account using your stable customer identifier as external_id. It must be unique within your ADMIN account. On a duplicate, reconcile with the list endpoint instead of creating a Zonic user or issuing a customer API key.

POST/api/admin/service-accounts
curl -X POST "https://zonic.tech/api/admin/service-accounts" \
-H "x-api-key: $ZONIC_ADMIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"external_id":"customer_123","name":"Example customer","metadata":{"plan":"standard"}}'

Create A Service Account Project

Create projects beneath the service account. They use the ordinary project API after creation: upload footage, poll analysis, retrieve playback or preview URLs, chat, and edit.

POST/api/admin/service-accounts/{id}/projects
curl -X POST "https://zonic.tech/api/admin/service-accounts/$SERVICE_ACCOUNT_ID/projects" \
-H "x-api-key: $ZONIC_ADMIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Customer 123 footage"}'