Swish Analytics ATP Tennis API
The ATP Tennis API from Swish Analytics — 3 operation(s) for atp tennis.
The ATP Tennis API from Swish Analytics — 3 operation(s) for atp tennis.
openapi: 3.1.0
info:
title: Swish Analytics Sportsbook ATP Tennis API
version: v1
description: 'Machine-learning sportsbook data API from Swish Analytics: player prop pricing, pre-match and in-play match/team markets, bet-request (single and parlay) pricing, and results across NFL, NBA, MLB, NHL, NCAA basketball & football, ATP, WTA and soccer. Derived by the API Evangelist enrichment pipeline from the provider''s live documentation service (docs-api.swishanalytics.com/v1). Content is faithful to published docs; not an authoritative provider-published OpenAPI.'
termsOfService: https://swishanalytics.com
contact:
name: Swish Analytics
url: https://docs.swishanalytics.com
x-apievangelist:
generated: '2026-07-21'
method: derived
source: 'https://docs-api.swishanalytics.com/v1 (live documentation service: /markets, /documentation/params, /documentation/response-fields)'
note: Faithfully derived from Swish Analytics live developer documentation; endpoint list, query parameters and response fields are provider-published. Not an authoritative provider-published OpenAPI.
servers:
- url: https://api.swishanalytics.com
description: Production
security:
- ApiKey: []
tags:
- name: ATP Tennis
paths:
/atp/matches/markets/prematch:
get:
operationId: getAtpMatchesMarketsPrematch
summary: Atp Matches Markets Prematch
tags:
- ATP Tennis
security:
- ApiKey: []
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
accrued:
type: number
nullable: true
description: Provides the current total value of the specified stat-type generated by the player up to the present moment in the match (not to be used for resulting purposes)
balanced:
type: boolean
description: Provides the value identifying a line for the specified market as either balanced ( true ) or unbalanced ( false )
count:
type: number
description: Provides the total count of markets returned by your request
dataConfirmed:
type: boolean
description: Provides the value identifying the returned results as either confirmed ( true ) or not confirmed ( false )
date:
type: string
description: Provides the UTC date(s) of the event(s) for the specified markets returned by your request
description:
type: string
description: Provides a summary describing the state of the specified market
end:
type: number
nullable: true
description: Provides the integer value denoting the conclusion of the duration associated with the associated market
id:
type: number
description: Provides the appropriate ID for the specified team, stat-type, market, etc
line:
type: number
nullable: true
description: Provides the line offered for the specified markets returned by your request
marketSuspended:
type: boolean
description: Provides the value identifying a market as either suspended ( true ) or not suspended ( false )
matchId:
type: number
description: Provides the ID value of the match associated with the markets returned by your request
mean:
type: number
nullable: true
description: Provides the raw mean projection value for the specified markets returned by your request
median:
type: number
nullable: true
description: Provides the raw median projection value for the specified markets returned by your request
modifiedAt:
type: string
description: Provides the UTC date-timestamp identifying when the specified market was last updated with new data in seconds format
modifiedAtMicro:
type: string
description: Provides the UTC date-timestamp identifying when the specified market was last updated with new data in micro-seconds format
name:
type: string
description: Provides the full name of the specified player or team
optimal:
type: boolean
description: Provides the value identifying a market as either optimal ( true ) or not optimal ( false )
over:
type: number
nullable: true
description: Provides the Over outcome price for the line attached to the specified market expressed as a percentage in decimal form
season:
type: number
description: The 4-digit year of the season associated with the specified markets returned by your request. For seasons that span multiple calendar years (eg 2019-2020), the first calendar year is returned
settled:
type: boolean
description: Provides the value identifying the returned result as either settled ( true ) or not settled ( false )
sport:
type: string
description: The 3-letter abbreviation or ID value of the sport associated with the specified markets returned by your request
start:
type: number
nullable: true
description: Provides the integer value denoting the beginning of the duration associated with the associated market
status:
type: number
description: Provides the value of yes (1) or no (0) for the denoted market status
type:
type: string
description: Provides the description denoting whether the associated market data is for a fractional line or a integer line
under:
type: number
nullable: true
description: Provides the Under outcome price for the line attached to the specified market expressed as a percentage in decimal form
value:
type: number
description: Provides the value to be used for resulting and settlement purposes for each market
void:
type: boolean
description: Provides the value identifying the returned result as either voided ( true ) or not voided ( false )
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: game
in: query
required: false
description: The ID value(s) of the event(s) for which you are requesting market data.
schema:
type: number
example: '394580'
- name: date
in: query
required: false
description: The EST date(s) of the event(s) for which you are requesting market data in YYYY-MM-DD format.
schema:
type: string
example: '2020-01-15'
- name: modifiedAtMicroGreater
in: query
required: false
description: The UTC timestamp(s) denoting when a market was last updated with new data in micro seconds to be used to request all markets that have been updated at or after the timestamp passed in. Value passed in should always be the max modifiedAtMicro from the most recent payload received.
schema:
type: string
example: '2026-06-15 12:22:38.558000'
- name: lineType
in: query
required: false
description: Can be used to request only fraction lines or integer lines. Accepts only fraction or integer as values
schema:
type: string
example: fraction
- name: stat
in: query
required: false
description: The ID value(s) of the statistic(s) for which you are requesting data.
schema:
type: number
example: '7703001004'
- name: duration
in: query
required: false
description: Can be used to specifically request data for those markets that are at the match-level ( match ) or the set-level ( set ). Please note that this parameter is optional and you do not need to utilize it if you desire all available markets.
schema:
type: string
example: match
/atp/players/props:
get:
operationId: getAtpPlayersProps
summary: Atp Players Props
tags:
- ATP Tennis
security:
- ApiKey: []
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
accrued:
type: number
nullable: true
description: Provides the current total value of the specified stat-type generated by the player up to the present moment in the match for information purposes only and not for resulting purposes
balanced:
type: boolean
description: Provides the value identifying a line for the specified market as either balanced (true) or unbalanced (false)
count:
type: number
description: Provides the total count of markets returned by your request
dataConfirmed:
type: boolean
description: Provides the value identifying the returned results as either confirmed (true) or not confirmed (false)
date:
type: string
description: Provides the UTC date(s) of the event(s) for the specified markets returned by your request
description:
type: string
description: Provides a summary describing the state of the specified market
end:
type: number
nullable: true
description: Provides the integer value denoting the conclusion of the duration associated with the associated market
endpoint:
type: string
description: Provides the specific endpoint used to make your request to assist in validating requests
id:
type: string
description: Provides the appropriate ID for the specified team, market type, duration, etc
line:
type: number
nullable: true
description: Provides the line offered for the specified markets returned by your request
marketId:
type: string
description: Provides the unique value for each specified market
marketSuspended:
type: boolean
description: Provides the value identifying a market as either suspended (true) or not suspended (false)
mean:
type: number
nullable: true
description: Provides the raw mean projection value for the specified markets returned by your request
median:
type: number
nullable: true
description: Provides the raw median projection value for the specified markets returned by your request
modifiedAt:
type: string
description: Provides the UTC date-timestamp identifying when the specified market was last updated with new data in seconds format
modifiedAtMicro:
type: string
description: Provides the UTC date-timestamp identifying when the specified market was last updated with new data in micro-seconds format
name:
type: string
description: Provides the name of the specified market return by your request
optimal:
type: boolean
description: Provides the value identifying a market as either optimal (true) or not optimal (false)
over:
type: number
nullable: true
description: Provides the Over outcome price for the line attached to the specified market expressed as a percentage in decimal form
playerId:
type: number
description: Provides the appropriate ID of the player to whom each market belongs as found in the /mlb/players endpoint
playerName:
type: string
description: Provides the name of the player to whom each market belongs as found in the /mlb/players endpoint
push:
type: number
nullable: true
description: Provides the Push outcome price for the line attached to the specified market expressed as a percentage in decimal form
season:
type: number
description: The 4-digit year of the season associated with the specified markets returned by your request. For seasons that span multiple calendar years (eg 2019-2020), the first calendar year is returned
settled:
type: boolean
description: Provides the value identifying the returned result as either settled (true) or not settled (false)
sport:
type: string
description: The 3-letter abbreviation of the sport associated with the specified markets returned by your request
start:
type: number
nullable: true
description: Provides the integer value denoting the beginning of the duration associated with the associated market
status:
type: number
description: Provides the value of yes (1) or no (0) for the denoted market status
type:
type: string
description: Provides the description denoting whether the associated market data is for a fractional line or a integer line
under:
type: number
nullable: true
description: Provides the Under outcome price for the line attached to the specified market expressed as a percentage in decimal form
value:
type: number
description: Provides the value to be used for resulting and settlement purposes for each market
void:
type: boolean
description: Provides the value identifying the returned result as either voided (true) or not voided (false)
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: game
in: query
required: true
description: The ID value(s) of the event(s) for which you are requesting schedule data.
schema:
type: number
example: '306813'
- name: optimal
in: query
required: false
description: Can be used to request markets classified as optimal (true) or not optimal (false)
schema:
type: boolean
example: 'true'
- name: lineType
in: query
required: false
description: Can be used to request only fractional lines or integer lines.
schema:
type: string
example: fraction
- name: stat
in: query
required: false
description: The ID value(s) of the statistic(s) for which you are requesting data.
schema:
type: number
example: '700'
- name: modifiedAtMicroGreater
in: query
required: false
description: The UTC timestamp(s) denoting when a market was last updated with new data in micro seconds to be used to request all markets that have been updated at or after the timestamp passed in. Value passed in should always be the max modifiedAtMicro from the most recent payload received
schema:
type: string
example: '2023-08-10 13:57:09.433966'
- name: duration
in: query
required: false
description: Can be used to specifically request data for those markets that are at the match-level ( match ) or the set-level ( set ). Please note that this parameter is optional and you do not need to utilize it if you desire all available markets
schema:
type: string
example: match
/atp/players/props/inplay:
get:
operationId: getAtpPlayersPropsInplay
summary: Atp Players Props Inplay
tags:
- ATP Tennis
security:
- ApiKey: []
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
accrued:
type: number
nullable: true
description: Provides the current total value of the specified stat-type generated by the player up to the present moment in the match ( not to be used for resulting purposes)
balanced:
type: boolean
description: Provides the value identifying a line for the specified market as either balanced (true) or unbalanced (false)
count:
type: number
description: Provides the total count of markets returned by your request
dataConfirmed:
type: boolean
description: Provides the value identifying the returned results as either confirmed (true) or not confirmed (false)
date:
type: string
description: Provides the UTC date(s) of the event(s) for the specified markets returned by your request
description:
type: string
description: Provides a summary describing the state of the specified market
end:
type: number
nullable: true
description: Provides the integer value denoting the conclusion of the duration associated with the associated market
endpoint:
type: string
description: Provides the specific endpoint used to make your request to assist in validating requests
id:
type: string
description: Provides the appropriate ID for the specified team, market type, duration, etc
line:
type: number
nullable: true
description: Provides the line offered for the specified markets returned by your request
marketId:
type: string
description: Provides the unique value for each specified market
marketSuspended:
type: boolean
description: Provides the value identifying a market as either suspended (true) or not suspended (false)
mean:
type: number
nullable: true
description: Provides the raw mean projection value for the specified markets returned by your request
median:
type: number
nullable: true
description: Provides the raw median projection value for the specified markets returned by your request
modifiedAt:
type: string
description: Provides the UTC date-timestamp identifying when the specified market was last updated with new data in seconds format
modifiedAtMicro:
type: string
description: Provides the UTC date-timestamp identifying when the specified market was last updated with new data in micro-seconds format
name:
type: string
description: Provides the name of the specified market return by your request
optimal:
type: boolean
description: Provides the value identifying a market as either optimal (true) or not optimal (false)
over:
type: number
nullable: true
description: Provides the Over outcome price for the line attached to the specified market expressed as a percentage in decimal form
playerId:
type: string
description: Provides the appropriate ID of the player to whom each market belongs as found in the /mlb/players endpoint
playerName:
type: string
description: Provides the name of the player to whom each market belongs as found in the /mlb/players endpoint
push:
type: number
nullable: true
description: Provides the Push outcome price for the line attached to the specified market expressed as a percentage in decimal form
season:
type: number
description: The 4-digit year of the season associated with the specified markets returned by your request. For seasons that span multiple calendar years (eg 2019-2020), the first calendar year is returned
settled:
type: boolean
description: Provides the value identifying the returned result as either settled (true) or not settled (false)
sport:
type: string
description: The 3-letter abbreviation of the sport associated with the specified markets returned by your request
start:
type: number
nullable: true
description: Provides the integer value denoting the beginning of the duration associated with the associated market
status:
type: number
description: Provides the value of yes (1) or no (0) for the denoted market status
type:
type: string
description: Provides the description denoting whether the associated market data is for a fractional line or a integer line
under:
type: number
nullable: true
description: Provides the Under outcome price for the line attached to the specified market expressed as a percentage in decimal form
value:
type: number
description: Provides the value to be used for resulting and settlement purposes for each market
void:
type: boolean
description: Provides the value identifying the returned result as either voided (true) or not voided (false)
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: game
in: query
required: true
description: The ID value(s) of the event(s) for which you are requesting schedule data.
schema:
type: number
example: '306813'
- name: optimal
in: query
required: false
description: Can be used to request markets classified as optimal (true) or not optimal (false)
schema:
type: boolean
example: 'true'
- name: lineType
in: query
required: false
description: Can be used to request only fractional lines or integer lines.
schema:
type: string
example: fraction
- name: stat
in: query
required: false
description: The ID value(s) of the statistic(s) for which you are requesting data.
schema:
type: number
example: '700'
- name: modifiedAtMicroGreater
in: query
required: false
description: The UTC timestamp(s) denoting when a market was last updated with new data in micro seconds to be used to request all markets that have been updated at or after the timestamp passed in. Value passed in should always be the max modifiedAtMicro from the most recent payload received
schema:
type: string
example: '2023-08-10 13:57:09.433966'
- name: duration
in: query
required: false
description: Can be used to specifically request data for those markets that are at the match-level ( match ), the set-level ( set ) or the game-level ( game ). Please note that this parameter is optional and you do not need to utilize
schema:
type: string
example: match
components:
schemas:
Error:
type: object
properties:
status:
type: boolean
endpoint:
type: string
error:
type: object
properties:
status:
type: boolean
message:
type: string
details:
type: object
data:
type: object
securitySchemes:
ApiKey:
type: apiKey
in: header
name: ApiKey
description: API key issued via the Swish Analytics developer portal (docs.swishanalytics.com). Managed under the /apikeys endpoints; passed in the ApiKey request header.