Skip to content
DocsGo to Dashboard
Purge cache via API

POST /v1/delivery/purge/requests with the group id and media paths

One call purges: identify the domain, name the group, and — for path-based groups — list the URLs or tags. The response reports exactly what happened, including anything refused.

Purge logs table with date filters showing recent purge requests, actor, and status
Purge Logs records every purge with its scope, actor, and outcome.

The request#

curl -X POST -H "X-Api-Key: $TENANT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "www.acme.com",
    "purgeGroupId": "specific-urls",
    "mediaPaths": [
      "https://www.acme.com/products",
      "/assets/logo.png"
    ]
  }' \
  https://api.example.com/v1/delivery/purge/requests

domain (or domainId) resolves as in the options call; purgeGroupId (or groupId) is required (purgeGroupId is required.); paths travel in mediaPaths (or urls). Validation runs before anything is purged: at most 10 paths (At most 10 URLs can be purged per request.), no wildcards (A valid non-wildcard URL or path is required.), each path must belong to the domain (URL must belong to the selected domain.), and URL groups need at least one entry. full-site rejects paths outright — media paths are only supported for specific URL purge groups.

The response#

Success:

{
  "ok": true,
  "status": "COMPLETED",
  "requestId": "...",
  "group": { "id": "specific-urls", "label": "Specific URLs" },
  "purged": 14
}

If any path is refused the call answers 400 with "error": "Purge request rejected.", the same status (REJECTED) and requestId, plus rejectedPaths explaining each refusal — nothing is purged when even one path fails validation. Matching is exact: a URL is purged with its query string when one is present, and path-wide when it is not. Every API purge is recorded as activity cache.api_purge_requested (group, purged count, rejected count, request id) and lands in Cache → Purge logs with Request, URLs, Actor, Status, and Requested columns (cache-purge-logs screenshot below).

Expected result#

A request id you can correlate with the purge log, a purged count for observability, and honest rejection details rather than silent partial success.

Back to Purge cache via API