403, the sameGET
/subjects/{subject}/sites or a sites operation: this is ansite_build. The stock hosted_site meter (liveGET
/subjects/{subject}/sites instead.nextCursor), not offset-based —?cursor= to fetch the next page. AbsentnextCursor (null) means you've reached the last page.curl --location 'https://upload.tf/api/v1/usage/subjects?period=2026-08&cursor=undefined&limit=undefined' \
--header 'x-api-key: <api-key>'{
"success": true,
"data": {
"period": "string",
"subjects": [
{
"subjectId": "68460e63-0717-47f9-8fd8-d28f152cb30b",
"externalId": "string",
"features": {
"site_build": 42
}
}
],
"limit": 0,
"hasMore": true,
"nextCursor": "string"
}
}