Legal
Last updated 10 September 2026
apihorseracing.com sells access to a database of historical and current horse racing results. You pay for a plan, you get a key, and you use the data in whatever you are building.
We are not a betting service. We take no bets, publish no selections and offer no view on any race. Nothing the API returns is advice.
The rest of this page is the detail. It is written to be read, because a policy nobody understands protects nobody.
These terms are an agreement between you and apihorseracing.com, the operator of apihorseracing.com and the API at api.apihorseracing.com.
"You" means the person or organisation using the service. If you are agreeing on behalf of an organisation, you confirm you may bind it, and "you" then means that organisation.
Creating an account or a key means you accept these terms. If you do not accept them, do not create one.
You need an account to hold a key. Accounts are created by signing in with Google, and we take your email address and name from that sign-in and nothing else.
One account is for one person or one organisation. Do not create several accounts to get around a plan limit; that is grounds for suspension.
Keep the email address on your account current. It is how we tell you about billing, about changes to the API, and about anything that would affect what your key can do.
You must be old enough to enter a contract where you live. If your use of racing data is regulated where you are, complying with that is your responsibility rather than ours.
One key per account. It identifies you on every request, and its entitlement is read live from your plan on each call, so an upgrade takes effect immediately and needs no reissue.
Keep it secret. Every request made with your key is treated as made by you, and counts against your quota whoever actually made it. Do not put it in client-side code, a public repository or a mobile app binary.
If it leaks, rotate it from your account page. The old key stops working at once.
Do not share a key across organisations, resell access to one, or operate a service whose purpose is to relay our data to third parties under your key.
Prices are shown on the pricing page and are exclusive of any tax that applies where you are. Payment is taken by Stripe; we never see or store your card details.
A paid plan renews automatically at the end of each period at the rate then in force, until you cancel. Monthly plans renew monthly, annual plans annually.
Upgrading takes effect at once, and the difference is charged pro rata. Downgrading takes effect at the end of the period you have already paid for, so you keep what you bought until it runs out.
If a payment fails we do not cut you off immediately. Stripe retries for several days and your plan continues while it does. If it never succeeds, the account returns to the free plan rather than being disabled, so your key keeps working on a narrower window.
We may change prices. Existing subscribers get at least thirty days' notice by email, and a change never applies to a period already paid for. If you do not want the new price, cancel before it takes effect.
Cancel from your account page, in two clicks, with no email and no phone call.
Your plan runs to the end of the period you have paid for and does not renew. We do not pro-rate a partial period on cancellation; the refund terms below are separate and come first where they apply.
Cancelling does not delete your account. Your key drops to the free plan and keeps working. Ask us if you want the account removed entirely.
We do not refund subscriptions. You may cancel at any time and your plan runs to the end of the period already paid for; we do not pro-rate or refund a part-used period.
A free key exists so that you can test the data against your own requirements before paying anything. It reads the same production database on a delayed window, does not expire, and needs no card.
Three narrow exceptions, all of them our fault rather than yours. Where a charge is our mistake — a double charge, or a charge after you cancelled — we return it. Where the service is unusable for a prolonged period through our fault, we extend your plan by the time lost. And where we close your account for a reason that is not your fault, we return the unused part, because there is no plan left to extend.
None of this removes any right you have under consumer law where you live. Where the law gives you more than this clause does, the law applies.
The refunds page sets this out in full.
A free key is not a trial and does not expire. It reads the same production database, held back to a delayed window, and cannot reach the computed statistics endpoints.
We may change what a free key reaches, or withdraw it, with reasonable notice. We would not do that to force an upgrade, but we are not promising it forever either.
Subject to these terms, we grant you a non-exclusive, non-transferable, revocable licence to use the data for the duration of your subscription.
Use it in your own products, models, research, analysis and reporting, including commercially.
Display it to your own users, whether that is a website, an application, a spreadsheet or a model output.
Cache and store it. A settled race never changes, so there is no requirement to re-fetch anything on a schedule, and no expiry on what you have already retrieved.
Publish figures derived from it, including in articles and papers. Attribution is welcome but not required.
Redistribute the raw data as a competing feed, or resell bulk access to it. Building a product on the data is fine; becoming a second source of it is not.
Reconstruct the archive systematically in order to replace your subscription with a copy of it, whether by exceeding your plan limits, running several accounts, or sharing keys.
Present the data as official or authoritative. It is collected, and the coverage page is candid about where it is thin.
Use it to build a service that offers betting advice, tips or selections while implying those come from us, or in a way that suggests we endorse an outcome.
Use it unlawfully, or in a jurisdiction where holding or processing racing data is prohibited.
Attempt to breach, probe or degrade the service, or to access data your plan does not reach. Responsible security reports are welcome and will not be treated as a breach.
Each plan carries a per-minute rate and a monthly quota, both published on the pricing page and readable at any time from your account and from the account endpoints.
Exceeding the rate returns a 429 with a Retry-After header. Exhausting the quota also returns a 429, with a different error code, and retrying achieves nothing until it resets. Handle both rather than looping.
We may apply a temporary limit to any key whose traffic threatens the service for other customers. Where that happens we will tell you why and what to change.
The data is supplied as it is. We collect racing information and publish what we hold, and we do not warrant that it is complete, accurate, current or fit for any particular purpose.
Coverage varies by jurisdiction and by field, sometimes substantially. The data coverage page states what each jurisdiction publishes, counted from the archive rather than claimed, and you should read it before building on a field.
Some things do not exist in this dataset at all, in any jurisdiction, at any point in its history. Sectional times are the clearest example. Where we say something is absent, no plan changes that.
Source data can be corrected after publication, and corrections flow through to us. A figure you retrieved may differ from the same figure retrieved later.
We may add fields and endpoints. Where we remove or change one in a way that would break working code, we give notice as described below.
We supply factual racing data. We take no bets, publish no selections, offer no tips, and operate no gambling service of any kind.
Nothing the API returns, and nothing on this site, is betting advice, financial advice or a recommendation to stake money on anything. Statistics we compute describe what happened in the past and carry no prediction about any future race.
What you do with the data is your decision and your risk. If you lose money betting, that is not a matter we can be liable for, and no figure we published caused it.
Gambling can cause harm. If it is a problem for you, organisations such as BeGambleAware and GamCare offer free, confidential help.
We aim to keep the API answering continuously and publish what actually happened on the status page, including the days we hold no record for, which are left blank rather than assumed good.
We do not offer a contractual uptime guarantee or service credits. If that is something you need, tell us before subscribing and we will be honest about whether we can offer it.
Support runs through the ticket system on this site so there is a thread and a record. We answer oldest first and most tickets get a reply the same working day.
Maintenance that would interrupt the service is announced in advance where we can foresee it.
Adding a field, an endpoint or an optional parameter is not a breaking change, and your code should tolerate new fields appearing in a response.
Removing or renaming a field, removing an endpoint, or changing the meaning of an existing value is a breaking change. We give at least ninety days' notice by email and on the changelog before making one.
Security fixes are the exception. Where a change is needed urgently to protect the service or its users, we make it and explain it afterwards.
We may update these terms. The date at the top of this page shows when they last changed.
For a change that materially affects your rights, we give at least thirty days' notice by email before it takes effect. Continuing to use the service after that means you accept the new terms; if you do not, cancel before they take effect and we will refund the unused part of the period you have paid for.
You may stop using the service at any time by cancelling and, if you want, asking us to delete the account.
We may suspend or close an account that breaches these terms, that is being used unlawfully, or whose traffic is damaging the service for others. Except where the breach is serious or unlawful, we will tell you what the problem is and give you a chance to fix it first.
If we close your account for a reason that is not your fault, we refund the unused part of the period you have paid for. If we close it for a serious breach, we do not.
On termination, your licence to use the data ends. Data you have already retrieved and stored may be kept and used for your own internal purposes, but you may not continue to publish or redistribute it as a live feed.
The underlying facts of a horse race are not owned by anybody. Our compilation of them is: the database, its structure, our identifiers, the computed statistics, the documentation and the site itself remain ours.
You keep everything you build. Your code, your models, your analysis and your outputs are yours, and we claim no interest in them.
The apihorseracing.com name and mark are ours. You may say your product uses our data; do not imply we built, endorse or operate your product.
Course names, horse names and the names of people in the sport belong to whoever owns them, and appear here as facts about races rather than as a claim on those names.
Nothing in these terms limits liability for death or personal injury caused by negligence, for fraud, or for anything else that cannot lawfully be limited.
Subject to that, we are not liable for indirect or consequential loss, for lost profits, lost revenue, lost bets, lost opportunity, or for the accuracy of any decision you take using the data.
Our total liability to you in any twelve month period is limited to what you paid us in that period. On a free key, that is nil, and we say so plainly rather than burying it.
This is a data subscription, not insurance against the outcome of a horse race.
You agree to cover us against claims, losses and reasonable costs arising from your use of the data in breach of these terms, from anything you build with it, or from your breach of a law that applies to you.
These terms are governed by the law of England and Wales, and the courts of England and Wales have exclusive jurisdiction over any dispute arising from them.
Before going anywhere near a court, open a ticket. Almost everything that looks like a dispute is a misunderstanding about coverage or a plan, and both are quick to sort out.
If you are a consumer rather than a business, this clause does not remove any protection the law of your own country gives you.
We contact you at the email address on your account. It is your responsibility to keep it working and to read what arrives there.
Formal notice to us should go through a support ticket, which is timestamped and kept, and to [email protected].
These terms, together with the acceptable use policy, the privacy notice and the refunds policy, are the whole agreement between us about the service.
If any part of them is found unenforceable, the rest still stands.
Not enforcing something once does not mean we have given up the right to enforce it later.
You may not transfer your rights under these terms without our agreement. We may transfer ours if the business changes hands, and would tell you if that happened.
Neither of us is liable for a failure caused by something genuinely outside our control.
If any of this is unclear, ask rather than guessing: support. A policy nobody understands protects nobody.