TentoCMS
Api

Overview

Base URL, versioning and preview mode, plus an index of the public API reference.

Authentication is covered in Authentication; limits and error codes in Rate Limits & Errors.

URL Structure

https://tento-api.intelligentlending.co.uk/api/v1/{resource}
ComponentDescription
tento-api.intelligentlending.co.ukYour 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=0 and 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

PageCovers
PagesList, get, create, update, publish, unpublish, delete pages
CollectionsList, get, create, update, delete collection items
BlogPosts, categories and tags
MediaServing files and image transformations
Query ParametersField selection, pagination, sorting, filtering
Responses & CachingResponse envelopes and cache headers
Field TypesEvery field type and its options
ValidationSchema validation rules
Rate Limits & ErrorsLimits, error codes and idempotency
WebhooksEvents emitted by write operations
Best PracticesUsing the API efficiently
Code ExamplescURL, JavaScript, Python, PHP
TroubleshootingCommon failures and their causes
Copyright © 2026