Endpoints
Every REST route in the Raster API, with parameters, responses, and examples.
Every endpoint lives under
https://api.raster.app/organizations/:organizationId/.... The
:organizationId segment is your organization slug. Library-scoped endpoints
add /libraries/:libraryId. Every request requires the
Authorization: Bearer <API_KEY> and Api-Version: 2026-05-20 headers
(see Authentication).
| Method | Path | Access | Description |
|---|---|---|---|
GET | /:orgId/libraries | Read | List libraries in an organization. |
GET | /:orgId/libraries/:libraryId/assets | Read | List assets in a library. |
GET | /:orgId/libraries/:libraryId/tags | Read | List tags in a library. |
POST | /:orgId/libraries/:libraryId/assets | Write | Upload one or more assets. |
DELETE | /:orgId/libraries/:libraryId/assets | Write | Delete assets by id. |
GET /libraries
Lists the libraries in an organization that your API key can reach.
Parameters
Prop
Type
Returns
{ data: Library[] } — each library carries an id, name, and the metadata
the GraphQL Library type exposes.
Example
curl --request GET \
--header 'Authorization: Bearer <API_KEY>' \
--header 'Api-Version: 2026-05-20' \
--url 'https://api.raster.app/organizations/monogram-labs/libraries?page=1&pageSize=20'GET /libraries/:libraryId/assets
Lists assets in a library, paginated and optionally filtered by tag.
Parameters
Prop
Type
Returns
{ data: Asset[] }. Each asset:
Prop
Type
Timestamps are returned as unix milliseconds (a number). Internal
database shapes never leak through the REST envelope.
Example
curl --request GET \
--header 'Authorization: Bearer <API_KEY>' \
--header 'Api-Version: 2026-05-20' \
--url 'https://api.raster.app/organizations/monogram-labs/libraries/barcelona/assets?page=1&pageSize=20&tags=landscape,nature'GET /libraries/:libraryId/tags
Lists the tags in a library, with their hit counts.
Parameters
Prop
Type
Returns
{ data: Tag[] }. Each tag carries a name and a count.
Example
curl --request GET \
--header 'Authorization: Bearer <API_KEY>' \
--header 'Api-Version: 2026-05-20' \
--url 'https://api.raster.app/organizations/monogram-labs/libraries/barcelona/tags?limit=100'POST /libraries/:libraryId/assets
Uploads one or more files to a library. The request body is multipart/form-data
with a repeatable files field.
Parameters
Prop
Type
Returns
{ data: { responseText: string, assets: Asset[] } }. Each asset carries the
same shape as GET /assets returns, including the permanent url — available
immediately, before async processing completes. The async pipeline writes the
optimized image to the same URL in place, so the value never changes.
Example
curl --request POST \
--header 'Authorization: Bearer <API_KEY>' \
--header 'Api-Version: 2026-05-20' \
--url 'https://api.raster.app/organizations/monogram-labs/libraries/barcelona/assets' \
--form 'files=@/path/to/photo-1.jpg' \
--form 'files=@/path/to/photo-2.png'The multipart field name must be files. Anything else is rejected with
400 and BAD_USER_INPUT. Other multer-level violations
(LIMIT_FILE_SIZE → 413 PAYLOAD_TOO_LARGE,
LIMIT_FILE_COUNT → 400 MAX_ASSETS_EXCEEDED) are mapped to canonical codes
in the Errors reference.
DELETE /libraries/:libraryId/assets
Deletes assets by id, in batches.
Parameters
Prop
Type
Returns
{ data: { success: boolean, deletedCount: number } }.
Example
curl --request DELETE \
--header 'Authorization: Bearer <API_KEY>' \
--header 'Api-Version: 2026-05-20' \
--header 'Content-Type: application/json' \
--url 'https://api.raster.app/organizations/monogram-labs/libraries/barcelona/assets' \
--data '{"ids":["abc123","def456"]}'