API Reference
Integrate with the NextSDS REST API to manage Safety Data Sheets, chemical inventory, locations, and safety cards programmatically.
The NextSDS API gives you programmatic access to your team's SDS data, chemical inventory, storage locations, and safety card generation. Use it to build integrations with warehouse management systems, ERP platforms, barcode scanners, or custom dashboards.
Base URL
https://api.nextsds.com/v1Authentication
Every request must include an API key in the X-API-Key header.
curl https://api.nextsds.com/v1/sds \
-H "X-API-Key: your-api-key"You can create and manage API keys in Settings > API Keys. Each key is scoped to your team and inherits the team's data access. There are two key types:
| Type | Use case |
|---|---|
| Machine Key | Server-to-server integrations (long unique identifier) |
| Device Key | Mobile apps and barcode scanners (short numeric code) |
Keep your API key secret. It provides full access to your team's data. If a key is compromised, delete it immediately in Settings and create a new one.
Team context
All data in NextSDS is scoped to a team. The API key determines which team's data you access — no additional team header is needed.
If your account belongs to multiple teams and you need to target a specific one, include the X-Team-Id header:
curl https://api.nextsds.com/v1/sds \
-H "X-API-Key: your-api-key" \
-H "X-Team-Id: 550e8400-e29b-41d4-a716-446655440000"Request format
- Send JSON request bodies with
Content-Type: application/json - File uploads use
Content-Type: multipart/form-data - All IDs are UUIDs
- Timestamps follow ISO 8601 format
Response format
Successful responses return data in a data wrapper. List endpoints include pagination metadata:
{
"data": [ ... ],
"meta": {
"page": 1,
"per_page": 25,
"total": 142,
"has_more": true
}
}Single-resource endpoints return:
{
"data": { ... }
}Pagination
List endpoints support page-based pagination with two query parameters:
| Parameter | Default | Max | Description |
|---|---|---|---|
page | 1 | — | Page number (1-based) |
per_page | 25 | 100 | Items per page |
Errors
Errors follow the RFC 7807 Problem Details format:
{
"type": "https://api.nextsds.com/errors/not-found",
"title": "Not Found",
"status": 404,
"detail": "SDS document with id '...' was not found"
}| Status | Meaning |
|---|---|
400 | Bad request — invalid input or missing required fields |
401 | Unauthorized — missing or invalid API key |
404 | Resource not found |
413 | File too large (max 10 MB for SDS uploads) |
422 | Validation error — check the errors array for field-level details |
500 | Internal server error |
Rate limiting
The API enforces rate limits per API key. If you exceed the limit, you'll receive a 429 Too Many Requests response. Include reasonable delays between bulk operations.
Available endpoints
| Domain | Description |
|---|---|
| SDS | Upload, search, update, and archive Safety Data Sheets |
| SDS Download | Download original SDS PDF files |
| Locations | Manage storage locations and assign chemicals to them |
| Inventory | Track chemical quantities and storage details |
| Safety Cards | Manage VIK profiles and generate safety card documents |
| Assessments | Retrieve RECESS and EMKG risk assessment results |