Catalog for publishers
A publisher takes Stories, Moments, and Videos that rights holders create and curate, and uses the HTML links Catalog provides to publish that content.
If you implement Experiences, start at Catalog for Experiences. For the audience split, see Content catalog.
Request a Stories, Moments, or Videos feed, then use the HTML links (htmlUrl) Catalog returns. Don't pass Catalog IDs into the Experiences SDK. Call format is on Content catalog API: Filters | Response principles.
What you get
| Content type | What it is | Endpoint |
|---|---|---|
| Stories | A sequence of pages, like a social story | /stories |
| Moments | A single short action, such as a goal, a dunk, or a red card | /moments |
| Videos | Longer-form video | /videos |
Each content type has its own endpoint. The endpoints share parameters and the same response envelope.
The feed returns content rights holders have agreed to share with you. You don't see everything WSC Sports holds.
Get your key
Ask your WSC Sports account manager for a Catalog API key.
Make your first call
Send the key as a query parameter.
GET https://blazefeed.clipro.tv/v1/moments?ApiKey=YOUR_KEY
const BASE = 'https://blazefeed.clipro.tv/v1';
async function getMoments(apiKey, { pageNum = 0, pageSize = 50 } = {}) {
const url = `${BASE}/moments?ApiKey=${apiKey}&PageNum=${pageNum}&PageSize=${pageSize}`;
const res = await fetch(url);
if (!res.ok) throw new Error(`Catalog returned ${res.status}`);
return res.json();
}Treat Catalog request URLs as credentials. The key travels in the URL, so it can appear in server logs, browser history, CDN logs, and chat. Call Catalog from your server, not from a browser.
A 401 means the key is wrong, missing, or no longer active.
Paging, /ids behavior, HTTP status codes, and rate limits are on Content catalog API. To filter or harvest entity IDs, see Filters.
Show the content
Embed the hosted page (htmlUrl)
htmlUrl)Use htmlUrl to publish a Story or Moment. Playback, geo enforcement, and tracking are handled for you. Field rules are on Response principles.
Play video yourself (videoRenditions)
videoRenditions)Use videoRenditions when you need the video in your own player. Field details are on Response principles.
Display fields (extraInfo)
extraInfo)Scores, player names, and similar display fields live in extraInfo. Treat it as an open dictionary. See Response principles.
Enforce geoTargeting
You are required to enforce geoTargeting. How to filter with Geo or apply includedGeos / excludedGeos is on Response principles.
Keep in sync
Pull Catalog once per content type to build your local store. Send Statuses=Active unless you need drafts: see Filters. After that, poll incrementally with UpdateTime.From. Paging is on Content catalog API.
When content is withdrawn, it disappears from the feed with no pull-API signal. If you rely on incremental polling alone, you can keep serving content you no longer have the right to show.
Read Updates before you finish your integration. The webhook Delete action is the only removal notification. Act on it by taking the content down.
| Purpose | Mechanism |
|---|---|
| Initial store | One full pull per content type |
| New and changed content | Webhooks, with incremental pulls as a backstop |
| Removals | Webhooks (Action: Delete) |
| Safety net | A periodic full reconciliation: re-pull and retire anything no longer returned |
Ask your account manager to configure a webhook endpoint, and for a reconciliation interval that fits your rate limit.
Getting help
Contact your WSC Sports account manager for your Catalog API key, your rate limit, enabling HTML pages or direct video access, configuring a webhook endpoint, or anything about which rights holders' content you receive.
Updated 15 days ago
