Skip to main content
Programmatic equivalent of the brand’s Video pages, Story pages and Link pages in the dashboard (each list, and its add and edit forms). The pages and the API write through the same service and the same validation, so a page saved on one reads back on the other, and a value one refuses the other refuses too. A destination page is a branded landing page. A resolution rule sends a scan of the brand’s products to one; this skill builds the page, and manage-resolution-rules points a rule at it.
  • Video page — one YouTube video, a short text and up to three buttons.
  • Story page — the brand’s or a product’s story in ordered blocks.
  • Link page — a branded list of links, like a link-in-bio page.

When to use

  • The brand wants a scan to land on its own branded page rather than a product page.
  • A page’s content, colours or links have changed.
  • A page is no longer used.

Auth

X-API-Key header or OAuth token. Reading needs any member of the organization that owns the brand (or any API key of it). Writing needs an OWNER, MANAGER or EDITOR (or an API key with the EDITOR role or above): a read-only key gets 403. A brand of an organization the caller does not belong to is 404.

Flow

Each kind has its own collection: video-pages, story-pages or link-pages.
Every page has name (unique among the brand’s pages of that kind), brand_name_override, tagline, primary_color and accent_color (6-digit hex values such as #0a84ff). On top of those:
  • Video — youtube_url (empty shows the first video attached to the product being resolved), description, and cta_links: up to three {label, url} buttons.
  • Story — blocks, ordered {type, data} objects of type hero_image, text_section, image_text, certification_badges, image_gallery or cta.
  • Link — blocks, ordered {type, data} objects of type link, section_header, image_carousel or countdown_timer, plus button_style (filled or outlined) and button_shape (rounded or square).
The service description (/brands/api/v1/openapi.json) gives every field and an example body for each kind.
  • POST — create a page. name, primary_color and accent_color are required. Returns 201.
  • PATCH .../{id} — send only the fields you are changing. null is 422.
  • DELETE .../{id} — delete the page (204).
A name already in use, a malformed colour, URL or block is 422 with the field and the reason; correct it rather than retrying the same body.

Verify

  1. GET .../{kind}-pages again and confirm each page you created or changed reads back with the content you intended.
  2. Confirm no page you did not mean to touch changed or disappeared: a live resolution rule may be sending scans to it.