Overview
Authentication is covered in Authentication; limits and error codes in Rate Limits & Errors.
URL Structure
https://tento-api.intelligentlending.co.uk/api/v1/{resource}
| Component | Description |
|---|---|
tento-api.intelligentlending.co.uk | Your TentoCMS API domain |
/api/v1/ | API version prefix (current: v1) |
{resource} | Resource path (pages, media, collections) |
API Versioning
- Current version: v1
- Version in URL: Yes (
/api/v1/) - Breaking changes: Will result in new version (v2)
- Non-breaking changes: Added to current version
- Deprecation policy: 6 months notice before removal
Preview Mode
Preview mode lets you fetch draft (unpublished) content through the pages, collections, and blog public GET endpoints, so you can build a live preview of work in progress before it is published. The media endpoint (GET /api/v1/media/:id) does not implement preview mode at all — a preview key has no effect there, and it always serves whatever is already stored (media has no separate draft/published state).
To enable it, send a preview key alongside your API key on any public GET request. Preview keys are generated in the Admin UI and look like preview_....
- Header (recommended):
X-Preview-Key: preview_your_key_here - Query parameter:
?preview=preview_your_key_here
When a valid preview key is supplied:
- The API returns the latest draft content instead of the published version.
- Responses are marked
Cache-Control: private, no-store, max-age=0and are never cached (neither by the CDN nor by browsers).
If the preview key is invalid or has been revoked, the request fails with INVALID_PREVIEW_KEY (401). Requests with no preview key behave as normal public (published-only) requests.
Example: fetch a draft page
curl -H "X-API-Key: tento_pk_your_key_here" \
-H "X-Preview-Key: preview_your_key_here" \
https://tento-api.intelligentlending.co.uk/api/v1/pages/about-us
Reference index
| Page | Covers |
|---|---|
| Pages | List, get, create, update, publish, unpublish, delete pages |
| Collections | List, get, create, update, delete collection items |
| Blog | Posts, categories and tags |
| Media | Serving files and image transformations |
| Query Parameters | Field selection, pagination, sorting, filtering |
| Responses & Caching | Response envelopes and cache headers |
| Field Types | Every field type and its options |
| Validation | Schema validation rules |
| Rate Limits & Errors | Limits, error codes and idempotency |
| Webhooks | Events emitted by write operations |
| Best Practices | Using the API efficiently |
| Code Examples | cURL, JavaScript, Python, PHP |
| Troubleshooting | Common failures and their causes |

