Skip to main content

List objects

Returns a paginated list of the authenticated project's objects, newest first.

GET /api/v1/objects

Permission: read

Request

Headers

HeaderRequiredNotes
X-API-KeyYesA key with read permission.

Query parameters

ParameterTypeDefaultNotes
pageinteger (≥1)1Page number.
per_pageinteger (1–100)20Items per page; capped at 100.
visibilitypublic | privateOptional filter.

Example

curl
curl "https://fileshub.zaions.com/api/v1/objects?page=1&per_page=20&visibility=public" \
-H "X-API-Key: fh_live_xxx"
fetch
const params = new URLSearchParams({ page: '1', per_page: '50' });
const res = await fetch(`https://fileshub.zaions.com/api/v1/objects?${params}`, {
headers: { 'X-API-Key': 'fh_live_xxx', Accept: 'application/json' },
});
const { data, meta } = await res.json();

Response

200 OK

{
"data": [
{
"public_id": "01JDKQXXXXXXXXXXXXXXXXXXXXX",
"original_filename": "photo.jpg",
"mime_type": "image/jpeg",
"size_bytes": 524288,
"visibility": "public",
"url": "https://fileshub.zaions.com/api/v1/objects/01JDKQXXXXXXXXXXXXXXXXXXXXX",
"created_at": "2026-06-23T12:00:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 20,
"total": 150
}
}

Errors

StatusWhenBody
401No / invalid X-API-Key.{ "message": "..." }
403Key lacks read permission.{ "message": "..." }
422Invalid query parameter (e.g. per_page > 100).{ "message": "<first validation error>" }

Paging through everything

Request pages until you have collected meta.total items:

async function listAll(key) {
const out = [];
let page = 1;
for (;;) {
const res = await fetch(
`https://fileshub.zaions.com/api/v1/objects?page=${page}&per_page=100`,
{ headers: { 'X-API-Key': key } },
);
const { data, meta } = await res.json();
out.push(...data);
if (out.length >= meta.total || data.length === 0) break;
page++;
}
return out;
}