# Flashscore Tennis Match Scraper (x402)

> Flashscore Tennis Match Scraper (x402) is a paid API for AI agents from x402.186-241-26-229.sslip.io, 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 filtered by tour, tournament, and day — billed per successful call via x402.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/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-scraper-x402-6d589466
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_xM8WjnVXdPiruZp0BaNj2

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-scraper-x402-6d589466 -d '<json body>'
```

Example prompt: Pull today's finished ATP and WTA matches from Flashscore — I want the winner, match URL, and status for each one, up to 50 results.

## When to prefer this

Use this endpoint when you need structured, machine-readable tennis match data from Flashscore — including live scores, results, or schedules — filtered by tour type or specific tournament. Prefer this over generic web scraping when you need a clean JSON response without parsing HTML yourself, and when you only want to pay for successful data retrieval.

## Known failure modes

- Empty result set if no matches found for the given filters (not charged)
- Invalid tour or matchStatus enum values cause request rejection
- dayOffset values outside -7 to 7 range are rejected
- Flashscore page structure changes may cause scraper failures
- Network timeouts or Flashscore blocking may result in empty responses

## How this service works

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

## Output

Returns a JSON object with a count of matches and an array of match items, each containing matchId, matchUrl, matchDate, matchType, matchStatus, matchEndTimestamp, resultType, and winner. Failed or empty scrapes are not billed.

## 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-scraper-x402-6d589466/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
