Every content endpoint: what it takes, what it answers with, and which key it needs.
List every page's draft
GET /api/v1/content/drafts · Secret key only
| Parameter |
Type |
Required |
|
locale |
string |
|
Filter by language, for example de. |
page |
integer |
|
|
page_size |
integer |
|
|
Answers 200 with PaginatedDraftSummaryList.
Create a page as a draft
POST /api/v1/content/drafts · Secret key only · needs an Idempotency-Key
| Field |
Type |
Required |
|
title |
string |
yes |
|
slug |
string or empty |
|
Made from the title when left out or empty. |
locale |
string |
|
One of the schema's locales. The default language when left out. |
sections |
list of SectionRequest |
|
The page's sections, in order, each fitting its section type. |
meta |
PageMetaRequest |
|
|
Answers 201 with Draft.
Fetch one page's draft
GET /api/v1/content/drafts/{page_id} · Secret key only
| Parameter |
Type |
Required |
|
page_id |
uuid |
yes |
|
Answers 200 with Draft.
Change a page's draft
POST /api/v1/content/drafts/{page_id} · Secret key only
| Parameter |
Type |
Required |
|
page_id |
uuid |
yes |
|
| Field |
Type |
Required |
|
title |
string |
|
|
slug |
string or empty |
|
Made from the title when left out or empty. |
locale |
string |
|
One of the schema's locales. The default language when left out. |
sections |
list of SectionRequest |
|
Replaces every section the draft holds, so send the ones left as they were too. |
meta |
PageMetaRequest |
|
|
Answers 200 with Draft.
Delete a page
POST /api/v1/content/drafts/{page_id}/delete · Secret key only
| Parameter |
Type |
Required |
|
page_id |
uuid |
yes |
|
Answers 200 with DeletedPage.
Publish a page
POST /api/v1/content/drafts/{page_id}/publish · Secret key only · needs an Idempotency-Key
| Parameter |
Type |
Required |
|
page_id |
uuid |
yes |
|
Answers 200 with Draft.
Publish an earlier version again
POST /api/v1/content/drafts/{page_id}/restore · Secret key only · needs an Idempotency-Key
| Parameter |
Type |
Required |
|
page_id |
uuid |
yes |
|
| Field |
Type |
Required |
|
version |
integer |
yes |
The number of the version to publish again. |
Answers 200 with Draft.
Take a page off the website
POST /api/v1/content/drafts/{page_id}/unpublish · Secret key only
| Parameter |
Type |
Required |
|
page_id |
uuid |
yes |
|
Answers 200 with Draft.
List a page's published versions
GET /api/v1/content/drafts/{page_id}/versions · Secret key only
| Parameter |
Type |
Required |
|
page |
integer |
|
|
page_id |
uuid |
yes |
|
page_size |
integer |
|
|
Answers 200 with PaginatedPageVersionList.
Cheap poll for change detection
GET /api/v1/content/manifest · Any key
Answers 200 with ContentManifest.
List published pages
GET /api/v1/content/pages · Any key
| Parameter |
Type |
Required |
|
locale |
string |
|
Filter by language, for example de. |
page |
integer |
|
|
page_size |
integer |
|
|
Answers 200 with PaginatedPageSummaryList.
Fetch one published page
GET /api/v1/content/pages/{slug} · Any key
| Parameter |
Type |
Required |
|
locale |
string |
|
|
slug |
string |
yes |
|
Answers 200 with PageDetail.
Fetch the content schema
GET /api/v1/content/schema · Secret key only
Answers 200 with ContentSchema.
Add a section type
POST /api/v1/content/section-types · Secret key only · needs an Idempotency-Key
| Field |
Type |
Required |
|
key |
string |
yes |
What a section of this type carries as its type: letters, digits and underscores, starting with a letter. Permanent. |
label |
string |
yes |
What the editor calls it. |
help_text |
string |
|
|
max_per_page |
integer or null |
|
Null or left out for any number. |
active |
boolean |
|
Whether the editor offers it. True when left out. |
fields |
list of SectionFieldRequestRequest |
|
Its fields, in order. One refused makes nothing at all. |
Answers 201 with SectionType.
Change a section type
POST /api/v1/content/section-types/{type_id} · Secret key only
| Parameter |
Type |
Required |
|
type_id |
uuid |
yes |
|
| Field |
Type |
Required |
|
key |
string |
|
Permanent: a different key is refused. |
label |
string |
|
|
help_text |
string |
|
|
max_per_page |
integer or null |
|
Null for any number. |
active |
boolean |
|
Off stops the editor offering it. Pages already holding one keep it. |
Answers 200 with SectionType.
Remove a section type
POST /api/v1/content/section-types/{type_id}/delete · Secret key only
| Parameter |
Type |
Required |
|
type_id |
uuid |
yes |
|
Answers 200 with DeletedSectionType.
Add a field to a section type
POST /api/v1/content/section-types/{type_id}/fields · Secret key only · needs an Idempotency-Key
| Parameter |
Type |
Required |
|
type_id |
uuid |
yes |
|
| Field |
Type |
Required |
|
key |
string |
yes |
The property a section carries this field's value under: letters, digits and underscores, starting with a letter. Permanent. |
kind |
SectionFieldKindEnum |
|
text when left out. * text - text * long - long * list - list * link - link * flag - flag * items - items * image - image |
label |
string |
yes |
What the editor calls it. |
help_text |
string |
|
|
required |
boolean |
|
Whether a published page may leave it empty. |
item_label |
string |
|
For items only: what one entry is called. |
item_fields |
list of RowFieldRequestRequest |
|
For items only, and required by it: the fields of each entry, one level deep. |
Answers 201 with SectionType.
Change a field
POST /api/v1/content/section-types/{type_id}/fields/{field_id} · Secret key only
| Parameter |
Type |
Required |
|
field_id |
uuid |
yes |
|
type_id |
uuid |
yes |
|
| Field |
Type |
Required |
|
key |
string |
|
Permanent: a different key is refused. |
kind |
SectionFieldKindEnum |
|
What a page already holds under it is checked against the new kind when that page is next saved. * text - text * long - long * list - list * link - link * flag - flag * items - items * image - image |
label |
string |
|
|
help_text |
string |
|
|
required |
boolean |
|
|
item_label |
string |
|
|
item_fields |
list of RowFieldRequestRequest |
|
Replaces every row field the group has. |
Answers 200 with SectionType.
Remove a field
POST /api/v1/content/section-types/{type_id}/fields/{field_id}/delete · Secret key only
| Parameter |
Type |
Required |
|
field_id |
uuid |
yes |
|
type_id |
uuid |
yes |
|
Answers 200 with SectionType.
List the image library
GET /api/v1/images · Secret key only
| Parameter |
Type |
Required |
|
page |
integer |
|
|
page_size |
integer |
|
|
Answers 200 with PaginatedImageList.
Fetch one library image
GET /api/v1/images/{image_id} · Secret key only
| Parameter |
Type |
Required |
|
image_id |
uuid |
yes |
|
Answers 200 with Image.
Shapes
PaginatedDraftSummaryList
| Field |
Type |
Always there |
|
count |
integer |
yes |
|
results |
list of DraftSummary |
yes |
|
Draft
| Field |
Type |
Always there |
|
id |
uuid |
yes |
|
slug |
string |
yes |
|
locale |
string |
yes |
|
title |
string |
yes |
The draft's title, which the website shows once it is published. |
status |
StatusEnum |
yes |
|
live_version |
integer or null |
yes |
The number of the version the website shows. Null while nothing is published. |
changed |
boolean |
yes |
Whether the draft holds edits the website does not show yet. False while nothing is published. |
updated_at |
date-time |
yes |
|
sections |
list of Section |
yes |
|
meta |
object |
yes |
|
published_at |
date-time or null |
yes |
When the version the website shows was published. Null while nothing is. |
DeletedPage
| Field |
Type |
Always there |
|
id |
uuid |
yes |
|
deleted |
boolean |
yes |
|
PaginatedPageVersionList
| Field |
Type |
Always there |
|
count |
integer |
yes |
|
results |
list of PageVersion |
yes |
|
ContentManifest
| Field |
Type |
Always there |
|
cache_version |
integer |
yes |
Changes on every publish, and with a test key on every draft saved. Poll this rather than refetching pages. |
page_count |
integer |
yes |
|
locales |
list of string |
yes |
Languages something is actually published in, or with a test key has a draft in. |
configured_locales |
list of string |
yes |
Languages this project is set up to publish in. |
default_locale |
string |
yes |
|
PaginatedPageSummaryList
| Field |
Type |
Always there |
|
count |
integer |
yes |
|
results |
list of PageSummary |
yes |
|
PageDetail
| Field |
Type |
Always there |
|
slug |
string |
yes |
|
locale |
string |
yes |
|
title |
string |
yes |
|
updated_at |
date-time |
yes |
|
version |
integer or null |
yes |
The live version's number. Null for a test key's draft never published. |
sections |
list of Section |
yes |
|
meta |
object |
yes |
|
published_at |
date-time or null |
yes |
When the live version was published. Null for a test key's draft never published. |
translations |
list of string |
yes |
|
ContentSchema
| Field |
Type |
Always there |
|
default_locale |
string |
yes |
|
locales |
list of string |
yes |
Every language a page may be in. |
section_types |
list of SectionType |
yes |
|
SectionType
| Field |
Type |
Always there |
|
id |
uuid |
yes |
|
key |
string |
yes |
What a section of this type carries as its type. |
label |
string |
yes |
|
help_text |
string |
yes |
|
max_per_page |
integer or null |
yes |
How many one page may hold. Null for any number. |
active |
boolean |
yes |
Whether the editor offers it. A retired type stays on the pages using it. |
fields |
list of SectionField |
yes |
|
DeletedSectionType
| Field |
Type |
Always there |
|
id |
uuid |
yes |
|
deleted |
boolean |
yes |
|
PaginatedImageList
| Field |
Type |
Always there |
|
count |
integer |
yes |
|
results |
list of Image |
yes |
|
Image
| Field |
Type |
Always there |
|
id |
uuid |
yes |
What an image field of a page is given to show this image. |
url |
uri |
yes |
Where the image is, public to anybody holding the address. |
width |
integer |
yes |
|
height |
integer |
yes |
|
alt |
string |
yes |
What the picture shows, for somebody who cannot see it. May be empty. |
created_at |
date-time |
yes |
|
SectionRequest
| Field |
Type |
Always there |
|
type |
string |
yes |
|
PageMetaRequest
| Field |
Type |
Always there |
|
title |
string |
|
The SEO title. Empty removes it. |
description |
string |
|
The SEO description. Empty removes it. |
SectionFieldRequestRequest
| Field |
Type |
Always there |
|
key |
string |
yes |
The property a section carries this field's value under: letters, digits and underscores, starting with a letter. Permanent. |
kind |
SectionFieldKindEnum |
|
text when left out. * text - text * long - long * list - list * link - link * flag - flag * items - items * image - image |
label |
string |
yes |
What the editor calls it. |
help_text |
string |
|
|
required |
boolean |
|
Whether a published page may leave it empty. |
item_label |
string |
|
For items only: what one entry is called. |
item_fields |
list of RowFieldRequestRequest |
|
For items only, and required by it: the fields of each entry, one level deep. |
SectionFieldKindEnum
RowFieldRequestRequest
| Field |
Type |
Always there |
|
key |
string |
yes |
|
kind |
string |
|
Any kind but items. text when left out. |
label |
string |
|
The key when left out. |
help_text |
string |
|
|
required |
boolean |
|
|
DraftSummary
| Field |
Type |
Always there |
|
id |
uuid |
yes |
|
slug |
string |
yes |
|
locale |
string |
yes |
|
title |
string |
yes |
The draft's title, which the website shows once it is published. |
status |
StatusEnum |
yes |
|
live_version |
integer or null |
yes |
The number of the version the website shows. Null while nothing is published. |
changed |
boolean |
yes |
Whether the draft holds edits the website does not show yet. False while nothing is published. |
updated_at |
date-time |
yes |
|
StatusEnum
Section
| Field |
Type |
Always there |
|
type |
string |
yes |
|
PageVersion
| Field |
Type |
Always there |
|
number |
integer |
yes |
|
title |
string |
yes |
|
published_at |
date-time |
yes |
|
restored_from |
integer or null |
yes |
The version this one copied, when it was published by restoring it. |
live |
boolean |
yes |
Whether this is the version the website shows. |
PageSummary
| Field |
Type |
Always there |
|
slug |
string |
yes |
|
locale |
string |
yes |
|
title |
string |
yes |
|
updated_at |
date-time |
yes |
|
version |
integer or null |
yes |
The live version's number. Null for a test key's draft never published. |
SectionField
| Field |
Type |
Always there |
|
id |
uuid |
yes |
|
key |
string |
yes |
The property a section carries this field's value under. |
kind |
SectionFieldKindEnum |
yes |
|
label |
string |
yes |
|
help_text |
string |
yes |
|
required |
boolean |
yes |
Whether a published page may leave it empty. |
item_label |
string |
yes |
What one entry of a repeatable group is called. Empty for any other kind. |
item_fields |
list of RowField |
yes |
The fields of each entry of a repeatable group, one level deep. Empty for any other kind. |
RowField
| Field |
Type |
Always there |
|
key |
string |
yes |
|
kind |
RowFieldKindEnum |
yes |
|
label |
string |
yes |
|
help_text |
string |
yes |
|
required |
boolean |
yes |
|
RowFieldKindEnum