Skip to main content
GET
/
v2
/
orgs
/
{orgId}
/
sites
/
{siteId}
/
page-slug
cURL
curl --request GET \
  --url 'https://api.obvlo.com/v2/orgs/{orgId}/sites/{siteId}/page-slug?key='
{
  "siteId": "<string>",
  "mode": "matches",
  "matches": [
    {
      "pageId": "<string>",
      "slug": "<string>",
      "homepageSlug": "<string>",
      "segments": [
        "<string>"
      ],
      "parentIds": [
        "<string>"
      ],
      "destinationId": "<string>",
      "guideId": "<string>",
      "locationId": "<string>"
    }
  ]
}

Overview

The /v2/orgs/{orgId}/sites/{siteId}/page-slug endpoint resolves complete page URL paths from persisted site page records. Use this endpoint when you need stable links for destination, guide, and area pages without reconstructing URLs from mutable names. The API uses persisted page slug values and parentId relationships. Returned slug and segments values are microsite-relative. The resolver strips the site-root prefix (including reverse-proxy roots like /local-guides) so responses are not coupled to infrastructure paths.

Request

GET /v2/orgs/{orgId}/sites/{siteId}/page-slug

Required parameters

ParameterTypeDescription
orgIdstringYour organisation ID.
siteIdstringThe site ID to resolve page slugs for.

Optional filters

ParameterTypeDescription
destinationIdstringLimit results to pages linked to a destination.
guideIdstringLimit results to pages linked to a guide.
locationIdstringLimit results to pages linked to a location/area.
When no filters are provided, the endpoint returns a full tree of site pages.

Examples

Get full site slug tree

curl "https://api.obvlo.com/v2/orgs/YOUR_ORG_ID/sites/YOUR_SITE_ID/page-slug?key=YOUR_API_KEY"

Get matches for a specific guide

curl "https://api.obvlo.com/v2/orgs/YOUR_ORG_ID/sites/YOUR_SITE_ID/page-slug?key=YOUR_API_KEY&destinationId=DESTINATION_ID&guideId=GUIDE_ID"

Example tree response

{
  "siteId": "site_123",
  "mode": "tree",
  "tree": [
    {
      "pageId": "root_page",
      "pageType": "Root",
      "slug": "/london/",
      "homepageSlug": "/",
      "segments": ["london"],
      "parentIds": [],
      "destinationId": "destination_123",
      "guideId": null,
      "locationId": null,
      "children": [
        {
          "pageId": "guide_page_1",
          "pageType": "Guide",
          "slug": "/london/food-guide/",
          "homepageSlug": null,
          "segments": ["london", "food-guide"],
          "parentIds": ["root_page"],
          "destinationId": "destination_123",
          "guideId": "guide_789",
          "locationId": null,
          "children": []
        }
      ]
    }
  ]
}

Example filtered response

{
  "siteId": "site_123",
  "mode": "matches",
  "matches": [
    {
      "pageId": "guide_page_1",
      "pageType": "Guide",
      "slug": "/london/food-guide/",
      "homepageSlug": null,
      "segments": ["london", "food-guide"],
      "parentIds": ["root_page"],
      "destinationId": "destination_123",
      "guideId": "guide_789",
      "locationId": null
    }
  ]
}

Response notes

  • mode is tree when no filters are supplied.
  • mode is matches when one or more filters are supplied.
  • slug always includes a leading and trailing slash.
  • slug and segments are returned relative to the microsite root, not the reverse-proxy prefix.
  • Root pages include homepageSlug: "/".
  • The endpoint returns all matches. It does not pick a single page when multiple pages match.

Authorizations

key
string
query
required

Path Parameters

orgId
string
required

Organization Account Number

siteId
string
required

Site identifier used to scope page slug resolution

Query Parameters

destinationId
string

Destination identifier used to resolve destination/root and destination-scoped page slugs

guideId
string

Guide identifier used to fetch listings for a specific guide

locationId
string

Location identifier used to resolve area page slugs

Response

Success

siteId
string
required
mode
enum<string>
required
Available options:
matches
matches
object[]
required