-
Notifications
You must be signed in to change notification settings - Fork 1
Understanding the API
The API is implemented on top of Wagtail's API, documentation can be found here
The four platforms currently supported by the content repo are Web, Whatsapp, Viber and Messenger. The API only returns results for one platform at a time depending on which platform is requested.
In order to retrieve content for a platform, the following endpoints are accepted
/api/v2/pages/<page-id>/?whatsapp=True
/api/v2/pages/<page-id>/?viber=True
/api/v2/pages/<page-id>/?sms=True
/api/v2/pages/<page-id>/?ussd=True
/api/v2/pages/<page-id>/?messenger=True
If no platform is provided in the query string, the API will return the web content.
If a platform has been requested but has not been enabled on the CMS no content will be returned
For Whatsapp, Viber, SMS, USSD and Messenger, each text block in the CMS counts as 1 message. If no message index is sent in the query string, the API will return the first message. Below are examples of how to request specific messages.
/api/v2/pages/<page-id>/?whatsapp=True&message=1
/api/v2/pages/<page-id>/?viber=True&message=4
/api/v2/pages/<page-id>/?messenger=True&message=2
/api/v2/pages/<page-id>/?sms=True&message=3
/api/v2/pages/<page-id>/?ussd=True&message=5
The content body that is returned will return the indexes of the previous and next messages as well, and None if no previous or next message.
You can paginate content pages by adding a limit and an offset. The limit is the page size, and the offset is the amount to start from. For example:
/api/v2/pages/?offset=2&limit=2
will give the second page with 2 results
/api/v2/pages/?offset=4&limit=2
will give the third page with 2 results
/api/v2/pages/?tag=relationships
will give all the articles that have been tagged for relationships
More information about fetching content from the API can be seen here
All content pages have the following fields:
Name | Description |
---|---|
id | The database identifier for the content page |
meta | The metadata for the page. See the Metadata fields section for more details |
title | The title of the content to display to the user. This changes depending on the channel |
subtitle | The subtitle to display to the user. This is only present for the web channel type |
body | The body of the content to show to the user. This differs depending on the channel type |
tags | The tags of the content page, as strings in an array. Used to organise and classify pages |
triggers | The keywords that should trigger this content page, as strings in an array |
quick_replies | (deprecated) The buttons that should be displayed with the content |
related_pages | A list of pages that are related to this one |
Name | Description |
---|---|
type | The database model for this page, home.ContentPage for content pages |
detail_url | The API URL for this page's details |
html_url | The URL for the web version of this content |
slug | This, together with the locale, form the unique identifier for this page |
show_in_menus | String that's "true" or "false". Whether or not to show in menus |
seo_title | Title to use for SEO |
search_description | Description to use for SEO |
first_published_at | Timestamp of when this page was first published |
alias_of | Details of the page this is an alias of, otherwise null |
parent | The details of this page's parent. Contains the ID, title, and in the "meta" key the type and html URL |
locale | The language code for the locale of this page |