Prerequisites
The connector should already be set up, with a Connector Profile and a Linked Account. See Getting Started on the BALLDONTLIE connector page.Create the webhook endpoint
BALLDONTLIE delivers events to a webhook endpoint you register in its dashboard. Create one endpoint pointed at your StackOne Native Webhook URL and subscribe it to the NBA events you want.
Retrieve your StackOne Native Webhook URL
The Native Webhook URL is generated once an account has been linked. You will paste it into BALLDONTLIE in a later step.
- Open the linked account in StackOne.
- Copy the value from Native Webhook URL.
Sign in to BALLDONTLIE
Open the BALLDONTLIE dashboard and sign in with the account whose API key you connected to StackOne. Enter your email and password on the WELCOME BACK screen, then click Submit.

Open the Webhooks page
Click Webhooks in the sidebar. The page shows your Endpoints and Deliveries This Month counts against your plan’s allowances.
- A Free plan allows 0 / 1 endpoints and 0 / 100 deliveries a month.

Start creating an endpoint
Click Create Endpoint in the top right. On an account with no endpoints yet you can also click Create Your First Endpoint in the middle of the page — both open the same dialog.

Enter the webhook URL
In the Create Webhook Endpoint dialog, paste the Native Webhook URL you copied into URL. In Description (optional), type a name you will recognise later, for example StackOne.

Select the event types
Under Event Types, click NBA to expand the list, then tick the events you want delivered. Event types your plan cannot receive are greyed out with a padlock.
- On a Free plan only nba.game.started and nba.game.ended can be selected.
- Select all ticks every event type your plan allows.
- BALLDONTLIE delivers only the events you tick here.

Create the endpoint
Check the count beside Event Types matches what you selected, then click Create.

Copy the signing secret
The Webhook Created dialog shows the Signing Secret once. Click Copy to store it somewhere safe, then click Done.
- The Signing Secret is only displayed once and cannot be retrieved later. If you lose it, use Rotate Secret on the endpoint to issue a new one.
- StackOne does not need this secret. It authenticates each delivery using the token already in the Native Webhook URL, and BALLDONTLIE states that verifying webhook signatures is optional but recommended.

Confirm the endpoint is receiving events
Check the endpoint is active and that BALLDONTLIE can reach StackOne before relying on live events.
Check the endpoint appears as Active
The endpoint is now listed on the Webhooks page with an Active badge, its description, and the number of events it is subscribed to. The Endpoints count rises to 1 / 1 on a Free plan, and Create Endpoint is disabled with a Upgrade to ALL-ACCESS link beside it.

Review the endpoint configuration
Click the endpoint to open it. The Overview tab shows its URL, when it was Created, its Event Types, and the Signing Secret section with Rotate Secret. Expand the sport under Event Types to confirm which events are subscribed.

Verify delivery with a test event
Click Actions in the top right and choose Send Test to confirm StackOne accepts deliveries. The same menu holds Edit, Disable and Delete.
- The test payload is not an NBA event — it carries a type of
test. StackOne acknowledges it so the check succeeds, but it produces no sandbox or game record.

Check the delivery history
Open the Deliveries tab to see each attempt, filtered by All sports and All statuses. Use it to tell a delivery problem from a mapping one when events are not arriving.
- A delivery is retried after 30 seconds, 2 minutes, 10 minutes and 30 minutes. A Free plan makes 3 attempts in total and ALL-ACCESS makes 5.
- An endpoint is disabled automatically after 2 consecutive deliveries that use up every attempt. Re-enable it from the Actions menu.
- Delivery history is kept for 3 days on a Free plan and 30 days on ALL-ACCESS.

Available webhook events
The following NBA events can be enabled. Only events ticked in BALLDONTLIE are delivered — nothing is sent for event types that are not subscribed. nba.game.started and nba.game.ended are available on every plan; the rest require ALL-ACCESS.
Enable game events
Events covering the state of a game. Each reports the game.
- Game Started (
nba.game.started) — Fired when a game begins. Available on a Free plan. - Game Ended (
nba.game.ended) — Fired when a game reaches final. Available on a Free plan. - Game Period Ended (
nba.game.period_ended) — Fired when a period or quarter ends. Requires ALL-ACCESS. - Game Overtime (
nba.game.overtime) — Fired when a game enters overtime. Requires ALL-ACCESS.
Enable player events
Events covering individual plays. Each reports the player, along with the game and the play itself. All require ALL-ACCESS.
- Player Scored (
nba.player.scored) — Fired when a player scores. - Player Rebound (
nba.player.rebound) — Fired when a player gets a rebound. - Player Assist (
nba.player.assist) — Fired when a player records an assist. - Player Steal (
nba.player.steal) — Fired when a player records a steal. - Player Block (
nba.player.block) — Fired when a player records a block. - Player Foul (
nba.player.foul) — Fired when a player commits a foul. - Player Turnover (
nba.player.turnover) — Fired when a player commits a turnover.
Enable injury events
Events covering the injury report. Each reports the player, because the injury itself carries no identifier. All require ALL-ACCESS.
- Injury Created (
nba.injury.created) — Fired when a player is added to the injury report. - Injury Updated (
nba.injury.updated) — Fired when a player’s injury details change. - Injury Cleared (
nba.injury.cleared) — Fired when a player is removed from the injury report.