Pages

Covered in this doc:

List pages

List all pages within a Site

GET /api/v2/pages/?site_id=12345

Parameters

Name

Type

Description

site_id

string

required ID of the Site you want to get the pages for

Response

{
  "meta": {
    "limit": 20,
    "next": "/api/v2/pages/?limit=20&offset=20",
    "offset": 0,
    "previous": null,
    "total_count": 5
  },
  "objects": [
    {
      "active": true,
      "id": 22225773,
      "name": "Home",
      "nofollow": false,
      "path": "/",
      "resource_uri": "/api/v2/pages/22225773/",
      "site_id": 12345,
      "type": "default"
    },
    {
      "active": true,
      "id": 22225774,
      "name": "Contact Us",
      "nofollow": false,
      "path": "/contact-us/",
      "resource_uri": "/api/v2/pages/22225774/",
      "site_id": 12345,
      "type": "default"
    },
    ...
  ]
}

Get a single page

Fetch the Page detail using the Page.id

GET /api/v2/pages/:id/

Response

{
  "site_id": "12345",
  "path": "/",
  "title": "Site Home Page",
  "name": "Home",
  "column_widths": [[50, 50]],
  "modules": [
    {
      "module": "contact_info",
      "column": 1,
      "order": 1,
      "row": 1
    },
    {
      "module": "content",
      "column": 2,
      "order": 1,
      "row": 1,
      "content": "<h1>Here is some content</h1><p>You can even access site meta data like ${business_name} and ${city}</p>"
    },
    {
      "module": "googlemaps",
      "column": 2,
      "order": 2,
      "row": 1
    },
    {
      "module": "about",
      "column": 2,
      "order": 3,
      "row": 1
    },
    {
      "module": "embed",
      "column": 2,
      "order": 4,
      "row": 1,
      "content": "<script src="..."></script>",
      "props": {
        "render_template": true
      }
    }
  ]
}

Create a page

POST /api/v2/pages/

Parameters

Name

Type

Description

site_id

integer

required

name

string

required Name of the page. Used in navigation menus and buttons

Optional

column_widths

list of lists

Percentage widths of the rows and columns within the Page. Examples: Single column page [[100]] (default), Two columns within one row [[50, 50]], Multiple rows and columns [[100], [50, 50]]

modules

list

List of Page Module objects to publish to the Page with positional details including row, column, and order

path

string

Specific path within the Site where you want to publish the page (i.e. /contact-us/)

title

string

HTML <title> tag for the Page. Defaults to the name parameter

clone_id

integer

Page ID of a page you want to duplicate/clone. More info under the Clone/Duplicate example

Example

{
  "name": "Our Services",
  "path": "/our-services/",
  "site_id": 12345
}

Response

A status code of 201 created is returned on a successful creation and contains the created page object as JSON. See the Get a single page section for an example Page object.

Cloning/duplicating a page

We have a clone_id parameter that can be used to easily duplicate/clone an entire page, including all of its modules and content.

This allows for a simple payload without the need to provide all the modules and page fields from the original.

Example:

{
  "clone_id": 512345,
  "site_id": 12345,
  "name": "Duplicated page name"
}

Update a page

PUT /api/v2/pages/:id/

You can PUT a partial or full object to the detail endpoint to update/change values on the Page object. If using a partial object, you must insure that the primary page id is part of the payload.

Last updated

Was this helpful?