Build with Playbook.

Public content feeds and embeddable widgets. Free under CC0, with no API key.

The feeds

Structured content, ready to read.

Sizes below are measured from the files themselves. Each name links to the live JSON.

Reading the site with an agent? Start with the agent guide or the page index and Markdown copies. Product terms still apply.

Scroll sideways for all columns. With a keyboard, focus this table area and use the left and right arrow keys. Tab moves to the next control.

Content feeds, descriptions, and file sizes
FeedWhat it containsSize
API index ↗

/api/index.json

The manifest: every endpoint, the license, and the brand tokens to replace.3.8 KB
Messages ↗

/api/messages.json

Draft copy by pillar and touchpoint, with usage conditions, token lists and character limits.54.3 KB
Myth-busters ↗

/api/myths.json

English social-card drafts, articles and quizzes, with stated conditions, source links and edition metadata.64.8 KB
Calls to action ↗

/api/ctas.json

Buttons and links grouped by function, with pairing hints and character limits.35.1 KB
Campaigns ↗

/api/campaigns.json

Draft campaign briefs: schedule, captions, an email, and suggested measures to review.138.5 KB
Asset manifest ↗

/api/assets.json

A catalog of logos, icons, collateral, and photography with URLs, formats, and sizes.68.8 KB
Game guides ↗

/api/games/blackjack.json

One guide per game: how it works, the key terms, and the real odds. One file each.207.1 KB

Myths, translated

All 20 quizzes are available in Japanese, Simplified Chinese and Arabic, using the same IDs and correct-answer positions as the English edition. Articles and social-card drafts are English only. Arabic displays right to left. The revised translations still need native-speaker review.

Game guides, one per game

One JSON file per game under /api/games/. Rules, key terms, and the real odds.

Embeddable widgets

One script, one tag for each widget.

Each widget is a self-contained Web Component. Load the bundle once, then add the tag for any widget you need. Shadow DOM isolates the widget styles from the rest of your page.

<playbook-helpline>

Helpline

A support banner or compact badge with phone, text and chat links. This snippet uses the US NCPG reference; select and verify the appropriate local service before publishing.

number
displayed phone number; no default service is assumed
dial-number
optional numeric phone destination overriding display text; no country code is inferred
text-number
SMS number
text-dial-number
optional numeric SMS destination overriding display text
chat-url
full HTTPS chat destination; invalid or missing channels are not links
label
banner label text
hours
optional verified service hours; no 24/7 availability is assumed
lang
contact labels in en, ja, zh-CN or ar
theme
dark, light, or minimal
mode
banner or badge
Embed
<script src="https://www.playbookrg.com/widgets/playbook-widgets.js"></script>

<playbook-helpline
  number="+18006973738"
  text-number="+18006973738"
  chat-url="https://www.ncpgambling.org/chat/"
  label="US NCPG 1-800-MY-RESET · 24/7"
  mode="banner"
  theme="dark"
></playbook-helpline>

<playbook-myth>

Myth card

English myth cards with conditions and sources, or translated questions with a revealable answer. Filter by category or pin a stable myth ID.

api-url
URL of the myths feed
category
filter, e.g. slots
myth-id
pin one myth by its stable numeric ID
theme
dark or light
lang
optional interface language: en, ja, zh-CN or ar; content language comes from the chosen feed
Embed
<script src="https://www.playbookrg.com/widgets/playbook-widgets.js"></script>

<playbook-myth
  api-url="https://www.playbookrg.com/api/myths.json"
  theme="dark"
></playbook-myth>

<playbook-odds>

Odds card

A game card with scoped figures, rule assumptions, and source links. Its embedded data needs no additional API request once the script loads.

game
slots, blackjack, roulette, sports-betting, video-poker, baccarat, craps, bingo, lottery, or horse-racing
theme
dark or light
show-bets
include this attribute to expand examples and assumptions initially; omit it to start collapsed
Embed
<script src="https://www.playbookrg.com/widgets/playbook-widgets.js"></script>

<playbook-odds game="blackjack" theme="dark"></playbook-odds>

Theming

Restyle every widget with the color variables.

Set the Playbook color variables on any ancestor and every widget picks them up. No rebuild, no forked CSS.

CSS
:root {
  --pb-color-primary: #1B2838;   /* surfaces */
  --pb-color-secondary: #10B981; /* highlights */
  --pb-color-accent: #FF6B35;    /* stats */
}

Live demo

Not a screenshot. The real widget.

The odds card below is the same <playbook-odds> component from the snippet above, running on this page. Pick a game.

Loading the widget…

This is the actual <playbook-odds> widget, running on this page. Its width and colors can adapt to your own site.

Once the script loads, its embedded game data needs no additional API request. On your site you would add it with a single tag and the shared bundle, exactly as shown in the widgets section.

The card uses the same scoped figures as this site’s game comparison and guide summaries. Each example names what the number measures, its assumptions, and its source. Open “Examples and assumptions” to see the relevant wagers or rule variants.

Data examples

Preview the data before you fetch it.

One sample object per feed, taken from the real files and trimmed for length. Expand a row to read it.

Message/api/messages.json

One entry from messages[].

{
  "id": "O-1",
  "section": "Pillar messages",
  "subsection": "Open — Transparency and odds literacy",
  "message": "Game figures need their rules. Check the wheel, paytable, price and strategy before comparing the numbers.",
  "context": "Campaign headline, landing page lead",
  "tone": "Confident / Informative",
  "tier": 1,
  "maxChars": 120,
  "event": null,
  "tokens": [],
  "pillar": "open",
  "characterCount": 106,
  "conditions": [
    "Adapt and review this draft for the stated audience, placement and jurisdiction. Check the final length after replacing tokens."
  ],
  "edition": "2026-09-06"
}
Myth/api/myths.json

One entry from myths[], with all of its formats.

{
  "id": 1,
  "category": "Slots & Electronic Gaming",
  "title": "The Hot Streak",
  "gameType": [
    "slots",
    "…and 1 more"
  ],
  "bias": [
    "clustering-illusion",
    "…and 1 more"
  ],
  "pillar": "open",
  "socialCard": {
    "myth": "A winning streak means the next round is more likely to win.",
    "fact": "In an independent-round model with unchanged rules and state, previous wins do not change the next round’s probabilities. A retained feature…",
    "stat": "Streaks do not change an unchanged independent-round model."
  },
  "articleExplainer": "Several wins can make the next wager feel more promising. That feeling is not a calculation of the next result. If each paid round independe…",
  "quiz": {
    "question": "Four rounds won. In a model with independent rounds and unchanged settings and state, what happens to the next round’s probabilities?",
    "options": [
      {
        "label": "They improve because of the streak.",
        "correct": false
      },
      "…and 3 more"
    ],
    "feedback": "Independence and unchanged conditions mean the next distribution is unchanged. That statement is conditional; it does not cover every retain…"
  },
  "anchor": "myth-1-the-hot-streak",
  "href": "/brand/content/myths/#myth-1-the-hot-streak",
  "edition": "2026-09-06",
  "sources": [
    {
      "id": "slotRtp",
      "title": "Gambling Commission: RTP, random and compensated machines",
      "href": "https://www.gamblingcommission.gov.uk/public-and-players/guide/return-to-player-how-much-gaming-machines-payout",
      "kind": "Regulator explanation; Great Britain",
      "checked": "2026-09-06"
    },
    "…and 1 more"
  ],
  "relatedGuides": [
    {
      "slug": "slots",
      "title": "Slots guide",
      "href": "/brand/content/games/slots/"
    }
  ]
}
Call to action/api/ctas.json

One entry from sections[].ctas[].

{
  "id": "EL-1",
  "label": "Take the quiz",
  "maxChars": 14,
  "context": "Game IQ quiz, odds quiz, myth-busting quiz",
  "tone": "Playful / Witty",
  "pairWith": [
    "S-3",
    "OB-3"
  ],
  "tokens": [],
  "characterCount": 13,
  "conditions": [
    "Use only when the linked destination performs the named action for this reader. Check final text length and translated layout."
  ],
  "edition": "2026-09-06"
}
Campaign/api/campaigns.json

One entry from campaigns[].

{
  "id": 1,
  "name": "Slots Myths Week",
  "theme": "Six slot questions about randomness, awards and game settings.",
  "tagline": "Read the rules behind the reels.",
  "duration": "Two weeks; 10 scheduled placements",
  "pillar": "open",
  "audience": [
    "Adult audience: slots players",
    "…and 2 more"
  ],
  "mythsUsed": [
    1,
    "…and 5 more"
  ],
  "schedule": [
    {
      "day": "Mon 1",
      "channel": "Instagram / Facebook",
      "content_type": "Myth card",
      "myth": "1",
      "copy_source": "[Myth 1: The Hot Streak](/brand/content/myths/#myth-1-the-hot-streak) — use the current social-card draft, retaining its…",
      "asset_format": "1080 x 1080",
      "template_reference": "`collateral/render/card-1a` format",
      "productionNote": "Template references identify layouts only. Produce and review the asset with this edition’s copy; an older image is not …"
    },
    "…and 9 more"
  ],
  "captions": [
    {
      "label": "Myth 1 post",
      "text": "In an independent-round model with unchanged rules and state, previous wins do not change the next round’s probabilities…"
    },
    "…and 6 more"
  ],
  "email": {
    "subject": "Six questions about how slots work",
    "previewText": "RTP, prize frequency and the conditions behind independent rounds.",
    "bodyStructure": [
      "Hero: newly produced card using current Myth 1 copy.",
      "…and 3 more"
    ]
  },
  "kpis": [
    "Resource or explanation opens divided by campaign-link activations, using documented event definitions.",
    "…and 3 more"
  ],
  "quiz": [
    {
      "mythId": 1,
      "href": "/brand/content/myths/#myth-1-the-hot-streak",
      "question": "Four rounds won. In a model with independent rounds and unchanged settings and state, what happens to the next round’s p…",
      "options": [
        {
          "label": "They improve because of the streak.",
          "correct": false
        },
        "…and 3 more"
      ],
      "feedback": "Independence and unchanged conditions mean the next distribution is unchanged. That statement is conditional; it does no…"
    },
    "…and 5 more"
  ],
  "guideQuizzes": [],
  "measurementNote": "Proposed measures, not collected results or promised targets. Establish a baseline and approved measurement method befor…",
  "productionNote": "Draft brief for adaptation. Produce current artwork, verify destinations and local disclosures, and review every format …",
  "anchor": "campaign-1-slots-myths-week",
  "href": "/brand/content/campaigns/#campaign-1-slots-myths-week",
  "edition": "2026-09-06",
  "tokens": []
}
Asset/api/assets.json

One asset from categories.*.assets[].

{
  "id": "logo-horizontal-full-color",
  "filename": "logo-horizontal-full-color.svg",
  "url": "/tools/playbook/brand-book/assets/logos/logo-horizontal-full-color.svg",
  "sourceUrl": "visual-identity/logo/primary/logo-horizontal-full-color.svg",
  "format": "svg",
  "fileSize": 5542,
  "category": "logos",
  "variant": "primary",
  "colorMode": "full-color",
  "usage": "Primary logo for main branding",
  "sha256": "8b74dc181b1461a7a7ecf75d09f074b1a1ea971e63b571bc4ac261dbdc85bc7d",
  "dimensions": {
    "width": 259,
    "height": 54
  }
}
Game guide/api/games/blackjack.json

The blackjack guide (sections and terms truncated).

{
  "meta": {
    "game": "blackjack",
    "generated": "2026-09-06",
    "version": "0.1.0",
    "source": "content/game-guide-revisions/blackjack.md",
    "revision": {
      "date": "2026-09-06",
      "guideHref": "/api/games/blackjack.md",
      "quickReferenceHref": "/api/games/quick-reference/blackjack.md",
      "source": "content/game-guide-revisions/blackjack.md",
      "guideSha256": "12f2808b13c192ea8ef5443cc84331ad4a9ca7739b7311afab2c8f9386c0b69a",
      "quickReferenceSha256": "477116f21b4d868aac90091a592f9d638a959a145a046ad07142ccf0c250765f"
    },
    "sourceSnapshot": {
      "game": "blackjack",
      "generated": "2026-03-07T03:29:15.142Z",
      "version": "0.1.0",
      "source": "how-to-play/blackjack.md",
      "jsonSha256": "83a3360e27cc811833d9366ac88ad8a4b7931ef20f9d1536d792193e18e0427d",
      "markdownSha256": "320741723d3797d24a7051f903108d53423060c8cafe964ee423314c9d636e90",
      "quickReferenceSha256": "d49aa602033e1247f6d4951ecebb002d21459d6c48825c6acfae81356b210029"
    }
  },
  "slug": "blackjack",
  "title": "How to Play: Blackjack",
  "summary": "In the conventional game described here, a hand that has not busted wins by beating the dealer's total or surviving a de…",
  "frontmatter": {
    "content_type": "game-guide",
    "title": "How to Play: Blackjack",
    "pillar": [
      "open"
    ],
    "tier": 1,
    "tone": [
      "confident-informative"
    ],
    "reading_level": "grade-6-8",
    "game_type": [
      "blackjack"
    ],
    "audience": [
      "general"
    ],
    "channel": [
      "blog",
      "…and 2 more"
    ],
    "cultural_profile": {
      "voice": "peer",
      "framing": "individual",
      "humor": "irreverent",
      "directness": "blunt",
      "comfort": "open"
    },
    "presentation": {
      "odds_format": "american",
      "currency": "usd",
      "sports_culture": null,
      "language": "en-us"
    },
    "adaptation_status": "playbookrg-revision",
    "adaptation_notes": "Playbook RG educational revision. Check the stated game rules, calculations, source scope and local requirements before …",
    "last_updated": "2026-09-06"
  },
  "sections": [
    {
      "heading": "The 30-second version",
      "content": "> In the conventional game described here, a hand that has not busted wins by beating the dealer's total or surviving a …"
    },
    "…and 6 more"
  ],
  "keyTerms": [
    {
      "term": "Natural blackjack",
      "definition": "Initial unsplit ace plus a ten-value card under this guide's conventional rules."
    },
    "…and 19 more"
  ],
  "quiz": [
    {
      "question": "A winning natural pays 3:2 on a $10 stake. What is returned, and how does it compare with 6:5?",
      "options": [
        {
          "label": "$15 total; the returned stake is already included in 3:2.",
          "correct": false
        },
        "…and 3 more"
      ],
      "feedback": "The 3:2 award gives $15 net winnings plus the $10 stake. The 6:5 award gives $12 net plus the stake. The difference is $…",
      "source": "Own arithmetic from the stated net payout ratios; [rules reference](https://wizardofodds.com/games/blackjack/basics/)."
    },
    "…and 2 more"
  ],
  "socialSnippets": [
    {
      "text": "Read the payout before the first hand.\n\nOn a winning $10 natural, 3:2 earns $15 net and 6:5 earns $12. Both also return …",
      "context": null,
      "hook": "Read the payout before the first hand.",
      "fact": "On a winning $10 natural, 3:2 earns $15 net and 6:5 earns $12. Both also return the original stake.",
      "stat": "$3 less on that paid natural; the full game still needs its complete rules."
    },
    "…and 2 more"
  ]
}