Skip to content

Bulk delete licence keys

POST/licences/bulk_delete

Costs 2 rate-limit points · Rate limits

Delete licence keys in bulk, as the Licence keys page does, one of three ways: ids (a list), {unused: true, tag} (every unassigned key of a tag; include_assigned: true takes the assigned ones too) or {duplicates: true, tag} (keep the oldest pending row per key text, drop the rest). Destructive: send it first without confirm. Nothing changes and the 409 confirmation_required says what would. Tell the merchant, ask, and resend with confirm: true only after they agree.

Over 5,000 unused keys the delete runs in the background (202, queued: true); otherwise 200 once the keys are gone. Keys on orders leave the order marked so no replacement is assigned. Without confirm: true nothing is deleted: 409 confirmation_required says how many keys (and how many on orders) would go.

Also searched asdelete unused keysdelete duplicate keysbulk delete licence keysclear a key poolremove these keys

Request body

  • idsarray of strings
  • unusedany
  • duplicatesany
  • tagany
  • include_assignedany
  • confirmboolean
    Example: true

Returns

  • deletedarray of strings
  • missingarray of anys

Errors

401

Missing or invalid API key.

404

The resource does not exist for this shop, or the action path is not registered.

422

The request failed validation, or sent a key the action does not take (code: "unknown_parameters" with unknown and accepted). Nothing was saved.

429

Rate limited. Cost-weighted per API key, shared with API v1: a read costs 1 point, a write 2, 40 points per fixed 60-second window. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix time the window ends); a 429 adds Retry-After (seconds), retry_after, retryable: true and a next_step in the body. A 429 did nothing: wait retry_after seconds, then send the same request again. The budget is per key, so every tool or script using the key shares it; prefer one list call with per_page over many single reads.

Every error has the same shape: see Errors.

POST/licences/bulk_delete
curl -X POST "https://app.filemonk.io/api/v2/external/licences/bulk_delete" \
  -H "X-Auth-Token: $FILEMONK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": [
      "bcc87d33-c87e-4f39-9cd2-e43250ebc1ed"
    ],
    "confirm": true
  }'
Response
{
  "deleted": [
    "bcc87d33-c87e-4f39-9cd2-e43250ebc1ed"
  ],
  "missing": []
}