Skip to main content

Endpoints

GET    /api/hub/catalogs/{catalogId}/analytics
DELETE /api/hub/catalogs/{catalogId}
View performance data for a catalog you’ve published to the Hub, and unpublish (delist) it when needed. Both endpoints require authentication and are restricted to the catalog’s publisher workspace.

Path parameters

ParameterTypeRequiredDescription
catalogIdstringYesThe Hub catalog ID

GET — Analytics

GET /api/hub/catalogs/{catalogId}/analytics Returns engagement metrics, subscription stats, revenue data (for paid catalogs), and version history.

Response

{
  "catalogId": "hub_cat_9x8k2m",
  "name": "Spring 2026 Apparel",
  "views": 1240,
  "clones": 18,
  "activeSubscribers": 34,
  "cancelledSubscribers": 5,
  "versions": [
    {
      "version": 5,
      "publishedAt": "2026-03-10T14:30:00Z",
      "publishedBy": "user_abc",
      "changeCount": 47,
      "changelog": "Added 45 new spring arrivals, removed 2 discontinued SKUs"
    },
    {
      "version": 4,
      "publishedAt": "2026-02-20T09:00:00Z",
      "publishedBy": "user_abc",
      "changeCount": 12,
      "changelog": "Price updates for EU market"
    }
  ],
  "revenue": {
    "total": 1490.00,
    "currency": "USD",
    "breakdown": {
      "oneTime": 540.00,
      "recurring": 950.00
    }
  },
  "period": {
    "from": "2026-02-01T00:00:00Z",
    "to": "2026-03-17T00:00:00Z"
  }
}

Analytics fields

FieldTypeDescription
viewsnumberTotal preview opens (all time)
clonesnumberTotal one-time clone operations (all time)
activeSubscribersnumberWorkspaces with currently active subscriptions
cancelledSubscribersnumberWorkspaces that unsubscribed
versionsCatalogVersion[]Published version history (most recent first)
revenue.totalnumberTotal revenue collected (paid catalogs only)
revenue.currencystringCurrency code (USD)
revenue.breakdownobjectSplit between one-time and recurring revenue

CatalogVersion fields

FieldTypeDescription
versionnumberVersion number
publishedAtstringISO 8601 timestamp
publishedBystringUser ID who published this version
changeCountnumberProducts added + updated + removed in this version
changelogstringOptional publisher note describing changes

Analytics examples

curl "https://app.alana.shopping/api/hub/catalogs/hub_cat_9x8k2m/analytics" \
  -H "Authorization: Bearer sk_live_your_api_key_here"

DELETE — Unpublish (delist)

DELETE /api/hub/catalogs/{catalogId} Removes the catalog from the Hub browse feed immediately. Existing subscribers retain their local data but stop receiving new version notifications. Pending syncs are cancelled.

Response

{
  "catalogId": "hub_cat_9x8k2m",
  "unpublished": true,
  "notifiedSubscribers": 34,
  "cancelledPendingSyncs": 3
}

Unpublish examples

curl -X DELETE "https://app.alana.shopping/api/hub/catalogs/hub_cat_9x8k2m" \
  -H "Authorization: Bearer sk_live_your_api_key_here"

What happens when you unpublish

AudienceEffect
Hub browse feedCatalog removed immediately
New visitorsCannot find, preview, clone, or subscribe
Existing clonersKeep their local copy with no changes
Active subscribersStop receiving version notifications
Paid subscribersNotified via email; refund policy is your responsibility
Unpublishing is reversible — you can republish the same catalog. However, all subscriber connections are severed on unpublish and must be re-established.

Error responses

GET analytics

HTTP statusCodeDescription
403NOT_PUBLISHERThis catalog was not published by your workspace
404CATALOG_NOT_FOUNDHub catalog not found

DELETE unpublish

HTTP statusCodeDescription
403NOT_PUBLISHERNot your catalog to unpublish
403INSUFFICIENT_PERMISSIONSOnly workspace owner can unpublish
404CATALOG_NOT_FOUNDHub catalog not found
409ALREADY_UNPUBLISHEDCatalog is already in draft/unpublished state
Last modified on March 18, 2026