Developers
Connect your tools to your CurateGrid projects, resources and results.
This release provides authenticated reads. Uploads, voting and administrative changes through the API are not included.
Access restricted to one workspace
Permissions and membership are checked on every request. Revocation blocks the next access.
Send Authorization: Bearer followed by the token. Never put tokens in links, URL parameters, screenshots or logs.
Up to 20 active tokens per user and workspace; maximum lifetime of 90 days. A token cannot grant permissions your account does not have.
Available operations
Read projects
GET /api/projects
Token permission: projects:read
Read projects
GET /api/projects/{project}
Token permission: projects:read
Read resources
GET /api/projects/{project}/items
Token permission: resources:read
Read resources
GET /api/projects/{project}/items/{item}
Token permission: resources:read
Read results
GET /api/projects/{project}/results
Token permission: results:read
Lists return data and meta. Use page and per_page (1–100, default 25). These are API parameters, not shareable interface URLs.
Limit: 120 requests per minute and authenticated user. For HTTP 429, respect Retry-After. HTTP 401 means invalid credentials; 403, forbidden; 404, resource unavailable; 422, invalid parameters.
Original files, storage paths, EXIF/GPS and user email addresses are not included. Filenames are hidden when metadata policy restricts access. Results also respect blind evaluation.
The schema is generated from the same inventory that registers the routes. The API evolves in /api without numbered routes.