Skip to content
API reference

HTTP API

Everything you can do in the dashboard is available over a small, predictable REST API. JSON in, JSON out, bearer-token auth.

Authentication

Account API tokens are issued from the dashboard and scoped per zone. The public status endpoint is unauthenticated so you can wire it into your own monitoring.

http
# every request carries a bearer token scoped to your account
Authorization: Bearer utya_live_xxxxxxxxxxxx

# base URL (account API — provisioned per tenant during beta)
https://api.utyacdn.com/v1

Endpoints

GET /v1/zones

List the zones on your account with their status and origin.

POST /v1/zones

Create a zone for a hostname and return its CNAME target.

GET /v1/zones/{zone}

Fetch a single zone, including cache and TLS state.

DELETE /v1/zones/{zone}

Remove a zone. DNS pointed elsewhere stops flowing at the next TTL.

POST /v1/zones/{zone}/purge

Purge by paths, prefixes or tags across every PoP.

GET /v1/zones/{zone}/analytics

Hit ratio, bandwidth and error rate over a time window.

GET /v1/zones/{zone}/logs

Stream recent request logs (newline-delimited JSON).

GET /v1/status

Public network status. No authentication required.

Try the public endpoint

No account needed — this one is live and unauthenticated:

bash
# the public status endpoint needs no auth and is safe to poll
curl https://utyacdn.com/v1/status

{
  "status": "operational",
  "pops": ["eu1", "eu2", "eu3"],
  "time": "2026-08-03T00:00:00Z"
}

The account API base (api.utyacdn.com) is provisioned per tenant during the beta and is not publicly reachable until your zone is activated. The status endpoint above lives on the main domain and is always open.