Discover/Brisnet API
live

Brisnet APIbrisnet.com

Access horse racing news, track listings, daily picks, race results indices, and search via the Brisnet.com API. 6 endpoints for racing data.

Endpoint health
verified 4d ago
get_results_index
get_news_articles
get_news_article_detail
get_tracks_list
get_picks
6/6 passing latest checkself-healing
Endpoints
6
Updated
26d ago

What is the Brisnet API?

The Brisnet API covers 6 endpoints for extracting horse racing data from Brisnet.com, including paginated news articles, full article detail, track listings with 3-letter codes, daily picks grouped by track, a legacy flash results index, and keyword search. The get_picks endpoint returns structured race analysis including raceData, raceInfo, tooltipData, and recommended pick numbers across all available tracks for a given day.

Try it
Page number for pagination.
Category slug to filter articles. Known working values include 'kentucky-derby', 'racing-news', 'preakness', 'data-reports'. Omitting returns all categories.
api.parse.bot/scraper/6a499405-8d64-44d5-a353-3c0ced303b01/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/6a499405-8d64-44d5-a353-3c0ced303b01/get_news_articles?page=1&category=kentucky-derby' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace brisnet-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Brisnet Horse Racing API — news, picks, tracks, search."""
from parse_apis.brisnet_horse_racing_api import Brisnet, ArticleNotFound

client = Brisnet()

# List Kentucky Derby articles (capped at 5 total items)
for article in client.articles.list(category="kentucky-derby", limit=5):
    print(article.title, article.url)

# Search for racing content and drill into the first result's full detail
result = client.searchresults.search(query="Belmont Stakes", limit=1).first()
if result:
    detail = client.articledetails.get(url=result.url)
    print(detail.title, detail.author, detail.date)

# List all available tracks
for track in client.tracks.list(limit=5):
    print(track.code, track.name)

# Get today's picks — each Pick has race data and analysis
for pick in client.picks.list(limit=3):
    print(pick.raceData.name, pick.raceInfo, pick.pickData)

# Typed error handling for a missing article
try:
    client.articledetails.get(url="https://www.brisnet.com/racing/news/nonexistent-article/")
except ArticleNotFound as exc:
    print(f"Article not found: {exc.url}")

print("exercised: articles.list / searchresults.search / articledetails.get / tracks.list / picks.list")
All endpoints · 6 totalmissing one? ·

Fetch a paginated list of horse racing news articles. Optionally filter by category slug. Returns up to 20 articles per page. Pagination via integer page parameter. When no category is specified, articles from all categories are returned.

Input
ParamTypeDescription
pageintegerPage number for pagination.
categorystringCategory slug to filter articles. Known working values include 'kentucky-derby', 'racing-news', 'preakness', 'data-reports'. Omitting returns all categories.
Response
{
  "type": "object",
  "fields": {
    "page": "integer, current page number",
    "articles": "array of article objects with title, url, summary, and category",
    "category": "string or null, the category filter applied"
  },
  "sample": {
    "data": {
      "page": 1,
      "articles": [
        {
          "url": "https://www.brisnet.com/racing/news/belmont-stakes/renegade-favored-over-golden-tempo-in-belmont-stakes/",
          "title": "Renegade favored over Golden Tempo in Belmont Stakes",
          "summary": "The Belmont attracted a field of nine.",
          "category": "kentucky-derby"
        }
      ],
      "category": "kentucky-derby"
    },
    "status": "success"
  }
}

About the Brisnet API

News and Article Data

The get_news_articles endpoint returns up to 20 articles per page, each with a title, url, summary, and category. You can filter by category slug — known values include kentucky-derby, racing-news, and preakness — and paginate using the page parameter. To retrieve the full body of any article, pass its URL to get_news_article_detail, which returns the title, author, date, and complete content string.

Tracks, Results, and Picks

get_tracks_list returns every supported track as an object containing a 3-letter uppercase code, a human-readable name, and a url. get_results_index provides an index of available legacy Flash Results entries, each with track, date_label, filename, and url — useful for locating historical result files by track and date. get_picks returns daily expert picks structured as an array of track groups; each group holds pick objects carrying raceData, raceInfo, tooltipData, and pickData with the recommended pick numbers, giving a complete per-race analysis snapshot.

Search

The search_horses endpoint accepts a free-text query — a horse name, race name, or topic — and returns matching content from the news section. Each result includes a title, url, and type, letting you quickly locate relevant articles for a specific horse or event.

Coverage Notes

All six endpoints reflect publicly accessible data from Brisnet.com. The picks and results index are fetched without any date parameter, so they reflect the current day's available data. Pagination on news is controlled by the page integer input; the category filter requires a valid slug string.

Reliability & maintenanceVerified

The Brisnet API is a managed, monitored endpoint for brisnet.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when brisnet.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official brisnet.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
6/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Aggregate daily horse racing picks by track using get_picks pickData and raceInfo fields
  • Build a racing news feed filtered to a specific event like the Kentucky Derby using the category slug parameter
  • Look up a track's 3-letter code from get_tracks_list to map picks or results to a standardized identifier
  • Retrieve full article text via get_news_article_detail for NLP analysis of racing commentary and expert opinion
  • Index available Flash Results by track and date using get_results_index filename and date_label fields
  • Search for articles about a specific horse by name using search_horses and surface relevant news results
  • Monitor pre-race analysis tooltips from get_picks tooltipData for automated racing research workflows
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Brisnet have an official developer API?+
Brisnet does not publish a public developer API or documentation for programmatic data access. This Parse API provides structured access to the data available on brisnet.com.
How do daily picks from `get_picks` relate to specific races?+
The picks field is an array of arrays, where each inner array corresponds to one track. Each object inside contains raceData (race details), raceInfo (contextual race metadata), tooltipData (analysis notes), and pickData (the recommended pick numbers). There is no date parameter — the endpoint always returns the current day's available picks.
Does the API return historical race results or entries beyond the results index?+
Not currently. The API covers an index of legacy Flash Results via get_results_index, which lists available files with track, date_label, filename, and url, but does not return parsed historical entries, past-performance data, or race entries. You can fork this API on Parse and revise it to add an endpoint that fetches and parses individual result files from those URLs.
Can I filter news articles by multiple categories at once?+
The category parameter on get_news_articles accepts a single category slug per request. Filtering by multiple categories simultaneously is not supported in the current endpoint. You can fork the API on Parse and revise it to batch requests across multiple slugs and merge the results.
What does `get_results_index` actually return — full race results or just a listing?+
It returns an index of available Flash Results entries, not the parsed race results themselves. Each entry has a track, date_label, filename, and url pointing to the result file. Parsing the content of those files is not handled by this endpoint.
Page content last updated . Spec covers 6 endpoints from brisnet.com.
Related APIs in SportsSee all →
bloodhorse.com API
Get comprehensive horse racing information including race results, stakes entries, horse profiles, and the latest news from BloodHorse.com. Search racing data, view detailed race information, and discover current racing leaders all in one place.
equibase.com API
Access comprehensive horse racing data from Equibase, including horse profiles, historical race results, track entries, post times, speed figures, and leader statistics for horses, jockeys, trainers, and owners.
racingpost.com API
Access comprehensive horse racing data from Racing Post, including daily racecards, meeting schedules, race results, and detailed horse profiles with form history, stats, and pedigree.
bleacherreport.com API
Access sports news articles, live scores, and detailed game statistics from Bleacher Report across all major leagues including the NBA, NFL, MLB, and NHL. Retrieve full article content, expert analysis, and box-score data for any supported sport and date.
racing.hkjc.com API
Access comprehensive horse racing data from the Hong Kong Jockey Club. Retrieve race results, detailed horse profiles including pedigree and form records, jockey and trainer season rankings, upcoming race meeting fixtures, and horse search by name.
neds.com.au API
Get up-to-date horse racing information from Neds, including upcoming races, event details, and past results. View which races are next to jump and access comprehensive race data all in one place.
data.fei.org API
Search and explore detailed information about international equestrian sports, including horses, riders, competition results, rankings, and show schedules from the FEI database. Look up specific athletes and horses, browse upcoming events by venue, and track performance across national federations.
atg.se API
Access comprehensive horse racing data from ATG.se, including race calendars, detailed race information, horse profiles, starting lineups, and results. Retrieve up-to-date information on races, horses, drivers, betting pools, and outcomes.
Brisnet API – Horse Racing Data & News · Parse