Content Intelligence

Get content changelog

Changed on

Get paginated changelog of detected URL changes across competitor sitemaps. Each item shows numeric counts per category plus up to 3 sample URLs per category by default — safe for any token budget. Supports filtering by competitorId and category query parameters. Pass allUrlsPerCategory=true for the full URL list per category (warning: high-activity competitors can produce large responses; combine with filters to scope, and check the truncated flag in the response — when true, the byte cap fired and items/URLs were trimmed).

get/v1/projects/{projectId}/content/changelog

Request

  • Base URL: https://api.competlab.com
  • URL: https://api.competlab.com/v1/projects/{projectId}/content/changelog
  • Auth: API key in header CL-API-Key

Path parameters

projectIdstring required
Example:507f1f77bcf86cd799439011

Project ID

Query parameters

pagenumber
Example:1

Page number (1-indexed)

limitnumber
Example:20

Number of items per page

competitorIdstring
Example:507f1f77bcf86cd799439011

Filter by competitor ID

category'blog' | 'docs' | 'tools' | 'landing' | 'caseStudies' | 'comparison' | 'integrations' | 'changelog' | 'webinars' | 'legal' | 'programmatic' | 'other'

Filter by content category (blog, docs, tools, landing, caseStudies, comparison, integrations, changelog, webinars, legal, programmatic, other). Changelog rows carry the same category the content dashboard reports for the same URL, decided over the competitor's whole sitemap rather than over the changed URLs alone — so a page added into a templated catalog filters under programmatic, not other.

allUrlsPerCategoryboolean

By default each item returns up to 3 sample URLs per category. Set true to return the full URL list per category. High-activity competitors can produce large responses — combine with category and competitorId filters to scope. Subject to an internal byte cap; check truncated in the response.

Response

truncatedboolean required

True when the verbose-mode byte cap fired and items/URLs were trimmed to fit the response budget. Refine your query with category/competitorId filters when seen. Always false in default mode.

Example response

{
  "items": [
    {
      "competitorDomain": "competitor.com",
      "sitemapUrl": "https://competitor.com/sitemap.xml",
      "checkedAt": "2026-03-15T10:00:00.000Z",
      "totalAdded": 5,
      "totalRemoved": 2,
      "addedByCategory": {
        "blog": [
          "https://competitor.com/blog/new-post"
        ],
        "docs": [
          "https://competitor.com/docs/new-guide"
        ],
        "programmatic": [
          "https://competitor.com/ncm/01012100"
        ]
      },
      "removedByCategory": {
        "landing": [
          "https://competitor.com/old-landing"
        ]
      },
      "addedCounts": {
        "blog": 1,
        "docs": 1
      },
      "removedCounts": {
        "landing": 1
      }
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 47,
    "totalPages": 3,
    "hasMore": true
  }
}

Changes

    • breaking

      the query request parameter category was restricted to a list of enum values

    • info

      added the new enum value blog to the query request parameter category

    • info

      added the new enum value caseStudies to the query request parameter category

    • info

      added the new enum value changelog to the query request parameter category

    • info

      added the new enum value comparison to the query request parameter category

    • info

      added the new enum value docs to the query request parameter category

    • info

      added the new enum value integrations to the query request parameter category

    • info

      added the new enum value landing to the query request parameter category

    • info

      added the new enum value legal to the query request parameter category

    • info

      added the new enum value other to the query request parameter category

    • info

      added the new enum value programmatic to the query request parameter category

    • info

      added the new enum value tools to the query request parameter category

    • info

      added the new enum value webinars to the query request parameter category

    • info

      for the path request parameter projectId, the type was generalized from no type to string