Skip to main content
GET
/
publisher
/
{publisher_id}
/
identify_url
Identify content
curl --request GET \
  --url https://cds.thepublive.com/publisher/{publisher_id}/identify_url/ \
  --header 'Authorization: Basic <encoded-value>'
{
  "status": "200",
  "data": {
    "type": "post",
    "url": "/guides/getting-started",
    "status_code": "200",
    "content": {
      "id": 12001,
      "title": "Getting started",
      "slug": "getting-started",
      "legacy_url": "/guides/getting-started",
      "type": "Article",
      "absolute_url": "https://example.publive.io/guides/getting-started",
      "content_html": "<p>Start here.</p>"
    }
  }
}
Use this endpoint when your frontend receives a path and needs to determine what it represents before choosing the correct page template or follow-up API call.
Production: https://cds.thepublive.com/publisher/<PUBLISHER_ID>/identify_url/ Beta: https://cds-beta.thepublive.com/publisher/<PUBLISHER_ID>/identify_url/
publisher_id
string
required
Your Publisher ID
legacy_url
string
required
Path or slug to resolve. Use the post legacy URL for posts, the category slug for categories, /tags/<SLUG> for tags, and /author/<SLUG> for authors.

Resolution rules

Content typeValue to send in legacy_urlResult
Post/guides/getting-startedReturns type: "post" and the full post object in data.content
Categorylearn-bankingReturns type: "category" and the resolved URL
Tag/tags/product-updatesReturns type: "tag" and the resolved URL
Author/author/editor-deskReturns type: "member" and the resolved URL
RedirectAny legacy path that has a redirect ruleReturns type: "redirect" and the destination URL
Missing routeAny unknown pathReturns type: "not_found"

Example request

curl -X GET \
  'https://cds.thepublive.com/publisher/1234/identify_url/?legacy_url=/guides/getting-started' \
  -H 'Authorization: Basic <BASE64_AUTH_TOKEN>'

SDK usage

If you use the Publive frontend SDK, call identify() instead of constructing the request manually.
const result = await sdk.content.identify("/guides/getting-started");

console.log(result.data.type);
console.log(result.data.url);
console.log(result.data.content?.title);

Response behavior

  • When the resolved type is post, the response includes the full post payload in data.content.
  • When the resolved type is category, tag, or member, the response only confirms the matched entity. Call the corresponding details endpoint to fetch the full object.
  • When the resolved type is redirect, use data.url as the destination.
  • When the resolved type is not_found, render your 404 page or redirect to your homepage.

Example responses

Post found: