From d08f3c2095bc4f0c8746c69a24f0fe1104a095fb Mon Sep 17 00:00:00 2001 From: Igor Grubic Date: Fri, 26 Jun 2026 12:25:34 +0200 Subject: [PATCH 1/8] feat(brands): add self-serve activate-brand endpoint | LLMO-5605 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit POST /v2/orgs/:spaceCatId/brands/:brandId/activate — explicit, customer-triggered "make this brand live": resolve the brand's onboarded primary site, set it active with baseSiteId in one write, optionally generate AI prompts (a direct prompt_generation_base_url job, source 'brand-activation' — never Brandalf, never the llmo-customer-analysis cascade), and ensure the recurring brand-presence schedule (prompts-gated, via the shared createBrandPresenceSchedule helper). - Auth: membership + PAID entitlement (no admin requirement, mirrors Piece 1). - Idempotent: in-flight listJobs check before prompt-gen; schedule POST tolerates 409. - Returns 200 quickly (prompts generate async). 400/403/404/409 per the contract. - OpenAPI path + schemas; 24 unit tests; bumps spacecat-shared-drs-client to 1.13.0. Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/index.html | 878 ++++++++++++++++++++++---------- docs/openapi/api.yaml | 2 + docs/openapi/brands-v2-api.yaml | 70 +++ docs/openapi/schemas.yaml | 58 +++ package-lock.json | 8 +- package.json | 2 +- src/controllers/brands.js | 196 +++++++ src/routes/index.js | 1 + test/controllers/brands.test.js | 603 ++++++++++++++++++++++ 9 files changed, 1553 insertions(+), 265 deletions(-) diff --git a/docs/index.html b/docs/index.html index 2e2b482817..8e7ed2123b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -155,6 +155,10 @@ .ldPDIU >button{background-color:transparent;border:0;color:inherit;padding:2px 10px;font-family:Roboto,sans-serif;font-size:14px;line-height:1.5em;cursor:pointer;outline:0;}/*!sc*/ .ldPDIU >button :hover,.ldPDIU >button :focus{background:rgba(255, 255, 255, 0.1);}/*!sc*/ data-styled.g34[id="sc-giIpqw"]{content:"ldPDIU,"}/*!sc*/ +.kPwQkj:hover .sc-giIpqw{opacity:1;}/*!sc*/ +data-styled.g35[id="sc-ezrbvT"]{content:"kPwQkj,"}/*!sc*/ +.kdJwzN{font-family:Courier,monospace;font-size:13px;overflow-x:auto;margin:0;white-space:pre;}/*!sc*/ +data-styled.g36[id="sc-bYEtBu"]{content:"kdJwzN,"}/*!sc*/ .bsUDpT{position:relative;}/*!sc*/ data-styled.g38[id="sc-kLgmGd"]{content:"bsUDpT,"}/*!sc*/ .lgCKWg{position:absolute;pointer-events:none;z-index:1;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:8px;margin:auto;text-align:center;}/*!sc*/ @@ -481,11 +485,11 @@ -

Create or upsert a brand (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands

Response samples

Content type
application/json
{
  • "brands": [
    ]
}

Create or upsert a brand (v2)

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/brands

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands

Request samples

Content type
application/json
{
  • "name": "string",
  • "status": "active",
  • "origin": "human",
  • "description": "string",
  • "brandContext": "string",
  • "mentionSentimentGuidance": "string",
  • "vertical": "string",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": []
}

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "name": "Example Brand",
  • "status": "active",
  • "origin": "human",
  • "description": "An example brand",
  • "brandContext": "Example Brand is a B2B analytics platform.",
  • "mentionSentimentGuidance": "Treat factual pricing mentions as neutral unless the response recommends against the brand.",
  • "vertical": "technology",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": [],
  • "siteIds": [
    ],
  • "updatedAt": "2026-03-15T10:30:00Z",
  • "updatedBy": "user@adobe.com"
}

Get a brand by ID (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands

Request samples

Content type
application/json
{
  • "name": "string",
  • "status": "active",
  • "origin": "human",
  • "description": "string",
  • "brandContext": "string",
  • "mentionSentimentGuidance": "string",
  • "vertical": "string",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": []
}

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "name": "Example Brand",
  • "status": "active",
  • "origin": "human",
  • "description": "An example brand",
  • "brandContext": "Example Brand is a B2B analytics platform.",
  • "mentionSentimentGuidance": "Treat factual pricing mentions as neutral unless the response recommends against the brand.",
  • "vertical": "technology",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": [],
  • "siteIds": [
    ],
  • "updatedAt": "2026-03-15T10:30:00Z",
  • "updatedBy": "user@adobe.com"
}

Get a brand by ID (v2)

Retrieves a single brand by its UUID for the given organization.

Authorizations:
ims_keyapi_key
path Parameters
spaceCatId
required
string <uuid>
Example: a1b2c3d4-5678-90ab-cdef-1234567890ab

SpaceCat Organization ID (UUID)

@@ -4705,7 +4711,7 @@ " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/brands/{brandId}

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "name": "Example Brand",
  • "status": "active",
  • "origin": "human",
  • "description": "An example brand",
  • "brandContext": "Example Brand is a B2B analytics platform.",
  • "mentionSentimentGuidance": "Treat factual pricing mentions as neutral unless the response recommends against the brand.",
  • "vertical": "technology",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": [],
  • "siteIds": [
    ],
  • "updatedAt": "2026-03-15T10:30:00Z",
  • "updatedBy": "user@adobe.com"
}

Update a brand (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "name": "Example Brand",
  • "status": "active",
  • "origin": "human",
  • "description": "An example brand",
  • "brandContext": "Example Brand is a B2B analytics platform.",
  • "mentionSentimentGuidance": "Treat factual pricing mentions as neutral unless the response recommends against the brand.",
  • "vertical": "technology",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": [],
  • "siteIds": [
    ],
  • "updatedAt": "2026-03-15T10:30:00Z",
  • "updatedBy": "user@adobe.com"
}

Update a brand (v2)

Updates an existing brand. Only provided fields are updated. Nested arrays use full-replace semantics on each write.

@@ -4733,7 +4739,7 @@ " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/brands/{brandId}

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}

Request samples

Content type
application/json
{
  • "name": "string",
  • "status": "active",
  • "origin": "human",
  • "description": "string",
  • "brandContext": "string",
  • "mentionSentimentGuidance": "string",
  • "vertical": "string",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": []
}

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "name": "Example Brand",
  • "status": "active",
  • "origin": "human",
  • "description": "An example brand",
  • "brandContext": "Example Brand is a B2B analytics platform.",
  • "mentionSentimentGuidance": "Treat factual pricing mentions as neutral unless the response recommends against the brand.",
  • "vertical": "technology",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": [],
  • "siteIds": [
    ],
  • "updatedAt": "2026-03-15T10:30:00Z",
  • "updatedBy": "user@adobe.com"
}

Delete a brand (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}

Request samples

Content type
application/json
{
  • "name": "string",
  • "status": "active",
  • "origin": "human",
  • "description": "string",
  • "brandContext": "string",
  • "mentionSentimentGuidance": "string",
  • "vertical": "string",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": []
}

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "name": "Example Brand",
  • "status": "active",
  • "origin": "human",
  • "description": "An example brand",
  • "brandContext": "Example Brand is a B2B analytics platform.",
  • "mentionSentimentGuidance": "Treat factual pricing mentions as neutral unless the response recommends against the brand.",
  • "vertical": "technology",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": [],
  • "siteIds": [
    ],
  • "updatedAt": "2026-03-15T10:30:00Z",
  • "updatedBy": "user@adobe.com"
}

Delete a brand (v2)

Soft-deletes a brand by setting its status to deleted. The brand remains queryable with ?status=deleted.

@@ -4757,7 +4763,59 @@ " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/brands/{brandId}

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}

Resolve the active brand for an (org, site) pair (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}

Activate a brand (v2)

Explicit, customer-triggered "activate brand". Promotes an existing +pending brand to active by setting its baseSiteId (from the brand's +onboarded primary site) and flipping status to active. Optionally +generates AI prompts for the brand and ensures a brand-presence schedule +exists for the brand's primary site.

+

Activation requires the brand to already have an onboarded primary site — +a request against a brand with no onboarded primary site returns 400.

+

Set generatePrompts to true to trigger asynchronous AI prompt +generation; the response then includes a promptGenerationJobId. When a +brand-presence schedule is created or ensured, the response includes a +scheduleId.

+
Authorizations:
ims_keyapi_key
path Parameters
spaceCatId
required
string <uuid>
Example: a1b2c3d4-5678-90ab-cdef-1234567890ab

SpaceCat Organization ID (UUID)

+
brandId
required
string <uuid>

Brand ID (UUID)

+
Request Body schema: application/json
required
generatePrompts
required
boolean

When true, asynchronous AI prompt generation is triggered for the +brand and the response includes a promptGenerationJobId.

+

Responses

Request samples

Content type
application/json
{
  • "generatePrompts": true
}

Response samples

Content type
application/json
{
  • "brandId": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "status": "active",
  • "baseSiteId": "b2c3d4e5-6789-01ab-cdef-2345678901ab",
  • "promptGenerationJobId": "c3d4e5f6-7890-12ab-cdef-3456789012ab",
  • "scheduleId": "d4e5f6a7-8901-23ab-cdef-4567890123ab"
}

Resolve the active brand for an (org, site) pair (v2)

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/sites/{siteId}/brand

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/sites/{siteId}/brand

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "name": "Example Brand",
  • "status": "active",
  • "origin": "human",
  • "description": "An example brand",
  • "brandContext": "Example Brand is a B2B analytics platform.",
  • "mentionSentimentGuidance": "Treat factual pricing mentions as neutral unless the response recommends against the brand.",
  • "vertical": "technology",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": [],
  • "siteIds": [
    ],
  • "updatedAt": "2026-03-15T10:30:00Z",
  • "updatedBy": "user@adobe.com"
}

customer-config

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/sites/{siteId}/brand

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "name": "Example Brand",
  • "status": "active",
  • "origin": "human",
  • "description": "An example brand",
  • "brandContext": "Example Brand is a B2B analytics platform.",
  • "mentionSentimentGuidance": "Treat factual pricing mentions as neutral unless the response recommends against the brand.",
  • "vertical": "technology",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": [],
  • "siteIds": [
    ],
  • "updatedAt": "2026-03-15T10:30:00Z",
  • "updatedBy": "user@adobe.com"
}

customer-config

Customer configuration operations including brands, categories, topics, and prompts

List brands for an organization (v2)

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/brands/{brandId}

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}

Resolve the active brand for an (org, site) pair (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}

Activate a brand (v2)

Explicit, customer-triggered "activate brand". Promotes an existing +pending brand to active by setting its baseSiteId (from the brand's +onboarded primary site) and flipping status to active. Optionally +generates AI prompts for the brand and ensures a brand-presence schedule +exists for the brand's primary site.

+

Activation requires the brand to already have an onboarded primary site — +a request against a brand with no onboarded primary site returns 400.

+

Set generatePrompts to true to trigger asynchronous AI prompt +generation; the response then includes a promptGenerationJobId. When a +brand-presence schedule is created or ensured, the response includes a +scheduleId.

+
Authorizations:
ims_keyapi_key
path Parameters
spaceCatId
required
string <uuid>
Example: a1b2c3d4-5678-90ab-cdef-1234567890ab

SpaceCat Organization ID (UUID)

+
brandId
required
string <uuid>

Brand ID (UUID)

+
Request Body schema: application/json
required
generatePrompts
required
boolean

When true, asynchronous AI prompt generation is triggered for the +brand and the response includes a promptGenerationJobId.

+

Responses

Request samples

Content type
application/json
{
  • "generatePrompts": true
}

Response samples

Content type
application/json
{
  • "brandId": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "status": "active",
  • "baseSiteId": "b2c3d4e5-6789-01ab-cdef-2345678901ab",
  • "promptGenerationJobId": "c3d4e5f6-7890-12ab-cdef-3456789012ab",
  • "scheduleId": "d4e5f6a7-8901-23ab-cdef-4567890123ab"
}

Resolve the active brand for an (org, site) pair (v2)

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/sites/{siteId}/brand

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/sites/{siteId}/brand

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "name": "Example Brand",
  • "status": "active",
  • "origin": "human",
  • "description": "An example brand",
  • "brandContext": "Example Brand is a B2B analytics platform.",
  • "mentionSentimentGuidance": "Treat factual pricing mentions as neutral unless the response recommends against the brand.",
  • "vertical": "technology",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": [],
  • "siteIds": [
    ],
  • "updatedAt": "2026-03-15T10:30:00Z",
  • "updatedBy": "user@adobe.com"
}

List categories for an organization (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/sites/{siteId}/brand

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "name": "Example Brand",
  • "status": "active",
  • "origin": "human",
  • "description": "An example brand",
  • "brandContext": "Example Brand is a B2B analytics platform.",
  • "mentionSentimentGuidance": "Treat factual pricing mentions as neutral unless the response recommends against the brand.",
  • "vertical": "technology",
  • "region": [
    ],
  • "urls": [],
  • "socialAccounts": [],
  • "earnedContent": [],
  • "brandAliases": [
    ],
  • "competitors": [],
  • "siteIds": [
    ],
  • "updatedAt": "2026-03-15T10:30:00Z",
  • "updatedBy": "user@adobe.com"
}

List categories for an organization (v2)

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/categories

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/categories

Response samples

Content type
application/json
{
  • "categories": [
    ]
}

Create a category (idempotent by name) (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/categories

Response samples

Content type
application/json
{
  • "categories": [
    ]
}

Create a category (idempotent by name) (v2)

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/categories

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/categories

Request samples

Content type
application/json
{
  • "name": "Discovery & Research",
  • "origin": "human",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "Discovery & Research",
  • "status": "active",
  • "origin": "human",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "createdBy": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "updatedBy": "string"
}

Update a category (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/categories

Request samples

Content type
application/json
{
  • "name": "Discovery & Research",
  • "origin": "human",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "Discovery & Research",
  • "status": "active",
  • "origin": "human",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "createdBy": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "updatedBy": "string"
}

Update a category (v2)

Updates an existing category. Only provided fields are updated. The @@ -5181,7 +5291,7 @@ " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/categories/{categoryId}

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/categories/{categoryId}

Request samples

Content type
application/json
{
  • "name": "string",
  • "origin": "human",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "Discovery & Research",
  • "status": "active",
  • "origin": "human",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "createdBy": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "updatedBy": "string"
}

Delete a category (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/categories/{categoryId}

Request samples

Content type
application/json
{
  • "name": "string",
  • "origin": "human",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "Discovery & Research",
  • "status": "active",
  • "origin": "human",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "createdBy": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "updatedBy": "string"
}

Delete a category (v2)

Soft-deletes a category by setting its status to deleted. The @@ -5235,7 +5345,7 @@ " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/topics

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/topics

Response samples

Content type
application/json
{
  • "topics": [
    ]
}

Create or upsert a topic (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/topics

Response samples

Content type
application/json
{
  • "topics": [
    ]
}

Create or upsert a topic (v2)

Creates a new topic for the organization. If a topic with the same ID @@ -5281,7 +5391,7 @@ " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/topics

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/topics

Request samples

Content type
application/json
{
  • "id": "baseurl-discovery-research-topic",
  • "name": "Discovery & Research",
  • "description": "string",
  • "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "id": "baseurl-discovery-research-topic",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "Discovery & Research",
  • "description": "string",
  • "status": "active",
  • "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5",
  • "categoryUuids": [
    ],
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "updatedBy": "string"
}

Update a topic (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/topics

Request samples

Content type
application/json
{
  • "id": "baseurl-discovery-research-topic",
  • "name": "Discovery & Research",
  • "description": "string",
  • "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5",
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "id": "baseurl-discovery-research-topic",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "Discovery & Research",
  • "description": "string",
  • "status": "active",
  • "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5",
  • "categoryUuids": [
    ],
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "updatedBy": "string"
}

Update a topic (v2)

Updates an existing topic. Only provided fields are updated.

Authorizations:
ims_keyapi_key
path Parameters
spaceCatId
required
string <uuid>
Example: a1b2c3d4-5678-90ab-cdef-1234567890ab

SpaceCat Organization ID (UUID)

@@ -5309,7 +5419,7 @@ " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/topics/{topicId}

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/topics/{topicId}

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "status": "active",
  • "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5"
}

Response samples

Content type
application/json
{
  • "id": "baseurl-discovery-research-topic",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "Discovery & Research",
  • "description": "string",
  • "status": "active",
  • "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5",
  • "categoryUuids": [
    ],
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "updatedBy": "string"
}

Delete a topic (v2)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/topics/{topicId}

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "status": "active",
  • "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5"
}

Response samples

Content type
application/json
{
  • "id": "baseurl-discovery-research-topic",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "name": "Discovery & Research",
  • "description": "string",
  • "status": "active",
  • "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5",
  • "categoryUuids": [
    ],
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "updatedBy": "string"
}

Delete a topic (v2)

Soft-deletes a topic by setting its status to deleted. The topic remains queryable with ?status=deleted.

@@ -5379,7 +5489,7 @@ " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/brands/{brandId}/prompts

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}/prompts

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "limit": 0,
  • "page": 0
}

Create or upsert prompts (bulk)

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}/prompts

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0,
  • "limit": 0,
  • "page": 0
}

Create or upsert prompts (bulk)

Upserts prompts. Match by id or by (text, regions). If match found, update; else insert.

Authorizations:
ims_keyapi_key
path Parameters
spaceCatId
required
string <uuid>

SpaceCat Organization ID (UUID)

@@ -5433,7 +5543,7 @@ " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/brands/{brandId}/prompts

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}/prompts

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "created": 0,
  • "updated": 0,
  • "prompts": [
    ]
}

Get a single prompt

Authorizations:
ims_keyapi_key
path Parameters
spaceCatId
required
string <uuid>
brandId
required
string
promptId
required
string
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}/prompts

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "created": 0,
  • "updated": 0,
  • "prompts": [
    ]
}

Get a single prompt

Authorizations:
ims_keyapi_key
path Parameters
spaceCatId
required
string <uuid>
brandId
required
string
promptId
required
string

prompt_id (business key)

Responses

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}/prompts/{promptId}

Response samples

Content type
application/json
{
  • "id": "photoshop-prompt-1",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "prompt": "string",
  • "name": "string",
  • "regions": [
    ],
  • "categoryId": "337f5e5d-288b-40d5-be14-901cc3acacc0",
  • "topicId": "string",
  • "status": "active",
  • "origin": "ai",
  • "source": "config",
  • "intent": "informational",
  • "updatedAt": "2024-01-19T14:20:30Z",
  • "updatedBy": "string",
  • "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5",
  • "brandName": "string",
  • "category": {
    },
  • "topic": {
    }
}

Update a single prompt

Authorizations:
ims_keyapi_key
path Parameters
spaceCatId
required
string <uuid>
brandId
required
string
promptId
required
string
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}/prompts/{promptId}

Response samples

Content type
application/json
{
  • "id": "photoshop-prompt-1",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "prompt": "string",
  • "name": "string",
  • "regions": [
    ],
  • "categoryId": "337f5e5d-288b-40d5-be14-901cc3acacc0",
  • "topicId": "string",
  • "status": "active",
  • "origin": "ai",
  • "source": "config",
  • "intent": "informational",
  • "updatedAt": "2024-01-19T14:20:30Z",
  • "updatedBy": "string",
  • "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5",
  • "brandName": "string",
  • "category": {
    },
  • "topic": {
    }
}

Update a single prompt

Authorizations:
ims_keyapi_key
path Parameters
spaceCatId
required
string <uuid>
brandId
required
string
promptId
required
string

prompt_id (business key)

Request Body schema: application/json
id
string

Optional business key; auto-generated if omitted

@@ -5471,7 +5581,7 @@ " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/brands/{brandId}/prompts/{promptId}

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}/prompts/{promptId}

Request samples

Content type
application/json
{
  • "id": "string",
  • "prompt": "string",
  • "name": "string",
  • "regions": [ ],
  • "categoryId": "string",
  • "topicId": "string",
  • "status": "active",
  • "origin": "ai",
  • "source": "config",
  • "intent": "informational"
}

Response samples

Content type
application/json
{
  • "id": "photoshop-prompt-1",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "prompt": "string",
  • "name": "string",
  • "regions": [
    ],
  • "categoryId": "337f5e5d-288b-40d5-be14-901cc3acacc0",
  • "topicId": "string",
  • "status": "active",
  • "origin": "ai",
  • "source": "config",
  • "intent": "informational",
  • "updatedAt": "2024-01-19T14:20:30Z",
  • "updatedBy": "string",
  • "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5",
  • "brandName": "string",
  • "category": {
    },
  • "topic": {
    }
}

Soft-delete a prompt

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}/prompts/{promptId}

Request samples

Content type
application/json
{
  • "id": "string",
  • "prompt": "string",
  • "name": "string",
  • "regions": [ ],
  • "categoryId": "string",
  • "topicId": "string",
  • "status": "active",
  • "origin": "ai",
  • "source": "config",
  • "intent": "informational"
}

Response samples

Content type
application/json
{
  • "id": "photoshop-prompt-1",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "prompt": "string",
  • "name": "string",
  • "regions": [
    ],
  • "categoryId": "337f5e5d-288b-40d5-be14-901cc3acacc0",
  • "topicId": "string",
  • "status": "active",
  • "origin": "ai",
  • "source": "config",
  • "intent": "informational",
  • "updatedAt": "2024-01-19T14:20:30Z",
  • "updatedBy": "string",
  • "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5",
  • "brandName": "string",
  • "category": {
    },
  • "topic": {
    }
}

Soft-delete a prompt

Sets status to 'deleted'.

Authorizations:
ims_keyapi_key
path Parameters
spaceCatId
required
string <uuid>
brandId
required
string
promptId
required
string

prompt_id (business key)

@@ -5513,7 +5623,7 @@ " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/v2/orgs/{spaceCatId}/brands/{brandId}/prompts/delete

Production server

-
https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}/prompts/delete

Request samples

Content type
application/json
{
  • "promptIds": [
    ]
}

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "failures": [
    ]
}

trigger

https://spacecat.experiencecloud.live/api/v1/v2/orgs/{spaceCatId}/brands/{brandId}/prompts/delete

Request samples

Content type
application/json
{
  • "promptIds": [
    ]
}

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "failures": [
    ]
}

trigger

Trigger operations

Trigger an audit Deprecated

Behaviour notes " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/competitors/metrics

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/competitors/metrics

Response samples

Content type
application/json
{
  • "byBrand": [
    ],
  • "srFilters": {
    }
}

Get competitor gap topics

Returns topics where competitors have presence but the target brand does not -(or vice versa). Data from TopicService/GapTopics and GapTopicsTotals.

-
Authorizations:
api_key
query Parameters
domain
required
string
Example: domain=adobe.com

The brand domain to query (e.g. adobe.com)

-
competitors
required
string
Example: competitors=competitor1.com,competitor2.com

Comma-separated list of competitor domains (max 5). May also repeat as competitor=.

-
country
string
Example: country=US

ISO country code or WW for worldwide (default US)

-
region
string
Example: region=US

Region alias – mapped to a country code internally

-
engine
string
Enum: "chatgpt" "gemini" "googleAiMode" "googleAiOverview" "all"
Example: engine=chatgpt

LLM engine slug (chatgpt, gemini, googleAiMode, googleAiOverview). Omit or all for all models.

-
limit
integer >= 1
Example: limit=10

Page size (default varies by endpoint, typically 10–100)

-
offset
integer >= 0
Example: offset=0

Pagination offset (default 0)

-
searchQuery
string
Example: searchQuery=running shoes

Server-side search. Pushed to Semrush GapTopicsRequest.dimension_filter_ql -(and GapTopicsTotals) as topic CONTAINS "<searchQuery>", so the returned -total reflects the filtered set. Quotes and backslashes are escaped.

-
sortBy
string
Enum: "NAME" "VISIBILITY" "DIFFICULTY" "MENTIONS" "VOLUME" "MENTIONS_COUNT_BY_BRAND" "MENTIONED_COMPETITORS" "TOTAL_COMPETITOR_MENTIONS"

TOPICS_REQUEST_ORDER_BY for Semrush order.by. Unknown or omitted values fall -back to the default. Default: MENTIONED_COMPETITORS.

-
string or integer

ORDER_DIRECTION for Semrush order.direction (protobuf name or integer). -Default when omitted: DESC (2).

-
gapKinds
string
Example: gapKinds=ALL

Comma-separated gap kinds (ALL, MISSING, SHARED, UNIQUE)

-

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get competitor gap source domains

Returns source domains where competitors are cited but the target is not (or vice versa). -Data from SourceService/GapSourceDomains and GapSourceDomainsTotals.

-
Authorizations:
api_key
query Parameters
domain
required
string
Example: domain=adobe.com

The brand domain to query (e.g. adobe.com)

-
competitors
required
string
Example: competitors=competitor1.com,competitor2.com

Comma-separated list of competitor domains (max 5). May also repeat as competitor=.

-
country
string
Example: country=US

ISO country code or WW for worldwide (default US)

-
region
string
Example: region=US

Region alias – mapped to a country code internally

-
engine
string
Enum: "chatgpt" "gemini" "googleAiMode" "googleAiOverview" "all"
Example: engine=chatgpt

LLM engine slug (chatgpt, gemini, googleAiMode, googleAiOverview). Omit or all for all models.

-
limit
integer >= 1
Example: limit=10

Page size (default varies by endpoint, typically 10–100)

-
offset
integer >= 0
Example: offset=0

Pagination offset (default 0)

-
searchQuery
string
Example: searchQuery=cdn.example.com

Server-side search. Pushed to Semrush GapSourceDomainsRequest.dimension_filter_ql -(and GapSourceDomainsTotals) as domain CONTAINS "<searchQuery>", so the returned -total reflects the filtered set. Quotes and backslashes are escaped.

-
sortBy
string
Enum: "DOMAIN" "MENTIONS" "SOURCES_COUNT" "PROMPTS_COUNT" "ORGANIC_TRAFFIC" "MENTIONS_COUNT_BY_BRAND" "MENTIONED_COMPETITORS" "TOTAL_COMPETITOR_MENTIONS"

DOMAINS_REQUEST_ORDER_BY for Semrush order.by. Unknown or omitted values fall -back to the default. Default: ORGANIC_TRAFFIC.

-
string or integer

ORDER_DIRECTION for Semrush order.direction (protobuf name or integer). -Default when omitted: DESC (2).

-
gapKinds
string
Example: gapKinds=ALL

Comma-separated gap kinds (ALL, MISSING, SHARED, UNIQUE)

-

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get competitor gap prompts

Returns prompts where competitors are mentioned but the target brand is not -(or the reverse, depending on gap kind). Response is normalized to -{ data, total, offset, limit } envelope. -Data from PromptService/GapPrompts.

-
Authorizations:
api_key
query Parameters
domain
required
string
Example: domain=adobe.com

The brand domain to query (e.g. adobe.com)

-
competitors
required
string
Example: competitors=competitor1.com,competitor2.com

Comma-separated list of competitor domains (max 5). May also repeat as competitor=.

-
country
string
Example: country=US

ISO country code or WW for worldwide (default US)

-
region
string
Example: region=US

Region alias – mapped to a country code internally

-
engine
string
Enum: "chatgpt" "gemini" "googleAiMode" "googleAiOverview" "all"
Example: engine=chatgpt

LLM engine slug (chatgpt, gemini, googleAiMode, googleAiOverview). Omit or all for all models.

-
limit
integer >= 1
Example: limit=10

Page size (default varies by endpoint, typically 10–100)

-
offset
integer >= 0
Example: offset=0

Pagination offset (default 0)

-
searchQuery
string
Example: searchQuery=best running shoes

Server-side search. Pushed to Semrush GapPromptsRequest.dimension_filter_ql -(and GapPromptsTotals) as prompt CONTAINS "<searchQuery>", so the returned -total reflects the filtered set. Quotes and backslashes are escaped.

-
sortBy
string
Enum: "PROMPT" "MENTIONED_BRANDS_COUNT" "SOURCES_COUNT" "TOPIC_VOLUME"

GAP_PROMPTS_REQUEST_ORDER_BY for Semrush order.by. Unknown or omitted values fall -back to the default. Default: MENTIONED_BRANDS_COUNT.

-
string or integer

ORDER_DIRECTION for Semrush order.direction (protobuf name or integer). -Default when omitted: DESC (2).

-
topicId
string
Example: topicId=12345

When set, restricts gap prompts to this topic hash (sent to Semrush as -GapPromptsRequest.topic_hash, applied to both the list and GapPromptsTotals -calls). Enables the topic → prompts drill-down. Non-numeric values are ignored.

-
gapKinds
string
Example: gapKinds=ALL

Comma-separated gap kinds (ALL, MISSING, SHARED, UNIQUE)

-
promptTab
string
Enum: "all-prompts" "missing" "shared" "unique"

Tab alias (all-prompts, missing, shared, unique)

-
tab
string

Alternative tab parameter (same values as promptTab)

-

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get AI Visibility metadata

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/competitors/metrics

Response samples

Content type
application/json
{
  • "byBrand": [
    ],
  • "srFilters": {
    }
}

Get AI Visibility metadata

Returns supported countries (markets) and snapshot calendars. Data from Meta/Meta (cr.v1).

@@ -10677,7 +10629,7 @@

Behaviour notes

" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/meta

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/meta

Response samples

Content type
application/json
{
  • "countries": [
    ],
  • "srFilters": {
    }
}

Get latest prompt response

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/meta

Response samples

Content type
application/json
{
  • "countries": [
    ],
  • "srFilters": {
    }
}

Get latest prompt response

Returns the latest crawled prompt response for a specific prompt hash, @@ -10709,7 +10661,7 @@

Behaviour notes

" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/prompts/responses/latest

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/prompts/responses/latest

Response samples

Content type
application/json
{ }

Get prompt responses with full details

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/prompts/responses/latest

Response samples

Content type
application/json
{ }

Get prompt responses with full details

Returns prompts with their full response details, including mentioned brands @@ -10741,7 +10693,7 @@

Behaviour notes

" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/prompts/responses

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/prompts/responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get topic research statistics

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/prompts/responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get topic research statistics

Behaviour notes " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/topics/research/stats

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/topics/research/stats

Response samples

Content type
application/json
{
  • "topicsTotal": 0,
  • "brandsTotal": 0,
  • "sourceDomainsTotal": 0,
  • "intentBreakdown": [
    ],
  • "relatedTopicsAiVolume": 0,
  • "srFilters": {
    }
}

Search topics by full-text query

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/topics/research/stats

Response samples

Content type
application/json
{
  • "topicsTotal": 0,
  • "brandsTotal": 0,
  • "sourceDomainsTotal": 0,
  • "intentBreakdown": [
    ],
  • "relatedTopicsAiVolume": 0,
  • "srFilters": {
    }
}

Search topics by full-text query

Behaviour notes " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/topics/research

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/topics/research

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get statistics for a specific topic

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/topics/research

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get statistics for a specific topic

Returns detailed statistics for a specific topic by ID, @@ -10861,7 +10813,7 @@

Behaviour notes

" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/topics/stats

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/topics/stats

Response samples

Content type
application/json
{ }

Get prompts for a topic research query or a specific topic

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/topics/stats

Response samples

Content type
application/json
{ }

Get prompts for a topic research query or a specific topic

Behaviour notes " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/topics/research/prompts

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/topics/research/prompts

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get brands for a topic research query

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/topics/research/prompts

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get brands for a topic research query

Behaviour notes " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/topics/research/brands

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/topics/research/brands

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get source domains for a topic research query

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/topics/research/brands

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get source domains for a topic research query

Behaviour notes " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/topics/research/source-domains

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/topics/research/source-domains

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get brand statistics by LLM (Brand v2 JSON)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/topics/research/source-domains

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "offset": 0,
  • "limit": 0,
  • "srFilters": {
    }
}

Get brand statistics by LLM (Brand v2 JSON)

Behaviour notes " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/brand/stats-by-llm

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/brand/stats-by-llm

Response samples

Content type
application/json
{
  • "target": {
    },
  • "llm": [
    ],
  • "srFilters": {
    }
}

Get brand statistics by country (Brand v2 JSON)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/brand/stats-by-llm

Response samples

Content type
application/json
{
  • "target": {
    },
  • "llm": [
    ],
  • "srFilters": {
    }
}

Get brand statistics by country (Brand v2 JSON)

Behaviour notes " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/brand/stats-by-country

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/brand/stats-by-country

Response samples

Content type
application/json
{
  • "byCountry": [
    ],
  • "srFilters": {
    }
}

Get brand topics (Topic v2 JSON)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/brand/stats-by-country

Response samples

Content type
application/json
{
  • "byCountry": [
    ],
  • "srFilters": {
    }
}

Get brand topics (Topic v2 JSON)

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/topic/brand-topics

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/topic/brand-topics

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "srFilters": {
    }
}

Export brand topics as CSV (Topic v2 JSON)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/topic/brand-topics

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "srFilters": {
    }
}

Export brand topics as CSV (Topic v2 JSON)

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/topic/brand-topics-export

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/topic/brand-topics-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "brand-topics.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Get brand topics count (Topic v2)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/topic/brand-topics-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "brand-topics.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Get brand topics count (Topic v2)

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/topic/brand-topics-totals

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/topic/brand-topics-totals

Response samples

Content type
application/json
{
  • "total": 0,
  • "srFilters": {
    }
}

Get gap topics (Topic v2 JSON)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/topic/brand-topics-totals

Response samples

Content type
application/json
{
  • "total": 0,
  • "srFilters": {
    }
}

Get gap topics (Topic v2 JSON)

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/topic/gap-topics

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/topic/gap-topics

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "srFilters": {
    }
}

Export gap topics as CSV (Topic v2 JSON)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/topic/gap-topics

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "srFilters": {
    }
}

Export gap topics as CSV (Topic v2 JSON)

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/topic/gap-topics-export

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/topic/gap-topics-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "gap-topics.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Get gap topics per-kind counts (Topic v2)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/topic/gap-topics-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "gap-topics.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Get gap topics per-kind counts (Topic v2)

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/topic/gap-topics-totals

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/topic/gap-topics-totals

Response samples

Content type
application/json
{
  • "totals": [
    ],
  • "srFilters": {
    }
}

Get brand prompts (Prompt v2 JSON)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/topic/gap-topics-totals

Response samples

Content type
application/json
{
  • "totals": [
    ],
  • "srFilters": {
    }
}

Get brand prompts (Prompt v2 JSON)

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/prompt/brand-prompts

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt/brand-prompts

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "srFilters": {
    }
}

Export brand prompts as CSV (Prompt v2 JSON)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt/brand-prompts

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0,
  • "srFilters": {
    }
}

Export brand prompts as CSV (Prompt v2 JSON)

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/prompt/brand-prompts-export

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt/brand-prompts-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "brand-prompts.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Get gap prompts (Prompt v2 JSON)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt/brand-prompts-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "brand-prompts.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Get gap prompts (Prompt v2 JSON)

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/prompt/gap-prompts

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt/gap-prompts

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "totals": [
    ],
  • "srFilters": {
    }
}

Export gap prompts as CSV (Prompt v2 JSON)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt/gap-prompts

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "totals": [
    ],
  • "srFilters": {
    }
}

Export gap prompts as CSV (Prompt v2 JSON)

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/prompt/gap-prompts-export

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt/gap-prompts-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "gap-prompts.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Get full prompt response (Relations v1 JSON)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt/gap-prompts-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "gap-prompts.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Get gap prompts per-kind counts (Prompt v2)

Returns only the per-kind totals for gap prompts using Semrush PromptService v2 +GapPromptsTotals (mirrors GET /llmo/ai-visibility/v1/topic/gap-topics-totals). +Accepts the same topicId (native GapPromptsTotalsRequest.topic_hash) and +sourceDomain (native source_domain) filters as +GET /llmo/ai-visibility/v1/prompt/gap-prompts, but no pagination, sort, or gapKinds +parameters. The response always includes totals for all gap kinds.

+

Use this endpoint to populate market-comparison prompt tab badge counts without fetching +full paginated data.

+
Authorizations:
api_key
query Parameters
domain
required
string
Example: domain=adobe.com

The brand domain to query (e.g. adobe.com)

+
competitors
required
string
Example: competitors=competitor1.com,competitor2.com

Comma-separated list of competitor domains (max 5). May also repeat as competitor=.

+
country
string
Example: country=US

ISO country code or WW for worldwide (default US)

+
region
string
Example: region=US

Region alias – mapped to a country code internally

+
engine
string
Enum: "chatgpt" "gemini" "googleAiMode" "googleAiOverview" "all"
Example: engine=chatgpt

LLM engine slug (chatgpt, gemini, googleAiMode, googleAiOverview). Omit or all for all models.

+
date
string
Example: date=2026-01-15

Snapshot date forwarded to supported Semrush v1 gRPC requests as target_date

+
topicId
string^\d+$
Example: topicId=12345

When set, restricts prompts to this topic hash (sent to Semrush as topic_hash = <topicId>). +Use digits only (same identifier family as topic rows from brand-topic endpoints).

+
sourceDomain
string
Example: sourceDomain=nytimes.com

Optional filter restricting gap prompts to the given source domain. +Forwarded as the native GapPromptsRequest.source_domain proto field (not a QL filter).

+

Responses

Response samples

Content type
application/json
{
  • "totals": [
    ],
  • "srFilters": {
    }
}

Get full prompt response (Relations v1 JSON)

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/prompt/prompt-response

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt/prompt-response

Response samples

Content type
application/json
{
  • "value": {
    },
  • "sourcesWithTitles": [
    ]
}

Export topic research prompts as CSV

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt/prompt-response

Response samples

Content type
application/json
{
  • "value": {
    },
  • "sourcesWithTitles": [
    ]
}

Get gap source domains (Source v2 JSON)

Returns source domains with the gap between the target brand and its competitors using +Semrush SourceService v2 GapSourceDomains. Returns each row as native protobuf JSON +(camelCase) including gapMentions per competitor brand. Supports sortBy / sortDirection +on DOMAINS_REQUEST_ORDER_BY (default ORGANIC_TRAFFIC descending) and searchQuery +(forwarded as a domain CONTAINS "<q>" dimension filter). The response body is { data } +plus srFilters; offset and limit are not echoed (use the query parameters).

+
Authorizations:
api_key
query Parameters
domain
required
string
Example: domain=adobe.com

The brand domain to query (e.g. adobe.com)

+
competitors
required
string
Example: competitors=competitor1.com,competitor2.com

Comma-separated list of competitor domains (max 5). May also repeat as competitor=.

+
country
string
Example: country=US

ISO country code or WW for worldwide (default US)

+
region
string
Example: region=US

Region alias – mapped to a country code internally

+
engine
string
Enum: "chatgpt" "gemini" "googleAiMode" "googleAiOverview" "all"
Example: engine=chatgpt

LLM engine slug (chatgpt, gemini, googleAiMode, googleAiOverview). Omit or all for all models.

+
date
string
Example: date=2026-01-15

Snapshot date forwarded to supported Semrush v1 gRPC requests as target_date

+
string or integer
Example: sortBy=ORGANIC_TRAFFIC

DOMAINS_REQUEST_ORDER_BY for Semrush v2 GapSourceDomainsRequest.order.by (protobuf name or integer). +Default when omitted: ORGANIC_TRAFFIC (5).

+
string or integer

ORDER_DIRECTION for Semrush order.direction (protobuf name or integer). +Default when omitted: DESC (2).

+
gapKinds
string
Example: gapKinds=ALL

Comma-separated list of gap kinds for Semrush v2 GapTopicsRequest.kind[] +(ALL, MISSING, WEAK, SHARED, STRONG, UNIQUE). Default when omitted: ALL.

+
searchQuery
required
string
Example: searchQuery=coffee

Full-text search query for topic research

+
limit
integer >= 1
Example: limit=10

Page size (default varies by endpoint, typically 10–100)

+
offset
integer >= 0
Example: offset=0

Pagination offset (default 0)

+

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "srFilters": {
    }
}

Export gap source domains as CSV (Source v2 JSON)

Exports source domains with the gap between the target brand and its competitors using +Semrush SourceService v2 GapSourceDomainsExport. The nested GapSourceDomainsRequest +uses the same filters and sorting as /llmo/ai-visibility/v1/source/gap-source-domains: +competitors, gapKinds, searchQuery (as a domain CONTAINS dimension filter), +DOMAINS_REQUEST_ORDER_BY sorting, and limit / offset. The response is the native +Semrush ExportResponse protobuf JSON with CSV fileContent base64-encoded, plus +fileName, contentType, and srFilters.

+
Authorizations:
api_key
query Parameters
domain
required
string
Example: domain=adobe.com

The brand domain to query (e.g. adobe.com)

+
competitors
required
string
Example: competitors=competitor1.com,competitor2.com

Comma-separated list of competitor domains (max 5). May also repeat as competitor=.

+
country
string
Example: country=US

ISO country code or WW for worldwide (default US)

+
region
string
Example: region=US

Region alias – mapped to a country code internally

+
engine
string
Enum: "chatgpt" "gemini" "googleAiMode" "googleAiOverview" "all"
Example: engine=chatgpt

LLM engine slug (chatgpt, gemini, googleAiMode, googleAiOverview). Omit or all for all models.

+
date
string
Example: date=2026-01-15

Snapshot date forwarded to supported Semrush v1 gRPC requests as target_date

+
string or integer
Example: sortBy=ORGANIC_TRAFFIC

DOMAINS_REQUEST_ORDER_BY for Semrush v2 GapSourceDomainsRequest.order.by (protobuf name or integer). +Default when omitted: ORGANIC_TRAFFIC (5).

+
string or integer

ORDER_DIRECTION for Semrush order.direction (protobuf name or integer). +Default when omitted: DESC (2).

+
gapKinds
string
Example: gapKinds=ALL

Comma-separated list of gap kinds for Semrush v2 GapTopicsRequest.kind[] +(ALL, MISSING, WEAK, SHARED, STRONG, UNIQUE). Default when omitted: ALL.

+
searchQuery
required
string
Example: searchQuery=coffee

Full-text search query for topic research

+
limit
integer >= 1
Example: limit=10

Page size (default varies by endpoint, typically 10–100)

+
offset
integer >= 0
Example: offset=0

Pagination offset (default 0)

+

Responses

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "gap-source-domains.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Get gap source domains per-kind counts (Source v2)

Returns only the per-kind totals for gap source domains using Semrush SourceService v2 +GapSourceDomainsTotals (mirrors GET /llmo/ai-visibility/v1/topic/gap-topics-totals). +Accepts the same searchQuery filter as +GET /llmo/ai-visibility/v1/source/gap-source-domains (forwarded as a domain CONTAINS +dimension filter) but no pagination, sort, or gapKinds parameters. The response always +includes totals for all gap kinds.

+

Use this endpoint to populate market-comparison source-domain tab badge counts without +fetching full paginated data.

+
Authorizations:
api_key
query Parameters
domain
required
string
Example: domain=adobe.com

The brand domain to query (e.g. adobe.com)

+
competitors
required
string
Example: competitors=competitor1.com,competitor2.com

Comma-separated list of competitor domains (max 5). May also repeat as competitor=.

+
country
string
Example: country=US

ISO country code or WW for worldwide (default US)

+
region
string
Example: region=US

Region alias – mapped to a country code internally

+
engine
string
Enum: "chatgpt" "gemini" "googleAiMode" "googleAiOverview" "all"
Example: engine=chatgpt

LLM engine slug (chatgpt, gemini, googleAiMode, googleAiOverview). Omit or all for all models.

+
date
string
Example: date=2026-01-15

Snapshot date forwarded to supported Semrush v1 gRPC requests as target_date

+
searchQuery
required
string
Example: searchQuery=coffee

Full-text search query for topic research

+

Responses

Response samples

Content type
application/json
{
  • "totals": [
    ],
  • "srFilters": {
    }
}

Export topic research prompts as CSV

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/prompt-research/prompts-export

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt-research/prompts-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "prompts_by_topic_fts_coffee_us.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Export topic research brands as CSV

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt-research/prompts-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "prompts_by_topic_fts_coffee_us.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Export topic research brands as CSV

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/prompt-research/brands-export

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt-research/brands-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "prompts_by_topic_fts_coffee_us.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Export topic research source domains as CSV

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt-research/brands-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "prompts_by_topic_fts_coffee_us.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Export topic research source domains as CSV

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/prompt-research/source-domains-export

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt-research/source-domains-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "prompts_by_topic_fts_coffee_us.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Export topic research topics as CSV

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt-research/source-domains-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "prompts_by_topic_fts_coffee_us.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Export topic research topics as CSV

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/prompt-research/topics-export

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt-research/topics-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "prompts_by_topic_fts_coffee_us.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Get AI Visibility metadata (Meta v1 JSON)

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/prompt-research/topics-export

Response samples

Content type
application/json
{
  • "fileContent": "string",
  • "fileName": "prompts_by_topic_fts_coffee_us.csv",
  • "contentType": "text/csv",
  • "srFilters": {
    }
}

Get AI Visibility metadata (Meta v1 JSON)

Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Development server

https://spacecat.experiencecloud.live/api/ci/llmo/ai-visibility/v1/meta/meta

Production server

-
https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/meta/meta

Response samples

Content type
application/json
{
  • "countries": [
    ],
  • "srFilters": {
    }
}

serenity

List Serenity prompts for one slice

https://spacecat.experiencecloud.live/api/v1/llmo/ai-visibility/v1/meta/meta

Response samples

Content type
application/json
{
  • "countries": [
    ],
  • "srFilters": {
    }
}

serenity

List Serenity prompts for one slice

Filters
https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/brand-guidelines

Response samples

Content type
application/json
{
  • "id": "urn:aaid:sc:VA6C2:e64205e7-13ca-51e8-8b83-8d8ef1ebf911",
  • "name": "Brand Foo Bar Example",
  • "imsOrgId": "1234567890ABCDEF12345678@AdobeOrg",
  • "createdAt": "2025-01-01T00:00:00Z",
  • "updatedAt": "2025-02-01T00:00:00Z",
  • "toneOfVoice": [
    ],
  • "coreValues": [
    ],
  • "guidelines": [
    ],
  • "restrictions": [
    ],
  • "additionalGuidelines": [
    ]
}

opportunities

Retrieve a list of all opportunities for a specific site

Authorizations:
ims_key
path Parameters
siteId
required
string <uuid> (Id)
Example: 123e4567-e89b-12d3-a456-426614174000

The site ID in uuid format

+
query Parameters
locale
string^[a-z]{2}_[a-z]{2}$
Example: locale=fr_fr

BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new opportunity for a specific site

Authorizations:
ims_key
path Parameters
siteId
required
string <uuid> (Id)
Example: 123e4567-e89b-12d3-a456-426614174000

The site ID in uuid format

+
query Parameters
locale
string^[a-z]{2}_[a-z]{2}$
Example: locale=fr_fr

BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

Request Body schema: application/json
required
auditId
required
string <uuid> (Id)

UUID of the audit result that triggered this opportunity

runbook
required
string <url>
Filters
{
  • "auditId": "123e4567-e89b-12d3-a456-426614174000",
  • "type": "broken-backlinks",
  • "origin": "AUTOMATION",
  • "title": "Authoritative domains are linking to invalid SecurBank URLs. This could impact your SEO.",
  • "description": "Provide the correct target URL that each of the broken backlinks should be redirected to.",
  • "guidance": {
    },
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "123e4567-e89b-12d3-a456-426614174000",
  • "siteId": "123e4567-e89b-12d3-a456-426614174000",
  • "auditId": "123e4567-e89b-12d3-a456-426614174000",
  • "type": "broken-backlinks",
  • "data": { },
  • "origin": "ESS_OPS",
  • "title": "Authoritative domains are linking to invalid SecurBank URLs. This could impact your SEO.",
  • "description": "Provide the correct target URL that each of the broken backlinks should be redirected to.",
  • "status": "IN_PROGRESS",
  • "guidance": {
    },
  • "tags": [
    ],
  • "createdAt": "2024-01-19T14:20:30Z",
  • "updatedAt": "2024-01-19T14:20:30Z",
  • "lastAuditedAt": "2024-01-19T14:20:30Z"
}

Retrieve opportunities for a specific site filtered by status

Authorizations:
ims_key
path Parameters
siteId
required
string <uuid> (Id)
Example: 123e4567-e89b-12d3-a456-426614174000

The site ID in uuid format

-
status
required
string

Responses

status
required
string
query Parameters
locale
string^[a-z]{2}_[a-z]{2}$
Example: locale=fr_fr

BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

+

Responses

opportunityId
required
string <uuid> (Id)
Example: 123e4567-e89b-12d3-a456-426614174000

The opportunity ID in uuid format

+
query Parameters
locale
string^[a-z]{2}_[a-z]{2}$
Example: locale=fr_fr

BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

Responses

opportunityId
required
string <uuid> (Id)
Example: 123e4567-e89b-12d3-a456-426614174000

The opportunity ID in uuid format

+
query Parameters
locale
string^[a-z]{2}_[a-z]{2}$
Example: locale=fr_fr

BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

Request Body schema: application/json
required
runbook
string <url>

URL to the runbook for this opportunity

BrokenBacklinksOpportunityData (object) or BrokenInternalLinksOpportunityData (object)
Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

The site ID in uuid format

opportunityId
required
string <uuid> (Id)
Example: 123e4567-e89b-12d3-a456-426614174000

The opportunity ID in uuid format

+
query Parameters
locale
string^[a-z]{2}_[a-z]{2}$
Example: locale=fr_fr

BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

Responses

status
string
Examples:
  • status=NEW - Filter by single status
  • status=NEW,APPROVED,IN_PROGRESS - Filter by multiple statuses (comma-separated)
status
string
Examples:
  • status=NEW - Filter by single status
  • status=NEW,APPROVED,IN_PROGRESS - Filter by multiple statuses (comma-separated)
Filters When provided, only suggestions matching any of the specified statuses are returned.

Valid values: NEW, APPROVED, SKIPPED, FIXED, ERROR, IN_PROGRESS, OUTDATED, PENDING_VALIDATION

Returns 400 Bad Request if invalid status values are provided.

+
locale
string^[a-z]{2}_[a-z]{2}$
Example: locale=fr_fr

BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

Responses

status
string
Examples:
  • status=NEW - Filter by single status
  • status=NEW,APPROVED,IN_PROGRESS - Filter by multiple statuses (comma-separated)
status
string
Examples:
  • status=NEW - Filter by single status
  • status=NEW,APPROVED,IN_PROGRESS - Filter by multiple statuses (comma-separated)
Filters When provided, only suggestions matching any of the specified statuses are returned.

Valid values: NEW, APPROVED, SKIPPED, FIXED, ERROR, IN_PROGRESS, OUTDATED, PENDING_VALIDATION

Returns 400 Bad Request if invalid status values are provided.

+
locale
string^[a-z]{2}_[a-z]{2}$
Example: locale=fr_fr

BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

Request Body schema: application/json
required
Array
type
required
string (SuggestionType)
Enum: "REDIRECT_UPDATE" "EXPERIMENT" "CONTENT_UPDATE" "METADATA_UPDATE"
Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

The opportunity ID in uuid format

limit
required
integer [ 1 .. 1000 ]
Default: 100
Example: 100

The maximum number of items to return per page

-
query Parameters
view
string
Default: "full"
Enum: "minimal" "summary" "full"
Example: view=summary
query Parameters
view
string
Default: "full"
Enum: "minimal" "summary" "full"
Example: view=summary
Filters
  • summary: Returns key fields: id, opportunityId, type, rank, status, url, timestamps (excludes heavy data and kpiDeltas)
  • full: Returns all fields including data and kpiDeltas (default, backward compatible)
  • +
    locale
    string^[a-z]{2}_[a-z]{2}$
    Example: locale=fr_fr

    BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

    Responses

    cursor
    string
    Example: eyJzayI6IjIwMjQtMDEtMTVUMTI6MzA6MDBaIiwiaWQiOiIxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAifQ==

    The cursor for pagination to fetch the next page of results

    -
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    Filters
  • summary: Returns key fields: id, opportunityId, type, rank, status, url, timestamps (excludes heavy data and kpiDeltas)
  • full: Returns all fields including data and kpiDeltas (default, backward compatible)
  • +
    locale
    string^[a-z]{2}_[a-z]{2}$
    Example: locale=fr_fr

    BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

    Responses

    opportunityId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The opportunity ID in uuid format

    -
    status
    required
    string
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    status
    required
    string
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    Filters
  • summary: Returns key fields: id, opportunityId, type, rank, status, url, timestamps (excludes heavy data and kpiDeltas)
  • full: Returns all fields including data and kpiDeltas (default, backward compatible)
  • +
    locale
    string^[a-z]{2}_[a-z]{2}$
    Example: locale=fr_fr

    BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

    Responses

    status
    required
    string
    limit
    required
    integer [ 1 .. 1000 ]
    Default: 100
    Example: 100

    The maximum number of items to return per page

    -
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    Filters
  • summary: Returns key fields: id, opportunityId, type, rank, status, url, timestamps (excludes heavy data and kpiDeltas)
  • full: Returns all fields including data and kpiDeltas (default, backward compatible)
  • +
    locale
    string^[a-z]{2}_[a-z]{2}$
    Example: locale=fr_fr

    BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

    Responses

    cursor
    string
    Example: eyJzayI6IjIwMjQtMDEtMTVUMTI6MzA6MDBaIiwiaWQiOiIxMjNlNDU2Ny1lODliLTEyZDMtYTQ1Ni00MjY2MTQxNzQwMDAifQ==

    The cursor for pagination to fetch the next page of results

    -
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    Filters
  • summary: Returns key fields: id, opportunityId, type, rank, status, url, timestamps (excludes heavy data and kpiDeltas)
  • full: Returns all fields including data and kpiDeltas (default, backward compatible)
  • +
    locale
    string^[a-z]{2}_[a-z]{2}$
    Example: locale=fr_fr

    BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

    Responses

    suggestionId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The suggestion ID in uuid format

    -
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    Filters
  • summary: Returns key fields: id, opportunityId, type, rank, status, url, timestamps (excludes heavy data and kpiDeltas)
  • full: Returns all fields including data and kpiDeltas (default, backward compatible)
  • +
    locale
    string^[a-z]{2}_[a-z]{2}$
    Example: locale=fr_fr

    BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

    Responses

    suggestionId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The suggestion ID in uuid format

    -
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    Filters
  • summary: Returns key fields: id, opportunityId, type, rank, status, url, timestamps (excludes heavy data and kpiDeltas)
  • full: Returns all fields including data and kpiDeltas (default, backward compatible)
  • +
    locale
    string^[a-z]{2}_[a-z]{2}$
    Example: locale=fr_fr

    BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

    Request Body schema: application/json
    required
    rank
    number

    Type-specific numeric rank value (e.g., "domainTraffic" for a broken-backlink) helps sorting

    BrokenBacklinksRedirectData (object) or BrokenInternalLinksSuggestionData (object)
    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    The opportunity ID in uuid format

    suggestionId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The suggestion ID in uuid format

    -
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    query Parameters
    view
    string
    Default: "full"
    Enum: "minimal" "summary" "full"
    Example: view=summary
    Filters
  • summary: Returns key fields: id, opportunityId, type, rank, status, url, timestamps (excludes heavy data and kpiDeltas)
  • full: Returns all fields including data and kpiDeltas (default, backward compatible)
  • +
    locale
    string^[a-z]{2}_[a-z]{2}$
    Example: locale=fr_fr

    BCP 47 locale code in underscore form (e.g. fr_fr, ja_jp, de_de). +When provided and a translation exists, localizable fields (title, description on +opportunities; AI-generated fields inside data on suggestions) are replaced by the +stored translation. Falls back to the original English value when the locale is absent +or no translation has been stored yet for that locale.

    Responses

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/suggestions/{suggestionId}/fixes

    Response samples

    Content type
    application/json
    {
    • "data": [
      ]
    }

    Update the status of one or multiple suggestions in one transaction +

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/suggestions/{suggestionId}/fixes

    Response samples

    Content type
    application/json
    {
    • "data": [
      ]
    }

    Update the status of one or multiple suggestions in one transaction

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/geo-experiments/{geoExperimentId}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/geo-experiments/{geoExperimentId}

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "string",
    • "type": "onsite_opportunity_deployment",
    • "status": "GENERATING_BASELINE",
    • "phase": "pre_analysis_submitted",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "opportunityId": "3d9795f2-7722-4e1d-b41e-0c5d0c24a902",
    • "preScheduleId": "string",
    • "postScheduleId": "string",
    • "suggestionIds": [
      ],
    • "promptsCount": 0,
    • "promptsLocation": "string",
    • "metadata": {},
    • "error": {
      },
    • "startTime": "2019-08-24T14:15:22Z",
    • "endTime": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "updatedBy": "string",
    • "prompts": [
      ]
    }

    top pages

    Retrieve top pages for site

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/geo-experiments/{geoExperimentId}

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "string",
    • "type": "onsite_opportunity_deployment",
    • "status": "GENERATING_BASELINE",
    • "phase": "pre_analysis_submitted",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "opportunityId": "3d9795f2-7722-4e1d-b41e-0c5d0c24a902",
    • "preScheduleId": "string",
    • "postScheduleId": "string",
    • "suggestionIds": [
      ],
    • "promptsCount": 0,
    • "promptsLocation": "string",
    • "metadata": {},
    • "error": {
      },
    • "startTime": "2019-08-24T14:15:22Z",
    • "endTime": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "updatedBy": "string",
    • "prompts": [
      ]
    }

    aso-overlay

    Get the ASO dispatcher redirect overlay for a Cloud Manager service

    Returns the plain-text redirect overlay (config/<service>/redirects.txt) +for the given Cloud Manager service, served from the per-environment ASO +overlay S3 bucket via the api-service execution role.

    +

    Authenticated with the X-ASO-API-Key header (the inbound key the AEM +dispatcher presents). Fronted by Fastly for edge caching; the dispatcher +polls this URL on its normal cycle. Each deployment serves its own env's +bucket (spacecat-<env>-aso-overlays), so no env path segment is needed.

    +

    Authorization is per request: the service is resolved to a provisioned, +ASO-entitled site (org entitlement + site enrollment) before the overlay +is served; any miss returns 404 so the endpoint cannot enumerate programs.

    +

    See ADR aso-dispatcher-overlay (Lite-E) in mysticat-architecture.

    +
    Authorizations:
    aso_overlay_api_key
    path Parameters
    service
    required
    string^cm-p\d{1,10}-e\d{1,10}$
    Example: cm-p154709-e1629980

    Cloud Manager service identifier.

    +

    Responses

    Response samples

    Content type
    text/plain
    example.com/old-widget https://www.example.com/products/widget-v2
    +blog.example.com/old-post https://blog.example.com/articles/new
    +

    top pages

    Retrieve top pages for site

    This endpoint is useful for retrieving top pages for a site. @@ -13792,7 +14152,7 @@

    Filters

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/top-pages

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/top-pages

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Retrieve top pages for site by source

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/top-pages

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Retrieve top pages for site by source

    This endpoint is useful for retrieving top pages for a site. @@ -13814,7 +14174,7 @@

    Filters

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/top-pages/{source}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/top-pages/{source}

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Retrieve top pages for site by source and geo

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/top-pages/{source}

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Retrieve top pages for site by source and geo

    This endpoint is useful for retrieving top pages for a site. The top pages will be ordered in descending order by traffic.

    @@ -13836,7 +14196,7 @@

    Filters

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/top-pages/{source}/{geo}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/top-pages/{source}/{geo}

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    url store

    List URLs for a site

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/top-pages/{source}/{geo}

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    url store

    List URLs for a site

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/url-store

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/url-store

    Response samples

    Content type
    application/json
    {
    • "items": [
      ],
    • "pagination": {
      }
    }

    List URLs by enabled audit type

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/url-store

    Response samples

    Content type
    application/json
    {
    • "items": [
      ],
    • "pagination": {
      }
    }

    List URLs by enabled audit type

    Retrieves URLs that have a specific audit type enabled. Results are paginated.

    @@ -13904,7 +14264,7 @@

    Filters

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/url-store/by-audit/{auditType}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/url-store/by-audit/{auditType}

    Response samples

    Content type
    application/json
    {
    • "items": [
      ],
    • "pagination": {
      }
    }

    Get a specific URL

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/url-store/by-audit/{auditType}

    Response samples

    Content type
    application/json
    {
    • "items": [
      ],
    • "pagination": {
      }
    }

    Get a specific URL

    Retrieves a specific URL by its base64-encoded representation. The URL must be encoded using URL-safe base64 without padding (RFC 4648 §5).

    @@ -13928,7 +14288,7 @@

    Filters

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/url-store/{base64Url}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/url-store/{base64Url}

    Response samples

    Content type
    application/json
    {
    • "siteId": "a1b2c3d4-e5f6-7g8h-9i0j-k11l12m13n14",
    • "byCustomer": true,
    • "audits": [
      ],
    • "createdAt": "2025-10-10T12:00:00Z",
    • "updatedAt": "2025-10-10T15:30:00Z",
    • "createdBy": "user-alice",
    • "updatedBy": "user-bob"
    }

    Add URLs (bulk operation)

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/url-store/{base64Url}

    Response samples

    Content type
    application/json
    {
    • "siteId": "a1b2c3d4-e5f6-7g8h-9i0j-k11l12m13n14",
    • "byCustomer": true,
    • "audits": [
      ],
    • "createdAt": "2025-10-10T12:00:00Z",
    • "updatedAt": "2025-10-10T15:30:00Z",
    • "createdBy": "user-alice",
    • "updatedBy": "user-bob"
    }

    Add URLs (bulk operation)

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/url-store/{base64Url}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/url-store/{base64Url}

    Request samples

    Content type
    application/json
    []

    Response samples

    Content type
    application/json
    {
    • "metadata": {
      },
    • "failures": [],
    • "items": [
      ]
    }

    Update audit configurations (bulk operation)

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/url-store/{base64Url}

    Request samples

    Content type
    application/json
    []

    Response samples

    Content type
    application/json
    {
    • "metadata": {
      },
    • "failures": [],
    • "items": [
      ]
    }

    Update audit configurations (bulk operation)

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/url-store/{base64Url}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/url-store/{base64Url}

    Request samples

    Content type
    application/json
    []

    Response samples

    Content type
    application/json
    {
    • "metadata": {
      },
    • "failures": [],
    • "items": [
      ]
    }

    Remove URLs (bulk operation)

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/url-store/{base64Url}

    Request samples

    Content type
    application/json
    []

    Response samples

    Content type
    application/json
    {
    • "metadata": {
      },
    • "failures": [],
    • "items": [
      ]
    }

    Remove URLs (bulk operation)

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/url-store/delete

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/url-store/delete

    Request samples

    Content type
    application/json
    {}

    Response samples

    Content type
    application/json
    {
    • "metadata": {
      },
    • "failures": []
    }

    agentic rules

    List URL category rules for a site

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/url-store/delete

    Request samples

    Content type
    application/json
    {}

    Response samples

    Content type
    application/json
    {
    • "metadata": {
      },
    • "failures": []
    }

    agentic rules

    List URL category rules for a site

    Returns auto-derived + customer-edited URL category rules.

    Authorizations:
    ims_keyscoped_api_key
    path Parameters
    siteId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The site ID in uuid format

    @@ -14066,7 +14426,7 @@

    Filters

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/agentic-categories

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-categories

    Response samples

    Content type
    application/json
    {
    • "items": [
      ]
    }

    Create a URL category rule from sample URLs

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-categories

    Response samples

    Content type
    application/json
    {
    • "items": [
      ]
    }

    Create a URL category rule from sample URLs

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/agentic-categories

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-categories

    Request samples

    Content type
    application/json
    {
    • "name": "string",
    • "urls": [
      ]
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "name": "string",
    • "regex": "string",
    • "sortOrder": 0,
    • "source": "ai",
    • "sampleUrls": [
      ],
    • "derivationMethod": "llm",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdBy": "string",
    • "updatedBy": "string"
    }

    Edit a URL category rule

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-categories

    Request samples

    Content type
    application/json
    {
    • "name": "string",
    • "urls": [
      ]
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "name": "string",
    • "regex": "string",
    • "sortOrder": 0,
    • "source": "ai",
    • "sampleUrls": [
      ],
    • "derivationMethod": "llm",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdBy": "string",
    • "updatedBy": "string"
    }

    Edit a URL category rule

    Edit name, urls, or newRegex. Any customer edit marks the rule @@ -14132,7 +14492,7 @@

    Filters

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/agentic-categories/{name}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-categories/{name}

    Request samples

    Content type
    application/json
    {
    • "newName": "string",
    • "urls": [
      ],
    • "newRegex": "string"
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "name": "string",
    • "regex": "string",
    • "sortOrder": 0,
    • "source": "ai",
    • "sampleUrls": [
      ],
    • "derivationMethod": "llm",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdBy": "string",
    • "updatedBy": "string"
    }

    Delete a URL category rule

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-categories/{name}

    Request samples

    Content type
    application/json
    {
    • "newName": "string",
    • "urls": [
      ],
    • "newRegex": "string"
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "name": "string",
    • "regex": "string",
    • "sortOrder": 0,
    • "source": "ai",
    • "sampleUrls": [
      ],
    • "derivationMethod": "llm",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdBy": "string",
    • "updatedBy": "string"
    }

    Delete a URL category rule

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/agentic-categories/{name}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-categories/{name}

    Response samples

    Content type
    application/json
    {
    • "deleted": true,
    • "name": "string"
    }

    List URL page-type rules for a site

    Authorizations:
    ims_keyscoped_api_key
    path Parameters
    siteId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-categories/{name}

    Response samples

    Content type
    application/json
    {
    • "deleted": true,
    • "name": "string"
    }

    List URL page-type rules for a site

    Authorizations:
    ims_keyscoped_api_key
    path Parameters
    siteId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The site ID in uuid format

    Responses

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-page-types

    Response samples

    Content type
    application/json
    {
    • "items": [
      ]
    }

    Create a URL page-type rule from sample URLs

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-page-types

    Response samples

    Content type
    application/json
    {
    • "items": [
      ]
    }

    Create a URL page-type rule from sample URLs

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/agentic-page-types

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-page-types

    Request samples

    Content type
    application/json
    {
    • "name": "string",
    • "urls": [
      ]
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "name": "string",
    • "regex": "string",
    • "sortOrder": 0,
    • "source": "ai",
    • "sampleUrls": [
      ],
    • "derivationMethod": "llm",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdBy": "string",
    • "updatedBy": "string"
    }

    Edit a URL page-type rule

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-page-types

    Request samples

    Content type
    application/json
    {
    • "name": "string",
    • "urls": [
      ]
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "name": "string",
    • "regex": "string",
    • "sortOrder": 0,
    • "source": "ai",
    • "sampleUrls": [
      ],
    • "derivationMethod": "llm",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdBy": "string",
    • "updatedBy": "string"
    }

    Edit a URL page-type rule

    Edit name, urls, or newRegex. Any customer edit marks the rule @@ -14244,7 +14604,7 @@

    Filters

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/agentic-page-types/{name}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-page-types/{name}

    Request samples

    Content type
    application/json
    {
    • "newName": "string",
    • "urls": [
      ],
    • "newRegex": "string"
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "name": "string",
    • "regex": "string",
    • "sortOrder": 0,
    • "source": "ai",
    • "sampleUrls": [
      ],
    • "derivationMethod": "llm",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdBy": "string",
    • "updatedBy": "string"
    }

    Delete a URL page-type rule

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-page-types/{name}

    Request samples

    Content type
    application/json
    {
    • "newName": "string",
    • "urls": [
      ],
    • "newRegex": "string"
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "name": "string",
    • "regex": "string",
    • "sortOrder": 0,
    • "source": "ai",
    • "sampleUrls": [
      ],
    • "derivationMethod": "llm",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdBy": "string",
    • "updatedBy": "string"
    }

    Delete a URL page-type rule

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/agentic-page-types/{name}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-page-types/{name}

    Response samples

    Content type
    application/json
    {
    • "deleted": true,
    • "name": "string"
    }

    paid

    Get top pages by paid traffic source for a site

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/agentic-page-types/{name}

    Response samples

    Content type
    application/json
    {
    • "deleted": true,
    • "name": "string"
    }

    paid

    Get top pages by paid traffic source for a site

    Returns the top pages per traffic source receiving the most paid traffic for a given week.

    Authorizations:
    api_key
    path Parameters
    siteId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The site ID in uuid format

    @@ -14290,7 +14650,7 @@

    Filters

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/traffic/paid

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/traffic/paid

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Get paid traffic data grouped by URL and page type

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/traffic/paid

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Get paid traffic data grouped by URL and page type

    Returns paid traffic data for a site, grouped by URL and page type for a given week or month and year.

    Authorizations:
    api_key
    path Parameters
    siteId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The site ID in uuid format

    @@ -14578,7 +14938,7 @@

    Filters

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/traffic/paid/pta2/weekly-summary

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/traffic/paid/pta2/weekly-summary

    Response samples

    Content type
    application/json
    {
    • "pageviews": "885800",
    • "click_rate": "0.40438022126890943",
    • "engagement_rate": "0.4856626778053737",
    • "bounce_rate": "0.5143373221946264",
    • "trends": {
      }
    }

    Determine predominant traffic type for URLs

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/traffic/paid/pta2/weekly-summary

    Response samples

    Content type
    application/json
    {
    • "pageviews": "885800",
    • "click_rate": "0.40438022126890943",
    • "engagement_rate": "0.4856626778053737",
    • "bounce_rate": "0.5143373221946264",
    • "trends": {
      }
    }

    Determine predominant traffic type for URLs

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/traffic/predominant-type

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/traffic/predominant-type

    Request samples

    Content type
    application/json

    Response samples

    Content type
    application/json
    []

    Determine predominant traffic type for URLs by channel

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/traffic/predominant-type

    Request samples

    Content type
    application/json

    Response samples

    Content type
    application/json
    []

    Determine predominant traffic type for URLs by channel

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/traffic/predominant-type/{channel}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/traffic/predominant-type/{channel}

    Request samples

    Content type
    application/json

    Response samples

    Content type
    application/json
    []

    Get paid traffic data grouped by page type

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/traffic/predominant-type/{channel}

    Request samples

    Content type
    application/json

    Response samples

    Content type
    application/json
    []

    Get paid traffic data grouped by page type

    Returns paid traffic data for a site, grouped by page type for a given week or month and year.

    Authorizations:
    api_key
    path Parameters
    siteId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The site ID in uuid format

    @@ -15856,7 +16216,7 @@

    Filters

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/traffic/predominant-type

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/traffic/predominant-type

    Request samples

    Content type
    application/json

    Response samples

    Content type
    application/json
    []

    Determine predominant traffic type for URLs by channel

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/traffic/predominant-type

    Request samples

    Content type
    application/json

    Response samples

    Content type
    application/json
    []

    Determine predominant traffic type for URLs by channel

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/traffic/predominant-type/{channel}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/traffic/predominant-type/{channel}

    Request samples

    Content type
    application/json

    Response samples

    Content type
    application/json
    []

    paid-page-type

    Get paid traffic data grouped by page type, platform, and campaign

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/traffic/predominant-type/{channel}

    Request samples

    Content type
    application/json

    Response samples

    Content type
    application/json
    []

    paid-page-type

    Get paid traffic data grouped by page type, platform, and campaign

    Returns paid traffic data for a site, grouped by page type, platform, and campaign for a given week or month and year.

    Authorizations:
    api_key
    path Parameters
    siteId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The site ID in uuid format

    @@ -17058,7 +17418,7 @@

    Filters

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/experiments

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/experiments

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    opportunity-fixes

    Retrieve a list of all fixes for a specific opportunity +

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/experiments

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    opportunity-fixes

    Retrieve a list of all fixes for a specific opportunity

    Authorizations:
    ims_key
    path Parameters
    siteId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The site ID in uuid format

    opportunityId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000
    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/opportunities/{opportunityId}/fixes

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Create and add a list of one or more fixes to an opportunity in one transaction +

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Create and add a list of one or more fixes to an opportunity in one transaction

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/opportunities/{opportunityId}/fixes

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes

    Request samples

    Content type
    application/json
    []

    Response samples

    Content type
    application/json
    {
    • "fixes": [
      ],
    • "metadata": {
      }
    }

    Retrieve fixes for a specific opportunity filtered by status +

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes

    Request samples

    Content type
    application/json
    []

    Response samples

    Content type
    application/json
    {
    • "fixes": [
      ],
    • "metadata": {
      }
    }

    Retrieve fixes for a specific opportunity filtered by status

    Authorizations:
    ims_key
    path Parameters
    siteId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The site ID in uuid format

    opportunityId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000
    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/opportunities/{opportunityId}/fixes/by-status/{status}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes/by-status/{status}

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Retrieve details of a specific fix +

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes/by-status/{status}

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Retrieve details of a specific fix

    Authorizations:
    ims_key
    path Parameters
    siteId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The site ID in uuid format

    opportunityId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000
    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/opportunities/{opportunityId}/fixes/{fixId}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes/{fixId}

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "opportunityId": "3d9795f2-7722-4e1d-b41e-0c5d0c24a902",
    • "type": "REDIRECT_UPDATE",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "executedBy": "string",
    • "executedAt": "2019-08-24T14:15:22Z",
    • "publishedAt": "2019-08-24T14:15:22Z",
    • "changeDetails": { },
    • "status": "PENDING"
    }

    Update specific attributes of an existing fix +

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes/{fixId}

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "opportunityId": "3d9795f2-7722-4e1d-b41e-0c5d0c24a902",
    • "type": "REDIRECT_UPDATE",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "executedBy": "string",
    • "executedByUser": {
      },
    • "executedAt": "2019-08-24T14:15:22Z",
    • "publishedAt": "2019-08-24T14:15:22Z",
    • "changeDetails": { },
    • "status": "PENDING"
    }

    Update specific attributes of an existing fix

    Filters
    suggestionIds
    Array of strings <uuid> (Id) [ items <uuid > ]

    Optional array of suggestion IDs to associate with this fix. Replaces existing associations.

    -
    executedBy
    string

    Email or identifier of who executed the fix

    executedAt
    string <date-time> (DateTime)

    ISO timestamp when the fix was executed

    publishedAt
    string <date-time> (DateTime)
    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/opportunities/{opportunityId}/fixes/{fixId}

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes/{fixId}

    Request samples

    Content type
    application/json
    {
    • "changeDetails": { },
    • "status": "PENDING",
    • "suggestionIds": [
      ],
    • "executedBy": "string",
    • "executedAt": "2024-01-19T14:20:30Z",
    • "publishedAt": "2024-01-19T14:20:30Z",
    • "origin": "string"
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "opportunityId": "3d9795f2-7722-4e1d-b41e-0c5d0c24a902",
    • "type": "REDIRECT_UPDATE",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "executedBy": "string",
    • "executedAt": "2019-08-24T14:15:22Z",
    • "publishedAt": "2019-08-24T14:15:22Z",
    • "changeDetails": { },
    • "status": "PENDING"
    }

    Delete a fix +

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes/{fixId}

    Request samples

    Content type
    application/json
    {
    • "changeDetails": { },
    • "status": "PENDING",
    • "suggestionIds": [
      ],
    • "executedAt": "2024-01-19T14:20:30Z",
    • "publishedAt": "2024-01-19T14:20:30Z",
    • "origin": "string"
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "opportunityId": "3d9795f2-7722-4e1d-b41e-0c5d0c24a902",
    • "type": "REDIRECT_UPDATE",
    • "createdAt": "2019-08-24T14:15:22Z",
    • "executedBy": "string",
    • "executedByUser": {
      },
    • "executedAt": "2019-08-24T14:15:22Z",
    • "publishedAt": "2019-08-24T14:15:22Z",
    • "changeDetails": { },
    • "status": "PENDING"
    }

    Delete a fix

    Authorizations:
    ims_key
    path Parameters
    siteId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The site ID in uuid format

    opportunityId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000
    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/opportunities/{opportunityId}/fixes/{fixId}/suggestions

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes/{fixId}/suggestions

    Response samples

    Content type
    application/json
    []

    Roll back a failed fix and mark associated suggestions as skipped +

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes/{fixId}/suggestions

    Response samples

    Content type
    application/json
    []

    Roll back a failed fix and mark associated suggestions as skipped

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/opportunities/{opportunityId}/fixes/{fixId}/actions/rolled_back

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes/{fixId}/actions/rolled_back

    Response samples

    Content type
    application/json
    {
    • "fix": {
      },
    • "suggestions": {
      },
    • "message": "Fix rolled back successfully. All 3 suggestion(s) marked as SKIPPED."
    }

    Update the status of one or multiple fixes in one transaction +

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/fixes/{fixId}/actions/rolled_back

    Response samples

    Content type
    application/json
    {
    • "fix": {
      },
    • "suggestions": {
      },
    • "message": "Fix rolled back successfully. All 3 suggestion(s) marked as SKIPPED."
    }

    Update the status of one or multiple fixes in one transaction

    Authorizations:
    ims_key
    path Parameters
    siteId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000

    The site ID in uuid format

    opportunityId
    required
    string <uuid> (Id)
    Example: 123e4567-e89b-12d3-a456-426614174000
    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/sites/{siteId}/opportunities/{opportunityId}/status

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/status

    Request samples

    Content type
    application/json
    [
    • {
      }
    ]

    Response samples

    Content type
    application/json
    {
    • "fixes": [
      ],
    • "metadata": {
      }
    }

    monitoring

    Query projection_audit rows for DRS monitoring

    https://spacecat.experiencecloud.live/api/v1/sites/{siteId}/opportunities/{opportunityId}/status

    Request samples

    Content type
    application/json
    [
    • {
      }
    ]

    Response samples

    Content type
    application/json
    {
    • "fixes": [
      ],
    • "metadata": {
      }
    }

    monitoring

    Query projection_audit rows for DRS monitoring

    Filters " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Development server

    https://spacecat.experiencecloud.live/api/ci/monitoring/drs-bp-pg-audit

    Production server

    -
    https://spacecat.experiencecloud.live/api/v1/monitoring/drs-bp-pg-audit

    Response samples

    Content type
    application/json
    {
    • "rows": [
      ],
    • "hasMore": true
    }
    +
    https://spacecat.experiencecloud.live/api/v1/monitoring/drs-bp-pg-audit

    Response samples

    Content type
    application/json
    {
    • "rows": [
      ],
    • "hasMore": true
    }