Public feed
Feed of all GIFs, newest first. Public. Two pagination modes: - **Cursor (recommended):** pass the `nextCursor` value from the previous response as `cursor`. Stable under concurrent uploads/deletes — pages never overlap or skip items. `total` and `page` are omitted in this mode. - **Page:** pass `page` (1-200). Simpler, but offset-based; item positions can shift between requests when the feed changes. Every response includes `nextCursor` for the item after the last one returned (`null` when the feed is exhausted), so clients can switch to cursor pagination after any page.
Query Parameters
Opaque cursor from a previous response's nextCursor. Takes precedence over page.
1-based page number (offset mode). Ignored when cursor is set.
Response Body
application/json
application/json
curl -X GET "https://example.com/gifs/feed"{ "items": [ { "id": "string", "name": "string", "description": "string", "url": "http://example.com", "mimeType": "image/webp", "sizeBytes": "204800", "width": 0, "height": 0, "thumbhash": "string", "userId": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" } ], "total": 0, "page": 0, "limit": 0, "nextCursor": "string"}{ "error": "string"}List my GIFs GET
Paginated list of GIFs owned by the caller. With a bare app token it returns GIFs across all of the app's service accounts.
Search GIFs GET
Hybrid text and vector search over all GIFs. Rate limit 300 per 10 minutes per IP without auth, or the app's configured limit (default 300 per minute) when called with a bare app key.