API Overview & Authentication
Base URL, authentication, rate limiting, error codes, and conventions for the Enafeedback REST API.
Last updated on
The Enafeedback REST API lets you read and write data programmatically. Use it to build custom integrations, extract data into your data warehouse, or automate workspace management tasks.
Base URL
https://api.enafeedback.com/apiAll endpoints are prefixed with /api. Requests must use HTTPS.
Authentication
All API requests require a Bearer token. See Authentication for how to obtain a token.
Authorization: Bearer efa_sk_your_token_hereRequest format
- Content-Type —
application/jsonfor request bodies. - Accept —
application/json(default; all responses are JSON). - Dates — ISO 8601 with timezone, e.g.
2026-06-07T10:30:00Z.
Response format
Successful responses return HTTP 2xx with a JSON body. List endpoints return paginated responses:
{
"data": [...],
"meta": {
"total": 284,
"page": 1,
"per_page": 20,
"pages": 15
}
}Single-resource responses return the resource object directly.
Pagination
Add ?page=2&per_page=50 to any list endpoint. Maximum per_page is 100.
Filtering & sorting
Most list endpoints accept filter query parameters. Common ones:
| Parameter | Example | Description |
|---|---|---|
from | 2026-01-01T00:00:00Z | Start of date range |
to | 2026-06-30T23:59:59Z | End of date range |
location_id | loc_abc123 | Filter by location |
sort | created_at:desc | Sort field and direction |
Error codes
| HTTP status | Meaning |
|---|---|
| 400 Bad Request | Invalid parameters or request body |
| 401 Unauthorized | Missing or invalid Bearer token |
| 403 Forbidden | Valid token but insufficient permissions |
| 404 Not Found | Resource does not exist in this workspace |
| 409 Conflict | Duplicate resource or constraint violation |
| 422 Unprocessable Entity | Validation error (body has field-level errors) |
| 429 Too Many Requests | Rate limit exceeded |
| 500 Internal Server Error | Unexpected server error |
Error responses have a consistent shape:
{
"statusCode": 404,
"error": "Not Found",
"message": "Survey not found"
}Rate limiting
1,000 requests per minute per workspace. See Authentication for header details.
Idempotency
POST requests that create resources are not idempotent by default. To prevent duplicate creation on retry, include an Idempotency-Key header with a unique string (UUID recommended). The same key within a 24-hour window returns the original response without creating a duplicate.
Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000API versioning
The current API version is v1 (implicit in the base URL). Breaking changes will be introduced with a new base URL path prefix (/api/v2). Non-breaking additions (new fields, new optional parameters) may be made without a version bump.
OpenAPI spec
The canonical OpenAPI 3.1 specification ships with this documentation site (openapi/enafeedback-api.yaml). Browse the interactive reference under REST API Reference, or import the YAML into Postman, Insomnia, or any OpenAPI-compatible client.
Generated endpoint pages stay in sync with the spec at build time. Propose changes via your account manager or support channel.