acesapi-com Basic lookup API
The Basic lookup API from acesapi-com — 6 operation(s) for basic lookup.
The Basic lookup API from acesapi-com — 6 operation(s) for basic lookup.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/acesapi-com:acesapi-com-basic-lookup-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: AcesAPI Basic lookup API
version: 1.0.0
description: AcesAPI tennis data. Every tool is a POST to /v1/{tool} with a JSON body of its arguments and costs the credits in x-credits. The same tools are an MCP server at https://mcp.acesapi.com/mcp and free accounts get credits every month at https://acesapi.com/signup
termsOfService: https://acesapi.com/terms
contact:
name: AcesAPI support
email: support@acesapi.com
url: https://acesapi.com/docs
servers:
- url: https://mcp.acesapi.com
security:
- apiKey: []
- bearer: []
tags:
- name: Basic lookup
paths:
/v1/get_tournament:
post:
operationId: get_tournament
summary: Tournament
description: 'Use for a tournament''s draw and results: every singles match of one edition grouped by round in draw order (qualifying, then the main draw to the final), each with the score by set and tiebreak points, seeds, and the champion and runner-up. draw: main (default), qualifying or all. Tour: atp (default) or wta; on the shared endpoint pass league: "wta" for the WTA. Costs 2 credits.'
tags:
- Basic lookup
x-credits: 2
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
tournament_id:
type: string
description: Tournament edition id from list_tournaments, e.g. "188-2025".
draw:
description: Which draw (default main).
type: string
enum:
- main
- qualifying
- all
league:
description: 'League. Defaults to tennis. One of: tennis, wta.'
type: string
enum:
- tennis
- wta
required:
- tournament_id
additionalProperties: false
responses:
'200':
description: The result, wrapped in data.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
tour:
type: string
tournament:
type: object
propertyNames:
type: string
additionalProperties: {}
champion:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: 'null'
runner_up:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties: {}
- type: 'null'
rounds:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
count:
type: number
required:
- tour
- tournament
- champion
- runner_up
- rounds
- count
additionalProperties: false
required:
- data
'400':
description: Invalid arguments.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'402':
description: Not enough credits.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'429':
description: Rate limited.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
/v1/get_matches:
post:
operationId: get_matches
summary: Matches
description: 'Use for match results by day, tournament or season: each match with both players, seeds, round, status, score and sets (games and tiebreak points). Pass a date (YYYY-MM-DD, UTC), a tournament_id or a season; filter by round (e.g. "Final") and status. Tour: atp (default) or wta; on the shared endpoint pass league: "wta" for the WTA. Costs 2 credits.'
tags:
- Basic lookup
x-credits: 2
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
date:
description: UTC date, YYYY-MM-DD.
type: string
tournament_id:
description: Tournament edition id, e.g. "188-2025".
type: string
season:
description: Year.
type:
- string
- number
round:
description: Round name as listed, e.g. "Final", "Semifinal", "Round 1".
type: string
status:
type: string
enum:
- scheduled
- live
- final
limit:
description: Max matches (default 100).
type: integer
minimum: 1
maximum: 500
offset:
type: integer
minimum: 0
maximum: 9007199254740991
league:
description: 'League. Defaults to tennis. One of: tennis, wta.'
type: string
enum:
- tennis
- wta
additionalProperties: false
responses:
'200':
description: The result, wrapped in data.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
tour:
type: string
matches:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
count:
type: number
next_offset:
type:
- number
- 'null'
required:
- tour
- matches
- count
additionalProperties: false
required:
- data
'400':
description: Invalid arguments.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'402':
description: Not enough credits.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'429':
description: Rate limited.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
/v1/get_schedule:
post:
operationId: get_schedule
summary: Schedule
description: 'Use for upcoming matches: every scheduled or in-progress singles match in the next N days (default 7, max 30) with players, seeds, round and start time where one is set. Tour: atp (default) or wta; on the shared endpoint pass league: "wta" for the WTA. Costs 2 credits.'
tags:
- Basic lookup
x-credits: 2
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
days:
description: Days ahead (default 7).
type: integer
minimum: 1
maximum: 30
league:
description: 'League. Defaults to tennis. One of: tennis, wta.'
type: string
enum:
- tennis
- wta
additionalProperties: false
responses:
'200':
description: The result, wrapped in data.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
tour:
type: string
days:
type: number
matches:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
count:
type: number
required:
- tour
- days
- matches
- count
additionalProperties: false
required:
- data
'400':
description: Invalid arguments.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'402':
description: Not enough credits.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'429':
description: Rate limited.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
/v1/get_match:
post:
operationId: get_match
summary: Match
description: 'Use for everything about one match: the score by set with tiebreak points, seeds, each player''s sets, games and tiebreaks won, both players'' ratings before and after (overall and on the surface), what the score says (total games, tiebreaks, whether it went the distance, comebacks), and each sportsbook''s opening and closing moneylines where the match had them (mostly Grand Slam, ATP Masters and WTA 1000 matches), with captured_at, the time of the closing capture. No serve statistics: they are not available. Tour: atp (default) or wta; on the shared endpoint pass league: "wta" for the WTA. Costs 2 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.'
tags:
- Basic lookup
x-credits: 2
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
match_id:
type: string
description: Match id from get_tournament, get_matches or get_player_matches.
league:
description: 'League. Defaults to tennis. One of: tennis, wta.'
type: string
enum:
- tennis
- wta
required:
- match_id
additionalProperties: false
responses:
'200':
description: The result, wrapped in data.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
tour:
type: string
match:
type: object
propertyNames:
type: string
additionalProperties: {}
players:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
stats:
type: object
propertyNames:
type: string
additionalProperties: {}
odds:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
required:
- tour
- match
- players
- stats
- odds
additionalProperties: false
required:
- data
'400':
description: Invalid arguments.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'402':
description: Not enough credits.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'429':
description: Rate limited.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
/v1/get_rankings:
post:
operationId: get_rankings
summary: Rankings
description: 'Use for the ranking list: the latest (default), or a season and week, or the list in force on a date, with rank, previous rank, points and player. Pass player_id instead for one player''s ranking history. Weekly lists hold the top 100 to 150 for most weeks since 2007. Tour: atp (default) or wta; on the shared endpoint pass league: "wta" for the WTA. Costs 2 credits.'
tags:
- Basic lookup
x-credits: 2
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
season:
description: Year.
type:
- string
- number
week:
description: Week number of the season.
type: integer
minimum: 1
maximum: 53
date:
description: The list in force on this date, YYYY-MM-DD.
type: string
player_id:
description: One player's ranking history instead of a list.
type: string
limit:
description: Max rows of a list (default 100).
type: integer
minimum: 1
maximum: 200
league:
description: 'League. Defaults to tennis. One of: tennis, wta.'
type: string
enum:
- tennis
- wta
additionalProperties: false
responses:
'200':
description: The result, wrapped in data.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
tour:
type: string
season:
type: number
week:
type: number
ranking_date:
type:
- string
- 'null'
rankings:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
player_id:
type: string
name:
type: string
best_rank:
type:
- number
- 'null'
history:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
count:
type: number
required:
- tour
- count
additionalProperties: false
required:
- data
'400':
description: Invalid arguments.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'402':
description: Not enough credits.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'429':
description: Rate limited.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
/v1/get_ratings:
post:
operationId: get_ratings
summary: Ratings
description: 'Use for our Elo ratings, highest first: overall, or on one surface (hard, clay, grass). Players with a rated match since active_since (default a year ago) and at least 10 rated matches. Tour: atp (default) or wta; on the shared endpoint pass league: "wta" for the WTA. Costs 2 credits.'
tags:
- Basic lookup
x-credits: 2
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
surface:
description: Rank by the surface rating instead of overall.
type: string
enum:
- hard
- clay
- grass
- carpet
active_since:
description: Only players with a rated match since this date, YYYY-MM-DD (default one year ago).
type: string
limit:
description: Max players (default 50).
type: integer
minimum: 1
maximum: 500
league:
description: 'League. Defaults to tennis. One of: tennis, wta.'
type: string
enum:
- tennis
- wta
additionalProperties: false
responses:
'200':
description: The result, wrapped in data.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
tour:
type: string
surface:
type:
- string
- 'null'
active_since:
type: string
ratings:
type: array
items:
type: object
propertyNames:
type: string
additionalProperties: {}
count:
type: number
method:
type: string
required:
- tour
- surface
- active_since
- ratings
- count
- method
additionalProperties: false
required:
- data
'400':
description: Invalid arguments.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'402':
description: Not enough credits.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'429':
description: Rate limited.
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
components:
securitySchemes:
apiKey:
type: apiKey
in: header
name: x-api-key
bearer:
type: http
scheme: bearer
description: The same API key as a bearer token.
externalDocs:
description: Documentation
url: https://acesapi.com/docs