Setka Cloud API allows you to download HTML code and auxiliary data of posts saved in your Setka account.
Note: To enable Cloud API, please contact support.
If Cloud API is enabled, you will see the Publish / Unpublish button when you mouse over the post badge in your Setka account. It determines the status of the post: published or draft, respectively:
The same button will appear in the post editor:
Table of contents
Making API requests with the Setka Cloud API
Description of a received set of fields
Making API requests with additional parameters
Possible errors when using the Setka Cloud API
Making API requests with the Setka Cloud API
To fetch a complete list of posts from your Setka account, run the following request by adding a license key:
GET https://editor.setka.io/api/v2/posts
To get a specific post from your Setka account, you need to specify its ID:
GET https://editor.setka.io/api/v2/posts/POST_ID
Where POST_ID is the post’s ID.
Important: by default, API will only return published posts, with no images or HubSpot data. To get draft posts, use the state:draft or state:all filters. To include HubSpot data and/or images in the results, add additional fields to the request.
Authorization
Authorizing your identity in the Setka Cloud API is possible in two ways:
1. In the request header
Add the authorization header to the request:
{
"Authorization": "Bearer YOUR_LICENSE_KEY"
}
where YOUR_LICENSE_KEY is your license key.
2. In the request parameters
Add the token parameter to the request:
GET https://editor.setka.io/api/v2/posts?token=YOUR_LICENSE_KEY
where YOUR_LICENSE_KEY is your license key.
Example API request response
If the request is successful, you will receive a response consisting of an array of posts. The response will be paginated if the number of posts is large. Below is an example API request response:
HTTP/1.1 200 OK
{
posts: [
{
"id": 2587,
"title": "Stylist",
"style_name": "General",
"layout_name": "6col_19774",
"reading_time": 240,
"preview_link": "https://editor.setka.io/posts/80a44hd5924792",
"state": "published"
"author": {
"id": 44,
"name": "Sergey Ivanov"
},
"body_html": "<div data-ui-id=\"post\">Hello!</div>",
"assets": {
"plugins": [
"https://ceditor.setka.io/clients/js_plugins/5ca41dc7f0df3e3d6170901b627d32fc/public.js"
],
"styles": [
"https://ceditor.setka.io/common_css/common_css_1565603693.css",
"https://ceditor.setka.io/clients/GP1TwUnF9mFFVzgqnAplHSQs51xdl4WT/css/loM7yyO-6xsVawmBxqej8A.css",
"https://ceditor.setka.io/clients/GP1TwUnF9mFFVzgqnAplHSQs51xdl4WT/layout_option_builds/19774/gazQpY7j6Cgq9gFsEKYF5A.css"
],
"images": [
{
"id": 3310,
"url": "https://ceditor.setka.io/clients/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg",
"alt": "Alt text"
"sizes": [
{
"width": 3654,
"height": 5473,
"url": "https://ceditor.setka.io/clients/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg"
},
{
"width": 500,
"height": 5473,
"url": "https://ceditor.setka.io/6xAHRUiLM1NBnWZ9JupZNdugX1UyoQkg9kzIGk9--vk/w:500/q:88/plain/clients/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg"
},
{
"width": 1000,
"height": 5473,
"url": "https://ceditor.setka.io/Ioa24dDnWZ9JupZNdugX1UyoQkg9kzIGk9--vk/w:1000/q:88/plain/clients/U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg"
}
]
}
]
},
"hubspot_post": {
"id": 141,
"url": "https://hubspotblog.com/1-blog-page/-temporary-slug-bbd6cb8e-afed-4291-8937-c779c9ac2d25?hs_preview=ludkAblF-28956926215",
"blog_id": 1315
},
"created_at": "2019-07-19T10:25:27Z",
"updated_at": "2019-07-19T10:27:40Z",
"published_at": "2019-07-22T13:34:11Z"
}
],
pagination: {
"page": 1,
"limit": 20,
"page_count": 1,
"total_count": 1
}
}
Description of a received set of fields
Field | Description |
posts |
Posts array. Contains all the posts from your Setka account. The selection can be limited using additional parameters. |
pagination |
Pagination of search results. Contains information about the current page, the number of pages, the total number of posts and the number of posts per page. |
Posts array elements
Element | Description |
id |
The post’s unique ID. |
title |
The post’s title. |
style_name |
The name of the style used in the post. |
layout_name |
The name of the grid in which the post is laid out. |
reading_time |
The estimated time to read the post (in seconds). |
preview_link |
A link to the post’s preview in your Setka account. |
state |
The post’s state (either draft or published). |
created_at |
The date and time of the post’s creation. |
updated_at |
The date and time when the post was last updated. |
published_at |
The date and time of the post’s publication. |
author |
The post’s author, where — id — the author’s unique ID. — name — the author’s name specified in your Setka account. |
body_html |
The post’s full HTML code. |
assets |
Any additional files in the posts (e.g. CSS, JavaScript, or images). |
hubspot_post |
The post data exported to HubSpot, where: — id — the post’s unique ID. — url — the link to the post in HubSpot. — blog_id — the post’s ID in HubSpot.
Note: Getting the hubspot_post field in your API response will require the use of additional parameters. |
Assets element files
As mentioned above, the assets element contains links to other files and assets. The possible types of assets are:
File | URL | Description |
plugins |
https://ceditor.setka.io/clients /js_plugins/5ca41dc7f0df3e3d6170901b627d32fc/public.js |
The scripts to run interactive post elements (e.g. animations, galleries, or notes). |
styles |
https://ceditor.setka.io/common_css /common_css_1565603693.css |
The CSS files of post styles, including the common style file, the standalone style, and the layout grid file. |
images |
https://ceditor.setka.io/clients /U8Cr2B1ZnJjyHr6e6xn_Qa7N1oqyj7cB/post_images/-tltJS8D79MI5Yltt37MCA.jpg |
The images used in the post, where: — id — the image’s unique ID. — url — the link to the file. — alt — the alternative text. — sizes — several options for the image size, depending on the device’s screen size. Note: Getting the images field in your response will require using additional parameters. |
Pagination object elements
Element | Description |
page |
The current page number. |
limit |
The maximum number of posts per page. |
page_count |
The total number of pages. |
total_count |
The total number of posts. |
Making API requests with additional parameters
Using additional request parameters with the Setka Cloud API is necessary in order to filter posts by features, or to include or exclude certain data in the response.
Filters
You can filter posts by status and author, e.g.:
GET https://editor.setka.io/api/v2/posts?filter=state:draft,author.id:1111&token=YOUR_LICENSE_KEY
The available filters are:
- author — the post’s author. The filter works both by ID (i.e. author.id) and by author name (author.name).
- state — the post’s status, i.e. one of draft, published, or all (both draft and published).
Additional fields
You can also include additional fields in the API response with the include parameter and listing the fields separated by commas, e.g.:
GET https://editor.setka.io/api/v2/posts?include=hubspot_post,images&token=YOUR_LICENSE_KEY
The available fields are:
- hubspot_post — the data of a post exported to HubSpot.
- images — all images used in a post.
Selecting post data
If you need to obtain individual fields from your Setka account (e.g. only identifiers and post names), use the select parameter:
GET https://editor.setka.io/api/v2/posts?select=id,title&token=YOUR_LICENSE_KEY
The available fields are:
- id — the post’s unique ID.
- title — the post’s title.
- style_name — the name of the style used in the post.
- layout_name — the name of the grid in which the post is laid out.
- reading_time — the estimated time to read the post (in seconds).
- preview_link — a link to the post’s preview in your Setka account.
- state — the post’s state (either draft or published).
- created_at — the date and time of the post’s creation.
- updated_at — the date and time when the post was last updated.
- published_at — the date and time of the post’s publication.
- author — the post’s author, where id is the author’s unique ID and name is the author’s name specified in your Setka account.
- body_html — the post’s full HTML code.
- assets — any additional files in the posts (e.g. CSS, JavaScript, or images).
- hubspot_post — the post data exported to HubSpot, where id is the post’s unique ID; url is the link to the post in HubSpot; and blog_id is the post’s ID in HubSpot.
Possible errors when using the Setka Cloud API
When using the Setka Cloud API, you might encounter the following errors:
HTTP/1.1 401 Unauthorized
{
"error": "Not authorized!"
}
This error occurs when using an incorrect license key (token).
HTTP/1.1 404 Unauthorized
{
"error": "Not found"
}