NAV

Get Started

In this guide, you are going to learn how to interact with sections as a frontend developer. If you are a vueJS dev you can use our ready made vue-sections library.

If you wish to create your own client implementation, keep reading.

Step 1: Register here to get your project_id.

Step 2: With your project_id you can start requesting sections yet to create pages and add content to them you need an access token. Read below to understand how to get an access token for your project.

Note: All requests that are secured by a Section token is subject to CORS verification

API's base URL is https://sections.geeks.solutions

Models

Dashboard

Dashboard information returned that conveys package limitations and current consumption

{
  "package_name": "free",
  "package_locked": false,
  "max_pages": 2,
  "max_media_files": 10,
  "max_file_size": 500000,
  "current_pages": 0,
  "current_medias": 0,
  "api_until_reset": 46674951,
  "api_limit_use": 500,
  "api_current_use": 0
}
Property Description Type Required
api_current_use current rate limtied requests ina specific day boolean true
api_limit_use Maximum allowed rate-limited requests in a specific day - Package limitation string true
api_until_reset Timestamp in milliseconds until the API rate-limited consumption is reset integer true
current_medias Count of total files currently present linked to pages of this project. integer true
current_pages Count of number of pages currently created in the project. integer true
max_file_size Maximum allowed file size (in bytes) that can be used in pages of this project - Package limitation. integer true
max_media_files Maximum allowed files that can be present linked to pages of this project - Package limitation. integer false
max_pages Maximmum number of pages that can be created in the project. - Package limitation integer true
package_locked The package's locked status the project is subscribed to. boolean true
package_name The package's name the project is subscribed to. string true

Error

Errors returned by sections

{
  "error": "Section type  already exists"
}
Property Description Type Required
error Description of the error string false

Invitation

This is the response of the invitation API call.

{
  "invited": [
    "email1@gmail.com",
    "email2@gmail.com"
  ],
  "failed_to_send": [
    "email3@gmail.com"
  ],
  "demotion": [
    "superiorrole@gmail.com"
  ]
}
Property Description Type Required
demotion List of emails that are already in the project and have a superior role to the invitation one. array(any) false
failed_to_send List of failed invitation emails array(any) false
invited List of successfully invited emails array(any) false

Media

A media is an entity that presents a file in Sections

{
  "type": "image",
  "seo_tag": "",
  "private_status": "public",
  "number_of_contents": 1,
  "namespace": "608c0177d66ef2000836a374",
  "locked_status": "unlocked",
  "id": "613874bc0a998613c74b338c",
  "files": [
    {
      "url": "https://s3.amazonaws.com/eweevtestbucketprivate/sections%2Fa5ac5bc7e6d643f89a4f15c4d8f29aec89ba3988ab904d6aae5934719d4df19a.png",
      "type": "image/png",
      "thumbnail_url": "https://s3.amazonaws.com/eweevtestbucketprivate/sections%2Fa5ac5bc7e6d643f89a4f15c4d8f29aec89ba3988ab904d6aae5934719d4df19a_thumbnail.png",
      "size": 25442,
      "platform_id": "611610df0a998615afb99c29",
      "filename": "sections/a5ac5bc7e6d643f89a4f15c4d8f29aec89ba3988ab904d6aae5934719d4df19a.png",
      "file_id": "ac411a0825cd280cc219844bf3b64271-12de37"
    }
  ],
  "contents_used": [
    "60cb6953d66ef20008ae2177"
  ],
  "author": "60cb6953d66ef20008ae2177"
}
Property Description Type Required
author The author of the media string false
contents_used List of pages related to this media array(any) false
files List of files array(any) true
id Unique identifier string true
locked_status unlocked media can be edited by any user in the project. locked medias can only be edited by their author string false
namespace The project id using this media string false
number_of_contents The number of contents referencing this media integer false
private_status public files are accessible by anyone, private files requires an STS token to be viewed string false
seo_tag Image Alt tag used for SEO string false
type Media type (image, video..) string false

Message

A confirmation message back to the user upon successfull action

{
  "message": "Section type  deleted succesfully"
}
Property Description Type Required
message a message string false

Options

Options returned by third party applications for a configurable section type

[
  {
    "option_values": [
      1,
      2,
      3
    ],
    "field": "article_ids"
  }
]
Property Description Type Required
error Array of options with their possible values array(any) false

Package

A package is the subscription of your project in section. It represents what the project is offered in term of resources.

{
  "type": "public",
  "rank": 1,
  "quota": -1,
  "price": 1700,
  "name": "solo",
  "locked": false,
  "limits": [
    {
      "value": 5,
      "name": "number_of_pages",
      "label": "Max number of pages"
    },
    {
      "value": 3,
      "name": "variation_per_page",
      "label": "Max number of variation per page"
    },
    {
      "value": 20,
      "name": "static_sections",
      "label": "Max number of static section types that can be declared"
    },
    {
      "value": 10,
      "name": "sections_total",
      "label": "Max number of sections per page"
    },
    {
      "value": 100,
      "name": "hosted_files",
      "label": "Max number of files hosted"
    },
    {
      "value": 1000000,
      "name": "size_per_file",
      "label": "Maximum Size Per File (in bytes)"
    },
    {
      "value": -1,
      "name": "api_limit_sec",
      "label": "API rate limit per sec"
    },
    {
      "value": -1,
      "name": "api_limit_minute",
      "label": "API rate limit per minute"
    },
    {
      "value": 500,
      "name": "api_limit_hour",
      "label": "API rate limit per hour"
    },
    {
      "value": 1000,
      "name": "api_limit_day",
      "label": "API rate limit per day"
    }
  ],
  "label": "Standard"
}
Property Description Type Required
id Unique identifier string true
label The title of the package string false
limits A list of limits, it shows up to how much resources can your project consume array(any) false
locked Whether this package is locked and can receive new subscriptions or not boolean false
name Unique name of the package string false
price The price of the package in cents (ie 10,50€ is returned as 1050) integer false
quota The number of projects allowed to use this package at any given time. -1 for unlimited integer false
rank The package rank used to identify upgrades/downgrades between packages integer false
type The type of the package could be private or a public one. string false

Page

A page is layout of different sections grouped together.

{
  "variations": [
    "variation-1",
    "variation-2"
  ],
  "settings": [
    {
      "weight": 1,
      "type": "dynamic",
      "region": "bottom-left",
      "name": "blogs:categories_articles",
      "id": "123456789123456789123456"
    }
  ],
  "project_id": "5fe309f42a4e7d91aad8964f",
  "page": "home_page",
  "layout": "layout1"
}
Property Description Type Required
id Unique identifier string true
layout The layout title string false
metadata An object containing the metadata of your page map false
page Name of the page string true
path The path under your domain to access your page, it has to be unique per project. Equals to your page name if empty string true
render_data Data requested by the front end developer that he will use to render the content needed. string false
settings List of sections that are included in the page array(any) false
variations A variations for the page string false

Pending_Invitation

This is the response of the get pending_invitation API call.

{
  "users": [
    {
      "role": "webmaster",
      "invited_at": 1652524584,
      "email": "email@gmail.com"
    }
  ],
  "total": 1
}
Property Description Type Required
total Total of pending invitations integer false
users List of pending invitations array(any) false

Project

A Project that a user owns in sections it contains the project credentials and configurations

{
  "type": "private",
  "project_url": [
    "https://your.project.url.com"
  ],
  "private_key": "xxxxxx",
  "package": "free",
  "login_redirect_url": "https://your.project.url.com/redirect_login/admin",
  "id": "601bf1221907a50007ba3f81",
  "files_counter": 0,
  "configured_fields": {
    "blogs ": {
      "project_id": 1,
      "private_key": "xxxxxx"
    }
  },
  "active": true
}
Property Description Type Required
active The status of the project boolean false
billing_status The Billing status of the project, can be any of upgrade_lock or upgradeable.
This is automatically set based on your company solvency status. string false
configured_fields A list of object (maps) that indicates the configured fields of the third party apps for this project array(any) false
id Unique identifier string true
limitation_status The Limitation status of the project, can be any of active, degraded or blocked.
This is automatically set based on your invoice payment status. string false
login_redirect_url The URL Sections redirects connected user to with the auth code to issue a valid access token. string false
package The current subscription of the project string false
project_url The list of base URLs of the project, used to pass CORS. You are allowed to use localhost in the list, as long as you specify the port.Local network IP Addreses are also allowed, only on HTTP and by specifying the port as well. array(any) false
reason The reason of inactivity in case the project is inactive string false
type The type of the project can be public or private string false

Section_Type

A Section Type in Sections

{
  "type": "static",
  "name": "private_static",
  "multiple": false,
  "id": "60195bbd2a4e7df7496d9740",
  "fields": "null",
  "dynamic_options": false,
  "application": "sections",
  "access": "private"
}
Property Description Type Required
access The access to the section type string false
application application that declared the section type string false
authorization_fields Used for third party integration to authorize the use who is asking for the section type map false
fields Used for configurable Section Types fields that can be chosen to render map false
id Unique identifier string true
name Section type's name string false
options Used for configurable Section Types options map false
region The region of the layout that section type will be rendered into default to {}. map false
requirements Shows the required fields for a public scoped section type. array(any) false
status Shows the status for a public scoped section type. string false
type The type of the sections i.e. static, local, configurable or dynamic string false
weight The weight of the section type on the layout which means the order integer false

Token

Certain API calls are secured with an access token, read below about authentication to know how to get an access token for your application

{
  "token": "A really long string"
}
Property Description Type Required
token An authentication token string false

User

This is Section's user model. It contains all the information that sections needs to know about you.

{
  "token": "A really long string"
}
Property Description Type Required
email Users email string false
roles DEPRECATED. A list, contains the roles' IDS. array(any) false
roles_object A lsit of objects. Each object contains the role title and id. These are the roles that are assigned tot he user. array(any) false
saas_project_id The section project to which the user is linked to. string false

1. Authentication

In order to issue secured api calls to sections you need an access token, to simplify the generation of such token we implemented a simple flow.

When you register or login successfully you will get redirected to the back office page of your project where you see your project information. There is a field named Login Redirect Url you should populate it with the URL of a page on your project where you will run the Access Token retrieval code. Next to the field, there is a button called Connect to your app with your sections credentials. When clicking this button you will get redirected to your website with an auth_code in the query string. This auth code is required to retrieve your access token from sections in the Get Access Token request.

Once you retrieve your token you have to include it in :ratethe header of the secured requests.

Get access token

Valid auth code/

GET /api/v1/project/661e2b3088ac0f02fde24386/token/A00FF9C58DC9947AA00F49D791AB394B
origin: http://4a5ce852-c230-4837-8db9-5cf4a9d9fac2.com
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAR1c2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYjMwODhhYzBmMDJmZGUyNDM4NmptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIDgyZTkyZGJiODJjNjRkNmJiMGUxMTliNTg1MGE3YjVhbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgDgttjljgFiAAFRgA.1JdT1D0WCl9Nm_1fZbTKjFuiEd2ME62hg5mdrd-SFdg

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayrhd9o8X14ukABEdB
access-control-allow-origin: http://4a5ce852-c230-4837-8db9-5cf4a9d9fac2.com
{
  "token": "SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAR1c2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYjMwODhhYzBmMDJmZGUyNDM4NmptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIDgyZTkyZGJiODJjNjRkNmJiMGUxMTliNTg1MGE3YjVhbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgDgttjljgFiAAFRgA.1JdT1D0WCl9Nm_1fZbTKjFuiEd2ME62hg5mdrd-SFdg"
}

Use a supplied auth_code to retrieve an access token. The auth_code expires in a few seconds, if you wish to test that using an API client (i.e Postman) make sure to act quickly.

Request

GET api/v1/project/{project_id}/token/{auth_code}

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
auth_code An authentication code that will be returned on redirection when you login/register successfully query_string string true

Responses

Status Description Schema
200 section type resource Token
410 Error Resource Error

2. Working With Pages

A page is where you organize your sections in one or more layouts. In this part you will learn how to create/update/render and delete a page. Please refer to the page models to see all fields a page can contain.

Renders a page

Get an existing page with project_id

POST /api/v1/project/661e2aca88ac0f02fddfe67c/page/page-path-6346239c-8086-4262-ba5f-a1cfb7af9fa5
origin: http://ca30c219-e259-43a7-89de-42140491068f.com
user-agent: user-agent-fd739ce8-fc8f-443d-a101-e2d1fecc958f
project-id-01054859-ae72-4e87-894e-7414f8b75877: 1
content-type: multipart/mixed; boundary=plug_conn_test

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8aylk2LEwRZSLUAA_RB
access-control-allow-origin: http://ca30c219-e259-43a7-89de-42140491068f.com
{
  "variations": null,
  "sections": [
    {
      "weight": 1,
      "type": "static",
      "settings": {},
      "render_data": "",
      "region": "main",
      "name": "section_name_ebcad482-833a-4149-9762-c34b331a4f49",
      "linked_to": "",
      "id": "661e2aca88ac0f02fddfe682",
      "error": null
    }
  ],
  "path": "page-path-6346239c-8086-4262-ba5f-a1cfb7af9fa5",
  "page": "page_3a8bc506-8e29-46bc-ac3b-a68248ab16d2",
  "metadata": {},
  "layout": "layout1",
  "last_updated": 1713253066,
  "invalid_sections": [],
  "id": "661e2acab88ead02722991f9"
}

Renders a page with all the available sections declared inside.

Request

POST api/v1/project/{project_id}/page/{page_path}

Parameters

Parameter Description In Type Required Default Example
query_string Query Strings body map false {id: 1}
project_id Your project id in Sections query_string string true
page_path The page path query_string string true

Responses

Status Description Schema
200 Project resource Page
404 Error Resource Error
429 Error Resource for rate limiting Message

Creates/updates a page

Create a page with valid section using medias ids

PUT /api/v1/project/661e2acf88ac0f02fd0d8cef/page/page_8bf3d2b1-0961-4cb0-9a9f-867653c1a70a
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAARVc2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWNmODhhYzBmMDJmZDBkOGNlZmptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIDZkY2I5YWIzNWQwYzRkMjJhOWY4ODkyZDZkZDUxODYxbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgDzOtfljgFiAAFRgA.EjgTshNULXX3_SFuH41MFLLT1GU32wiEn-8HKsZ0Bxg
origin: http://0a96e069-1185-4445-b730-2653801274c1.com
content-type: multipart/mixed; boundary=plug_conn_test
{
  "variations": [
    "1"
  ],
  "sections": [
    {
      "weight": 1,
      "region": "main",
      "options": [
        {
          "image": {
            "media_id": "661e2ad088ac0f02fd483e03"
          }
        }
      ],
      "name": "section_name_86b6552e-e454-47e3-89b3-f866756424ad"
    }
  ],
  "path": "my-page-path",
  "metadata": {
    "title": "Page Title",
    "description": "Page SEO Description"
  },
  "layout": "layout1"
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayl5u6uLZEPHAABC6i
access-control-allow-origin: http://0a96e069-1185-4445-b730-2653801274c1.com
{
  "variations": [
    "1"
  ],
  "sections": [
    {
      "weight": 1,
      "type": "static",
      "settings": [
        {
          "image": {
            "url": "https://www.fake-url.com/6dbd0bcea66b40c3b5b6b6893074c78f",
            "seo_tag": null,
            "media_id": "661e2ad088ac0f02fd483e03"
          }
        }
      ],
      "render_data": "",
      "region": "main",
      "name": "section_name_86b6552e-e454-47e3-89b3-f866756424ad",
      "linked_to": "",
      "id": "661e2ad088ac0f02fd483e08",
      "error": null
    }
  ],
  "path": "my-page-path",
  "page": "page_8bf3d2b1-0961-4cb0-9a9f-867653c1a70a",
  "metadata": {
    "title": "Page Title",
    "description": "Page SEO Description"
  },
  "layout": "layout1",
  "last_updated": 1713253072,
  "invalid_sections": [],
  "id": "661e2ad0b88ead0272299387"
}

Upsert a page in your project with all the sections declared and their configuration so when rendering the page the user gets the same result. If you wish to create an empty page, simply supply an empty sections list in the payload. For each section you can provide options. In the options you can add files for you to use. In order to add a file for a static section type. You need to add the fields that declare files in that section type. For ex: { "fields": [ { "type": "image", "name": "profile_image" }, { "type": "image", "name": "cover_image" } ] }

Now in the options you can provide an existing media id to link to a section on a page.

"options": [{"profile_image": {"media_id": "media_id"}}]

For More details on Medias, please head to the Medias section below.

DEPRECATED: you can also provide the image like that: "options": [{"profile_image": "A BASE 64 file string"}]

The base64 will be transformed into a media file on the fly. This method will be dropped in an upcoming update.

Request

PUT api/v1/project/{project_id}/page/{page_name}

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
page_name The page name query_string string true
token Sections Token header string true
variations In case you need no Variations of the page send an empty list or null body array true {'variations': ['page1', 'page2']}
sections List of sections that are going to be rendered in the page body array true {'sections': []}
layout Layout title of the page body string false {'layout': 'main'}
url Url of the page as the Path to access it (ie https://www.example.com/{url}) body string true {'url': 'my-page-url'}
metadata Metadata of the page body map false {'metadata': {'title': 'My Page Title', 'description': 'SEO Description'}}

Responses

Status Description Schema
200 Project resource Page
401 Error Resource Error
402 Error Resource Error

Deletes a page

delete a page

DELETE /api/v1/project/661e2ac888ac0f02fd73e8e8/page/661e2ac8b88ead0272299162
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAARVc2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWM4ODhhYzBmMDJmZDczZThlOGptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIGZhMmE1ZDA4NjcxZjQ3MWRiNjMxMDY5YzllNTE4NzIwbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgCHH9fljgFiAAFRgA.mwsIm8lcJ2YCoYDvl3iV5Rh9EKy18PPbmi6CPeRNWqA
origin: http://b9853c52-9928-479a-b1f6-0644b60cb7a7.com

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayldsCnnImccgABDZj
access-control-allow-origin: http://b9853c52-9928-479a-b1f6-0644b60cb7a7.com
{
  "message": "Successfully deleted 661e2ac8b88ead0272299162"
}

Deletes the page for your project. This call will erase all the data you have stored for the sections added in this particular page.

Request

DELETE api/v1/project/{project_id}/page/{page_id}

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
project_id Your project id in Sections query_string string true
page_id The page id in Sections query_string string true

Responses

Status Description Schema
200 Project resource Message
401 Error Resource Error
404 Error Resource Error

3. Working With Section Types

### Sections supports four section types:

  1. Local: This section type is totally declared and rendered on your frontend project. We have added support for such contents so you can blend it with the rest of section and define where in the page this content should display in between other sections. To add a local section to your page you just need to add a section object to your payload with type local and a name of your choice so you can then match it to the right content to render when you are to render the page to your visitor.

  2. Static: Static sections are supported out of the box. A static section is a very simple piece of content that provides a basic object storage for the frontend developer. This section can be used to store simple html, medias, DEPRECATED: images in base64 format (do not abuse it :-), or even JS/CSS code if you need to. This section is called static because from a server's perspective the content returned by this section is directly loaded from the Database with no processing, yet you can, as a frontend developer provide very dynamic end results by relying on external APIs at the javascript level (i.e facebook plugins, api request on frontend level etc...). You are just limited by your imagination here.

  3. Dynamic: A dynamic section type is a bit more interesting as the content of such sections will be loaded dynamically server side. A dynamic section type will be declared by a backend third party and it will be called each time this section is requested for rendering.

  4. Configurable: A configurable section is similar to a dynamic one as both have dynamic contents. The difference here is that a configurable section has options that the page editor can choose from. These options are stored in sections and provided to the third party server for rendering so you don't have to worry about that.

Accesses

Accesses to section types varies between:

Returns the list of section types the project owns

GET Section Types

GET /api/v1/project/661e2ac888ac0f02fd73e8ea/section-types
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAARVc2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWM4ODhhYzBmMDJmZDczZThlYWptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIDNkYzE4MjIzOWUxNDQxNGM4OGRkZTEzNWI2ZmFmMDEzbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgANINfljgFiAAFRgA.PzKKpkMwpPl7SWE-hhHnhr-0Zd3ucRRNdt7tF-bPJt8
origin: http://e039899e-29a3-4ef6-9c2e-03ecf3caca86.com

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8aylczezT7uo4UABDLD
access-control-allow-origin: http://e039899e-29a3-4ef6-9c2e-03ecf3caca86.com
{
  "data": [
    {
      "type": "static",
      "name": "wysiwyg",
      "multiple": false,
      "id": "661e2ac5b88ead02722990d9",
      "fields": null,
      "dynamic_options": false,
      "application_id": null,
      "application": "sections",
      "access": "public"
    }
  ]
}

Load all the section types the project has access to. This can be custom static section types, private section types or public ones exposed by other backend third party developers. For section types with public scoped access you can know their status and required fields in this call also the application id to which they belong. This is helpful for updating your security fields for the considered application.

Request

GET api/v1/project/{project_id}/section-types

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
project_id Your project id in Sections query_string string true

Responses

Status Description Schema
200 List of section types resource Section_Type
401 Error Resource Error

Creates a static section type

Create Static ST

POST /api/v1/project/661e2ac988ac0f02fd3ba00f/section-types/section_name_f5218b59-0bdf-41d3-930d-5db13836e3c4
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAARVc2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWM5ODhhYzBmMDJmZDNiYTAwZmptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIDJhYmQxODEyZDYzOTQzMzNiYTQ0NjFiYmU5MGU3M2JhbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgD2I9fljgFiAAFRgA.AW4rJMhwxiANEw4QDHzk6sO5n1PixKvosaGs9LJ39cA
origin: http://3574cfd9-bb0d-44e7-97c2-81a87071f7f9.com
content-type: multipart/mixed; boundary=plug_conn_test
{
  "fields": [
    {
      "type": "image",
      "name": "profile"
    },
    {
      "type": "image",
      "name": "profile1"
    }
  ]
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8aylgiBdvOpdsgABDuj
access-control-allow-origin: http://3574cfd9-bb0d-44e7-97c2-81a87071f7f9.com
{
  "type": "static",
  "name": "section_name_f5218b59-0bdf-41d3-930d-5db13836e3c4",
  "multiple": false,
  "id": "661e2ac988ac0f02fd3ba011",
  "fields": [
    {
      "type": "image",
      "name": "profile"
    },
    {
      "type": "image",
      "name": "profile1"
    }
  ],
  "dynamic_options": false,
  "application_id": null,
  "application": "sections",
  "access": "private"
}

Declares a PRIVATE static section type for your project. Private sections are exclusive to only one project so these will only be visible by you.

Request

POST api/v1/project/{project_id}/section-types/{section_name}

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
project_id Your project id in Sections query_string string true
section_name Section name query_string string true

Responses

Status Description Schema
200 section type resource Section_Type
400 Error Resource Error
401 Error Resource Error
402 Error when you reach your package limitation Error

Update the authorization fields for the considered app on your project

Upsert authorization fields for an application

PUT /api/v1/project/661e2ac988ac0f02fd3ba008/authorization_fields/123456
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAARVc2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWM5ODhhYzBmMDJmZDNiYTAwOGptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIDAxNGJmZmM4ZjdiZjRkYTBiMDU5YjE5YTk5NzIxMzYxbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgCDIdfljgFiAAFRgA.yftVbJnuOW13H__CD4tCdd6RUhXqwiqBtTlwlXE7XRM
origin: http://c11123b5-965f-4801-8cd2-de53fa35994c.com
content-type: multipart/mixed; boundary=plug_conn_test
{
  "authorization_fields": {
    "project_id": 38,
    "private_key": "private_key_hashed"
  }
}

Response

404
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayleMpTG6vpC0ABDaj
access-control-allow-origin: http://c11123b5-965f-4801-8cd2-de53fa35994c.com
{
  "options": {},
  "message": "The app does not exist"
}

It verifies the authorization fields provided. If the fields are valid then the project's configured fields will be updated to include this app's credentials. These credentials will be used to render any public_scoped section decalred by the third party app. In case the credentials become invalid their status will be updated and it will need an update from the user. This call will let you retrieve the application id for any public_scoped section.

If you wish to unauthorize a particular app, you should update your project with the following payload: { "configured_fields": { {replace_with_app_id}: { "app_status": "disabled" } } } You can add several app_ids if you wish to unauthorize multiple apps at the same time.

Request

PUT api/v1/project/{project_id}/authorization_fields/{application_id}

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
project_id Your project id in Sections query_string string true
application_id The application's id in Sections query_string string true
authorization_fields Authorization fields used to authenticate your request to third party services (only for public scoped section types) body map true {authorization_fields: {username: 'You', password: 'are awsome'} }

Responses

Status Description Schema
200 Project resource Project
410 Error Resource Error

Renders the requested section's data

Render an existing ST

POST /api/v1/project/661e2acd88ac0f02fda5e6ac/section/render
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAARVc2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWNkODhhYzBmMDJmZGE1ZTZhY2ptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIDZmZjRjNDg0NGU1NTQ2MWRhZmY2MGE5MWQ5ODVlMmJkbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgBSMtfljgFiAAFRgA.zzpJADUmMDQr6WudwD9IE4ZHQF7f7KUcedJC4CBTczc
origin: http://b88f0bbb-c0b2-4f79-9065-0fc86714d811.com
content-type: multipart/mixed; boundary=plug_conn_test
{
  "section": {
    "weight": 1,
    "name": "section_name_913ac50d-8809-444f-8abf-1ba370a06655"
  }
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8aylvTAUkV5g1sABAZB
access-control-allow-origin: http://b88f0bbb-c0b2-4f79-9065-0fc86714d811.com
{
  "weight": 1,
  "type": "static",
  "settings": {},
  "render_data": "",
  "region": {},
  "name": "section_name_913ac50d-8809-444f-8abf-1ba370a06655",
  "linked_to": "",
  "id": "661e2acd88ac0f02fda5e6b0",
  "error": null
}

Renders the section's data for a preview. When rendering a public scoped section type and the request returns an unauthorized request error (status code 401). The section's status will be updated to invalid. Then it will need the user's intervention to update his credentials for this section's application using this endpoint so the status gets adjusted again.

Request

POST api/v1/project/{project_id}/section/render

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
project_id Your project id in Sections query_string string true
query_string Query Strings body map false {id: 1}
section A map containing the section name and its order (weight) in the page body map true {section: {name: '6038e54de3ba240007b07913:categories_articles', weight: '1'} }

Responses

Status Description Schema
200 section type resource Section_Type
400 Error Resource Error
401 Error Resource Error

Gets a configurable section type's options

Returning the options of a configurable section type to Sections

GET /api/v1/project/661e2acb88ac0f02fd755968/section/661e2acb88ac0f02fd755969%3Aselective_articles/options
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAARVc2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWNiODhhYzBmMDJmZDc1NTk2OGptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIGY4ZjRhNTExYTRlMTQ4N2NhZDM3ZWU0ZDU5OWNiNTdlbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgBYKtfljgFiAAFRgA.oSqUJD0FBYiNWUtmJsY7LgfnqINCbt86vzLAyplHkNA
origin: http://d5a9897b-0257-4b4b-94f0-e8beb6b0cdad.com

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8aylpSBDGkzi7UAA_yh
access-control-allow-origin: http://d5a9897b-0257-4b4b-94f0-e8beb6b0cdad.com
[
  {
    "option_values": [
      {
        "title": "Article 1",
        "id": 1
      },
      {
        "title": "Article 2",
        "id": 2
      }
    ],
    "field": "article_ids"
  }
]

Gets a configurable section type's options from the third party application. This is used so the user can choose the options he wants in order to render the configurable section type customized to his needs.

Request

GET api/v1/project/{project_id}/section/{section_name}/options

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
project_id Your project id in Sections query_string string true
section_name Section name query_string string true

Responses

Status Description Schema
200 Options resource Options
400 Error Resource Error
404 Error Resource Error

Deletes a static section type

Delete Static ST

DELETE /api/v1/project/661e2aca88ac0f02fddfe681/section-types/section_name_3eb38239-d764-41d0-b677-cd4f75b43c93
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAARVc2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWNhODhhYzBmMDJmZGRmZTY4MWptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIDE5NjZmYTFlOTI5MzQwNDE5ZTM1YmE5YWUxNzIyNGFkbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgCqJ9fljgFiAAFRgA.oza7cZAiJKKYT8HxnA5kIb2aTmtfBxdTQqe3EaMGPWo
origin: http://39b40220-1661-432e-a875-7759b2c34fb3.com

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayllJhQYvxJ6oAA_ZB
access-control-allow-origin: http://39b40220-1661-432e-a875-7759b2c34fb3.com
{
  "message": "Static Section was deleted successfully."
}

Deletes a static section type

Request

DELETE api/v1/project/{project_id}/section-types/{section_name}

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
project_id Your project id in Sections query_string string true
section_name Section name query_string string true

Responses

Status Description Schema
200 message resource Message
404 Error Resource Error

4. Packages and API limits

To ensure a faire usage from all users and provide a stable quality of service we have two layers of limitations, the first one is based on the resources your project can use, the bigger the package the more resources you are allowed to use (i.e number of pages, number of static sections types etc...). Once you reach a limit, any tentative to cross this limit will return an error with code 402. The only way for you to overcome this is to free up some resources or to upgrade your package.

Then we also are capping the number of requests you can issue on a project, here again the package you are on will define your cap. The bigger the package the more API requests you will be authorized to submit. If you reach your limit, any further requests will error with code 429. These limits gets reset per time cycle, you can either wait for the cycle to reset your limit or you can upgrade your package to overcome this limit.

Read below to retrieve your project package with the details of the limits applying to it

Gets the current package of the project

GET a package by name and active package/

GET /api/v1/project/661e2b2988ac0f02fd10fe8b/active_package
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAR1c2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYjI5ODhhYzBmMDJmZDEwZmU4YmptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIDFkYWRhNGFiNDI1NTQzMzVhZWQ2NTJhZWMwM2JiNDhhbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgDenNjljgFiAAFRgA.VRqGGHHUVzTnzkG4Y-RxIuIM2nxwkkmwrye9PpWCA4o
origin: http://90494819-ad67-45fc-bf91-282fe7c83743.com

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayrI_TLN1gzaIABEBB
access-control-allow-origin: http://90494819-ad67-45fc-bf91-282fe7c83743.com
{
  "type": "public",
  "rank": 0,
  "quota": -1,
  "price": 0,
  "name": "free",
  "locked": false,
  "limits": [
    {
      "value": 0,
      "name": "query_string_support"
    },
    {
      "value": 2,
      "name": "number_of_pages"
    },
    {
      "value": 1,
      "name": "variation_per_page"
    },
    {
      "value": 5,
      "name": "static_sections"
    },
    {
      "value": 5,
      "name": "sections_total"
    },
    {
      "value": 10,
      "name": "hosted_files"
    },
    {
      "value": 500000,
      "name": "size_per_file"
    },
    {
      "value": 10,
      "name": "api_limit_sec"
    },
    {
      "value": 100,
      "name": "api_limit_minute"
    },
    {
      "value": -1,
      "name": "api_limit_hour"
    },
    {
      "value": 500,
      "name": "api_limit_day"
    },
    {
      "value": 0,
      "name": "dynamic_section_types_support"
    },
    {
      "value": 2,
      "name": "users"
    },
    {
      "value": 2,
      "name": "domains"
    }
  ],
  "label": "Free",
  "id": "661e2ac588ac0f02fd4517b1"
}

This call will return the package name and associated limits for your project

Request

GET /api/v1/project/{project_id}/active_package

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
token Sections Token header string true

Responses

Status Description Schema
200 Package Resource Package

Get available packages

GET all public packages

GET /api/v1/project/661e2b2388ac0f02fd908f05/packages
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAR1c2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYjIzODhhYzBmMDJmZDkwOGYwNWptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIGU3NjY5YmVhNTY3YjRlMWJhYTYyMmQ0YTgyYzI4OThlbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgDug9jljgFiAAFRgA.i8XYpPN_EWIgcF1k55ZpZjECgUHtaHnGxEqh5HGExnQ
origin: http://b9f31d7b-9008-43f0-84a1-51423748f1b7.com

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayqwMbUsojSP4ABDfB
access-control-allow-origin: http://b9f31d7b-9008-43f0-84a1-51423748f1b7.com
{
  "total": 4,
  "data": [
    {
      "type": "public",
      "rank": 2,
      "quota": 2,
      "price": 14900,
      "name": "corporate",
      "locked": false,
      "limits": [
        {
          "value": -1,
          "unit_price": 150,
          "name": "number_of_pages",
          "included": 10
        },
        {
          "value": -1,
          "name": "query_string_support"
        },
        {
          "value": 5,
          "name": "variation_per_page"
        },
        {
          "value": 20,
          "name": "static_sections"
        },
        {
          "value": 15,
          "name": "sections_total"
        },
        {
          "value": 300,
          "name": "hosted_files"
        },
        {
          "value": 2000000,
          "name": "size_per_file"
        },
        {
          "value": -1,
          "name": "api_limit_sec"
        },
        {
          "value": -1,
          "name": "api_limit_minute"
        },
        {
          "value": 3000,
          "name": "api_limit_hour"
        },
        {
          "value": 20000,
          "name": "api_limit_day"
        },
        {
          "value": -1,
          "name": "dynamic_section_types_support"
        },
        {
          "value": 5,
          "name": "users"
        },
        {
          "value": -1,
          "unit_price": 1000,
          "name": "domains",
          "included": 3
        }
      ],
      "label": "Corporate",
      "id": "661e2ac688ac0f02fd9a9750"
    },
    {
      "type": "public",
      "rank": 0,
      "quota": -1,
      "price": 0,
      "name": "free",
      "locked": false,
      "limits": [
        {
          "value": 0,
          "name": "query_string_support"
        },
        {
          "value": 2,
          "name": "number_of_pages"
        },
        {
          "value": 1,
          "name": "variation_per_page"
        },
        {
          "value": 5,
          "name": "static_sections"
        },
        {
          "value": 5,
          "name": "sections_total"
        },
        {
          "value": 10,
          "name": "hosted_files"
        },
        {
          "value": 500000,
          "name": "size_per_file"
        },
        {
          "value": 10,
          "name": "api_limit_sec"
        },
        {
          "value": 100,
          "name": "api_limit_minute"
        },
        {
          "value": -1,
          "name": "api_limit_hour"
        },
        {
          "value": 500,
          "name": "api_limit_day"
        },
        {
          "value": 0,
          "name": "dynamic_section_types_support"
        },
        {
          "value": 2,
          "name": "users"
        },
        {
          "value": 2,
          "name": "domains"
        }
      ],
      "label": "Free",
      "id": "661e2ac588ac0f02fd4517b1"
    },
    {
      "type": "public",
      "rank": 5,
      "quota": 0,
      "price": 10,
      "name": "qs_enabled",
      "locked": false,
      "limits": [
        {
          "value": -1,
          "name": "query_string_support"
        },
        {
          "value": 3,
          "name": "number_of_pages"
        },
        {
          "value": 1,
          "name": "variation_per_page"
        },
        {
          "value": 10,
          "name": "static_sections"
        },
        {
          "value": 5,
          "name": "sections_total"
        },
        {
          "value": 10,
          "name": "hosted_files"
        },
        {
          "value": 500000,
          "name": "size_per_file"
        },
        {
          "value": 10,
          "name": "api_limit_sec"
        },
        {
          "value": 100,
          "name": "api_limit_minute"
        },
        {
          "value": 100,
          "name": "api_limit_hour"
        },
        {
          "value": 500,
          "name": "api_limit_day"
        },
        {
          "value": -1,
          "name": "dynamic_section_types_support"
        },
        {
          "value": 2,
          "name": "users"
        },
        {
          "value": 5,
          "name": "domains"
        }
      ],
      "label": "QS_enabled",
      "id": "661e2adf88ac0f02fd43d023"
    },
    {
      "type": "public",
      "rank": 1,
      "quota": -1,
      "price": 2900,
      "name": "solo",
      "locked": false,
      "limits": [
        {
          "value": 0,
          "name": "query_string_support"
        },
        {
          "value": 5,
          "name": "number_of_pages"
        },
        {
          "value": 2,
          "name": "variation_per_page"
        },
        {
          "value": 10,
          "name": "static_sections"
        },
        {
          "value": 10,
          "name": "sections_total"
        },
        {
          "value": 100,
          "name": "hosted_files"
        },
        {
          "value": 1000000,
          "name": "size_per_file"
        },
        {
          "value": -1,
          "name": "api_limit_sec"
        },
        {
          "value": -1,
          "name": "api_limit_minute"
        },
        {
          "value": 500,
          "name": "api_limit_hour"
        },
        {
          "value": 1000,
          "name": "api_limit_day"
        },
        {
          "value": 0,
          "name": "dynamic_section_types_support"
        },
        {
          "value": 2,
          "name": "users"
        },
        {
          "value": 1,
          "name": "domains"
        }
      ],
      "label": "Standard",
      "id": "661e2ac588ac0f02fd4517b2"
    }
  ]
}

This call will list all the public and private packages with their attached limits that your project can subscribe to. If you have specific needs requiring the customization of certains limits, contact us to build with you a custom private package. Note that locked package won't be returned here unless you it is the package you are already subscribed to. If you update your project from a locked package to another one, you won't be able to come back to the locked package.

Request

GET /api/v1/project/{project_id}/packages

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
token Sections Token header string true

Responses

Status Description Schema
200 List of package resource Package

5. User Management

This part will guide on how to manage your account on Sections.

Register through the API

Register user and project

POST /api/v1/register
origin: http://clientapp.com:3001
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAR1c2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYjAzODhhYzBmMDJmZGIyMDFlZWptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIGUzM2U2N2Y2MjQ5NzRkZTQ4YmY5M2ZlYzIwZjJlMDg3bQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgCFCNjljgFiAAFRgA.9MbbNMUgRG7Ux1fJ_WCdabvuq6noVpvxbl2N4hHrU3U
content-type: multipart/mixed; boundary=plug_conn_test
{
  "user": {
    "terms_conditions": true,
    "password": "password",
    "full_name": "Fullname",
    "email": "success@gmail.com"
  },
  "project": {
    "title": "Your Project Title",
    "project_url": [
      "your.url.com"
    ],
    "login_redirect_url": "https://your.url.com"
  }
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayo6wGFj5jnbAABCah
access-control-allow-origin: http://clientapp.com:3001
{
  "data": {
    "user": {
      "user_id": "123userid123",
      "saas_project_id": [
        {
          "title": "Your Project Title",
          "saas_project_id": "661e2b0488ac0f02fdb3e6d3",
          "role": "admin"
        }
      ],
      "last_login": 1713253124,
      "full_name": "Someone",
      "email": "someone7700dd79222c4864a786578ba09ac0ae@eweev.com"
    },
    "token": {
      "token": "this is a token"
    },
    "project": {
      "updated_at": 1713253124,
      "type": "private",
      "title": "Your Project Title",
      "reason": null,
      "project_url": [
        "your.url.com"
      ],
      "private_key": "$2b$12$NUQXh1viLmo0cxmk4j8M/Om6Bv9LG20kuHGHitpmKN.CzczJi8X46",
      "package": "free",
      "login_redirect_url": "https://your.url.com",
      "limitation_status": "active",
      "last_req_date": null,
      "inserted_at": "2024-04-16",
      "id": "661e2b0488ac0f02fdb3e6d3",
      "files_counter": 0,
      "configured_fields": {},
      "billing_status": "upgrade_lock",
      "active": true,
      "__meta__": {
        "state": "built",
        "source": "project",
        "schema": "Elixir.Sections.Section.Project",
        "prefix": null,
        "context": null
      }
    }
  }
}

API Route to be able to register a new user, and create this user's new project.

We now support the ability to include multiple project URLs used to pass CORS, by passing a list of valid URLS as the value of project_key

Request

POST api/v1/register

Parameters

Parameter Description In Type Required Default Example
project Project Model. body map true {'active' => true,'configured_fields' => {'blogs' => {'private_key' => 'xxxxxx','project_id' => 1}},'files_counter' => 0,'id' => '601bf1221907a50007ba3f81','login_redirect_url' => 'https://your.project.url.com/redirect_login/admin','package' => 'free','private_key' => 'xxxxxx','project_url' => ['https://your.project.url.com'],'reason' => nil,'type' => 'private'}
user User Model. body map true {email: 'your_new_email@gmail.com', password: 'new_pass', current_pass: 'current_pass'} }

Responses

Status Description Schema
200 User resource User
410 Error Resource Error

Get the pending invitations to a project.

Invite user to project success - user exists

GET /api/v1/project/661e2afe88ac0f02fda6d4f8/pending_invitations
origin: http://e5592261-caed-4bae-ba25-0a71d2c6bb71.com
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAVhZG1pbm0AAAAPc2Fhc19wcm9qZWN0X2lkbQAAABg2NjFlMmFmZTg4YWMwZjAyZmRhNmQ0ZjhqbQAAAAZzdGF0dXNtAAAACHZlcmlmaWVkbQAAAAd1c2VyX2lkbQAAACAyYTAwNTc1OGI5OWM0MGY3Yjc4MzU5MzIwOWMzZWY5Nm0AAAAGc3RhdHVzbQAAAAdzdWNjZXNzbgYAcfPX5Y4BYgABUYA.p1DyJUJj-VM41WLsFeNB57Q228jFeBYo7TSbmBcNVMQ

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayonWuTX5Z3MgABCSh
access-control-allow-origin: http://e5592261-caed-4bae-ba25-0a71d2c6bb71.com
{
  "users": [
    {
      "role": "webmaster",
      "invited_at": 1713253118,
      "email": "email@eweev.com"
    }
  ],
  "total": 1
}

Used to fetch pending invitation to (existing or non existing) user emails to join your project with a specific role.

Request

GET api/v1/project/:project_id/pending_invitations

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true

Responses

Status Description Schema
200 Pending Invitation Resource Pending_Invitation
401 Error Resource Error

Get your user information.

get user based on token

GET /api/v1/project/661e2af988ac0f02fd412291/user
origin: http://8dd4a4bf-0aae-4442-8671-397f2157a59f.com
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAl3ZWJtYXN0ZXJtAAAAD3NhYXNfcHJvamVjdF9pZG0AAAAYNjYxZTJhZjk4OGFjMGYwMmZkNDEyMjkxam0AAAAGc3RhdHVzbQAAAAh2ZXJpZmllZG0AAAAHdXNlcl9pZG0AAAAgZTVmN2U3MjBhMWE0NGIzNThlOTJjZjIzOWU0ODg1OGJtAAAABnN0YXR1c20AAAAHc3VjY2Vzc24GABDe1-WOAWIAAVGA.36vJEfufaEe6VcFUj6PVo1fBG8z-QevlNy0lXKcmBB0
{
  "aspect": "body_params"
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayoSAtXVvGtBoABENj
access-control-allow-origin: http://8dd4a4bf-0aae-4442-8671-397f2157a59f.com
{
  "token": null,
  "status": null,
  "roles": null,
  "projects": [
    {
      "saas_project_id": "661e2af988ac0f02fd412291",
      "role": "admin"
    }
  ],
  "inserted_at": null,
  "id": "1",
  "full_name": "Full Name",
  "email": "email@eweev.com"
}

Used to get your own user information based on the token.

Request

GET api/v1/project/:project_id/user

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
origin Request Origin header string true https://your.project.url.com
token Sections Token header string true

Responses

Status Description Schema
200 User resource User
401 Error Resource Error

Verify your Sections account

Verify user

POST /api/v1/verify_user
origin: http://clientapp.com:3001
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAR1c2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWZmODhhYzBmMDJmZGYyOWZlYmptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIGI2Y2YzYzJmYzRhMzRkZDRiNDg2YTIwYmViMzY5OGRkbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgC999fljgFiAAFRgA.J-dtB94v17tj4hdshK9gn9Q9P0xuFNLRL9w8DrLCbA8
content-type: multipart/mixed; boundary=plug_conn_test
{
  "token": "this is the token"
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayoqvyRVYnIgUABCUB
access-control-allow-origin: http://clientapp.com:3001
{
  "message": "Your email has been successfully verified."
}

Used to verify your Sections account.

You are expected to use the token received in the verification email as the token authorization header.

Request

POST api/v1/verify_user

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
origin Request Origin header string true https://your.project.url.com

Responses

Status Description Schema
200 Message resource Message
410 Error Resource Error

Login through the API

login

POST /login
origin: http://clientapp.com:3001
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAR1c2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYjAwODhhYzBmMDJmZGQzMzQ2ZGptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIDcyNWZmZWMxMDBjNDQzOGZiZjBhY2RjMjEwY2M5YjUzbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgDM-dfljgFiAAFRgA.xXwCWrcTE6An_rY88IO-moKF1pU_nqJVfV0rLT3OWWc
content-type: multipart/mixed; boundary=plug_conn_test
{
  "password": "password",
  "email": "success@gmail.com"
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayostkEGrTVjAABDMC
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-download-options: noopen
x-permitted-cross-domain-policies: none
cross-origin-window-policy: deny
{
  "token": {
    "token": "this is a token"
  },
  "status": null,
  "roles": null,
  "projects": [
    {
      "title": null,
      "saas_project_id": "661e2b0088ac0f02fdd3346d",
      "role": "webmaster"
    }
  ],
  "inserted_at": null,
  "id": "123userid123",
  "full_name": "Someone",
  "email": "someone7171d8d29bd4405ca6c644fa52c1f050@eweev.com"
}

API Route to be able to login and retrieve a user token, used for authorization.

The project_id query parameter, alongside the project URL as the origin header, are used to be able to pass CORS. You can also use the encoded version of the project private key to bypass CORS, and act as the project administrator.

Request

POST api/v1/login?project_id={PROJECT_ID}

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
origin Request Origin header string true https://your.project.url.com

Responses

Status Description Schema
200 User resource User
410 Error Resource Error

Updates User

Update User

PUT /api/v1/project/661e2b3388ac0f02fdcc014d/user
origin: http://4916bbe6-2f01-493d-b3b3-5265d8a58206.com
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAR1c2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYjMzODhhYzBmMDJmZGNjMDE0ZGptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIGEzZDM4YTA1YmEwODQwMjViYTE3M2Y0MWQwNTA0ZmM3bQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgBdw9jljgFiAAFRgA.ClFDKdUVePT52lObKOQFL4-tZM-3vuyol_SwHLMOgpU
content-type: multipart/mixed; boundary=plug_conn_test
{
  "password": "new_password",
  "full_name": "Your updated name",
  "email": "new_email@eweev.com",
  "current_password": "your_current_pass",
  "confirm_password": "new_password"
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayrssHs2GFaYQABEjB
access-control-allow-origin: http://4916bbe6-2f01-493d-b3b3-5265d8a58206.com
{
  "token": null,
  "status": "pending",
  "roles": null,
  "projects": null,
  "inserted_at": null,
  "id": "a3d38a05ba084025ba173f41d0504fc7",
  "full_name": "Your updated name",
  "email": "new_email@eweev.com"
}

This call updates the user. Be careful when updating your email or password you need to supply you current password to authenticate your call under the field current_password.

Request

PUT api/v1/project/{project_id}/user

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
token Sections Token header string true
user User Model. body map true {email: 'your_new_email@gmail.com', password: 'new_pass', current_pass: 'current_pass'} }

Responses

Status Description Schema
200 section type resource User
400 section type resource Error
410 Error Resource Error

Add a User

Add a user to a project

PUT /api/v1/project/661e2b2e88ac0f02fdeeb40f/add_user
origin: http://5db6cd78-2dff-47be-bf04-2c1157784c41.com
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAR1c2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYjJlODhhYzBmMDJmZGVlYjQwZmptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIGEzZDMwNzdmYzM3OTRiYjlhYTYwNzhlZTliNDhjYTkxbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgBCrtjljgFiAAFRgA.Ixoga6sn_bfsikFPS9I25MQjjCuvZ_F0JfYFgY2vM6E
content-type: multipart/mixed; boundary=plug_conn_test
{
  "saas_project_id": "661e2b2e88ac0f02fdeeb40f",
  "role": "User",
  "email": "USER_EMAIL@gmail.com"
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayrYkIBD7HoTgABEVB
access-control-allow-origin: http://5db6cd78-2dff-47be-bf04-2c1157784c41.com
{
  "token": null,
  "status": null,
  "roles": null,
  "projects": [
    {
      "saas_project_id": "661e2b2e88ac0f02fdeeb40f",
      "role": "User",
      "accepted_on": 1713253166
    }
  ],
  "inserted_at": null,
  "id": "075b6954-d856-43c3-9c26-c32f067e4bb6",
  "full_name": null,
  "email": null
}

This call adds the user, of the given email, to a project you are an admin on.

Request

PUT api/v1/project/{project_id}/add_user

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
token Sections Token header string true
user User Model. body map true [123,10,32,32,32,32,32,32,34,115,97,97,115,95,112,114,111,106,101,99,116,95,105,100,34,58,32,34,54,48,100,97,101,49,97,49,48,97,57,57,56,54,50,99,50,97,55,48,97,98,49,49,34,44,10,32,32,32,32,32,32,34,114,111,108,101,34,58,32,34,85,115,101,114,34,44,10,32,32,32,32,32,32,34,101,109,97,105,108,34,58,32,34,97,46,115,97,114,107,105,115,43,98,108,111,103,49,48,48,64,101,119,101,101,118,46,99,111,109,34,10,32,32,32,32,125]

Responses

Status Description Schema
200 section type resource User
400 section type resource Error
401 Error Resource Error
404 section type resource Error

Invite a user to join your project

Invite user to project success - user exists

POST /api/v1/project/661e2afe88ac0f02fda6d4f8/invite_user
origin: http://e5592261-caed-4bae-ba25-0a71d2c6bb71.com
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAVhZG1pbm0AAAAPc2Fhc19wcm9qZWN0X2lkbQAAABg2NjFlMmFmZTg4YWMwZjAyZmRhNmQ0ZjhqbQAAAAZzdGF0dXNtAAAACHZlcmlmaWVkbQAAAAd1c2VyX2lkbQAAACAyYTAwNTc1OGI5OWM0MGY3Yjc4MzU5MzIwOWMzZWY5Nm0AAAAGc3RhdHVzbQAAAAdzdWNjZXNzbgYAcfPX5Y4BYgABUYA.p1DyJUJj-VM41WLsFeNB57Q228jFeBYo7TSbmBcNVMQ
content-type: multipart/mixed; boundary=plug_conn_test
{
  "invitation_user_email": [
    "email@eweev.com"
  ],
  "invitation_role": "webmaster"
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayomZpIhBZ3MgABEOD
access-control-allow-origin: http://e5592261-caed-4bae-ba25-0a71d2c6bb71.com
{
  "invited": [
    "email@eweev.com"
  ],
  "invalid_format": [],
  "failed_to_send": [],
  "demotion": []
}

Used to send an invitation to (existing or non existing) user emails to join your project with a specific role.

Request

POST api/v1/project/:project_id/invite_user

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
invitation_role The role to invite the users as body string true one of:webmaster,admin
invitation_emails List of emails to invite to the project body array true ['email1@gmail.com','email2@gmail.com']

Responses

Status Description Schema
200 Invitation Resource Invitation
401 Error Resource Error

Accept an invitation to join a project.

Accept invitation to project success - user exists

POST /api/v1/invitation/accept_invitation
origin: http://9788134f-23be-4208-819e-a4d3eee54a88.com
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAR1c2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYjA0ODhhYzBmMDJmZGIzZTZkNGptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIGU0ZDAwNWQ1NjI5NDQ5ZmRhODViNDgxMzdjM2M0NjIxbQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgAGDNjljgFiAAFRgA.7nGj_oLznCvCHoUH2YIRbXVh2_kxj72ScsdBMOSNyOM
content-type: multipart/mixed; boundary=plug_conn_test
{
  "invitation_token": "SFMyNTY.g2gDdAAAAANtAAAACnByb2plY3RfaWRtAAAAGDY2MWUyYjA0ODhhYzBmMDJmZGIzZTZkNG0AAAAEcm9sZW0AAAAJd2VibWFzdGVybQAAAAp1c2VyX2VtYWlsbQAAABBlbWFpbDFAZW1haWwuY29tbgYAtQzY5Y4BYgABUYA.cMyjVkiFbnztQZ54Uqj1lynYXqSjMZn5_3a5m6HVFYM"
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayo-fohPhAjPQABCbh
{
  "token": null,
  "status": null,
  "roles": null,
  "projects": [
    {
      "title": null,
      "saas_project_id": "661e2b0488ac0f02fdb3e6d4",
      "role": "webmaster"
    }
  ],
  "inserted_at": null,
  "id": "eafb20380f594f6e9b61510cf8da3459",
  "full_name": "Full name",
  "email": "email1@email.com"
}

Used to accept an invitation to join a project with a specific role.

You are expected to add the token received in the email as the token authorization header.

Request

POST /api/v1/invitation

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true

Responses

Status Description Schema
200 User Resource User
401 Error Resource Error

Cancel an invitation

Accept invitation to project failure - invitation cancelled

DELETE /api/v1/project/661e2b0988ac0f02fdab71a7/cancel_invitation
origin: http://0e898bab-9e61-4dd4-8b26-ac2c95affa4c.com
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAAVhZG1pbm0AAAAPc2Fhc19wcm9qZWN0X2lkbQAAABg2NjFlMmIwOTg4YWMwZjAyZmRhYjcxYTdqbQAAAAZzdGF0dXNtAAAACHZlcmlmaWVkbQAAAAd1c2VyX2lkbQAAACA0YzM3YTNmNmM3MTk0OGUyOWY4OTNlYmM3ZTZiM2Y3YW0AAAAGc3RhdHVzbQAAAAdzdWNjZXNzbgYA8x_Y5Y4BYgABUYA.maBvbf96EdwJ0qnFUeisC_KRNabAOFdwlj8n2roWLeg
content-type: multipart/mixed; boundary=plug_conn_test
{
  "invitation_user_email": "email1@email.com"
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8aypR2UASiI0ikABCih
access-control-allow-origin: http://0e898bab-9e61-4dd4-8b26-ac2c95affa4c.com
{
  "message": "Invitation cancelled successfuly"
}

Used to cancel invitations sent to specific emails.

Request

DELETE api/v1/project/:project_id/cancel_invitation

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
invitation_email Email to cancel invitation to the project body string true 'email1@gmail.com','email2@gmail.com'

Responses

Status Description Schema
200 Message Resource Message
401 Error Resource Error

6. Medias

This part is dedicated to give you a clear idea on how to manage your medias. A media is an entity that holds a file that can be used across multiple sections. We can create a media using a base64 file. You are limited to the number of medias and the size of each media file based on your subscription.

Creates a media

Create a page with valid section using medias ids then keep sync

POST /api/v1/project/661e2acc88ac0f02fdbf8dff/media
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAARVc2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWNjODhhYzBmMDJmZGJmOGRmZmptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIGNmNTQxYjA0ZDc1MjRhN2M5Yjc5ZWQ0NDhiNTI3MzE0bQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgB0LtfljgFiAAFRgA.oKWELFtv-vux1t692_UgNV-U67eADLUiTq5NWf1IWbU
origin: http://63513ed7-1e6e-41c4-a075-984fc447f078.com
content-type: multipart/mixed; boundary=plug_conn_test
{
  "type": "image",
  "private_status": "public",
  "locked_status": "unlocked",
  "files": {
    "1": {
      "file": {
        "content_type": "image/svg",
        "path": "test/support/toggle.png",
        "filename": "blue.svg"
      }
    }
  }
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8aylqiTJ7LT4xEABCcC
access-control-allow-origin: http://63513ed7-1e6e-41c4-a075-984fc447f078.com
{
  "type": "image",
  "title": null,
  "tags": null,
  "seo_tag": null,
  "private_status": "public",
  "number_of_contents": 0,
  "namespace": "661e2acc88ac0f02fdbf8dff",
  "meta": {},
  "locked_status": "unlocked",
  "id": "661e2acc88ac0f02fdbf8e05",
  "files": [
    {
      "url": "https://www.fake-url.com/7aeaa9a0c269446f91c8e8a1bddde2de",
      "type": "image/svg",
      "thumbnail_url": "https://www.fake-url.com/a8285d0530d4482881af47d35cf2932c",
      "size": 3949,
      "platform_id": "64d11a55d7c40100075c27ff",
      "metadata": {
        "width": 80,
        "height": 80
      },
      "filename": "fake_filename",
      "file_id": "fake_file_id"
    }
  ],
  "creation_date": "2024-04-16",
  "author": "cf541b04d7524a7c9b79ed448b527314"
}

Creates a media with a given file

Request

POST api/v1/project/{project_id}/media

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
id The media id query_string string true
section A map containing the file body map true {1: {file: 'BASE64_STRING_HERE', base64: true}}

Responses

Status Description Schema
200 Media resource Media
400 Error Resource Error
404 Error Resource Error

Renders a media

Create a page with valid section using medias ids then keep sync

GET /api/v1/project/661e2acc88ac0f02fdbf8dff/media/661e2acc88ac0f02fdbf8e05
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAARVc2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWNjODhhYzBmMDJmZGJmOGRmZmptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIGNmNTQxYjA0ZDc1MjRhN2M5Yjc5ZWQ0NDhiNTI3MzE0bQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgB0LtfljgFiAAFRgA.oKWELFtv-vux1t692_UgNV-U67eADLUiTq5NWf1IWbU
origin: http://63513ed7-1e6e-41c4-a075-984fc447f078.com

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayltsc7BLT4xEABANh
access-control-allow-origin: http://63513ed7-1e6e-41c4-a075-984fc447f078.com
{
  "type": "image",
  "title": null,
  "tags": null,
  "seo_tag": null,
  "private_status": "public",
  "number_of_contents": 0,
  "namespace": "661e2acc88ac0f02fdbf8dff",
  "meta": {
    "content": [],
    "author": "deleted_user"
  },
  "locked_status": "unlocked",
  "id": "661e2acc88ac0f02fdbf8e05",
  "files": [
    {
      "url": "https://www.fake-url.com/7aeaa9a0c269446f91c8e8a1bddde2de",
      "type": "image/svg",
      "thumbnail_url": "https://www.fake-url.com/a8285d0530d4482881af47d35cf2932c",
      "size": 3949,
      "platform_id": "64d11a55d7c40100075c27ff",
      "platform": {
        "width": 1000,
        "updated_at": 1655974869,
        "number_of_medias": 0,
        "namespace": "sections_app",
        "name": "Global Platform",
        "inserted_at": 1655974869,
        "id": "64d11a55d7c40100075c27ff",
        "height": 1000,
        "description": "This is the only platform used for sections"
      },
      "metadata": {
        "width": 80,
        "height": 80
      },
      "filename": "fake_filename",
      "file_id": "fake_file_id"
    }
  ],
  "creation_date": 1713253068,
  "author": "cf541b04d7524a7c9b79ed448b527314"
}

Renders the media with its details.

Request

GET api/v1/project/{project_id}/media/{id}

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
id The media id query_string string true

Responses

Status Description Schema
200 Media resource Media
400 Error Resource Error
404 Error Resource Error

Renders all medias for this project.

List medias

POST /api/v1/project/661e2ad088ac0f02fd483e0b/medias
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAARVc2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWQwODhhYzBmMDJmZDQ4M2UwYmptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIGMzMDM2NTBhNDhhZjQyYjk4NDkxNzhkOTA3YmFlZmQ0bQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgBdQNfljgFiAAFRgA.JeWNM16AwYc6a6ZCSa64r2D-cyuKpufuMydA29isN8g
origin: http://a9a864f0-f0b6-43b2-9480-224cee057293.com

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayl9yxDqVdeaAABBOB
access-control-allow-origin: http://a9a864f0-f0b6-43b2-9480-224cee057293.com
{
  "total": 1,
  "result": [
    {
      "type": "image",
      "title": null,
      "tags": null,
      "seo_tag": null,
      "private_status": "public",
      "number_of_contents": 0,
      "namespace": "661e2ad088ac0f02fd483e0b",
      "meta": {},
      "locked_status": "unlocked",
      "id": "661e2ad188ac0f02fdc1815a",
      "files": [
        {
          "url": "https://www.fake-url.com/beaa49272f314aae9e4242278e3a9761",
          "type": "image/svg",
          "thumbnail_url": "https://www.fake-url.com/1d32800bdc9148e681128109c420e914",
          "size": 3949,
          "platform_id": "64d11a55d7c40100075c27ff",
          "platform": {
            "width": 1000,
            "updated_at": 1655974869,
            "number_of_medias": 0,
            "namespace": "sections_app",
            "name": "Global Platform",
            "inserted_at": 1655974869,
            "id": "64d11a55d7c40100075c27ff",
            "height": 1000,
            "description": "This is the only platform used for sections"
          },
          "metadata": {
            "width": 80,
            "height": 80
          },
          "filename": "fake_filename",
          "file_id": "fake_file_id"
        }
      ],
      "creation_date": 1713253073,
      "author": "c303650a48af42b9849178d907baefd4"
    }
  ]
}

Renders the medias with their details.

Request

POST api/v1/project/{project_id}/medias

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true

Responses

Status Description Schema
200 Array of Media resource Media

Updates a media

Create a page with valid section using medias ids then keep sync

PUT /api/v1/project/661e2acc88ac0f02fdbf8dff/media/661e2acc88ac0f02fdbf8e05
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAAEbQAAAAVlbWFpbHcDbmlsbQAAAA9zYWFzX3Byb2plY3RfaWRsAAAAAXQAAAACbQAAAARyb2xlbQAAAARVc2VybQAAAA9zYWFzX3Byb2plY3RfaWRtAAAAGDY2MWUyYWNjODhhYzBmMDJmZGJmOGRmZmptAAAABnN0YXR1c20AAAAIdmVyaWZpZWRtAAAAB3VzZXJfaWRtAAAAIGNmNTQxYjA0ZDc1MjRhN2M5Yjc5ZWQ0NDhiNTI3MzE0bQAAAAZzdGF0dXNtAAAAB3N1Y2Nlc3NuBgB0LtfljgFiAAFRgA.oKWELFtv-vux1t692_UgNV-U67eADLUiTq5NWf1IWbU
origin: http://63513ed7-1e6e-41c4-a075-984fc447f078.com
content-type: multipart/mixed; boundary=plug_conn_test
{
  "type": "image",
  "private_status": "public",
  "locked_status": "unlocked",
  "files": {
    "1": {
      "file": {
        "content_type": "image/svg",
        "path": "test/support/toggle.png",
        "filename": "blue.svg"
      }
    }
  }
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8aylxecz4HT4xEABA3h
access-control-allow-origin: http://63513ed7-1e6e-41c4-a075-984fc447f078.com
{
  "type": "image",
  "title": null,
  "tags": null,
  "seo_tag": null,
  "private_status": "public",
  "number_of_contents": 0,
  "namespace": "661e2acc88ac0f02fdbf8dff",
  "meta": {},
  "locked_status": "unlocked",
  "id": "661e2acc88ac0f02fdbf8e05",
  "files": [
    {
      "url": "https://www.fake-url.com/b2bb6a2adba34ae68f23d3a448c95a04",
      "type": "image/svg",
      "thumbnail_url": "https://www.fake-url.com/c1c055fdd5c14111a3fac2b0a7d2ad84",
      "size": 3949,
      "platform_id": "64d11a55d7c40100075c27ff",
      "metadata": {
        "width": 80,
        "height": 80
      },
      "filename": "fake_filename",
      "file_id": "fake_file_id"
    }
  ],
  "creation_date": "2024-04-16",
  "author": "cf541b04d7524a7c9b79ed448b527314"
}

Updates a media with a given file

Request

POST api/v1/project/{project_id}/media/{id}

Parameters

Parameter Description In Type Required Default Example
project_id Your project id in Sections query_string string true
id The media id query_string string true
section A map containing the file body map true {1: {file: 'BASE64_STRING_HERE', base64: true}}

Responses

Status Description Schema
200 Media resource Media
400 Error Resource Error
404 Error Resource Error

7. Project Management

This part will guide on how to manage your project on Sections.

Update a project

Update project

PUT /api/v1/project/661e2ac888ac0f02fd73e8ec
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAACbQAAAAxyb2xlc19vYmplY3RsAAAAAXQAAAABbQAAAAV0aXRsZW0AAAALc3VwZXJfYWRtaW5qbQAAAAd1c2VyX2lkbQAAACA2ODUxZTVjYjE5OGY0MTJhYjIxZjU4Y2RiMjVkODMxNW0AAAAGc3RhdHVzbQAAAAdzdWNjZXNzbgYAMSDX5Y4BYgABUYA.4ZTH7WxDZdliOHI1MDMGAHbxQlbpzi94Keoq52JHgbk
pkey: $2b$12$r5dfSnefcUDd/khGge.vt.z64EuTxg.vU/4PCZA1cbq3U8K5AYx3K
content-type: multipart/mixed; boundary=plug_conn_test
{
  "title": "New title 123"
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8aylejD_NWhEdUABDbj
{
  "updated_at": 1713253065,
  "type": "private",
  "title": "New title 123",
  "reason": null,
  "project_url": [
    "http://localhost:3000",
    "07578c9a-3e96-48fd-8a3d-7f9122e80a6b.com"
  ],
  "private_key": "$2b$12$u0aOxVQStlxr79Sf/zoL6Oh1ouJ7ZyUw01z17zeQ07w4CNvacydK2",
  "package": "free",
  "login_redirect_url": "http://localhost:3000/redirect-login",
  "limitation_status": "active",
  "last_req_date": null,
  "inserted_at": "2024-04-16",
  "id": "661e2ac888ac0f02fd73e8ec",
  "files_counter": 0,
  "configured_fields": {},
  "billing_status": "upgrade_lock",
  "active": true,
  "__meta__": {
    "state": "built",
    "source": "project",
    "schema": "Elixir.Sections.Section.Project",
    "prefix": null,
    "context": null
  }
}

Used to update any project field. Notes: - For the project_url and login_redirect_url fields, you can specify any of the following patterns for local testing: - localhost:PORT with HTTP:// or HTTPS:// - Class A,B,C Private addresses with HTTP://

Request

PUT api/v1/project/:project_id/

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
origin Request Origin header string true https://your.project.url.com
project Project Model. body map true {'active' => true,'configured_fields' => {'blogs' => {'private_key' => 'xxxxxx','project_id' => 1}},'files_counter' => 0,'id' => '601bf1221907a50007ba3f81','login_redirect_url' => 'https://your.project.url.com/redirect_login/admin','package' => 'free','private_key' => 'xxxxxx','project_url' => ['https://your.project.url.com'],'reason' => nil,'type' => 'private'}

Responses

Status Description Schema
200 Project Resource Project
400 Error Resource Error

Reset a Project's private key

Reset project private key

PUT /api/v1/project/661e2ad088ac0f02fd483e0a/reset_key
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAACbQAAAAxyb2xlc19vYmplY3RsAAAAAXQAAAABbQAAAAV0aXRsZW0AAAALc3VwZXJfYWRtaW5qbQAAAAd1c2VyX2lkbQAAACBlZjBjNGVmZWMxMDI0Nzc0YWQ4OWU4Zjg0OWQ1YzRhM20AAAAGc3RhdHVzbQAAAAdzdWNjZXNzbgYAxD_X5Y4BYgABUYA.XfG5gR8sLFCoF-7bHmh7Be75_VGUhhkXjsGMMxSTox8
pkey: $2b$12$l6n4EaehtGQTlSIdhyxYieOnEeMeHTbCWCiGNqjmCD9UI.hfSB31W

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayl8kdtVsyyhUABBNh
{
  "message": "Your project private key was successfully reset. The old one does not work anymore. Make sure to update the private key to the new one wherever you are using it."
}

Used to reset the private key field of a project.

Request

PUT api/v1/project/:project_id/reset_key

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
origin Request Origin header string true https://your.project.url.com

Responses

Status Description Schema
200 Project Resource Project
400 Error Resource Error

Get a project's dahsboard metrics

Get project dashboard

GET /api/v1/project/661e2ac788ac0f02fddc0e53/dashboard
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAACbQAAAAxyb2xlc19vYmplY3RsAAAAAXQAAAABbQAAAAV0aXRsZW0AAAALc3VwZXJfYWRtaW5qbQAAAAd1c2VyX2lkbQAAACA0ZTY3YTI1YWYxNzg0YTExYTRlYmI1MjI5YWVmMGI3OW0AAAAGc3RhdHVzbQAAAAdzdWNjZXNzbgYAUxzX5Y4BYgABUYA.I70POM4lCYz3zLasMM1V1DGwQhFmjoNzf6N3THi8udc
pkey: $2b$12$v/UDGms2r1vSj4YCf.4EYubnrmpQtumYGRM/pEWO0zY44YY/KpJDy

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8aylavUqXPIOyAABBwC
{
  "package_name": "free",
  "package_locked": false,
  "max_pages": 2,
  "max_media_files": 10,
  "max_file_size": 500000,
  "current_pages": 0,
  "current_medias": 0,
  "api_until_reset": 58935448,
  "api_limit_use": 500,
  "api_current_use": 0
}

Used to retrieve a project's dashboard metrics such as package limitations and current usage.

Request

GET api/v1/project/:project_id/dashboard

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
origin Request Origin header string true https://your.project.url.com
project Project Model. body map true {'active' => true,'configured_fields' => {'blogs' => {'private_key' => 'xxxxxx','project_id' => 1}},'files_counter' => 0,'id' => '601bf1221907a50007ba3f81','login_redirect_url' => 'https://your.project.url.com/redirect_login/admin','package' => 'free','private_key' => 'xxxxxx','project_url' => ['https://your.project.url.com'],'reason' => nil,'type' => 'private'}

Responses

Status Description Schema
200 Dashboard Resource Dashboard
400 Error Resource Error

8. Sections Admin Only Access

This part wil guide Sections Admins on actions they only can perform.

Get projects

test pagination and filtering of projects GET /api/v1/auth/project pagination limit and start

GET /api/v1/auth/project?start=1&limit=1
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAACbQAAAAxyb2xlc19vYmplY3RsAAAAAXQAAAABbQAAAAV0aXRsZW0AAAALc3VwZXJfYWRtaW5qbQAAAAd1c2VyX2lkbQAAACBjYzYyZmRhNGNlMDA0MTQxOTUxOGY0ZTZlMmFlYTE2MW0AAAAGc3RhdHVzbQAAAAdzdWNjZXNzbgYAza3X5Y4BYgABUYA.ApekP_hs7T-o_EJsmu2KoAevAKCsj7KUxDB7jpm28UU

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8aynlXQxgSEuIUABEKD
access-control-allow-origin: http://clientapp.com:3001
{
  "total": 60,
  "public_packages": [
    {
      "value": "Free",
      "key": "free"
    },
    {
      "value": "Standard",
      "key": "solo"
    },
    {
      "value": "Corporate",
      "key": "corporate"
    },
    {
      "value": "QS_enabled",
      "key": "qs_enabled"
    }
  ],
  "data": [
    {
      "updated_at": 1713253063,
      "type": "private",
      "title": null,
      "reason": null,
      "project_url": [
        "3019080a-09ef-4f66-ab50-f0cf7e403f7d.com"
      ],
      "private_packages": [],
      "package": "free",
      "login_redirect_url": null,
      "limitation_status": "active",
      "last_request_user": {
        "role": null,
        "full_name": null,
        "email": null
      },
      "last_req_date": 1713253063,
      "inserted_at": 1713253063,
      "id": "661e2ac688ac0f02fd9a9754",
      "files_counter": 0,
      "configured_fields": {},
      "billing_status": "upgrade_lock",
      "active": true,
      "__meta__": {
        "state": "built",
        "source": "project",
        "schema": "Elixir.Sections.Section.Project",
        "prefix": null,
        "context": null
      }
    }
  ]
}

Used to retrieve list of projects. Current supported filters are:

Request

POST api/v1/auth/projects

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true

Responses

Status Description Schema
200 List of Project Resource Project
400 Error Resource Error

Create a new package

create a package and create and existing package

POST /api/v1/auth/package
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAACbQAAAAxyb2xlc19vYmplY3RsAAAAAXQAAAABbQAAAAV0aXRsZW0AAAALc3VwZXJfYWRtaW5qbQAAAAd1c2VyX2lkbQAAACAxMjQ0YzlmZTI2ZGQ0YmIwYWMxZDhhYTI0NmQ2YjFhYm0AAAAGc3RhdHVzbQAAAAdzdWNjZXNzbgYAUYnY5Y4BYgABUYA.baB73Bs7SZm7l-VYgVp5Gr-fETNkO3LAsSymgyXDRgA
origin: http://83864808-059e-4ce5-a962-b67cff426cff.com
content-type: multipart/mixed; boundary=plug_conn_test
{
  "type": "public",
  "rank": 3,
  "quota": -1,
  "price": 1999,
  "name": "new_name",
  "locked": false,
  "limits": [
    {
      "value": -1,
      "name": "query_string_support",
      "label": "label"
    },
    {
      "value": 2,
      "name": "number_of_pages",
      "label": "label"
    },
    {
      "value": 1,
      "name": "variation_per_page",
      "label": "label"
    },
    {
      "value": 10,
      "name": "static_sections",
      "label": "label"
    },
    {
      "value": 5,
      "name": "sections_total",
      "label": "label"
    },
    {
      "value": 10,
      "name": "hosted_files",
      "label": "label"
    },
    {
      "value": 500000,
      "name": "size_per_file",
      "label": "label"
    },
    {
      "value": 10,
      "name": "api_limit_sec",
      "label": "label"
    },
    {
      "value": 100,
      "name": "api_limit_minute",
      "label": "label"
    },
    {
      "value": 100,
      "name": "api_limit_hour",
      "label": "label"
    },
    {
      "value": 500,
      "name": "api_limit_day",
      "label": "label"
    },
    {
      "value": -1,
      "name": "dynamic_section_types_support",
      "label": "label"
    },
    {
      "value": 2,
      "name": "users",
      "label": "label"
    },
    {
      "value": 5,
      "name": "domains",
      "label": "label"
    }
  ],
  "label": "Free"
}

Response

400
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayq20HAvaSc20ABDpB
access-control-allow-origin: http://clientapp.com:3001
{
  "message": "Packages already exist"
}

Used to create a package

Request

POST api/v1/auth/package

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true

Responses

Status Description Schema
200 Package Resource Package
400 Error Resource Error

Get package by id

Get package by ID

GET /api/v1/auth/package/661e2b2588ac0f02fdf944ca
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAACbQAAAAxyb2xlc19vYmplY3RsAAAAAXQAAAABbQAAAAV0aXRsZW0AAAALc3VwZXJfYWRtaW5qbQAAAAd1c2VyX2lkbQAAACBkM2ExMzVhNDFlNmY0ZDJiODczNDQyNjMzZDE4MzU1NW0AAAAGc3RhdHVzbQAAAAdzdWNjZXNzbgYAtofY5Y4BYgABUYA.RLPmv5Lm3kDpxG4Nl8tXAB3i9I8foYW-Jwpgow7_0ic
origin: http://7d647a70-8e6f-4ee3-8d9d-f4df034fdfcb.com

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayq1SMAtuU9gsABDmB
access-control-allow-origin: http://clientapp.com:3001
{
  "type": "public",
  "rank": 3,
  "quota": -1,
  "price": 1999,
  "name": "package_by_id",
  "locked": false,
  "limits": [
    {
      "value": -1,
      "name": "query_string_support"
    },
    {
      "value": 2,
      "name": "number_of_pages"
    },
    {
      "value": 1,
      "name": "variation_per_page"
    },
    {
      "value": 10,
      "name": "static_sections"
    },
    {
      "value": 5,
      "name": "sections_total"
    },
    {
      "value": 10,
      "name": "hosted_files"
    },
    {
      "value": 500000,
      "name": "size_per_file"
    },
    {
      "value": 10,
      "name": "api_limit_sec"
    },
    {
      "value": 100,
      "name": "api_limit_minute"
    },
    {
      "value": 100,
      "name": "api_limit_hour"
    },
    {
      "value": 500,
      "name": "api_limit_day"
    },
    {
      "value": -1,
      "name": "dynamic_section_types_support"
    },
    {
      "value": 2,
      "name": "users"
    },
    {
      "value": 5,
      "name": "domains"
    }
  ],
  "label": "Free",
  "id": "661e2b2588ac0f02fdf944ca"
}

Used to retrieve a package by its id.

Request

GET api/v1/auth/package/:id

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true

Responses

Status Description Schema
200 Package Resource Package
400 Error Resource Error
404 Error Resource Error

Edit package by id

UPDATE package/

PUT /api/v1/auth/package/661e2b2988ac0f02fd10fe89
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAACbQAAAAxyb2xlc19vYmplY3RsAAAAAXQAAAABbQAAAAV0aXRsZW0AAAALc3VwZXJfYWRtaW5qbQAAAAd1c2VyX2lkbQAAACBhN2FiMmNiN2UxOGU0NDFhOTIwMDkyOWQxMGRkYTQ0NG0AAAAGc3RhdHVzbQAAAAdzdWNjZXNzbgYA0ZfY5Y4BYgABUYA.LdCB07zHM0QLp5H1WYCnO948ZbTzaJykpLHWCb3BOuE
origin: http://5affeecb-7de6-4fcc-84d3-324a376a096d.com
content-type: multipart/mixed; boundary=plug_conn_test
{
  "name": "premium",
  "limits": [
    {
      "value": -1,
      "name": "query_string_support",
      "label": "label"
    },
    {
      "value": 20,
      "name": "number_of_pages",
      "label": "label"
    },
    {
      "value": 1,
      "name": "variation_per_page",
      "label": "label"
    },
    {
      "value": 10,
      "name": "static_sections",
      "label": "label"
    },
    {
      "value": 5,
      "name": "sections_total",
      "label": "label"
    },
    {
      "value": 7,
      "name": "hosted_files",
      "label": "label"
    },
    {
      "value": 500000,
      "name": "size_per_file",
      "label": "label"
    },
    {
      "value": 10,
      "name": "api_limit_sec",
      "label": "label"
    },
    {
      "value": -1,
      "name": "api_limit_hour",
      "label": "label"
    },
    {
      "value": 100,
      "name": "api_limit_minute",
      "label": "label"
    },
    {
      "value": 500,
      "name": "api_limit_day",
      "label": "label"
    },
    {
      "value": -1,
      "name": "dynamic_section_types_support",
      "label": "label"
    },
    {
      "value": 2,
      "name": "users",
      "label": "label"
    },
    {
      "value": 5,
      "name": "domains",
      "label": "label"
    }
  ],
  "label": "premium"
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayrEwtD--9pYwABD9B
access-control-allow-origin: http://clientapp.com:3001
{
  "type": "public",
  "rank": 3,
  "quota": -1,
  "price": 1999,
  "name": "premium",
  "locked": false,
  "limits": [
    {
      "value": -1,
      "name": "query_string_support"
    },
    {
      "value": 20,
      "name": "number_of_pages"
    },
    {
      "value": 1,
      "name": "variation_per_page"
    },
    {
      "value": 10,
      "name": "static_sections"
    },
    {
      "value": 5,
      "name": "sections_total"
    },
    {
      "value": 7,
      "name": "hosted_files"
    },
    {
      "value": 500000,
      "name": "size_per_file"
    },
    {
      "value": 10,
      "name": "api_limit_sec"
    },
    {
      "value": -1,
      "name": "api_limit_hour"
    },
    {
      "value": 100,
      "name": "api_limit_minute"
    },
    {
      "value": 500,
      "name": "api_limit_day"
    },
    {
      "value": -1,
      "name": "dynamic_section_types_support"
    },
    {
      "value": 2,
      "name": "users"
    },
    {
      "value": 5,
      "name": "domains"
    }
  ],
  "label": "premium",
  "id": "661e2b2988ac0f02fd10fe89"
}

Used to edit a package by its id.

Request

PUT api/v1/auth/package/:id

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
package_id The package id in Sections query_string string true

Responses

Status Description Schema
200 Package Resource Package
400 Error Resource Error
404 Error Resource Error

Duplicate package by id

Duplicate package

POST /api/v1/auth/package/661e2b2d88ac0f02fda8ae74/duplicate
token: SFMyNTY.g2gDdAAAAAJtAAAABGRhdGF0AAAAAW0AAAAEdXNlcnQAAAACbQAAAAxyb2xlc19vYmplY3RsAAAAAXQAAAABbQAAAAV0aXRsZW0AAAALc3VwZXJfYWRtaW5qbQAAAAd1c2VyX2lkbQAAACBkNzc5NTQ0NzkzOGY0OTVhYTI0NmEzYzU4ZmNiZjUzM20AAAAGc3RhdHVzbQAAAAdzdWNjZXNzbgYAQafY5Y4BYgABUYA.0DSm93OIwrrowR61V1CO_WG6NM82kjS5ylKZygEEGFw
origin: http://03fd5b75-f6a5-462f-9a6a-7a52374a1dfb.com
content-type: multipart/mixed; boundary=plug_conn_test
{
  "name": "package 2"
}

Response

200
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate
x-request-id: F8ayrTgIqR4H5boABEOh
access-control-allow-origin: http://clientapp.com:3001
{
  "type": "public",
  "rank": 3,
  "quota": -1,
  "price": 1999,
  "name": "package 2",
  "locked": false,
  "limits": [
    {
      "value": -1,
      "name": "query_string_support"
    },
    {
      "value": 2,
      "name": "number_of_pages"
    },
    {
      "value": 1,
      "name": "variation_per_page"
    },
    {
      "value": 10,
      "name": "static_sections"
    },
    {
      "value": 5,
      "name": "sections_total"
    },
    {
      "value": 10,
      "name": "hosted_files"
    },
    {
      "value": 500000,
      "name": "size_per_file"
    },
    {
      "value": 10,
      "name": "api_limit_sec"
    },
    {
      "value": 100,
      "name": "api_limit_minute"
    },
    {
      "value": 100,
      "name": "api_limit_hour"
    },
    {
      "value": 500,
      "name": "api_limit_day"
    },
    {
      "value": -1,
      "name": "dynamic_section_types_support"
    },
    {
      "value": 2,
      "name": "users"
    },
    {
      "value": 5,
      "name": "domains"
    }
  ],
  "label": "Free",
  "id": "661e2b2d88ac0f02fda8ae75"
}

Used to duplicate a package by its id.

Request

GET api/v1/auth/package/:id/duplicate

Parameters

Parameter Description In Type Required Default Example
token Sections Token header string true
name Name of the package to be used when duplicating body string true Eweev Package #1

Responses

Status Description Schema
200 Package Resource Package
400 Error Resource Error
404 Error Resource Error