Skip to content

Get a Site

GET/v1/organization/{orgId}/sites/{siteId}

US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com

The Site as its draft stands: its pages with their blocks, the menu, the theme, the roles you can preview as, the block catalog (every block kind this Site takes, with its JSON Schema), what Publish would change, and the rules for editing. Also at GET /v1/sites/{siteId}.

Request example

Terminal window
curl --request GET \
--url 'https://public-api.sessionboard.com/v1/organization/{orgId}/sites/{siteId}' \
--header 'x-access-token: <api-token>'

Try it

Authorization

Your token stays in this page. It is sent only to the region above and is never saved; it is gone when you leave or reload the page.

Path parameters
GET

Authorizations

  • x-access-tokenstringheader

    Organization API token. Generate from Organization Settings → API Tokens.

  • AuthorizationBearer <token>headeror

    OAuth 2.1 access token. Obtained via the OAuth PKCE flow at /oauth/token.

Send one of these. See Authentication.

Path parameters

  • orgIdstringpathrequired

    Your organization ID. Any other organization returns 404.

  • siteIdstring<uuid>pathrequired

    The Site's id from List Sites.

Responses

200application/json

OK

  • payloadSite
    Show child attributes
    • siteobject
      Show child attributes
      • idstring<uuid>
      • typestring

        event_page (Marketing), learning, or awards / event_portal / internal (Awards).

      • productstring
        Allowed values
        "marketing", "learning", "awards"
      • namestring
      • slugstring
      • event_idinteger | null
      • urlstring | null

        The live address.

      • revisionstring

        Send back as baseRevision on your next write.

      • has_unpublished_changesboolean
      • published_atstring<date-time> | null
      • draft_updated_atstring<date-time> | null
      • brand_kit_idstring | null
      • last_writeobject | null

        Who wrote the draft last (a person, Ask, or an MCP client) and when.

    • pagesSitePage[]
      Show child attributes
      • refstring

        home, or how to refer to the page in an edit.

      • idstring | null

        null for a page that is new in the draft.

      • titlestring
      • slugstring
      • pathstring
      • urlstring | null
      • is_homeboolean
      • hiddenboolean
      • visibilitystring
        Allowed values
        "public", "reviewers", "submitters"
      • is_newboolean
      • blocksSiteBlock[]
        Show child attributes
        • idstring
        • kindstring

          A kind from the Site's block_catalog.

        • hiddenboolean
        • configobject

          The block's settings, as its schema in block_catalog describes.

    • navobject | null

      The menu; null follows the pages.

    • themeobject
      Show child attributes
      • modestring
        Allowed values
        "light", "dark", "auto"
      • primarystring | null
      • accentstring | null
      • textstring | null
      • gradientstring | null[]
      • fontstring | null
      • logo_urlstring | null
      • follow_brand_kitboolean
    • rolesobject[]

      Who you can preview the Site as.

      Show child attributes
      • idstring
      • labelstring
      • hintstring
    • devicesstring[]
    • has_pagesboolean

      false for a one-page Site (the Marketing event page): use page home.

    • block_catalogobject[]

      Every block kind this Site takes, with a label, a JSON Schema for config and an example.

    • diffSiteDiff
      Show child attributes
      • changedboolean
      • pagesobject[]
      • blocksobject[]
      • settingsobject[]
        Show child attributes
        • keystring
        • labelstring
      • summarystring[]

        One plain sentence per change, for the person to read.

    • rulesstring[]

      How to edit this Site, in plain sentences.

403

  • SCOPE_REQUIRED — the token lacks read:sites (or read:marketing, read:learning, read:awards) for reads, or the matching write: scope for writes.
  • FORBIDDEN — the token's user cannot edit this Site.

404

Not found — also returned for another organization's Site.

Response examples

{
"payload": {
"site": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "<string>",
"product": "marketing",
"name": "<string>",
"slug": "<string>",
"event_id": 123,
"url": "<string>",
"revision": "<string>",
"has_unpublished_changes": true,
"published_at": "2026-01-15T09:30:00Z",
"draft_updated_at": "2026-01-15T09:30:00Z",
"brand_kit_id": "<string>",
"last_write": {}
},
"pages": [
{
"ref": "<string>",
"id": "<string>",
"title": "<string>",
"slug": "<string>",
"path": "<string>",
"url": "<string>",
"is_home": true,
"hidden": true,
"visibility": "public",
"is_new": true,
"blocks": [
{
"id": "<string>",
"kind": "<string>",
"hidden": true,
"config": {}
}
]
}
],
"nav": {},
"theme": {
"mode": "light",
"primary": "<string>",
"accent": "<string>",
"text": "<string>",
"gradient": [
"<string>"
],
"font": "<string>",
"logo_url": "<string>",
"follow_brand_kit": true
},
"roles": [
{
"id": "<string>",
"label": "<string>",
"hint": "<string>"
}
],
"devices": [
"<string>"
],
"has_pages": true,
"block_catalog": [
{}
],
"diff": {
"changed": true,
"pages": [
{}
],
"blocks": [
{}
],
"settings": [
{
"key": "<string>",
"label": "<string>"
}
],
"summary": [
"<string>"
]
},
"rules": [
"<string>"
]
}
}