Skull Book
White-label sportsbook

A whole sportsbook inside your website.

Paste one tag on your page and your players can sign up, deposit and bet on 20 sports, under your brand and on your own domain. Odds, settlement and risk control run on our side.

20sports, live and pre-match
184markets with automatic settlement
3wallet modes
pt en esin the widget, dashboard and API

01Sports

From football to CS2

20 sports, live and before kick-off, with the score and the clock right next to the odds. In e-soccer and a few others, players watch the match without leaving the iframe.

Football138 markets

Football, futsal, virtual football and e-soccer.

Court26 markets

Basketball, handball, volleyball and e-basketball.

Racket11 markets

Tennis, table tennis and e-tennis.

Ice18 markets

Ice hockey and e-hockey.

Esports40 markets

CS2, League of Legends, Dota 2, Valorant, Rainbow Six, Arena of Valor and Honor of Kings.

02Wallet

The player's balance lives wherever you want

You pick one of three modes in the dashboard. If you already run a casino, mode 2 keeps everything in a single wallet.

your siteSkull Bookthe balancenetwork call
Mode 1

We hold the wallet

The balance sits in our double-entry ledger. Players deposit and withdraw by Pix inside the iframe, through your gateway, so the money goes in and out of your account. Every day the ledger is checked against the statement.

A good fit if you'll run sports only.

Mode 2

The wallet is yours

Every bet debits your wallet and every payout lands in it. Balance and deposits stay on your own screens. If the debit isn't confirmed, the bet is refused and we send the rollback.

For operators who already run a casino.

Mode 3

You move the balance across

Your platform sends balance to the sports wallet and pulls it back whenever it wants. You don't have to build any API.

To get started without touching the wallet you have today.

03Settlement

Every market pays out by its own rule

On a split Asian line, half the stake goes on each line. That's why a draw can refund one half and lose the other. Period markets use the period score, and a market without a written settlement rule never goes on sale.

A home bet on −0.25, which is half on 0 and half on −0.5. The match ends 1 : 1 and the bet is a half loss. On +0.25, the same score is a half win.
  • Win
  • Half win
  • Push
  • Half loss
  • Loss

04Platform

Everything a sportsbook needs to operate

From the first odd to the player's withdrawal.

Offer and odds

  • Score, clock and stats next to the odds, live and pre-match.
  • Live video inside the iframe for e-soccer and other sports.
  • Expired odds are refused, and live bets have their own limit.
  • If the feed falls behind, the market suspends itself.

Bets

  • Singles and multiples, with each leg settled by its own match.
  • Legs that depend on each other are blocked in the slip.
  • Configurable delay before a live bet is accepted.
  • If the connection drops mid-click, the bet isn't placed twice.

Settlement

  • 184 markets settled automatically, Asian lines and period results included.
  • Half wins, half losses and pushes follow each market's rule.
  • If a result changes later, the player gets a notice.
  • Every re-settlement records who changed it, when and why.

Player account

  • Sign-up inside the widget, or login with the account they already have on your site.
  • KYC sent through the iframe and approved by you in the dashboard.
  • Deposits by Pix or crypto, depending on the payment provider you connect.
  • Deposits require the holder's CPF, and a Pix paid by a third party is held.

Money

  • Double-entry ledger, with both legs on every movement.
  • Pix deposits are credited server-side, even if the player closes the page.
  • When in doubt, a withdrawal is never re-sent and the PSP statement decides.
  • Daily reconciliation between ledger and statement, with an alert when they don't match.

Risk

  • Caps per event, market and player, which you edit in the dashboard.
  • Exposure updated while the match is on.
  • Manual suspension of a match or a market.
  • Risk profile per player.

Responsible gaming

  • Deposit, loss and stake limits set by the player.
  • Self-exclusion with a deadline that can only be extended.
  • 18+ notice, cookie banner and legal pages ready to go.
  • Documents kept for a set period, deleted when it ends, with an access log.

Support and brand

  • Help center inside the widget, with a queue and response times in the dashboard.
  • Automatic answers to the most common questions.
  • Message center, banners and promo cards for your campaigns.
  • 15 themes and 60 headers so the widget looks like your brand.

Operator dashboard

  • GGR, balance, exposure, tickets, withdrawals and KYC, all searchable.
  • Withdrawal approval, balance adjustments and a full profile for each player.
  • Separate owner and operator access, with 2FA.
  • Audience metrics for the widget.

05Day to day

When something goes off script

Capped exposure

You set the limit per event, market and player. When exposure reaches the cap, that market's offer is suspended.

Session signed by you

When a player logs in with their account on your site, your server signs the session with a key that never leaves it.

One alert per change

The alert arrives the moment something changes state, just once. Uncertain withdrawals, stalled webhooks and mismatched reconciliations each have their own.

06Integration

One tag and one endpoint

We take care of the rest. There's a sandbox with test keys and data so you can see it all working first.

  1. Register your domain and key

    In the dashboard. The private key stays on your server.

  2. Publish a session endpoint

    It confirms who is logged in and signs. Your user base stays with you.

  3. Paste the tag on the page

    The widget opens with your colours, your markets and the player's language.

Every money movement sends a signed webhook to your system, retried until you confirm you got it.

Read the integration contract
index.html
<div id="skull-widget"></div>
<script src="https://embed.skull-api.xyz/YOUR_BOOK/widget.js"></script>
<script>
  SkullBook.init({
    container: 'skull-widget',
    publishableKey: 'pk_YOUR_KEY',
    locale: 'en',
    getHandoff: function (frameId, origin) {
      return fetch('/api/skull/handoff', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ frameId, origin })
      }).then(r => r.json()).then(j => j.handoff);
    }
  });
</script>

07Contact

Let's talk

Tell us whether you already operate and whether you run a casino. That's enough for us to suggest a wallet mode and a launch timeline.

Rather use email? Write to contato@skull-api.xyz

We reply by email and don't use your contact for anything else.