Welcome to The Crimson Market Developers Portal

Build powerful integrations with The Crimson Market API. Create OAuth applications, manage your credentials, and access our comprehensive documentation to bring trading functionality to your platform.

Developers Documentation

TCM OAuth Integration Docs

SDK-backed guidance for @crimsoncorp/oauth-react, plus portal-specific setup details for apps, scopes, and redirect registration.

Streamer Strip Endpoint

Read live streamer strip data from Portal.Service using the same named route shape as navbar, sidebar, and footer.

Local portal docs

Use this endpoint when another service needs to know whether a promoted Twitch stream is live and what message/link should be shown.

The streamer strip API is public read-only chrome data, like the navbar, sidebar, and footer endpoints.

Endpoint

GET /:uiName/streamer-strips/:name

Current production endpoint:

GET https://www.thecrimsonmarket.com/mana/streamer-strips/tcm-streamer-strips

Development endpoint:

GET https://dev.portal.raum.au/mana/streamer-strips/tcm-streamer-strips

The legacy endpoint remains available:

GET /:uiName/streamer-strips

Use the named endpoint for new integrations so the route shape matches:

  • /:uiName/navbar/:name
  • /:uiName/sidebar/:name
  • /:uiName/footer/:name
  • /:uiName/streamer-strips/:name

Response

The endpoint returns an array of streamer strip records.

[
  {
    "_id": "686992883b28a7c6057881f7",
    "text": "New carnival game - Highnoon - $10,410 given away in games!",
    "url": "https://twitch.tv/crimsonlootcarnival",
    "live": false,
    "createdAt": "2026-01-01T00:00:00.000Z"
  }
]

Fields

  • _id: Mongo document id.
  • text: Short message to display in a live streamer strip or banner.
  • url: Destination URL. For Twitch embeds, parse the channel from this URL.
  • live: When true, clients should treat the streamer as live.
  • createdAt: Record creation time.

Client behavior

Recommended behavior:

  1. Fetch GET /mana/streamer-strips/tcm-streamer-strips.
  2. Filter to records where live === true.
  3. Use the first matching record for live strip UI or Twitch embed replacement.
  4. Fall back to the normal static banner, image, or ad slot when no live record exists.

If rendering a Twitch embed, keep the embed muted by default and include the current hostname in Twitch's parent parameter.

Example iframe URL:

https://player.twitch.tv/?channel=crimsonlootcarnival&parent=your-domain.com&muted=true

Caching

Treat streamer strip data as dynamic. The live flag can change without a deploy, so clients should avoid long-lived caching unless they also revalidate frequently.