API Reference Overview
The Slim.io REST API enables programmatic access to connectors, scans, findings, and governance features. All endpoints are JSON-based and require authentication via Firebase JWT tokens.
Base URLs
| Environment | Base URL |
|---|---|
| Production | https://api.slim.io/api/v1/ |
| Development | https://dev-api.slim.io/api/v1/ |
All API paths referenced in this documentation are relative to the base URL. For example, GET /connectors means GET https://api.slim.io/api/v1/connectors.
Versioning
The API is versioned via URL path. The current version is v1. When breaking changes are introduced, a new version (v2) will be released with a migration period.
Request Format
- Content-Type:
application/jsonfor all request bodies - Authorization:
Bearer <firebase-jwt-token>header on all requests - YAML Bodies: Policy and classifier endpoints also accept
application/yamlcontent type
Response Format
All responses follow a consistent envelope:
{
"status": "success",
"data": { ... },
"metadata": {
"request_id": "req-abc123",
"timestamp": "2024-03-15T14:30:00Z"
}
}Error Responses
{
"status": "error",
"error": {
"code": "CONNECTOR_NOT_FOUND",
"message": "No connector found with ID 'conn-xyz'",
"details": {}
},
"metadata": {
"request_id": "req-abc456",
"timestamp": "2024-03-15T14:30:00Z"
}
}Common HTTP Status Codes
| Code | Meaning |
|---|---|
200 | Success |
201 | Resource created |
400 | Bad request (invalid parameters) |
401 | Unauthorized (missing or invalid token) |
403 | Forbidden (insufficient permissions) |
404 | Resource not found |
409 | Conflict (duplicate resource) |
429 | Rate limit exceeded |
500 | Internal server error |
Pagination
List endpoints support cursor-based pagination:
GET /api/v1/connectors?limit=20&cursor=eyJsYXN0X2lkIjoiY29ubi0xMjMifQResponse includes a next_cursor field when more results are available:
{
"status": "success",
"data": [ ... ],
"pagination": {
"limit": 20,
"next_cursor": "eyJsYXN0X2lkIjoiY29ubi0xNDMifQ",
"has_more": true
}
}The default page size is 20 items. Maximum page size is 100. Cursors are opaque strings — do not parse or construct them manually.
API Sections
- Authentication — JWT tokens, authorization headers, token refresh
- Connectors API — CRUD operations for cloud storage connectors
- Scans API — Trigger scans, monitor progress, retrieve results
- Governance API — Policies, drift events, risk scores
- Rate Limits — Per-tenant rate limiting and throttling