Skip to content

The current filter as a spreadsheet

GET
/api/licenses/export.csv
curl --request GET \
--url 'https://app.dycrypt.com/o/acme/api/licenses/export.csv?status=PENDING&sort=expiresAt&asc=true' \
--header 'Authorization: Bearer <token>'

Same filters and same whitelists as /api/licenses/page, so an export can never show a row the list would not.

Refuses above 25,000 rows rather than truncating. A file that quietly stops is one somebody will act on believing it is complete.

productId
integer format: int64
q
string
status

Where the licence is against the calendar and the revocation flag. PENDING, EXPIRED and REVOKED do not count against plan capacity.

string
Allowed values: PENDING ACTIVE GRACE EXPIRED REVOKED
window
string
sort
string
default: expiresAt
asc
boolean
default: true

A CSV attachment.

Media typetext/csv
string

More than 25,000 rows match. Narrow the filter.

Media typeapplication/json

Every failure in this API has this shape and no other.

object
error
required
string
Example
{
"error": "this token does not have licenses:write"
}

No credential, or one that no longer resolves — revoked, expired, deleted. Replace it.

Media typeapplication/json

Every failure in this API has this shape and no other.

object
error
required
string
Example
{
"error": "this token does not have licenses:write"
}

Authenticated, but not allowed: a missing scope, a read-only role, a plan limit reached, or a credential used under another organisation’s slug. The right credential doing something it may not do.

Media typeapplication/json

Every failure in this API has this shape and no other.

object
error
required
string
Example
{
"error": "this token does not have licenses:write"
}