# Flashscore Tennis Match Data Scraper

> Flashscore Tennis Match Data Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes structured tennis match data from Flashscore.com, returning match results, live scores, and scheduled matches filterable by tour, tournament, and date range.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/flashscore?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/flashscore-tennis-match-data-scraper-1bdd33db
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_MnMq_K2_xCzjX_wVzvdFm

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability flashscore-tennis-match-data-scraper-1bdd33db -d '<json body>'
```

Example prompt: Pull me today's finished ATP and WTA tennis match results from Flashscore — I want to see who won, with no cap on number of matches.

## When to prefer this

Choose this endpoint when you need structured, machine-readable tennis match data from Flashscore across ATP, WTA, ITF, or Challenger tours with flexible date and tournament filtering. Prefer it over manual web scraping or generic search when you need reliable pay-per-call pricing with no charge for failed/empty runs. Best for agents building tennis dashboards, sports bots, or automated result digests.

## Known failure modes

- Empty result array if no matches found for the specified filters — not charged
- Flashscore.com unavailable or blocking scraper — likely returns error or empty
- Invalid tour enum value causes validation error
- Invalid dayOffset value outside -7 to 7 range causes validation error
- Tournament name fragment with no matches returns empty items array

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

A JSON object with a count and an array of match items, each containing matchId, matchUrl, matchDate, matchType, resultType, matchStatus, matchEndTimestamp, and winner (null if not yet determined). The product field confirms 'flashscore' as the data source.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "tours": {
   "type": "array",
   "items": {
    "enum": [
     "atp",
     "wta",
     "itf",
     "challenger"
    ],
    "type": "string"
   },
   "default": [],
   "description": "Limit matches to ATP, WTA, ITF, or Challenger. Empty includes every tennis category."
  },
  "maxItems": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Stop after this many matches across all selected days. Zero means no cap."
  },
  "startUrls": {
   "type": "array",
   "default": [],
   "description": "Optional tennis tournament or results URLs on flashscore.com. Limits results to those tournaments and overrides tournament names."
  },
  "dayOffsets": {
   "type": "array",
   "items": {
    "enum": [
     "-7",
     "-6",
     "-5",
     "-4",
     "-3",
     "-2",
     "-1",
     "0",
     "1",
     "2",
     "3",
     "4",
     "5",
     "6",
     "7"
    ],
    "type": "string"
   },
   "default": [
    "0"
   ],
   "description": "Days relative to today, from -7 through 7. Zero is today."
  },
  "tournaments": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "default": [],
   "description": "Optional case-insensitive fragments of tournament names. Ignored when start URLs are provided."
  },
  "matchStatuses": {
   "type": "array",
   "items": {
    "enum": [
     "all",
     "finished",
     "live",
     "scheduled"
    ],
    "type": "string"
   },
   "default": [
    "all"
   ],
   "description": "Return all matches, or select finished, live, and scheduled matches."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "winner": null,
    "matchId": null,
    "matchUrl": null,
    "matchDate": null,
    "matchType": null,
    "resultType": null,
    "matchStatus": null,
    "matchEndTimestamp": null
   }
  ],
  "product": "flashscore"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/flashscore-tennis-match-data-scraper-1bdd33db/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
