// open source

Open source

Tools we wrote and publish under the MIT licence, then code that someone else's maintainers reviewed and merged. Every merged row links to the pull request, so you can read the diff and the review yourself.

Checked
Fixes merged
56 PRs in 52 projects
Integrations merged
38 PRs in 32 projects
Our code
github.com/synapserealitygithub.com/livetennisapi

01 Tools we publish

Command line tools we built for our own site and then made general. Each has a page with the install command, sample output and what it can't check.

02 Fixes in other projects

Fixes and small features in libraries other people maintain. Most are in calendar, scheduling, GPS and sports data code.

Merged fixes, by project
ProjectWhat we changedPull request
akornatskyy/schedulerHTTP request templates keep their values.#1341 merged 28 Sept
Alek050/databallpySaving a game keeps player IDs that mix numbers and text.#398 merged 16 Sept
American-Soccer-Analysis/itscalledsoccerBrought back the stadium ID and stadium name filters.#298 merged 19 Sept
andrewRowlinson/mplsoccerZone statistics handle an empty selection of events.#126 merged 14 Sept
betcode-org/betfairAdded the in-play service call for scores and broadcast data.#623 merged 4 Sept
chris48s/arcgis2geojsonFeatures with a null geometry survive the conversion.#120 merged 21 Sept
cwendt94/espn-apiThe league endpoint is kept when a fallback request fails.#702 merged 14 Sept
developmentseed/geojson-pydanticFixed validation of numeric feature IDs.#205 merged 21 Sept
diegoscarabelli/garmin-health-dataVerification fails when SQLite reports an integrity error.#99 merged 20 Sept
Drarig29/brackets-manager.jsFixed mutation events for custom storage adapters.#253 merged 20 Sept
flohoss/gocronShutdown waits for job cancellation to finish before it returns.#59 merged 28 Sept
franc6/ics_calendarYear offsets work without a month offset.#283 merged 25 Sept
github/exploreWrote the curated page for the tennis topic.#5355 merged 4 Sept
gkjohnson/three-geojsonFixed material groups in merged line geometry.#38 merged 26 Sept
henriquepgomide/caRtolaFixed loading the market dataset through fsspec.#134 merged 21 Sept
henrygd/ncaa-apiFixed caching of GraphQL scoreboard errors.#44 merged 17 Sept
Hexagon/cronerFixed exhausted schedules that use startAt and an interval.#390 merged 27 Sept
home-screens/home-screensDiscards display prefetch responses that are no longer valid.#61 merged 17 Sept
hugoj0s3/NaturalCronOccurrence results keep their UTC kind.#8 merged 25 Sept
ical-org/ical.netCopying a calendar keeps its parameters.#987 merged 28 Sept
ical4j/ical4jRecurrence counts hold with repeated selectors, and the candidate dedup code is shared.#907 merged 25 Sept#912 merged 26 Sept
icalendar/icalendarFixed the transition onsets of generated time zones.#326 merged 25 Sept
jenetics/jpxHandles GPX byte-order marks and XML encodings.#194 merged 18 Sept
jovandeginste/workout-trackerThe dashboard is served at the configured web root.#868 merged 16 Sept
krelltunez/dayGLANCEFixed weekly recurrence limits after fast-forwarding.#1699 merged 17 Sept
libical/libicalFixed explicit local times in forward time zone gaps.#1427 merged 25 Sept
mapdraw/mapdrawImporting a geometry collection skips malformed members.#38 merged 20 Sept
martineastwood/penaltyblogThe FBRef scraper keeps HTTP errors and retries on rate limits.#46 merged 13 Sept
mkuthan/garmin-workoutsConsecutive workout steps are kept.#136 merged 14 Sept
muktihari/fitCombining activities of different sports keeps every session.#644 merged 15 Sept
nestjs/scheduleA job named __proto__ keeps its name.#2380 merged 28 Sept
onury/tasktimerTask dispatch stops after an interrupted tick.#62 merged 28 Sept
OzzyCzech/icalparserFixed numeric recurrence filters.#88 merged 27 Sept
PremoWeb/chadburnRejected job schedules are logged.#133 merged 28 Sept
rapkin/osm2geojsonGeometryCollections convert to GeoJSON features.#62 merged 21 Sept
Raruto/leaflet-elevationFixed marker heights on tracks below sea level.#310 merged 18 Sept
SauceLLC/sauce4stravaRestored the earliest athlete history values for older activities.#252 merged 21 Sept
sebbo2002/ical-generatorTemporal dates convert to the requested time zone.#793 merged 28 Sept
shep-ai/shepKimi Code support, fixes from a full repo review, Windows native builds in CI, and a SQLite close on worker exit.#876 merged 21 Sept#878 merged 22 Sept#880 merged 22 Sept#882 merged 22 Sept
solioanalytics/open-fpl-solverFixed false boolean values in command-line options.#65 merged 15 Sept
Songmu/ecscheduleCluster templates resolve before tracking IDs fall back to a default.#322 merged 28 Sept
sports-alliance/sports-libGPX route links export in schema order.#136 merged 14 Sept
sportsdataverse/sportsdataverse-pyThe scoreboard cache picks its TTL from the query dates.#487 merged 14 Sept
timschneeb/KomootGPXCustom filenames keep the tour time.#44 merged 14 Sept
tkrajina/gpxpyInterpolation distance holds at repeated endpoints.#301 merged 26 Sept
tmcw/geojson-flattenFlattening collections no longer copies in quadratic time.#108 merged 21 Sept
twpayne/go-geomThe WKB geometry wrappers accept SQL NULL.#273 merged 22 Sept
umap-project/umapTeam pages hide deleted and blocked maps.#3496 merged 21 Sept
wavded/ogr2ogrErrors on the input stream reach the caller.#118 merged 22 Sept
whatadewitt/yahoo-fantasy-sports-apiLeague collections keep their scoreboard weeks.#136 merged 22 Sept
withastro/docsA write-up on moving from WordPress to Astro and redirecting every old URL.#14611 merged 25 Sept
yihong0618/running_pageMissing GPS points stay intact, and the frontend shows earlier routes.#1149 merged 23 Sept

03 Live Tennis API integrations

We built Live Tennis API. These pull requests put tennis data into tools other people run: a watch app, a Kodi add-on, workflow blueprints, agent frameworks. Each one went through that project's own review.

Merged integrations, by project
ProjectWhat we addedPull request
avalos010/sportsbook-odds-comparerA tennis group in the fallback sports list.#5 merged 18 Aug
braedonsaunders/homerunA live tennis match-state feed for Polymarket tennis markets.#320 merged 21 Aug
Cog-Creators/Red-IndexListed our Red-DiscordBot tennis cog in the cog index.#187 merged 24 Jul
davila7/claude-code-templatesThe Live Tennis API MCP server as a template.#813 merged 20 Aug
deepset-ai/haystack-integrationsThe Live Tennis API integration page for Haystack.#556 merged 13 Aug
duckdb/community-extensionsA livetennis extension with scores, fixtures and player search as SQL table functions.#2507 merged 18 Aug
elizaOS/elizaRegistry entry for our elizaOS tennis plugin.#23503 merged 21 Aug
enescingoz/awesome-n8n-templatesAn n8n template that posts new live matches to Discord.#192 merged 18 Aug
erikw/tmux-powerlineA tennis segment with cached free-tier score snapshots.#520 merged 20 Sept
espanso/hubA live tennis scores package.#238 merged 25 Aug
espruino/BangleAppsA live tennis scores app for the Bangle.js 2 watch, then readable error messages on screen.#4316 merged 16 Aug#4320 merged 17 Aug
Flow-Launcher/Flow.Launcher.PluginsManifestAdded our Live Tennis plugin to the plugin manifest.#714 merged 6 Aug
glanceapp/community-widgetsA live tennis matches widget.#299 merged 3 Sept
jparise/vestaA live tennis scores example for the Vestaboard client.#259 merged 22 Aug
kestra-io/blueprintsTwo blueprints, a daily fixtures run and a live scores window.#269 merged 25 Sept
langchain-ai/docsThe Live Tennis API integration docs page.#5122 merged 7 Aug
langchain4j/langchain4j-communityA Live Tennis API tool integration for LangChain4j.#782 merged 13 Sept
langgenius/dify-pluginsThe Live Tennis API plugin for Dify, and three updates since.#2747 merged 23 Jul#2773 merged 28 Jul#2808 merged 3 Aug#2834 merged 7 Aug
lissy93/dashyA live tennis widget.#2263 merged 22 Jul
logseq/marketplaceListed our Tennis Capture plugin in the marketplace.#891 merged 17 Aug
matryer/xbar-pluginsMoved the live tennis plugin from scraping to the API, then set a refresh that fits the free quota.#2187 merged 31 Jul#2190 merged 20 Aug
maubot/plugins.maubot.xyzListed our livetennis plugin for Matrix.#88 merged 17 Sept
mbordash/DRADISAn observe-only scout for live tennis event state.#7 merged 16 Aug
meltano/hubAdded our Singer tap, tap-livetennisapi, to the hub.#2312 merged 25 Aug
NangoHQ/nangoNango support for the Live Tennis API.#6910 merged 13 Aug
polybar/polybar-scriptsLinked our polybar tennis scores script from the user repos list.#471 merged 16 Aug
tronbyt/appsA Live Tennis app with Challenger and ITF scores.#700 merged 13 Sept
usetrmnl/pluginsListed our TRMNL live tennis plugin in the community section.#132 merged 16 Aug
vincenzo-afk/SPORTSA Live Tennis API sports provider.#12 merged 12 Sept
weechat/scriptstennis.py, with live scores and ATP and WTA rankings on demand.#614 merged 12 Sept
xbmc/repo-scriptsThe Kodi add-on script.livetennisscores, version 1.0.0.#2892 merged 15 Sept
zed-industries/extensionsThe Live Tennis MCP server as a Zed extension, then its v0.2.0 update.#6945 merged 27 Jul#7254 merged 19 Aug

04 Our public repositories

The livetennisapi organisation on GitHub holds 57 public repositories. They are grouped here by what they are for.

Client libraries

AI agents and MCP

Spec, data and measurement

Prediction market tooling

Apps, widgets and plugins

05 How this list is made

The rows come from a GitHub search for pull requests by our account that were merged, run on 29 September 2026. Pull requests to our own repositories are not counted.

26 more merged pull requests only add Live Tennis API to a directory or an "awesome" list. They are left out, because a line in a list is not code.

There are no star counts on this page. They change every day and we would rather not print a number that is wrong by next week.