A refresh is the process by which SharpSports updates the data for a bettor and/or bettorAccount. A refresh is an asynchronous process. When a refresh is initiated, you'll receive a corresponding refreshResponse.created webhook event with the appropriate refreshResponse object attached.
{
"id":"RRES_A3oU0aruRmmijUqllZbnfQ",
"bettorAccount":
{
"id":"BACT_RHcNmovNT1+pX5RZjrjwbQ",
"bettor":"BTTR_9pp7EAlYTRmwJn5+QjYAA",
"book":
{
"id":"BOOK_E4tSsP31QrWSd2nSiLmGpg",
"name":"William Hill",
"abbr":"wh"
}
},
"timeCreated":"2020-07-09T17:58:14.086593Z",
"status":200,
"requestId":"11e7736d01294ac39f7376c937171445",
"detail":null,
"type": "manual",
"betSlips": [
{
"id": "SLIP_CPNUi3RSWENfeyJN8M8A",
"bettor": "BTTR_J7ekiA9uTPaqkyspW7JVw",
"book": {
"id": "BOOK_IPBQaQQTCRxplZx7SYOA",
"name": "William Hill",
"abbr": "wh"
},
"bettorAccount": "BACT_8TxQsO8RcW8U2Q8Zkqg",
"bookRef": "23c12ad2-f2a6-3df9-9e14-a5ac3273857e",
"timePlaced": "2020-12-26T21:20:31Z",
"type": "single",
"oddsAmerican": -140,
"atRisk": 200,
"toWin": 143,
"netProfit": -200,
"status": "completed",
"outcome": "loss",
"incomplete":false,
"dateClosed": "2020-12-26",
"bets": [
{
"id": "BET_fU4asS1OSxSOTlcRfVKVCw",
"type": "straight",
"event": {
"id": "EVNT_AgTJ1tgTkuFFBy9tOS6Q",
"sportsdataioId": null,
"sportradarId": null,
"oddsjamId": null,
"sport": "Basketball",
"league": "NBA",
"name": "Atlanta Hawks @ Memphis Grizzlies",
"nameSpecial": null,
"startTime": "2020-12-26T22:00:00Z",
"startDate": "2020-12-26",
"sportId": "SPRT_basketball",
"leagueId": "LGUE_nba",
"contestantAway": {
"id": "TEAM_1269596f51d24d599ede2773c4cfee89",
"fullName": "Atlanta Hawks"
},
"contestantHome": {
"id": "TEAM_0edc4f087e244af3a5e86b0e25dbda58",
"fullName": "Memphis Grizzlies"
},
"neutralVenue": false
},
"proposition": "moneyline",
"propDetails": null,
"segment": null,
"segmentDetail": null,
"segmentId": "SEGM_M",
"position": "Memphis Grizzlies",
"line": null,
"oddsAmerican": -140,
"status": "completed",
"outcome": "loss",
"live": false,
"incomplete": false,
"bookDescription": "Atlanta Hawks at Memphis Grizzlies - Money Line - Memphis Grizzlies"
}
]
},
{
"id": "SLIP_pUIbpAxfR9qGaRZNBOeakQ",
"bettor": "BTTR_J7ekiA9uTPaqkyspW7JVw",
"book": {
"id": "BOOK_IPBQaQQTCRxplZx7SYOA",
"name": "William Hill",
"abbr": "wh"
},
"bettorAccount": "BACT_8TxQsO8RcW8U2Q8Zkqg",
"bookRef": "636e16e8-074b-3b67-b558-79dbc9ca06e0",
"timePlaced": "2020-12-26T21:21:26Z",
"type": "single",
"oddsAmerican": -110,
"atRisk": 200,
"toWin": 182,
"netProfit": 182,
"status": "completed",
"outcome": "win",
"incomplete":false,
"dateClosed": "2020-12-27",
"bets": [
{
"id": "BET_1Hy3dOIXQDiV5lQYrlK7aA",
"type": "straight",
"event": {
"id": "EVNT_IbFywpO4QRKvx4bbXiJELg",
"sportsdataioId": null,
"sportradarId": null,
"oddsjamId": null,
"sport": "Basketball",
"league": "NCAAMB",
"name": "Robert Morris Colonials @ Purdue Fort Wayne Mastodons",
"nameSpecial": null,
"startTime": "2020-12-27T00:00:00Z",
"startDate": "2020-12-27",
"sportId": "SPRT_basketball",
"leagueId": "LGUE_ncaamb",
"contestantAway": {
"id": "TEAM_e82543950e09438d88bf07e54c784471",
"fullName": "Robert Morris Colonials"
},
"contestantHome": {
"id": "TEAM_b854b4b32b194993b2a8fdef3c977afc",
"fullName": "Purdue Fort Wayne Mastodons"
},
"neutralVenue": false
},
"proposition": "total",
"segment": null,
"segmentDetail": null,
"segmentId": "SEGM_M",
"position": "Over",
"propDetails": null,
"line": 139.0,
"oddsAmerican": -110,
"status": "completed",
"outcome": "win",
"live": false,
"incomplete": false,
"bookDescription": "Robert Morris Colonials at Purdue Fort Wayne Mastodons - Total Points - Over"
}
]
}
]
}
Endpoints
refreshResponse list by bettorAccount
refreshResponse list by bettor
id (string)
A unique identifier representing the refreshResponseID. Each refreshResponseID will start with the unique character set RRES_
.
bettorAccount (hash)
A object representing the bettorAccount that was refreshed
. A bettorAccount that has been refreshed must be verified and accessible, so only core information about the bettorAccount (bettor and book) are included in the serialization.
timeCreated (datetime)
A timestamp for the creation of the refreshResponse object.
status (integer)
This status code indicates the result of the refresh request. The possible codes are:
Status Code | Description | Meaning |
---|---|---|
200 | refresh successful | Successfully pulled new data from the bettorAccount |
202 | refresh successful | Successfully pulled new data from the bettorAccount but due to large data volume the betSlips are not included on the object |
401 | refresh unsuccessful - handled error | This could be due to a password change for this book, an update in the sportsbook terms of service, or activation of additional security measures on the account (such as 2FA) |
403 | refresh not attempted - access for this bettorAccount has been revoked | access |
406 | refresh unsuccessful - incorrect OTP | See the 2FA handling section |
424 | refresh not attempted - book down for maintenance | See the book status definition |
429 | refresh not attempted - rate limiting | Account refreshes must be made at least 60 seconds apart and cannot overlap. See rate limiting for more details. |
500 | refresh unsuccessful - unhandled error | This type of error occurs on less than 2% of refresh requests |
requestId (string)
The id of the refresh request that initiated this refreshResponse.
detail (string)
An error message associated with the status code.
type (string)
Indicates how the refresh was initiated. One of the following:
type | description |
---|---|
manual | initiated from the /refresh endpoint |
verify | initiated from a SharpSports Book Link UI session |
reverify | initiated from the /refresh?reverify=true endpoint |
cadence | initiated from the SharpSports Dashboard refresh cadence |
system | initiated by Sharpsports, either to reverify an account or to update fields on existing bets |
grade | initiated by SharpSports. Includes bets automatically graded by SharpSports grading logic |
betSlips (list)
A list of json formatted betSlip objects updated or created by this refreshResponse.
This attribute represents the state of the betSlips at the time of this RefreshResponse event. To get up to date bet slips you must query the betSlip object directly.