Reference / API

Authentication

All API requests require an API key passed via the X-Edge-Key header. Keys are issued per account and scoped to specific operations.

curl -H "X-Edge-Key: your-api-key" \
  https://api.azure-cdn-edge.com/v1/status

Requests without a valid key return 401 Unauthorized. Rate limit: 60 requests per minute per key.

Endpoints

GET /v1/status

GET /v1/status

Returns global system status and aggregate metrics.

curl -H "X-Edge-Key: your-api-key" \
  https://api.azure-cdn-edge.com/v1/status

# Response
{
  "status": "nominal",
  "requests_per_sec": 142380,
  "cache_hit_ratio": 0.987,
  "avg_response_ms": 8,
  "active_nodes": 22,
  "timestamp": "2026-03-26T12:00:00Z"
}

GET /v1/nodes

GET /v1/nodes

Returns detailed status for all edge nodes. Optional query parameter ?region=eu to filter by region prefix.

curl -H "X-Edge-Key: your-api-key" \
  https://api.azure-cdn-edge.com/v1/nodes

# Response (truncated)
{
  "nodes": [
    {
      "id": "us-east-1",
      "location": "New York, US",
      "status": "operational",
      "avg_latency_ms": 4,
      "cache_size_tb": 2.4
    }
  ]
}

POST /v1/purge

POST /v1/purge

Purge cached content by URL pattern or tag. Propagation typically completes within 3 seconds across all nodes.

curl -X POST \
  -H "X-Edge-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://example.com/assets/*"]}' \
  https://api.azure-cdn-edge.com/v1/purge

# Response
{
  "purge_id": "prg_8f3a2b1c",
  "status": "propagating",
  "urls_matched": 47,
  "estimated_completion": "2026-03-26T12:00:03Z"
}

You can also purge by tag:

curl -X POST \
  -H "X-Edge-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"tags": ["product-images", "v2"]}' \
  https://api.azure-cdn-edge.com/v1/purge

GET /v1/analytics

GET /v1/analytics

Query traffic analytics. Requires from and to parameters (ISO 8601). Maximum range: 30 days.

curl -H "X-Edge-Key: your-api-key" \
  "https://api.azure-cdn-edge.com/v1/analytics?from=2026-03-01T00:00:00Z&to=2026-03-26T00:00:00Z"

# Response
{
  "period": {
    "from": "2026-03-01T00:00:00Z",
    "to": "2026-03-26T00:00:00Z"
  },
  "total_requests": 312840000,
  "bandwidth_tb": 18.4,
  "cache_hit_ratio": 0.986,
  "p99_latency_ms": 22
}

Error Codes

Code Meaning
401Missing or invalid API key
403Key lacks permission for this operation
404Resource not found
429Rate limit exceeded
500Internal server error
503Service temporarily unavailable