BOXINGAPI

BoxingAPI support

Answers in seconds. People when you need them.

43 answers on keys, data, billing and assistants, written by the team that runs the API. Search them, or open a ticket and we reply here and by email.

Type to search every answer on this page.

43answers
9topics
UTCevery time
Service statusStatus page
Browse by topic

Where is your question?

9 topics, each a short walk to its answer.

Every answer

Questions people ask

Open one, or search from the top of the page.

Getting started

Your first call in under a minute.

How do I get an API key?

Sign in with Google on the sign-in page and your free key is made at once, in your account. No card, no trial clock. It is the same key you keep if you move to a paid plan later.

What does my first call look like?

Send your key in the Authorization header. This asks for yesterday's results:

curl "https://api.boxingapi.net/v1/results/yesterday" \
  -H "Authorization: Bearer bx_live_YOUR_KEY"

Every answer is JSON, with the data under data and the paging and freshness under meta.

Where is the full list of endpoints?

In the documentation: one page for each endpoint, with its parameters, a live Run button and the same call in four languages.

Is there a sandbox or test mode?

No sandbox: the free key reads real data. Results from yesterday and today, the fights ahead and the current rankings are all real, so what you build on the free key works unchanged on a paid plan.

Which times does the API use?

Every time and date is UTC, in the API, the MCP server and on this site. Daily limits reset at 00:00 UTC.

Keys and limits

Sending your key, rotating it, and what the limits are.

How do I send my key?

In a header, either way works:

Authorization: Bearer bx_live_YOUR_KEY
X-API-Key: bx_live_YOUR_KEY

Never in the address: a key in the query string is refused with 400, because addresses end up in logs.

What are the limits on each plan?
PlanCalls a dayCalls a minuteHistory
Free key5010yesterday and today
Live5,00060the last 365 days
Archive20,000120all of it
Complete100,000300all of it
What happens when I reach a limit?

The API answers 429 and says when it opens again, in the Retry-After header. Nothing is ever charged beyond your plan. Every answer carries X-RateLimit-Remaining and X-Quota-Remaining, so your code can slow down before it gets there.

How do I rotate my key?

From your keys, press Rotate. The new key is shown once, so copy it then. The old key keeps working for 24 hours, so you can change it over without a gap.

My key leaked. What do I do?

Revoke it from your keys: it stops working at once and cannot be brought back. Then make a new one. Revoking is the right move when a key is out in the open; rotating is for routine changes.

Can I have more than one key?

One live key a member, plus a separate key for each assistant you connect through MCP, so you always see what each one used. If you need keys for several apps, open a ticket and tell us what you are building.

Endpoints and data

Bouts, fighters, cards, rankings and the fields in them.

What kinds of boxing are covered?

Professional, amateur, Olympic, exhibition, bare-knuckle and influencer bouts, with women's bouts marked on each one. The kind field says which, and every list endpoint can filter on it.

What does a bout's status mean?

Every bout carries status: completed, scheduled, awaiting_result (its date has passed, no result yet) or result_unknown. Every date served has passed one check: a real day, from 1700 on, and a result never dated in the future.

What are records_agreeing and disputed?

records_agreeing is how many records we hold that agree on the bout. disputed is true for the few bouts where those records split evenly on the result and nothing settles it; everywhere else the most trusted record decides.

Do you have judges' scorecards?

Yes, where the commission published them: each judge by name with their score. Cards follow your plan's history window, and the free key holds them back.

Do you have punch statistics?

Not yet. We publish only what we can check against more than one record, and there is no punch count we can stand behind today. When there is, it arrives on the same bout ids.

What are BXR and BXP?

Our own two tables. BXR is a rating moved by every professional result since 1960: who is best. BXP is a points race over the last two years that only rewards wins over strong opposition: who is on the best run. Both are published every month, men and women apart.

How do paging and large lists work?

Lists return 50 rows by default and up to 200 with per_page. Pass meta.next_cursor back as cursor for the next page, until it comes back null. A per_page above 200 is read as 200.

Freshness and history

How quickly results arrive and how far back they go.

How fresh is the data?

Results reach the API within about an hour of being published. Prices on upcoming fights are read every hour through fight week, and ranking lists arrive as each body publishes them. Every answer says when its data was read.

How far back does it go?

Every bout we hold, back to the oldest records on file, with ranking lists from 1960 and opening and closing prices from 2016. Full history opens on the Archive plan; Live reaches back 365 days.

How far ahead are upcoming fights?

The next 7 days by default and up to 30 with days, each with its card, venue and, on Complete, its prices.

A result looks wrong. What now?

Open a ticket with the bout's id and what you believe is right, and where you saw it. We check it against every record we hold and correct it on the same id, so your stored copy lines up on its next read.

Errors

What each error means and what to do about it.

I get 401 unauthorized.

The key is missing, mistyped, revoked, or a rotated key past its 24 hours. Check the header name and that the key starts bx_live_, then compare it with the one in your account.

I get 403 on an endpoint.

That endpoint or field sits on a higher plan. The answer names the plan that has it, so you can decide. On the free key, held-back fields come back as null with a note instead of an error, so your code keeps working.

I get 400 bad_request.

A parameter is out of shape: a date not written YYYY-MM-DD, a cursor that is not one of ours, or a key sent in the address. An unknown parameter is refused with 422 and the list of the ones that endpoint takes.

I get 500 or a timeout.

That is on our side and it is logged. Try again after a moment; if it repeats, the status page shows whether something is known, and a ticket with the call and its time reaches us directly.

Where are all the error codes?

On Errors and limits in the documentation, with each code, its meaning and an example answer.

Billing and plans

Paying, changing plan, cancelling and refunds.

How much do the plans cost?

Live is $29 a month, Archive $79 and Complete $149, in US dollars. Each has a yearly price that costs ten months instead of twelve. The pricing page sets them side by side.

Can I change plan later?

Any time, from your billing page. Moving up starts at once with the difference charged to the day; moving down takes effect at the end of the period you paid for. Your key stays the same.

How do I cancel?

From your billing page. The plan runs to the end of the period you paid for, then your key moves to the free plan. Nothing is deleted.

Do you refund?

Not as standard: a plan runs to the end of its period. When the mistake is ours, a double charge or a fault we could not fix, we refund. Refunds are asked for through the refund form, never by email.

Who will I see on my card statement?

Card charges appear as DEVELOPERDATA.NET. Billing questions: https://developerdata.net/support?tab=charge

Where are my invoices?

On your billing page, under Invoices and card, where you can also change the card.

MCP and assistants

Claude, ChatGPT and any assistant that speaks MCP.

Can I use it with Claude or ChatGPT?

Yes, on every plan. Add the connector and sign in here; the assistant then reads fighters, bouts, cards, rankings, upsets and upcoming fights from the same data as the API. The MCP page walks through it.

Does an assistant's call count on my plan?

The same as an API call: one tool call is one call, on its own key listed in your account, so you always see what it used.

What is the MCP address?

https://boxingapi.net/mcp, with your key or the connector's sign-in. Any client that speaks MCP over HTTP can use it.

The assistant says it cannot reach the data.

Check the connector is signed in and that the plan holds what was asked: an assistant on the free key gets the same held-back fields as the API, with a note naming the plan. If it still fails, a ticket with the question you asked gets to the bottom of it.

Webhooks

Being told when results, fights and lists change.

What can webhooks tell me?

A result arriving, a fight added to or taken off a card, and a ranking list updated. Each delivery is signed in X-BoxingAPI-Signature with the secret shown when you add the webhook, so you can check it came from us. Webhooks open on Live and above.

How do I add one?

From your account, add the address that should receive them and choose the events. A test delivery sends a real recent event so you can check your handler.

What if my endpoint is down?

A delivery that is not answered with success is tried again, and every attempt shows in your account with the answer your endpoint gave, so you can see what was missed and when it got through.

Account and privacy

Signing in, your data and deleting your account.

How do I sign in?

With Google, from the sign-in page. There is no password to remember or reset.

How do I delete my account?

From your account, at the bottom. A paid plan is cancelled, your keys stop working at once, and your details are removed. The privacy page says what is kept and for how long.

Who runs BoxingAPI?

DeveloperData.net, Empire Tower, Bangkok, Thailand. The terms and privacy page name the company in full.

Nothing here matches that. Open a ticket and we will answer it, and add it here.

Not here?

Open a ticket: the team answers here and by email, and adds the answer to this page.

Open a ticket