Global Error List

Whenever the system generates an error, you will receive a standard error response. As well as supplying a standard HTTP status code, we also supply a unique William Hill fault code, fault string and in some cases a fault name to help you identify and resolve any issues that you may be having with our APIs.

Example Error

As you can see from the table below, the error response supplies the following elements when an error is present:

Fault code Fault String HTTP code HTTP response
22220 Email address is already registered 200 OK

Where the elements can be described as:

  • Fault Code - a unique William Hill identifier for the error
  • Fault String - a unique William Hill text string to enable you to identify the error (in English only)
  • HTTP Code - the standard HTTP status code for the error
  • HTTP Response - the standard HTTP response for the error

Note: A Fault name may also be generated to help you pinpoint where the request has failed.

Available response formats

The error codes are supplied in the following formats:

  • XML
  • JSON

Using the Request ID as an audit reference

The Response headers for the API calls contain the who-requestId parameter in order to track each individual request. This serves as an audit reference for a request if an an error is reported. 

Fault Code

Fault String

HTTP Code

HTTP Response

API Name

10000 Gateway policy error 500 Internal Server Error Generic Error
10002 Supporting system unavailable 502 Bad gateway Generic Error
10003 Resource not found 404 Not found Generic Error
10010 No API key provided within the request 400 Bad request Generic Error
10011 Invalid API key 401 Not authorized Generic Error
10020 An API secret is mandatory for this request 400 Bad request Generic Error
10021 Invalid API secret 401 Not authorized Generic Error
10030 Application rate limit exceeded 403 Forbidden Generic Error
10040 Application quota limit exceeded 403 Forbidden Generic Error
10045 Application time limit exceeded 403 Forbidden Generic Error
10050 Unsupported media type 400 Bad request Generic Error
10051 Unsupported vendor specific media type 415 Unsupported media type Generic Error
10060 Unsupported protocol for service 400 Bad request Generic Error
10070 Missing request parameter 200 OK Generic Error
10071 Invalid request parameter 200 OK Generic Error
10072 Invalid number of request parameters 200 OK Generic Error
11000 Application metadata not configured correctly 404 Not found Generic Error
20000 Credentials failed to validate 401 Not authorized Sessions API
20010 Missing request parameter 200 OK Sessions API
20020 Account is under self-exclusion 403 Forbidden Sessions API
20030 Account is not active 403 Forbidden Sessions API
20031 Account is locked 403 Forbidden Sessions API
20032 Account is closed 403 Forbidden Sessions API
20033 Account is under age-verification  403 Forbidden Sessions API
20040 Target service not established 403 Forbidden Sessions API
20060 Time-out is applied on the account 403 Forbidden Sessions API
22209 Username already exists 409 Conflict Accounts API
22210 Username already exists 200 OK Accounts API
22211 Username must be between 6 and 15 characters 200 OK Accounts API
22220 Email address is already registered 200 OK Accounts API
22221 Email address has an invalid format 200 OK Accounts API
22222 Email address is greater than sixty characters 200 OK Accounts API
22223 Password must be between 6 and 15 characters 200 OK Accounts API
22224 Username has an invalid format 200 OK Accounts API
22225 Username and email address are already registered 200 OK Accounts API
22230 Account limit not set 200 OK Accounts API
22250 Invalid promotion code 200 OK Accounts API
23010 Insufficient funds 200 OK Bets API
23011 Stake too low 200 OK Bets API
23012 Stake too high 200 OK Bets API
23020 Price changed 200 OK Bets API
23021 Market suspended 200 OK Bets API
23022 Live prices not available 200 OK Bets API
23023 Unexpected bet failure 200 OK Bets API
23024 Selection started 200 OK Bets API
23025 Handicap has changed 200 OK Bets API
23031 Wrong number of parts for leg sort 200 OK Bets API
23100 Invalid price type 200 OK Bets API
23101 Invalid leg sort 200 OK Bets API
23102 Invalid stake 200 OK Bets API
23103 Invalid markets 200 OK Bets API
23104 Invalid bet type 200 OK Bets API
23105 Invalid leg type 200 OK Bets API
23106 Invalid scorecast parameters 200 OK Bets API
23107 Each way not available 200 OK Bets API
23108 Best price not available 200 OK Bets API
23109 Forecasts not available 200 OK Bets API
23110 Tricast not available 200 OK Bets API
23111 First show not available 200 OK Bets API
23112 Second show not available 200 OK Bets API
23113 Starting price not available 200 OK Bets API
23114 Next price not available 200 OK Bets API
23115 Scorecast not available 200 OK Bets API
23116 No price available 200 OK Bets API
23118 Eachway terms have changed 200 OK Bets API
23119 Maximum payout too high 200 OK Bets API
23130 Cash In value changed 200 OK Bets API
23131 Cash In has a delay 200 OK Bets API
23132 Cash In has a delay 200 OK Bets API
23133 Cash In has a pending delay 200 OK Bets API
23134 Cash In value too high 200 OK Bets API
23135 Cash In unavailable 200 OK Bets API
23136 Cash In bet already settled 200 OK Bets API
23200 No results. Check block size? 200 OK Bets API
25020 Price changed 200 OK Betslips API
25021 Market Suspended 200 OK Betslips API
25022 Live prices not available 200 OK Betslips API
25023 Unexpected bet failure 200 OK Betslips API
25024 Selection started 200 OK Betslips API
25025 Handicap has changed 200 OK Betslips API
25031 Wrong number of parts for leg sort 200 OK Betslips API
25032 Maximum number of parts for leg sort exceeded 200 OK Betslips API
25103 Invalid markets 200 OK Betslips API
25106 Invalid scorecast parameters 200 OK Betslips API
25107 Each way not available 200 OK Betslips API
25108 Best price not available 200 OK Betslips API
25109 Forecasts not available 200 OK Betslips API
25110 Tricast not available 200 OK Betslips API
25111 First show not available 200 OK Betslips API
25112 Second show not available 200 OK Betslips API
25113 Starting price not available 200 OK Betslips API
25114 Next price not available 200 OK Betslips API
25115 Scorecast not available 200 OK Betslips API
25116 No price available 200 OK Betslips API
25117 Outcomes cannot be combined 200 OK Betslips API
25118 Eachway terms have changed 200 OK Betslips API
27002 Response format is unknown 200 OK Competitions API
27003 Response format is not supported 200 OK Competitions API
27004 Betting is suspended 200 OK Competitions API
27010 Not enough suggestions to support numOutcomes 200 OK Competitions API
27020 Stake and/or expectedReturns combination returns no results 200 OK Competitions API
27030 Too few outcomes requested for a suggestion 200 OK Competitions API
27210 Lowest parameter greater than or equal to highest parameter 200 OK Numbers API
27220 Count parameter too large 200 OK Numbers API