Skip to content

List published posts

GET
/api/v1/content/posts
curl --request GET \
--url 'https://example.com/api/v1/content/posts?locale=th&limit=20'
locale
required
string
Allowed values: th en

Content locale.

limit
integer
default: 20 >= 1 <= 50

Maximum items returned.

cursor
string
>= 1 characters <= 2048 characters

Opaque cursor returned in the previous response.

category
string
>= 1 characters <= 80 characters

Filter posts by category name.

q
string
>= 1 characters <= 100 characters

Find the posts that contain every word, in the title, the excerpt or the text, ignoring case. Only the first five words count.

A cursor-paginated page of published posts.

Media typeapplication/json
object
data
required
Array<object>
object
contentHtml
required
string
<= 1000000 characters
contentJson
required

Native Tiptap document retained for re-editing.

object
type
required
string
Allowed value: doc
content
Array<object>

A Tiptap node. Runtime input is limited to 100 nested levels.

object
type
required
string
>= 1 characters
attrs
object
key
additional properties
any
content
Array<object> recursive
marks
Array<object>

A Tiptap text mark.

object
type
required
string
>= 1 characters
attrs
object
key
additional properties
any
text
string
createdAt
required
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
id
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
locale
required
string
Allowed values: th en
media
required
Array<object>
object
altText
required
Any of:
string
<= 300 characters
height
required
integer
> 0 <= 9007199254740991
id
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
mimeType
required
string
Allowed values: image/avif image/gif image/jpeg image/png image/webp
sizeBytes
required
integer
> 0 <= 9007199254740991
url
required
string
>= 1 characters <= 2048 characters
width
required
integer
> 0 <= 9007199254740991
publishedAt
required
Any of:
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
seo
required
object
description
required
Any of:
string
<= 320 characters
title
required
Any of:
string
<= 70 characters
slug
required
string
>= 1 characters <= 160 characters /^(?:[a-z0-9]|\p{Script=Thai})+(?:-(?:[a-z0-9]|\p{Script=Thai})+)*$/
status
required
string
Allowed values: draft published
title
required
string
>= 1 characters <= 200 characters
translationGroupId
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
translations
required
Array<object>
<= 2 items
object
href
required
string
>= 1 characters <= 2048 characters
locale
required
string
Allowed values: th en
updatedAt
required
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
categories
required
Array<object>
<= 20 items
object
id
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
name
required
string
>= 1 characters <= 80 characters
coverImage
required
Any of:
object
altText
required
Any of:
string
<= 300 characters
height
required
integer
> 0 <= 9007199254740991
id
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
mimeType
required
string
Allowed values: image/avif image/gif image/jpeg image/png image/webp
sizeBytes
required
integer
> 0 <= 9007199254740991
url
required
string
>= 1 characters <= 2048 characters
width
required
integer
> 0 <= 9007199254740991
meta
required
object
hasMore
required
boolean
limit
required
integer
>= 1 <= 50
locale
required
string
Allowed values: th en
links
required
object
next
required
Any of:
string format: uri
Example
{
"data": [
{
"contentJson": {
"type": "doc"
},
"locale": "th",
"media": [
{
"mimeType": "image/avif"
}
],
"status": "draft",
"translations": [
{
"locale": "th"
}
],
"coverImage": {
"mimeType": "image/avif"
}
}
],
"meta": {
"locale": "th"
}
}

The cached representation is still current.

The request parameters are invalid.

Media typeapplication/problem+json
object
detail
required
string
>= 1 characters
instance
required
string
>= 1 characters <= 2048 characters
maintenance
object
backAt
required
Any of:
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$/
heading
required
string
>= 1 characters
locale
required
string
Allowed values: th en
message
required
string
>= 1 characters
requestId
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
status
required
integer
>= 400 <= 599
title
required
string
>= 1 characters
type
required
string
>= 1 characters <= 2048 characters
Example
{
"maintenance": {
"locale": "th"
}
}

A search was asked for too often, or the server is busy with other searches. Ask again after Retry-After seconds.

Media typeapplication/problem+json
object
detail
required
string
>= 1 characters
instance
required
string
>= 1 characters <= 2048 characters
maintenance
object
backAt
required
Any of:
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$/
heading
required
string
>= 1 characters
locale
required
string
Allowed values: th en
message
required
string
>= 1 characters
requestId
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
status
required
integer
>= 400 <= 599
title
required
string
>= 1 characters
type
required
string
>= 1 characters <= 2048 characters
Example
{
"maintenance": {
"locale": "th"
}
}
Retry-After
integer

Seconds to wait.

The request could not be completed.

Media typeapplication/problem+json
object
detail
required
string
>= 1 characters
instance
required
string
>= 1 characters <= 2048 characters
maintenance
object
backAt
required
Any of:
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$/
heading
required
string
>= 1 characters
locale
required
string
Allowed values: th en
message
required
string
>= 1 characters
requestId
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
status
required
integer
>= 400 <= 599
title
required
string
>= 1 characters
type
required
string
>= 1 characters <= 2048 characters
Example
{
"maintenance": {
"locale": "th"
}
}

The content service is not ready, or the site is closed for maintenance; then maintenance carries what the owner wrote for visitors.

Media typeapplication/problem+json
object
detail
required
string
>= 1 characters
instance
required
string
>= 1 characters <= 2048 characters
maintenance
object
backAt
required
Any of:
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$/
heading
required
string
>= 1 characters
locale
required
string
Allowed values: th en
message
required
string
>= 1 characters
requestId
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
status
required
integer
>= 400 <= 599
title
required
string
>= 1 characters
type
required
string
>= 1 characters <= 2048 characters
Example
{
"maintenance": {
"locale": "th"
}
}