Run sandbox requests as many times as you want. They never charge anyone, never accrue real revenue, never appear in production analytics, and always return a fill from a small rotation pool. When you're ready, replace the sandbox credentials with the live ones from your dashboard.
1. Pick your integration
One publisher account, four doors:
| You're building | Use this | Install |
|---|---|---|
| An MCP server (Claude Desktop, Cursor, Cline tools) | Lumi SDK for MCP | npm install @boostbossai/lumi-mcp |
| A web-based AI app or chat UI | Lumi SDK script tag | <script src="https://boostboss.ai/lumi.js"> |
| A Chrome / Edge / Firefox extension, Electron, Tauri | Lumi SDK for browser extensions | npm install @boostbossai/lumi-sdk |
| A Discord / Telegram / Slack bot | Lumi API for Bots | Server-side POST /v1/ad-request |
2. Fire one sandbox request
Pick the snippet that matches your stack. Each one fires exactly one real ad request against the live Boost Boss backend using the sandbox credentials pub_test_demo / sk_test_demo.
MCP (Node)
// npm install @boostbossai/lumi-mcp import { LumiMCP } from '@boostbossai/lumi-mcp'; const lumi = new LumiMCP({ publisherId: 'pub_test_demo', apiKey: 'sk_test_demo', debug: true, }); const ad = await lumi.fetchAd({ context: 'user asking about deploying a fastapi app' }); console.log(ad); // always non-null in sandbox
JS Snippet (browser)
<!-- paste into your <head> --> <script src="https://boostboss.ai/lumi.js" data-publisher="pub_test_demo" data-debug="true" ></script> <!-- paste where you want the ad to render --> <div data-bb-slot="sidebar" data-bb-context="user is reading docs"></div>
NPM SDK (browser extension / Electron / React)
// npm install @boostbossai/lumi-sdk import { Lumi } from '@boostbossai/lumi-sdk'; const lumi = new Lumi({ publisherId: 'pub_test_demo' }); await lumi.render('#ad-slot', { format: 'sidebar', context: 'user is reading docs' });
REST API (any language)
curl -X POST https://boostboss.ai/v1/ad-request \ -H 'Authorization: Bearer sk_test_demo' \ -H 'Content-Type: application/json' \ -d '{"publisher_id":"pub_test_demo","context":"user is reading docs","format":"native"}'
3. See it work
Every sandbox response includes "sandbox": true in the auction block, and the creative headline starts with [Sandbox] so you can't accidentally ship sandbox traffic to real users. You'll get back:
- Creative — headline, subtext, media URL, CTA label + URL.
- Disclosure label — always present, never optional.
- Tracking URLs — for impression, click, close, video_complete beacons.
- Auction metadata — auction_id (use it later to debug in the operator console).
4. Go live
- Sign up — instant; you get a
pub_xxxID and a bearer token. - Swap
pub_test_demo/sk_test_demofor your live values. - Ship.
Credits are automatic: every impression you host mints 1 Credit, visible in your console in real time. Spend Credits to promote your own product across the network — see your Publisher Agreement for the full terms.
When things go wrong
Three places to look, in order:
- Your publisher dashboard — the integration badge tells you whether we're seeing requests from your credentials at all. Green within 30 seconds of your first call = working. /publish/dashboard.
- Sandbox toggle in the integration test panel — if your live key returns "No ad," sandbox will return a fill; that distinguishes "your integration is fine, but no boost matches your context" from "your integration is broken."
- Email support@boostboss.ai with the auction_id — we'll trace it through the operator console (eligibility funnel, candidates, outcome, beacon timing) and get back to you with a specific answer.