Appearance
API overview
The API uses /v1 routes at https://api.dynamic-tables.com/v1.
The endpoint reference is rendered from the downloadable OpenAPI specification. It is a read-only reference: this docs site does not send authenticated API requests or modify data.
Requests and responses
Most POST requests accept application/json. Logo uploads use multipart form data. Mutation requests require the session's CSRF header. JSON responses have one of these shapes:
json
{
"data": {"example": "result"},
"meta": {"requestId": "request identifier"}
}json
{
"error": {"code": "PERMISSION_REQUIRED", "message": "Permission is required."},
"meta": {"requestId": "request identifier"}
}IDs are MongoDB ObjectId strings. Send only supported input fields. Schema/permission/query updates may require the current version or revision; 409 means reload before retrying, not overwrite blindly.
Logo reads return image bytes rather than the JSON envelope.
Common status codes
| Status | Meaning |
|---|---|
| 200 / 201 | Success / created |
| 401 | Authentication required or invalid credentials |
| 403 | Origin, CSRF, permissions, pending access, or expired membership denial |
| 404 | Resource unavailable; inaccessible organizations are generally concealed |
| 409 | Conflict, protected dependency, duplicate key, or stale revision |
| 413 / 415 | Body too large / unsupported content type |
| 422 | Invalid request data |
| 429 | Rate limited |
| 503 | Service temporarily unavailable |
Read the error code/message as well as the status. The API does not expose exception details in responses.
Pagination and access
List endpoints commonly return hasMore and accept page; page sizes vary by resource and are documented in the reference. Membership, role, and administration checks are server-enforced on every organization request. Expired memberships cannot bypass denial by reusing a login session.
Record CRUD and direct relationship access are available. Saved query execution and groups are also available. Documenting an endpoint does not grant access to it, and a stored query is not a published data-access policy.
Contextual group bindings and DynamicViews add mixed-record displays, required/optional record contexts, explicit relationship selectors, and per-placement restrictions. Existing query-backed group APIs remain supported.

