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

# Identify Content

> Resolves an arbitrary legacy URL/slug to the content it represents (post, category, tag, author), a redirect, or not-found. Response shape varies by the resolved `data.type`.

<Info>A beta variant of this endpoint is also available at `https://cds-beta.thepublive.com/publisher/{publisher_id}/identify_url/`.</Info>



## OpenAPI

````yaml /openapi/content-delivery.json get /publisher/{publisher_id}/identify_url/
openapi: 3.1.0
info:
  title: Publive Content Delivery API
  version: 1.0.0
  description: >-
    Read-only API for delivering publisher content, configuration, and static
    assets. All endpoints require HTTP Basic Auth and are GET requests.
servers:
  - url: https://cds.thepublive.com
security:
  - basicAuth: []
tags:
  - name: Site Configuration
  - name: Content
  - name: Posts
  - name: Forms
  - name: Static Files
  - name: Sitemaps
paths:
  /publisher/{publisher_id}/identify_url/:
    get:
      tags:
        - Content
      summary: Identify Content
      description: >-
        Resolves an arbitrary legacy URL/slug to the content it represents
        (post, category, tag, author), a redirect, or not-found. Response shape
        varies by the resolved `data.type`.


        <Info>A beta variant of this endpoint is also available at
        `https://cds-beta.thepublive.com/publisher/{publisher_id}/identify_url/`.</Info>
      operationId: identifyContent
      parameters:
        - $ref: '#/components/parameters/PublisherId'
        - name: legacy_url
          in: query
          required: true
          schema:
            type: string
          description: >-
            The path/slug to resolve. Format varies by content type: post legacy
            URL, category slug, `/tags/<SLUG>`, or `/author/<SLUG>`.
      responses:
        '200':
          description: Content resolved, redirect, or not found — see `data.type`
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: HTTP status code as a string, e.g. "200", "301", "404"
                  data:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - post
                          - category
                          - tag
                          - member
                          - redirect
                          - not_found
                      url:
                        type: string
                      status_code:
                        type: integer
                      content:
                        type: object
                        description: >-
                          Present only when type is "post": {id, title, slug,
                          legacy_url, type, absolute_url, content_html}
              examples:
                post:
                  value:
                    status: '200'
                    data:
                      type: post
                      url: /example-post/
                      status_code: 200
                      content:
                        id: 1
                        title: Example Post
                        slug: example-post
                        legacy_url: /old/example-post
                        type: Article
                        absolute_url: https://example.thepublive.com/example-post/
                        content_html: <p>...</p>
                redirect:
                  value:
                    status: '301'
                    data:
                      type: redirect
                      url: /new-location/
                      status_code: 301
                not_found:
                  value:
                    status: '404'
                    data:
                      type: not_found
                      url: ''
                      status_code: 404
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    PublisherId:
      name: publisher_id
      in: path
      required: true
      schema:
        type: string
      description: Your Publisher ID
  responses:
    Unauthorized:
      description: Invalid or missing credentials
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorDetail'
          example:
            detail: Invalid Auth Credentials
  schemas:
    ErrorDetail:
      type: object
      properties:
        detail:
          type: string
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic Auth using your Publive API key pair, base64-encoded.

````