StatsHub Docs
APIAPI v2V2 endpoint referenceRankings

/rankings/prop-candidates

Find players whose recent form clears a threshold in one market

GET
/rankings/prop-candidates

Find players whose recent form clears a threshold in one market

Query Parameters

market*string

Statistic to search. Required. The same key identifies the market in the odds feed, so a market the feed names differently returns no odds.

Value in

  • "dispossessed"
  • "expectedAssists"
  • "expectedGoals"
  • "foulInvolvements"
  • "fouls"
  • "goalAssist"
  • "goals"
  • "interceptionWon"
  • "keyPass"
  • "onTargetScoringAttempt"
  • "possessionLostCtrl"
  • "saves"
  • "scoredOrAssisted"
  • "shots"
  • "totalCross"
  • "totalOffside"
  • "totalPass"
  • "totalTackle"
  • "wasFouled"
  • "xGxA"
  • "yellowCard"
kickoffFrom*string

Start of the fixture window, exclusive. Required. Form is also measured as of this instant, so a search for tomorrow does not count today.

Formatdate-time
kickoffTo*string

End of the fixture window, inclusive. Required.

Formatdate-time
phaseIds?string

Comma-separated competition phase IDs to search. Supply this or competitionIds, not both; omit both for every visible competition in the bounded fixture window.

Lengthlength <= 100
competitionIds?string

Comma-separated canonical competition IDs. Go resolves their active phases from the fixture window. Supply this or phaseIds, not both; omit both for every visible competition in the window.

Lengthlength <= 100
fixtureIds?string

Comma-separated fixture IDs, narrowing the window

Lengthlength <= 100
positions?string

Comma-separated player positions

Lengthlength <= 100
threshold?number

Value an appearance must reach, greater than or equal, to count as a hit; defaults to 1. Fractional thresholds work: 0.5 selects appearances with at least one.

window?integer

How many qualifying appearances the form figures cover; defaults to 10, maximum 50.

Range1 <= value <= 50
minMinutes?integer

Minimum minutes played for an appearance to count; defaults to 1, so a named substitute who never came on is not a data point.

Range0 <= value <= 120
minGames?integer

Minimum qualifying appearances a player must have; defaults to 0.

Range0 <= value <= 50
venue?string

Restrict to home or away appearances, on both the upcoming fixture and the sample; defaults to both.

Value in

  • "both"
  • "home"
  • "away"
selectedPhasesOnly?boolean

Count only appearances made in the phases named by phaseIds; defaults to TRUE.

startedOnly?boolean

Count only appearances the player started; defaults to TRUE.

includeReplacedPlayer?boolean

Attach the figure of the player each substitute came on for; defaults to false. It is never folded into the candidate's own totals.

includeTrend?boolean

Compute the recent-versus-older trend; defaults to false. Sorting by -trend implies it.

minHitRate?number

Minimum hit rate, as a percentage between 0 and 100; defaults to 0.

averageThreshold?number

Compare the window average against this value; defaults to 0, which disables the filter.

averageComparison?string

Direction of the averageThreshold comparison; defaults to above.

Value in

  • "above"
  • "below"
maxGamesSinceLastAppearance?integer

Drop players whose team has played more than this many fixtures since they last featured. A player with no appearance on record is dropped, not kept.

Range0 <= value <= 100
lineupFilter?string

Keep only players in the latest lineup projection of the named kind; defaults to all, which applies no filter.

Value in

  • "all"
  • "confirmed"
  • "predicted"
oddsLine?number

Restrict prices to one line, and drop players nobody is quoting.

minOdds?number

Minimum best available over price, and drop players nobody is quoting.

sort?string

Ordering; defaults to -average.

Value in

  • "-average"
  • "-games"
  • "-hitRate"
  • "-kickoff"
  • "-total"
  • "-trend"
  • "average"
  • "kickoff"
limit?integer

Maximum resources to return; defaults to 25

Range1 <= value <= 100
Default25
after?string

Opaque cursor for the next page

before?string

Opaque cursor for the previous page

Response Body

application/json

application/problem+json

application/problem+json

curl -X GET "https://example.com/rankings/prop-candidates?market=dispossessed&kickoffFrom=2019-08-24T14%3A15%3A22Z&kickoffTo=2019-08-24T14%3A15%3A22Z"
{  "data": [    {      "activity": {        "gamesSinceLastAppearance": 0,        "inPredictedLineup": true,        "startedLastGame": true      },      "fixture": {        "awayTeam": {          "id": "string",          "name": "string",          "slug": "string"        },        "competition": {          "id": "string",          "name": "string",          "slug": "string"        },        "homeTeam": {          "id": "string",          "name": "string",          "slug": "string"        },        "id": "string",        "isHome": true,        "kickoffAt": "2019-08-24T14:15:22Z",        "opponent": {          "id": "string",          "name": "string",          "slug": "string"        },        "phase": {          "id": "string",          "name": "string",          "slug": "string"        },        "slug": "string"      },      "form": {        "average": 0,        "games": 0,        "hitRate": 0,        "hits": 0,        "perNinety": 0,        "total": 0.1      },      "market": {        "key": "string",        "threshold": 0.1      },      "odds": [        {          "line": 0,          "quotes": [            {              "bookmaker": "string",              "bookmakerId": "string",              "over": 0,              "under": 0            }          ]        }      ],      "player": {        "id": "string",        "name": "string",        "slug": "string"      },      "position": "string",      "recentAppearances": [        {          "fixture": {            "awayScore": 0,            "awayTeam": {              "id": "string",              "name": "string",              "slug": "string"            },            "homeScore": 0,            "homeTeam": {              "id": "string",              "name": "string",              "slug": "string"            },            "id": "string",            "kickoffAt": "2019-08-24T14:15:22Z",            "slug": "string"          },          "minutesPlayed": 0,          "position": "string",          "replacedPlayer": {            "id": "string",            "value": 0          },          "value": 0.1        }      ],      "team": {        "id": "string",        "name": "string",        "slug": "string"      },      "trend": {        "changePercent": 0.1,        "direction": "string",        "gamesUsed": 0,        "olderAverage": 0.1,        "olderGames": 0,        "recentAverage": 0.1,        "recentGames": 0      }    }  ],  "links": {    "next": "string",    "previous": "string",    "self": "string"  },  "page": {    "hasNext": true,    "hasPrevious": true,    "limit": 0,    "nextCursor": "string",    "previousCursor": "string"  }}