> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ecomwize.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get page

> Retrieve the content structure of a page to see all sections and their editable fields.

Returns a page with all its sections and their content fields. Only text, media URLs, and button links are returned -- no style or layout fields.

Use this endpoint to discover the exact field names before calling the fill endpoint.

<ParamField path="page_id" type="string" required>
  The unique ID of the page. Get it from the [list pages](/api/list-pages) endpoint.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Bearer token. Example: `Bearer ew_live_your_key_here`
</ParamField>

## Response

<ResponseField name="page" type="object" required>
  <Expandable title="Page object" defaultOpen>
    <ResponseField name="id" type="string" required>
      Unique page ID.
    </ResponseField>

    <ResponseField name="title" type="string" required>
      Page title.
    </ResponseField>

    <ResponseField name="slug" type="string" required>
      URL slug.
    </ResponseField>

    <ResponseField name="status" type="string" required>
      Either `draft` or `published`.
    </ResponseField>

    <ResponseField name="sections" type="object" required>
      Object keyed by `section_1`, `section_2`, etc. Each section contains a `type` and `content` object with editable fields.
    </ResponseField>
  </Expandable>
</ResponseField>

## Content field naming

Content fields follow a consistent naming pattern:

| Pattern                 | Example                | Description        |
| ----------------------- | ---------------------- | ------------------ |
| `{type}_heading`        | `hero01_heading`       | Main heading text  |
| `{type}_subheading`     | `hero01_subheading`    | Subheading text    |
| `{type}_btn`            | `hero01_btn`           | Button text        |
| `{type}_bullet_N`       | `benefit01_bullet_1`   | Bullet point       |
| `{type}_faq_N_question` | `faq01_faq_1_question` | FAQ question       |
| `{type}_faq_N_answer`   | `faq01_faq_1_answer`   | FAQ answer         |
| `imageUrl`              |                        | Image or video URL |
| `buttonLink`            |                        | Button destination |

## Nested content

Some sections contain nested content in arrays:

| Key        | Sections                       | Contains                                 |
| ---------- | ------------------------------ | ---------------------------------------- |
| `cards`    | Testimonials, UGC, Ingredients | Quotes, authors, images per card         |
| `snippets` | Product, Advertorial           | Bullet lists, FAQs, tags, notice boxes   |
| `bullets`  | Benefit sections               | Bullet titles and descriptions           |
| `sidebar`  | Advertorial                    | Sidebar tag, title, bullets, button text |
| `items`    | Banner                         | Image URLs per item                      |

<Note>
  Fields like colors, font sizes, alignment, toggles, and icons are never returned. Your design stays exactly as you built it in the editor.
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url https://app.ecomwize.io/api/v1/pages/e22f3857-cf0c-49c0-9e44-d76ea0bb7221 \
    --header 'Authorization: Bearer ew_live_your_key_here'
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://app.ecomwize.io/api/v1/pages/e22f3857-cf0c-49c0-9e44-d76ea0bb7221",
      headers={"Authorization": "Bearer ew_live_your_key_here"}
  )
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "https://app.ecomwize.io/api/v1/pages/e22f3857-cf0c-49c0-9e44-d76ea0bb7221",
    { headers: { "Authorization": "Bearer ew_live_your_key_here" } }
  );
  const data = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "page": {
      "id": "e22f3857-cf0c-49c0-9e44-d76ea0bb7221",
      "title": "Summer Sale Landing Page",
      "slug": "summer-sale-landing",
      "handle": "summer-sale-landing",
      "status": "published",
      "template_type": "page",
      "sections": {
        "section_1": {
          "type": "hero01",
          "content": {
            "hero01_heading": "Summer sale is here",
            "hero01_subheading": "Get 50% off everything...",
            "hero01_btn": "Shop Now",
            "hero01_trust": "Rated 4.9/5 by 12,000+ customers",
            "imageUrl": "https://cdn.ecomwize.io/...",
            "buttonLink": "/collections/all"
          }
        },
        "section_2": {
          "type": "benefit01",
          "content": {
            "benefit01_heading": "Why Choose Us",
            "benefit01_bullet_1": "Free shipping worldwide",
            "benefit01_bullet_2": "30-day money back guarantee",
            "benefit01_btn": "Learn More",
            "imageUrl": "https://cdn.ecomwize.io/..."
          }
        },
        "section_3": {
          "type": "testimonial11",
          "content": {
            "testimonial11_heading": "What customers say",
            "testimonial11_btn": "Try It Now",
            "cards": [
              {
                "testimonial11_card_1_quote": "Amazing quality...",
                "testimonial11_card_1_author": "Sarah M.",
                "avatarUrl": "https://cdn.ecomwize.io/..."
              }
            ]
          }
        }
      },
      "created_at": "2026-04-07T13:49:00.965Z",
      "updated_at": "2026-04-08T18:07:59.695Z"
    }
  }
  ```

  ```json 404 theme={null}
  {
    "error": "Page not found",
    "message": "No page found with this ID. Use GET /api/v1/pages to list your pages.",
    "status": 404
  }
  ```
</ResponseExample>
