Images
Listing images
Fetch images you've previously generated, filtered by bucket and ordered newest first. Useful for building galleries, picking a recent generation to re-post, or paginating through history.
Endpoint
GET https://qaves.me/api/v1/images/generations
Query parameters
bucketstringoptionalBucket to read from. Auto-normalized the same way as on creation. Defaults to
default.limitintegeroptionalHow many to return. Between 1 and 100. Defaults to 50.
beforeintegeroptionalPagination cursor — Unix epoch (seconds). Pass
next_before from the previous response to fetch the next page. Omit to start from the most recent image.Response
bucketstringoptionalThe normalized bucket you queried.
limitintegeroptionalThe effective limit applied to this query.
countintegeroptionalNumber of items returned in
data.next_beforeinteger | nulloptionalCursor for the next page, or
null when there are no more results.bucket_idstring | nulloptionalThe bucket's unique ID, or
null if the bucket has no metadata row yet.is_publicbooleanoptionalWhether the bucket is publicly browsable.
bucket_linkstring | nulloptionalPublic URL for the bucket (only set when
is_public is true).dataarrayoptionalArray of images, each with
id, url, prompt, bucket, and created_at (Unix epoch).{
"bucket": "default",
"bucket_id": "8f1c…",
"is_public": false,
"bucket_link": null,
"limit": 50,
"count": 2,
"next_before": null,
"data": [
{
"id": "f0c8…",
"url": "https://qaves.me/api/i/<id>.png",
"prompt": "A neon orange fox",
"bucket": "default",
"created_at": 1778833800
}
]
}Examples
Latest 10 images in the default bucket
curl "https://qaves.me/api/v1/images/generations?limit=10" \ -H "Authorization: Bearer sk_qu_YOUR_KEY"
Read from a specific bucket
curl "https://qaves.me/api/v1/images/generations?bucket=client-acme&limit=50" \ -H "Authorization: Bearer sk_qu_YOUR_KEY"
Paginate through history
async function* allImages(bucket = "default") {
let before: number | undefined;
while (true) {
const url = new URL("https://qaves.me/api/v1/images/generations");
url.searchParams.set("bucket", bucket);
url.searchParams.set("limit", "100");
if (before) url.searchParams.set("before", String(before));
const res = await fetch(url, {
headers: { Authorization: `Bearer ${process.env.QAVES_KEY}` },
});
const json = await res.json();
for (const img of json.data) yield img;
if (!json.next_before) return;
before = json.next_before;
}
}Image URLs are permanent
URLs returned here are the same ones returned by creating images — safe to embed long-term.