Skip to content
Browse documentation

API reference

Blog & content

Read published editorial content: posts with pagination and full-text search, categories, tags, authors, featured posts, and the blog landing configuration.

Feature requirement: the project must have the blog feature enabled, or these endpoints return 404.

  • Only posts with a published status and a past published_at are returned.
  • GET …/blog/search accepts a q query parameter.
GET/api/v1/storefront/projects/{project_slug}/blog

Get Blog

Parameters
NameTypeInDescription
project_slugstringpathRequired.
Response 200 · PublicBlogSettingsRead
FieldTypeDescription
project_idstringrequired—
titlestringrequired—
descriptionstring (nullable)optional—
seoSeoReadrequiredNested SEO metadata for API read responses.
Example request
curl "https://api.webtools.ng/api/v1/storefront/projects/your-project/blog" \
  -H "X-Project-Key: wt_pk_your_key"
GET/api/v1/storefront/projects/{project_slug}/blog/authors/{author_slug}

Get Author

Parameters
NameTypeInDescription
project_slugstringpathRequired.
author_slugstringpathRequired.
Response 200 · PublicAuthorRead
FieldTypeDescription
idstringrequired—
display_namestringrequired—
slugstringrequired—
biostring (nullable)optional—
titlestring (nullable)optional—
avatar_fileFileOut (nullable)optional—
social_linksobjectoptional—
Example request
curl "https://api.webtools.ng/api/v1/storefront/projects/your-project/blog/authors/{author_slug}" \
  -H "X-Project-Key: wt_pk_your_key"
GET/api/v1/storefront/projects/{project_slug}/blog/authors/{author_slug}/posts

List Author Posts

Parameters
NameTypeInDescription
project_slugstringpathRequired.
author_slugstringpathRequired.
pageintegerqueryOptional. Page number (1-based)
page_sizeintegerqueryOptional. Number of items per page
Response 200 (list) · PublicPostSummary[]
FieldTypeDescription
idstringrequired—
titlestringrequired—
slugstringrequired—
excerptstring (nullable)optional—
is_featuredbooleanrequired—
published_atstring<date-time> (nullable)optional—
categoryEntitySummary (nullable)optional—
featured_image_fileFileOut (nullable)optional—
authorsPublicAuthorRead[]optional—
tagsEntitySummary[]optional—
Example request
curl "https://api.webtools.ng/api/v1/storefront/projects/your-project/blog/authors/{author_slug}/posts" \
  -H "X-Project-Key: wt_pk_your_key"
GET/api/v1/storefront/projects/{project_slug}/blog/categories

List Categories

Parameters
NameTypeInDescription
project_slugstringpathRequired.
pageintegerqueryOptional. Page number (1-based)
page_sizeintegerqueryOptional. Number of items per page
Response 200 (list) · PublicCategoryRead[]
FieldTypeDescription
idstringrequired—
namestringrequired—
slugstringrequired—
descriptionstring (nullable)optional—
seoSeoReadrequiredNested SEO metadata for API read responses.
Example request
curl "https://api.webtools.ng/api/v1/storefront/projects/your-project/blog/categories" \
  -H "X-Project-Key: wt_pk_your_key"
GET/api/v1/storefront/projects/{project_slug}/blog/categories/{category_slug}/posts

List Category Posts

Parameters
NameTypeInDescription
project_slugstringpathRequired.
category_slugstringpathRequired.
pageintegerqueryOptional. Page number (1-based)
page_sizeintegerqueryOptional. Number of items per page
Response 200 (list) · PublicPostSummary[]
FieldTypeDescription
idstringrequired—
titlestringrequired—
slugstringrequired—
excerptstring (nullable)optional—
is_featuredbooleanrequired—
published_atstring<date-time> (nullable)optional—
categoryEntitySummary (nullable)optional—
featured_image_fileFileOut (nullable)optional—
authorsPublicAuthorRead[]optional—
tagsEntitySummary[]optional—
Example request
curl "https://api.webtools.ng/api/v1/storefront/projects/your-project/blog/categories/{category_slug}/posts" \
  -H "X-Project-Key: wt_pk_your_key"
GET/api/v1/storefront/projects/{project_slug}/blog/posts

List Posts

Parameters
NameTypeInDescription
project_slugstringpathRequired.
pageintegerqueryOptional. Page number (1-based)
page_sizeintegerqueryOptional. Number of items per page
Response 200 (list) · PublicPostSummary[]
FieldTypeDescription
idstringrequired—
titlestringrequired—
slugstringrequired—
excerptstring (nullable)optional—
is_featuredbooleanrequired—
published_atstring<date-time> (nullable)optional—
categoryEntitySummary (nullable)optional—
featured_image_fileFileOut (nullable)optional—
authorsPublicAuthorRead[]optional—
tagsEntitySummary[]optional—
Example request
curl "https://api.webtools.ng/api/v1/storefront/projects/your-project/blog/posts" \
  -H "X-Project-Key: wt_pk_your_key"
GET/api/v1/storefront/projects/{project_slug}/blog/posts/{post_slug}

Get Post

Parameters
NameTypeInDescription
project_slugstringpathRequired.
post_slugstringpathRequired.
Response 200 · PublicPostDetail
FieldTypeDescription
idstringrequired—
titlestringrequired—
slugstringrequired—
excerptstring (nullable)optional—
is_featuredbooleanrequired—
published_atstring<date-time> (nullable)optional—
categoryEntitySummary (nullable)optional—
featured_image_fileFileOut (nullable)optional—
authorsPublicAuthorRead[]optional—
tagsEntitySummary[]optional—
content_htmlstringrequired—
seoSeoReadrequiredNested SEO metadata for API read responses.
galleryPublicPostGalleryItem[]optional—
Example request
curl "https://api.webtools.ng/api/v1/storefront/projects/your-project/blog/posts/{post_slug}" \
  -H "X-Project-Key: wt_pk_your_key"
GET/api/v1/storefront/projects/{project_slug}/blog/search

Search Posts

Parameters
NameTypeInDescription
project_slugstringpathRequired.
qstringqueryRequired.
pageintegerqueryOptional. Page number (1-based)
page_sizeintegerqueryOptional. Number of items per page
Response 200 (list) · PublicPostSummary[]
FieldTypeDescription
idstringrequired—
titlestringrequired—
slugstringrequired—
excerptstring (nullable)optional—
is_featuredbooleanrequired—
published_atstring<date-time> (nullable)optional—
categoryEntitySummary (nullable)optional—
featured_image_fileFileOut (nullable)optional—
authorsPublicAuthorRead[]optional—
tagsEntitySummary[]optional—
Example request
curl "https://api.webtools.ng/api/v1/storefront/projects/your-project/blog/search" \
  -H "X-Project-Key: wt_pk_your_key"
GET/api/v1/storefront/projects/{project_slug}/blog/tags

List Tags

Parameters
NameTypeInDescription
project_slugstringpathRequired.
pageintegerqueryOptional. Page number (1-based)
page_sizeintegerqueryOptional. Number of items per page
Response 200 (list) · PublicTagRead[]
FieldTypeDescription
idstringrequired—
namestringrequired—
slugstringrequired—
descriptionstring (nullable)optional—
seoSeoReadrequiredNested SEO metadata for API read responses.
Example request
curl "https://api.webtools.ng/api/v1/storefront/projects/your-project/blog/tags" \
  -H "X-Project-Key: wt_pk_your_key"
GET/api/v1/storefront/projects/{project_slug}/blog/tags/{tag_slug}/posts

List Tag Posts

Parameters
NameTypeInDescription
project_slugstringpathRequired.
tag_slugstringpathRequired.
pageintegerqueryOptional. Page number (1-based)
page_sizeintegerqueryOptional. Number of items per page
Response 200 (list) · PublicPostSummary[]
FieldTypeDescription
idstringrequired—
titlestringrequired—
slugstringrequired—
excerptstring (nullable)optional—
is_featuredbooleanrequired—
published_atstring<date-time> (nullable)optional—
categoryEntitySummary (nullable)optional—
featured_image_fileFileOut (nullable)optional—
authorsPublicAuthorRead[]optional—
tagsEntitySummary[]optional—
Example request
curl "https://api.webtools.ng/api/v1/storefront/projects/your-project/blog/tags/{tag_slug}/posts" \
  -H "X-Project-Key: wt_pk_your_key"

← All resource groups