SharkScope WS API
SharkScope WS API
Version 1.0.74
12 May 2020
SHARKSCOPE REST WEB SERVICES
CONTENTS
Contents.................................................................................................................................................2
Revision History....................................................................................................................................6
1. Request Format..............................................................................................................................7
1.1. URL Format...........................................................................................................................7
1.2. Authentication Parameters.....................................................................................................7
1.3. Headers..................................................................................................................................7
1.4. Password Encoding................................................................................................................7
2. Response Format...........................................................................................................................8
2.1. Basic Response Objects.........................................................................................................9
2.1.1. Response........................................................................................................................9
2.1.2. UserInfo.........................................................................................................................9
2.1.3. ErrorResponse................................................................................................................9
3. Resources.......................................................................................................................................9
3.1. Generic Resources...............................................................................................................10
3.1.1. Metadata......................................................................................................................10
3.2. Sharkscope Client Resources...............................................................................................10
3.2.1. DownloadResource......................................................................................................10
3.2.2. Version Check..............................................................................................................10
3.3. Player Resources..................................................................................................................10
3.3.1. Summary......................................................................................................................11
3.3.2. Completed Tournaments..............................................................................................12
3.3.3. Active Tournaments.....................................................................................................12
3.3.4. Statistics.......................................................................................................................12
3.3.5. Suggestions..................................................................................................................13
3.3.6. User note......................................................................................................................13
3.3.7. OptOut.........................................................................................................................13
3.3.8. OptIn............................................................................................................................13
3.3.9. Confirm Opt Change....................................................................................................14
3.3.10. Reset............................................................................................................................14
3.3.11. Graph...........................................................................................................................14
3.3.12. Profile..........................................................................................................................15
3.3.13. Timeline.......................................................................................................................15
3.3.14. Timeline Event.............................................................................................................15
3.4. PlayerGroup Maintenance Resources..................................................................................16
3.4.1. List...............................................................................................................................16
3.4.2. Retrieval.......................................................................................................................16
3.4.3. Modification................................................................................................................16
3.4.4. Adding players.............................................................................................................17
3.4.5. Modifying Members....................................................................................................17
3.4.6. Deleting Members........................................................................................................17
3.4.7. Deleting the group........................................................................................................17
3.5. Tournament Resources.........................................................................................................18
3.5.1. Tournament ID.............................................................................................................18
3.5.2. Registering Tournaments..............................................................................................18
3.5.3. Completed Tournaments..............................................................................................18
3.5.4. Bare Tournaments........................................................................................................19
3.5.5. Running Chips Tournaments........................................................................................19
3.6. Active Tournaments.............................................................................................................20
3.6.1. Players’ Active Tournaments........................................................................................20
3.7. Leaderboard Resources........................................................................................................21
3.7.1. Year..............................................................................................................................21
3.7.2. Private..........................................................................................................................21
3.7.3. Category.......................................................................................................................21
3.7.4. Subcategory.................................................................................................................21
3.7.5. Value Type...................................................................................................................22
3.8. Network Resources..............................................................................................................22
3.8.1. Coverage......................................................................................................................22
3.9. User Resources....................................................................................................................22
3.9.1. Login............................................................................................................................22
3.9.2. Preferences...................................................................................................................23
3.9.3. Blog URL.....................................................................................................................23
3.9.4. User Metadata..............................................................................................................23
3.9.5. Preferences Update......................................................................................................23
3.9.6. Payments......................................................................................................................23
3.9.7. Creation/Registration...................................................................................................24
3.9.8. Saved filters list...........................................................................................................24
3.9.9. Saved filter definition by name....................................................................................24
3.9.10. Save the filter...............................................................................................................25
3.9.11. Delete the saved filter..................................................................................................25
3.9.12. Change email address...................................................................................................25
3.9.13. Change user password..................................................................................................25
3.9.14. User-specific player classes.........................................................................................25
3.9.15. User-defined player classes..........................................................................................26
3.9.16. Create/modify user-defined player class......................................................................26
3.9.17. Delete user-defined player class...................................................................................26
3.9.18. Reseller Information....................................................................................................26
3.9.19. Add Reseller Payment..................................................................................................27
3.9.20. Set Application Permission..........................................................................................27
3.9.21. Get Application Permission..........................................................................................27
3.9.22. Delete Application Permission.....................................................................................28
3.9.23. User notes for players (bulk)........................................................................................28
3.9.24. Set Manager.................................................................................................................28
3.9.25. Delete Manager............................................................................................................28
3.10. Report resources..............................................................................................................29
3.10.1. Report resource (by region).........................................................................................29
3.10.2. Report resources (by network).....................................................................................29
3.10.3. Hourly Market Shares Report(by Region)....................................................................29
3.10.4. Hourly Market Shares Report(by Network).................................................................30
3.10.5. Daily Scheduled Tournaments Report (by Region)......................................................30
3.10.6. Daily Scheduled Tournaments Report (by Network)....................................................30
3.11. Filter................................................................................................................................31
3.11.1. Date constraint.............................................................................................................31
3.11.2. DayOfWeek constraint.................................................................................................31
3.11.3. Duration constraint.......................................................................................................32
3.11.4. Entrants constraint.......................................................................................................32
3.11.5. Type constraint.............................................................................................................32
3.11.6. Stake constraint............................................................................................................34
3.11.7. Rake constraint............................................................................................................34
3.11.8. Stake Plus Rake constraint...........................................................................................34
3.11.9. Guarantee constraint....................................................................................................34
3.11.10. Overlay constraint....................................................................................................35
3.11.11. Prize constraint.........................................................................................................35
3.11.12. PrizePool constraint.................................................................................................35
3.11.13. Class constraint........................................................................................................35
3.11.14. Player Class constraint.............................................................................................35
3.11.15. Limit constraint........................................................................................................36
3.11.16. Saved filter constraint..............................................................................................36
4.4. Tournament..........................................................................................................................48
4.4.1. Statistics.......................................................................................................................48
4.4.2. TournamentEntry.........................................................................................................48
4.5. Leaderboards.......................................................................................................................48
4.5.1. Hierarchy:....................................................................................................................48
4.5.2. Leaderboard.................................................................................................................48
5. SharkScope-as-a-service (Sharkscope-push)...............................................................................50
6. Errors...........................................................................................................................................51
6.1. Description...........................................................................................................................51
6.2. Error Codes..........................................................................................................................51
REVISION HISTORY
Version 1.0.73 (22 Apr 2020) Removed Player Leaderboard Ranks resource
as it duplicates functionality in the Player Profile resource.
Version 1.0.71 (21 Feb 2020) Added Private Leaderboard Edit Functionality
1. REQUEST FORMAT
1.1. URL FORMAT
All REST based web service calls are https calls with the following format:
https://www.sharkscope.com/api/appname/resource path?parameters
appname: Your application name, allocated to you by SharkScope on request,
resource path: The path to a specific resource,
parameters: Request parameters, such as username/password and filter.
1.2. AUTHENTICATION PARAMETERS
The URL parameters may contain the authentication information if required. This includes the
Username as clear text and the Password as a hex string representation of the passwords MD5 hash.
Example:
?Username=someone@somewhere.com&Password=ea3df3c7fa3557d23d2cf889b1a4c90d
1.3. HEADERS
The Accept header is required and should contain the response format required. This can currently be
either XML or JSON.
All REST calls that require authentication may include a username and password pair as headers
instead of parameters.
#!/usr/bin/env ruby
require 'digest/MD5'
encode('ea3df3c7fa3557d23d2cf889b1a4c90d', '21f5e7aa7893caf0')
#include <openssl/md5.h>
#include <string.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
char encodedPassword[] = "ea3df3c7fa3557d23d2cf889b1a4c90d";
char applicationKey[] = "21f5e7aa7893caf0";
char encodedPasswordKey[49];
strcpy(encodedPasswordKey, encodedPassword);
strcat(encodedPasswordKey, applicationKey);
2. RESPONSE FORMAT
Incorrect calls will get either of the following response codes:
404 Not Found
405 Method Not Allowed
Each correctly formatted REST call will get a response from the web service in the form of either an
XML or JSON string.
If the call was unsuccessful the response root will be ErrorResponse, otherwise it will be appropriate
to the request (e.g. all player info calls have a response root PlayerResponse).
Response roots always contain a “timestamp” attribute containing the server time as a long
representation of the number of seconds since UNIX epoch. In fact, all date/time information are
represented in this format (See https://en.wikipedia.org/wiki/Unix_time).
Furthermore, all responses contain a UserInfo element which represents the authenticated user
information. Resources that do not require authentication also contain a UserInfo element.
2.1.3. ERRORRESPONSE
The ErrorResponse root element contains error information and is returned when the call is
unsuccessful. Example:
<Response success="false" timestamp="1279613507">
<ErrorResponse>
<Error id="101002">Invalid password.</Error>
</ErrorResponse>
</Response>
The ErrorResponse contains an Error element. The value is the description of the error in English and
the id attribute contains the error code. The error code can be used to localize the error string.
3. RESOURCES
The root URL of all REST resources in the section is:
https://www.sharkscope.com/api/appname/
For resources that require authentication or where authentication is optional, the username/password
pair can be either parameters or headers.
The network name in some resources is “network specifier”. In other cases it is a network name or
“PlayerGroup” that is used when requesting player groups. When requesting player groups the player
name is the name of the player group.
Network specifiers are a way to request multiple networks. There are two ways to request multiple
networks, “all” or “any”. When requesting ‘all’ networks, all the networks provided will be used in
the request. In the case of ‘any’ the resource will search each provided network in order until it finds a
matching player.
To provide a network specifier, provide a list of comma-separated network preceded by the ‘all’ or
‘any’ keyword and a colon (‘:’). e.g.:
https://www.sharkscope.com/api/appname/networks/all:fulltilt,pokerstars/players/al
https://www.sharkscope.com/api/appname/networks/any:fulltilt,pokerstars/players/al
The ‘all’ keyword can also be replaced with a * character and the ‘any’ keyword with an ‘@’
character, so the above examples become:
https://www.sharkscope.com/api/appname/networks/*:fulltilt,pokerstars/players/al
https://www.sharkscope.com/api/appname/networks/@:fulltilt,pokerstars/players/al
The ‘any’ or ‘*’ keyword is implied so if you provide just a list of networks it is equivalent to having
an ‘any’ keyword before the list.
https://www.sharkscope.com/api/appname/networks/*:fulltilt,pokerstars/players/al
If no network list is provided then a list of all active searchable networks is implied. However at least
one of the keywords (‘all’, ‘any’, ‘*’, ‘@’) must be provided. The order is also not predetermined so
the ‘any’ keyword is only useful if you are looking for a player for the first time, otherwise it is going
to be returning whichever player it finds first.
The resources that allow network specifiers have a «network specifier» flag next to the parth in the
definition tables in this chapter
Each network name can be URL encoded (UTF-8) if it contains spaces. Skins can also be provided as
network names. The “Player name” path parameter must always be URL encoded (UTF-8).
The resource “suggestions” doesn’t require a full player name and doesn’t return a PlayerResponse.
Most player resources return a PlayerResponse object sparsely populated according to the request.
All player resources may also be filtered by providing a filter parameter (see filter section).
Summary, statistic and completed tournament requests may provide an optional lastUpdateTime
parameter of type long representing a UNIX timestamp. If the last activity of the player or group
supplied is less than or equal to that timestamp (i.e. there was no activity after the timestamp) then a
Generic response is returned with the text “Unchanged”.
3.3.1. SUMMARY
Requests player summary information. The response contains basic information about the user as well
as all free statistical information and a small number of most recent tournament results.
The optional mode parameter introduces a flexible “versus User” functionality. There are three mode
options: “vsuseronblocked”, “normal”, and “vsuser”. If the user has set up a personal user group
containing their players in various networks and there is a player specified for the network of the
searched player, the default mode is “vsuseronblocked”, otherwise the mode is set to normal in all
cases.
If the user is blocked under the vsuseronblocked mode, only the tournaments where the player has
played against the user are included. In “vsuser” mode there are two player response elements, one for
the all tournaments (if the player is not blocked) and one for the tournaments against the user (if
possible).
If the player is a group then the group inherits the most restrictive opt out mode of its members. E.g. if
there is an opted out player in the group then the whole group is considered opted out and that player
must be removed from the group to be able to view that groups statistics. Likewise if a member of the
group is not opted in on PokerStars, then the financial statistics for that group will not be viewable
until that player is removed or opts in.
Type GET
Authentication Required.
Cost 1
Response A sparsely populated PlayerResponse object.
Path root «network specifier»
Parameters Authentication, filter [Optional], mode [Optional], lastUpdateTime [Optional]
Example https://www.sharkscope.com/api/someapp/networks/fulltilt/players/tom
3.3.4. STATISTICS
Requests all or a selection of the statistics. The response contains only the statistics requested (could
be all) with no recent tournaments.
Type GET
Authentication Required. Subscriber Only.
Cost Depends on type of statistics requested/retrieved.
Response A sparsely populated PlayerResponse object.
Path statistics, statistics/[statistic name],... «network specifier»
Parameters Authentication, Filter [Optional], lastUpdateTime [Optional]
Example https://www.sharkscope.com/api/someapp/networks/fulltilt/players/tom/statistics
https://www.sharkscope.com/api/someapp/networks/fulltilt/players/tom/statistics/Total
Stake,TotalCashes,Streaks
3.3.5. SUGGESTIONS
Requests a list of players starting with the player name (prefix) provided. The response is a
SearchSuggestionsResponse.
Type GET
Authentication Required.
Cost Depends on type of statistics requested/retrieved.
Response A SearchSuggestionResponse object.
Path suggestions
Parameters Limit [Optional, default=25]
Example https://www.sharkscope.com/api/someapp/networks/fulltilt/players/tom/suggestions
3.3.7. OPTOUT
Request to opt out a player's statistics. The response contains the success or failure message. If the
user has the networkadmin privilege for that network the email parameter is not required and the
player is opted out immediately and any existing Optins or Resets are removed. Otherwise a
confirmation email is sent to the user and any existing resets must be removed before an opt out can
be processed. If no email parameter is supplied the username is used. Players who are on an active
leaderboard cannot be Opted Out without the networkadmin privilege – in which case they will be
automatically removed from any current leaderboards – but not from historic leaderboards.
Type GET
Authentication Optional
Cost 0
Response Success or failure message MessagesResponse object.
Path optout
Parameters Email [Optional]
Example https://www.sharkscope.com/api/someapp/networks/fulltilt/players/tom/ optout
3.3.8. OPTIN
Request to opt in a player's statistics and removes any existing resets or opt outs. The response
contains the success or failure message. If the user has the networkadmin privilege for that network
the email parameter is not required and the player is opted in immediately and all opt outs and resets
are removed. Otherwise a confirmation email is sent to the user. The email address provided must be
the same as the one used to create any existing opt out or resets. If no email address is supplied the
username is used.
Type GET
Authentication Required
Cost 0
Response Success or failure message MessagesResponse object.
Path optin
Parameters Email [Optional]
3.3.10. RESET
Request to reset a player statistics so that they start from a specific date and anything before that date
is hidden from all users. The response contains the success or failure message. Resets are restricted to
one per network unless the user has the networkadmin privilege for that network. Resets have no
effect on leaderboard entries. If a reset exists, a user can only update that reset if the request email
address matches the email address that was used to create the reset. Users with networkadmin
privilege can update all resets. If no StartDateTime is provided the current date time is used.
Type GET
Authentication Required. Subscriber Only.
Cost 0
Response Success or failure message MessagesResponse object.
Path reset
Parameters StartDateTime [Optional]
Example https://www.sharkscope.com/api/someapp/networks/fulltilt/players/tom/reset
3.3.11. GRAPH
Retrieves an image representing a player's current SharkScope status sometimes referred to as an
Avatar. The image returned is in SVG format and therefore can be scaled to any size. The graphs can
be requested in a range of types from small text-only plaques, up to large graphs similar to the profit
graph on the SharkScope website. The following table describes the currently supported graph types:
according to profit/loss
AvatarSmall A small graph showing the player's profit history. The graph
180 180
(Deprecated) does not contain any player text.
A large graph showing the player's profit history. The graph
AvatarLarge
also shows a few other player statiistics that put the chart in 600 250
(Deprecated)
context.
Graphs can be requested in a specific size although, as this is a vector format, this effect can be
reproduced from a single size using the Browser's zoom functionality. The Freshness parameter
specifies the interval in seconds after which the underlying data will be refreshed and thus another
cost incurred. The default value is 10800 (3 hours). The graphs are currently only displayed in USD
currency.
Type GET
Authentication Required.
Cost 1
Response An SVG document with mime-type of application/xhtml+xml
Path graph
Parameters Authentication
filter [Optional]
freshness [Optional]
type: “AvatarText”, “AvatarSmall”, “AvatarLarge”
width [Optional]
height [Optional]
Example https://www.sharkscope.com/api/someapp/networks/fulltilt/players/tom/graph ?
type=AvatarLarge
3.3.12. PROFILE
The request retrieves the player object which includes last activity timestamp of the player or group.
Only valid for registered users with an active subscription.
Type GET
Authentication Required.
Cost 0
Response A GenericResponse containing the last activity timestamp.
Path lastActivity
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/networks/fulltilt/players/tom/profile
3.3.13. TIMELINE
The request retrieves the player’s timeline with all events.
Type GET
Authentication Required.
Cost 0
Response A PlayerResponse containing the player’s timeline.
Path timeline «network specifier»
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/networks/fulltilt/players/tom/timeline
Cost 0
Response A PlayerResponse containing the player’s timeline.
Path timeline/{id} «network specifier»
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/networks/fulltilt/players/timeline/ABC1
3.4.2. RETRIEVAL
Requests the player group information. The response contains only basic information about the group
and its members to allow adding, deleting and modifying group aspects.
Type GET
Authentication Required. Subscriber Only.
Response A sparsely populated PlayerGroupResponse object.
Path
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/playergroups/MyGroup
https://www.sharkscope.com/api/someapp/playergroups/personal
3.4.3. MODIFICATION
Can be used to modify the flags or the name of the group. There are two group flags that can be
modified, namely if it is public or private and if it is consolidated or not. If the group is public it
appears when searching for groups. Consolidated groups behave as a single player, for example when
requesting the summary of a consolidated group you will get all stats of all players consolidated. The
values for the public and consolidated path parameters can be y/n or true/false. If any of the
parameters missing, invalid or empty it will be ignored.
Type GET
Authentication Required. Subscriber Only.
Response A sparsely populated PlayerGroupResponse object.
Path Modify
Parameters Authentication, public [Optional], consolidated [Optional], name [optional]
Example https://www.sharkscope.com/api/someapp/playergroups/MyGroup/modify?
public=y&consolidated=n
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/playergroups/MyGroup
Network name cannot be “PlayerGroup”. For the resources that request a specific tournament by ID a
network specifier may be provided (see 3.3 for more information). The network name can be URL
encoded (UTF-8) if it contains spaces. Skins can also be provided as network names.
3.5.1. TOURNAMENT ID
Requests a specific tournament by ID. The response contains a single tournament with the requested
ID if it exists. If not found, an error response is returned.
If the tournament is a registering tournament and a last update from the previous retrieval is specified
the response is a simple generic response with the text “unchanged”. This can be used to avoid
transferring large amount of data.
By default for multi-entry tournaments each player’s results are combined into a single result row. To
return each entry as a separate row use expandMultiEntries=true.
Requesting a tournament with the parameter noPlayers=true it will return the tournament element
without the player elements.
Type GET
Authentication Required.
Cost 1 (subsequent requests free for 3 hours)
Response A TournamentResponse object.
Path {Specific Tournament ID} «network specifier»
Parameters Authentication, lastUpdateTime [Optional], expandMultiEntries [Optional], noPlayers
[Optional]
Example https://www.sharkscope.com/api/someapp/networks/fulltilt/tournaments/123456789
A state of SUBMITTED means that the tournament has been requested or was already requested.
A state of ERROR means that the tournament data was unable to be retrieved.
A state of COMPLETED means that the response is populated with the tournament data.
A completed response contains limited information about the tournament itself but contains the name
and chip count for each player in the tournament. The cost is 1 search.
Within the COMPLETED response the players are listed in order by highest to lowest chip counts
with knocked-out players appearing with zero chips and a finishing rank (in ascending rank order).
Not all networks are currently supported but support is on-going. If a request is made for an
unsupported network you will receive an immediate error response.
RunningChipsTournaments are cached for 5 minutes; therefore once you have received a response of
either COMPLETED or ERROR, a request for the same game, within this time, will return the same
data.
We recommend a polling interval of around 10 seconds. Polling should be abandoned if a COMPLETED or
ERROR state is not received within 2 minutes.
Type GET
Authentication Required.
Cost 1 (COMPLETED response)
Response A RunningChipsResponse object.
Path chips
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/networks/pokerstars/tournaments/123456789/chips
Example response:
<RunningChipsResponse>
<RunningChipsTournament network="pokerstars" tournamentId="1568330211"
state="COMPLETED" name="$7.00 NL Hold'em [Turbo]" stake="6.45" rake="0.55">
<players>
<player name="simal64" chips="5914"/>
<player name="Roll_Me_Now" chips="5671"/>
<player name="gaita763" chips="1915"/>
<player name="ImSingle6" chips="0" position="4"/>
<player name="fclmdon92" chips="0" position="5"/>
<player name="BronoCaetino" chips="0" position="6"/>
<player name="sanrah1" chips="0" position="7"/>
<player name="Y259066" chips="0" position="8"/>
<player name="sinsa72" chips="0" position="9"/>
</players>
</RunningChipsTournament>
</RunningChipsResponse>
Type GET/POST
Authentication Not Required.
Cost 1 per player (players inquired within the past 3 hours cost nothing)
Response A PlayerResponse object.
Path
Parameters networdX, playerX where X is the continuous index starting with one.
Example https://www.sharkscope.com/api/someapp/activeTournaments?
network1=pokerstars&player=someplayer&network2=cake&player=anotherplayer&...
3.7.1. YEAR
Requests the leaderboards for a specific year. The response contains all the leaderboards for the year
as a hierarchy.
Type GET
Authentication Not Required.
Cost 0
Response A LeaderboardDisplayResponse object.
Path <year>
Parameters
Example https://www.sharkscope.com/api/someapp/poker-leaderboards/2010
3.7.2. PRIVATE
Requests the private leaderboards. The response contains all the private leaderboards as a hierarchy.
Type GET
Authentication Not Required.
Cost 0
Response A LeaderboardDisplayResponse object.
Path Private
Parameters
Example https://www.sharkscope.com/api/someapp/poker-leaderboards/private
3.7.3. CATEGORY
Requests the leaderboards for a specific category. The response contains all the leaderboards under
that category as a hierarchy.
Type GET
Authentication Not Required.
Cost 0
Response A LeaderboardDisplayResponse object.
Path <year>/<category>, private/<category>
Parameters
Example https://www.sharkscope.com/api/someapp/poker-leaderboards/2010/Scheduled
https://www.sharkscope.com/api/someapp/poker-leaderboards/private/Scheduled
3.7.4. SUBCATEGORY
Requests the leaderboards for a specific subcategory. The response contains all the leaderboards under
that subcategory as a hierarchy.
Type GET
Authentication Not Required.
Cost 0
3.8.1. COVERAGE
Requests the network or networks coverage. The response contains all the coverage information for
the specified networks. Network can be “*” to denote all networks.
Type GET
Authentication Not Required.
Cost 0
Response A NetworkCoverageResponse object.
Path Coverage
Parameters
Example https://www.sharkscope.com/api/someapp/networks/pokerstars/coverage
https://www.sharkscope.com/api/someapp/networks/pokerstars,fulltilt/coverage
https://www.sharkscope.com/api/someapp/networks/*/coverage
3.9.1. LOGIN
Performs a login confirmation. The response only contains the UserInfo element if successful.
Type GET
Authentication Required.
Cost 0
Response A simple Response object.
Path (root)
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/user
3.9.2. PREFERENCES
Requests the user’s preferences.
Type GET
Authentication Required.
Cost 0
Response A UserPreferencesResponse object.
Path Preferences
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/user/preferences
3.9.6. PAYMENTS
Requests the user’s payments.
Type GET
Authentication Required.
Cost 0
Response A UserPaymentsResponse object.
Path Payments
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/user/payments
3.9.7. CREATION/REGISTRATION
Requests the creation/registration of a new user. If successful, the user is created and a login
confirmation is performed.
Type GET
Authentication Required.
Cost 0
Response A simple Response object.
Path Create
Parameters Authentication, affID [Optional], country [Optional], emailOption [Optional],
Example https://www.sharkscope.com/api/someapp/user/create
The optional affID parameter specifies the affiliation ID, the country specifies the user’s country (if
not specified it is determined by the IP address, and the emailOption parameter (Y/N) specifies if the
user should be added to the sharkscope mailing list.
The password passed as part of the authentication should be encoded only once using MD5 and not
encoded using the application key as described in section 1.4. Example:
String password = “ab1234”;
byte[] defaultBytes = password.getBytes();
try {
MessageDigest algorithm = MessageDigest.getInstance("MD5");
algorithm.reset();
algorithm.update(defaultBytes);
byte messageDigest[] = algorithm.digest();
Example https://www.sharkscope.com/api/someapp/user/filters/{filterName}
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/user/playerclasses
The request returns a number of HourlyMarketShare elements with the following attributes: structure,
stake, region, rake, network, hour, game, flags, entrants, date, currency, avduration. The value of the
element itself is the hourly market share.
Example:
<HourlyMarketShareResponse>
<HourlyMarketShare structure="NL" stake="0.4" region="IT" rake="0.1" network="MicroGame"
hour="0" game="H" flags="T" entrants="6.0" date="2015-02-10" currency="EUR"
avduration="1376">3</HourlyMarketShare>
<HourlyMarketShare structure="NL" stake="0.4" region="IT" rake="0.1" network="MicroGame"
hour="0" game="H" entrants="9.0" date="2015-02-10" currency="EUR"
avduration="3141">1</HourlyMarketShare>
The request returns a number of ScheduledTournament elements with the following attributes:
structure, stake, region, rake, prizePool, numRebuys, network, name, id, guarantee, game, flags,
entrants, date, and currency.
Example:
<DailyScheduledTournamentResponse>
<ScheduledTournament structure="NL" stake="225.00" region="IT" rake="25.00"
prizePool="14850.0" network="iPoker.it" name="Explosive Sunday HighR 15.000€"
id="624315649" guarantee="15000.0" game="H" flags="D" entrants="66"
date="1391998616" currency="EUR"/>
<ScheduledTournament structure="NL" stake="63.00" region="IT" rake="7.00"
prizePool="2520.0" network="iPoker.it" name="SNAI PSP 3.500€ Gtd" id="624395120"
guarantee="3500.0" game="H" flags="D" entrants="40" date="1391989802"
currency="EUR"/>
<ScheduledTournament structure="NL" stake="4.20" region="IT" rake="0.80"
prizePool="247.75" numRebuys="59" network="iPoker.it"
name="Sat Snai PSP 4.000€ Gtd. R/A" id="624415123" guarantee="200.0"
game="H" flags="T,SAT,R" entrants="25" date="1392058336" currency="EUR"/>
</DailyScheduledTournamentResponse>
3.11. FILTER
Most player resources (except suggestions and usernote) may utilize a filter to restrict the tournaments
included in the statistics and recent tournaments. The filter is a collection of constraints on various
aspects of online poker games such as type, format, speed, etc.
The constraint types and their possible values are contained in the MetadataResponse. Some of them
are ranges or single numerical value constraints and there is a date-type constraint that requires special
handling. All of the constraint types are explained later in this section.
The filter parameter value is a string representation of the various constraints separated by semicolon.
The constraint type and values are separated by colon characters. Finally, the constraint may be
inverted (NOT operation) by adding an exclamation mark (“!”) after the constraint name. For
example:
?filter=Type:O,OHL,T;Type!:SAT;Stake:USD2~*
The above filter selects only tournaments where the Game was Omaha (“Omaha Hi” and “Omaha
H/L”), the Speed was Turbo, the Format was Heads-up or Satellite, the Stake was more than or equal
to $2, the Structure was “Pot Limit” or “Limit”.
3.11.1. DATE CONSTRAINT
Defines the date/time range of the tournaments to include.
Name Date
Type Date
Examples Date:1Y
Date:2007
Date:1274109174~1274130000
Date!:1Y [i.e. NOT the past year]
The value can be one of the following:
A natural number n (integer greater than 0) followed by a character ('Y', 'M', 'W', 'D', 'H', or 'S'). It
denotes a time period of the last n years, months, weeks, days, hours or seconds respectively. E.g.
“1Y” means “in the past year”.
A negative integer followed by one of the previously mentioned characters. It denotes a time
offset in the future e.g. “up to the next 1 hour”. This is only relevant for active tournaments in
order to find tournaments that start in the near future. See “Active Tournaments” for further
information.
A year after 2006. It denotes that specific year as the time period.
A range of Unix timestamps. It denotes the specified range of date/times as the time period.
The value can be one or more days of week represented by the first two letters of week days in
English. If multiple days are specified they must be separated by comma characters.
3.11.3. DURATION CONSTRAINT
Defines the date/time range of the tournaments to include.
Name Duration
Type Range
Examples Duration:1~10, Duration:30s~50m, Duration!:1h~*
The ranges can be post fixed with an “s”, “m” or “h” to denote seconds, minutes or hours. If there is
no postfix the number is assumed to denote minutes. For example “Duration: 30s-10” sets the
duration range to 30 seconds to 10 minutes inclusive.
3.11.4. ENTRANTS CONSTRAINT
Defines the number of entrants as a range.
Name Entrants
Type Range
Examples Entrants:2~5
Entrants:5~*
Entrants!:*~4 [same as “5~*”]
The value is a range. A star (“*”) character denotes “any”, e.g. “5~*” means “5 to any” or “more than
4”.
3.11.5. TYPE CONSTRAINT
Defines the tournament types to be included.
Name Type
Type Multiple selection
Examples Type:SO,FPP,O,OHL,HORSE,T
Type:FPP,HU,SAT
Type!:SAT
At the time of writing this document these are the available options:
Option Catego Name Description
ry
TR Format Tiered The prize is a ticket to the next tournament
tier. Also known as Step tournaments.
DM Flag Deal Made A deal was made in this tournament.
M Format Matrix 4 simultaneous Sit&Goes against the same
players, with additional prizes for overall
performances.
B Format Bounty Additional prizes are given for knocking
players out. Also known as Knockout, Hitman
and HeadHunter tournaments.
SO Format Shootout Only the winner of each table progresses.
HU Format Heads Up 2 players per table.
R Format Rebuy The tournament allows rebuys or add-ons.
DN Format Double or Half of the players double their buy in.
Nothing
FPP Format FPP The tournament buy in is with frequent
player points.
J Format Jackpot Additional rake goes towards a grand prize.
TN Format Triple or Nothing 1/3rd of the players triple their buy in.
W Format Winner Takes All 1st place wins the entire prize pool.
C Format Cashout Players can cash in their tournament chips at
any time.
RH Format Rush When players fold, they are transferred to a
new table and dealt a new hand.
SAT Format Satellite Prize is an entry into another tournament.
TI Format Timed The tournament finishes at a set time.
ME Format Multi Entry Players can register more than once and play
multiple tables.
T Speed Turbo Blinds level increase faster than normal.
ST Speed Super Turbo Blind levels increase faster than in a Turbo
tournament.
D Speed Deep Stack Starting stacks are larger than normal.
NBI Speed No Blind Static blind levels for the entirety of the
Increases tournament.
L Speed Lottery All players are automatically put All In at the
start.
N Speed Normal Blinds level increase at normal rate.
NL Structur No Limit
e
PL Structur Pot Limit
e
FL Structur Limit
e
SL Structur Spread Limit
e
ML Structur Mixed Limit
e
H Game Hold'em
OMAH Game Any Omaha O,OHL,O5,OHL5,CL,CLHL
A
O Game Omaha Hi
OHL Game Omaha H/L
O5 Game Omaha 5
OHL5 Game Omaha 5 H/L
CL Game Courchevel
CLHL Game Courchevel H/L
STUD Game Any Stud 7CS,7CSHL,5CS,RAZZ,A,S
7CS Game 7 Card Stud
7CSHL Game 7 Card Stud H/L
5CS Game 5 Card Stud
RAZZ Game Razz
A Game Americana
S Game Soko
DRAW Game Any Draw 5CD,BA,TD27L,SD27L,32D
5CD Game 5 Card Draw
BA Game Badugi
TD27L Game 2-7 Triple draw
SD27L Game 2-7 Single Draw
StakePlusRake:USD20
In addition, each player class may have 1 or more categories assigned to it. Categories can be used in
place of player class names. For example, there are currently three player classes representing “shark”
players: HighStakesShark, MidStakesShark, LowStakesShark. These player classes are all members
of the category “Shark” so the total number of any type of shark players can be filtered.
Name Player Class
Type <Player Class>, Range
Examples PlayerClass:Fish,2~4 (2-4 fish tournaments)
PlayerClass:Fish,3~4;PlayerClass:Shark,0~0 (3-4 fish, no sharks)
Examples Rakeback:25
The response contains the provided Game ID with status of processed, pending (already reported),
error, or existing. If the status is error the actual error message is also included.
The MissingTournamentsResponse contains the same structure as for Game IDs, except in this case
only one summary (a tournament summary email from Pokerstars) can be processed at a time.
Example response:
<MissingTournamentsResponse total="1" processed="1">
<MissingTournaments gameID="123457820" status="processed" />
</MissingTournamentsResponse>
The status is one of “processed”, “pending”, “existing” or “error”. If the status is “error” then there is
also an attribute containing the error details in text.
<MissingTournaments gameID="12345782a" status="error"
error="Invalid game ID" />
Type POST
Authentication Not Required.
Cost 0
Response A MissingTournamentsResponse object.
Path ReportMissingGamesBySummary
Parameters none
Data Parameter Tournament summary from Pokerstars as plain text – see example above
Example https://www.sharkscope.com/api/someapp/ reportmissinggamesbysummary
3.13.1. ACTIVATION
Requests the activation of a specific deal. The deal name must reflect an existing deal provided by
sharkscope for the given application. For signup deals you may use either the name “signup” or “*”.
The resource requires authentication as well as a unique ID and an activation code. The ID is a unique
identifier for the device or license of the product that comes with the deal. The activation code is the
username followed by the unique ID encoded in the same way as the password for the given
application (example follows). The response is either an error response if the deal is not found, the ID
or activation code is incorrect or missing, the deal is already activated; or a generic success response
with the text “Deal activated.”
Type GET
Authentication Required.
Cost 0
Response A genericResponse object.
Path https://www.sharkscope.com/api/appname/deals/deal
name/activate
Parameters ID [Required], activationCode [Required]
Example https://www.sharkscope.com/api/someapp/deals/signup/activate?id=1234?
activationCode=F3DE434598
https://www.sharkscope.com/api/someapp/deals/*/activate?id=1234?
activationCode=F3DE434598
To derive the activation code, first concatenate the username and the unique ID, lowercase the
resulting string and then scramble it using the same method as for scrambling the password described
in section 1.4 (Password Encoding). Example code in Java:
String username = someone@somewhere.com;
String uniqueID = “1234567890”;
String applicationKey = “21f5e7aa7893caf0”;
String code = username + uniqueID;
String key = code.toLowerCase() + applicationKey.toLowerCase();
byte[] defaultBytes = key.getBytes();
try {
MessageDigest algorithm = MessageDigest.getInstance("MD5");
algorithm.reset();
algorithm.update(defaultBytes);
byte messageDigest[] = algorithm.digest();
3.14.1. LIST
Retrieve all private leaderboards created by the user.
Type GET
Authentication Required.
Cost 0
Response A UserPrivateLeaderboardResponse object.
Path root
Parameters
Example https://www.sharkscope.com/api/someapp/user/private-leaderboards
3.14.2. CREATE
Creates a new private leaderboard (with no entrants). Leaderboard names must be unique across all
users.
Type GET
Authentication Required. Gold Subscriber Only.
Cost 0
Response A UserPrivateLeaderboardResponse object.
Path create
Parameters Authentication, filter, name, rankingstatistic, currency, mingamesfordisplay[Optional]
Example https://www.sharkscope.com/api/someapp/user/private-leaderboards/create?name=my
%20test
%20leaderboard&filter=Entrants:9;Stake:USD15~25;Type!:NL;Date:1325232000~13
27996800&rankingstatistic=Profit¤cy=USD&mingamesfordisplay=10
3.14.3. EDIT
Edits an existing private leaderboard.
Type GET
Authentication Required. Gold Subscriber Only.
Cost 0
Response A UserPrivateLeaderboardResponse object.
Path <Private Leaderboard ID>/edit
Parameters Authentication, filter[Optional], name[Optional], rankingstatistic[Optional],
currency[Optional], mingamesfordisplay[Optional]
Example https://www.sharkscope.com/api/someapp/user/private-leaderboards/67867/edit?
filter=Entrants:9;Stake:USD15~25;Type!:NL;Date:1325232000~1327996800
3.14.4. DELETE
Deletes a user's private leaderboard entirely.
Type DELETE
Authentication Required.
Cost 0
Response A UserPrivateLeaderboardResponse object.
Path <Private Leaderboard ID>
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/user/private-leaderboards/76867
3.14.5. ENABLE
Enables a user's private leaderboard so that it is returned in public private leaderboard requests and
updated.
Type GET
Authentication Required.
Cost 0
Response A UserPrivateLeaderboardResponse object.
Path <Private Leaderboard ID>/enable
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/user/private-leaderboards/76867/enable
3.14.6. DISABLE
Disables a user's private leaderboard so that it is no longer returned in public private leaderboard
requests or updated.
Type GET
Authentication Required.
Cost 0
Response A UserPrivateLeaderboardResponse object.
Path <Private Leaderboard ID>/disable
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/user/private-leaderboards/76867/disable
3.14.8. REMOVEENTRANT
Removes an entrant from a user's private leaderboard.
Type DELETE
Authentication Required.
Cost 0
Response A UserPrivateLeaderboardResponse object.
Path <Private Leaderboard ID>/<network>/<playername>
Parameters Authentication
Example https://www.sharkscope.com/api/someapp/user/private-
leaderboards/76867/PokerStars/Alkazar99
4. RESPONSE OBJECTS
All structural data including response from the API are represented as XML.
4.1. METADATA
The metadata response object contains the following objects:
FilterDefinition
Regions
Networks
Currencies
PlayerStatisticsDefinitions
TournamentStatisticsDefinitions
DefaultPlayerClasses
4.1.1. FILTERDEFINITION
This is effectively a container of ConstraintDefinition objects.
4.1.2. CONSTRAINTDEFINITION
Represents a description of a filter constraint. It has an “id” and a “type” attribute. If the type is
“Multiselect” or “Selection” it also contains Option elements that define the possible values for the
selection. Example:
<ConstraintDefinition type="Multiselect" id="Type">
<Option type="Format" name="Tiered" description="The prize is a
ticket to the next tournament tier. Also known as Step tournaments."
id="TR" />
<Option type="Format" name="Matrix" description="4 simultaneous
Sit&Goes against the same players, with additional prizes for overall
performances." id="M" />
<Option type="Format" name="Bounty" description=" Additional prizes
are given for knocking players out. Also known as Knockout, Hitman and
HeadHunter tournaments." id="B" />
...
</ConstraintDefinition>
4.1.3. REGIONS
This is effectively a container of Region objects.
4.1.4. REGION
Represents poker network regions. Contains code, name and optional image attributes.
4.1.5. NETWORKS
This is effectively a container of Network objects.
4.1.6. NETWORK
Represents a poker network. It contains the following attributes:
name: the human-readable network name.
code: a two-letter code of the network.
region: the network’s region.
closed: true if the network is closed, false otherwise.
There are also the following coverage/availability Boolean attributes.
hudCoverage, scheduledCoverage, sitngoCoverage, tournamentSelector, tournamentOpener.
The network element also contains the following elements:
FullCoverageStartDate: the date when full coverage started.
FullCoverageTrackingRate: the percentage of the tracking rate of the full coverage.
UpdateInterval: how often the coverage data is updated in minutes.
EarliestGameTrackDate: the date of the earliest tracked game.
TrackedGamesCount: the number of tracked games.
CoverageStage: The coverage stage. “Full” means the network is fully covered.
If the network has skins these are included as simple elements.
Example:
<Network name="Live Events" code="li" … >
…
</Skins>
<Skin>Aussie Millions 100k</Skin>
<Skin>Hollywood Home Game</Skin>
<Skin>NHPC</Skin>
<Skin>PPT</Skin>
<Skin>WPT</Skin>
</Skins>
</Network>
4.1.7. CURRENCIES
This is effectively a container of Currency objects.
4.1.8. CURRENCY
Represents one of the currently supported currency. The attributes “symbol” and “iso” contain the
currency symbol and iso code respectively. The value contains the exchange rate value.
Examples:
<Currency symbol="C$" iso="CAD" />
<Currency symbol="€" iso="EUR" />
4.1.9. PLAYERSTATISTICSDEFINITIONS
This is effectively a container of PlayerStatisticDefinition and StatisticalDataSetDefinition objects.
4.1.10. PLAYERSTATISTICDEFINITION
Defines a player statistic. The id attribute contains the identifier included in player responses, the
name is the human-readable name of the statistic and the type defines the value type.
Examples:
<PlayerStatisticDefinition name="Av Stake" type="Currency" id="AvStake"/>
<PlayerStatisticDefinition name="Av ROI" type="Percentage" id="AvROI"/>
4.1.11. PLAYERSTATISTICALDATASETDEFINITION
Defines a player statistical data set. The id attribute contains the identifier included in player
responses, while the xAxisTitle and xAxisType define the name and type of the x axis for the z axis. If
the dataset is three-dimensional it will also contain zAxisTitle and zAxisType. It also contains Series
elements that define the id, type, and title of included data series.
Examples:
<StatisticalDataSetDefinition xAxisType="Timestamp"
xAxisTitle="Date" id="byDate">
<Series type="Currency" title="Total Profit ($)" id="totalProfit" />
<Series type="Currency" title="Average ROI ($)" id="averageROI" />
<Series type="Currency" title="Average Stake ($)" id="averageStake" />
<Series type="Number" title="Games Played" id="gamesPlayed" />
</StatisticalDataSetDefinition>
4.1.12. TOURNAMENTSTATISTICSDEFINITIONS
Simlar to PlayerStatisticsDefinitions, this is effectively a container of TournamentStatisticDefinition
and TournamentStatisticalDataSetDefinition objects.
4.1.13. TOURNAMENTSTATISTICDEFINITION
Defines a tournament statistic. The id attribute contains the identifier included in tournament
responses, the name is the human-readable name of the statistic and the type defines the value type.
4.1.14. PLAYERSTATISTICALDATASETDEFINITION
Defines a tournament statistical data set. The id attribute contains the identifier included in player
responses, while the xAxisTitle and xAxisType define the name and type of the x axis. If the dataset is
three-dimensional it will also contain zAxisTitle and zAxisType for the z axis.It also contains Series
elements that define the id, type, and title of included data series.
4.1.15. DEFAULTPLAYERCLASSES
This is a container of the default PlayerClass definitions. These can be overridden by users.
4.1.16. PLAYERCLASS
Represents a named set of rules that identify a particular player as a member of that class. The object
contains the name, priority and iconUri attributes, as well as the categories assigned to the player
class. The name is the identifier in other elements.
4.1.17. RULE
The player class rule represents a range of values for specific player statistics. A player’s relevant
statistic must fall within the defined range for the rule to be satisfied. All rules within a player class
must be satisfied for the player to be considered a member of the player class.
Also note that the player classes are relevant and depend upon any applied search filters. So, for
example, a particular player may be a “Fish” in scheduled tournaments and a “Shark” in $10-20 sit &
go tournaments.
4.2. USERMETADATA
The User metadata response object contains the following objects:
UserFilters
UserDefinedPlayerClasses
4.2.1. USERFILTERS
This is effectively a container of SavedFilter objects.
4.2.2. SAVEDFILTER
Represents a filter saved by the user. It has an “name” and a “type” attribute. The type attribute
determines if the filter is a player filter or a tournament selector filter or both. The value of the
element is the filter string. Example:
<UserFilters>
<SavedFilter type="All" name="SNG Only">Class:SNG</SavedFilter>
<SavedFilter type="Player" name="TestFilter">Entrants:5~10</SavedFilter>
</UserFilters>
4.2.3. USERDEFINEDPLAYERCLASSES
This is a container of the user defined PlayerClass definitions.
4.2.4. PLAYERCLASS
Represents a named set of rules that identify a particular player as a member of that class. The object
contains the name, priority and iconUri attributes, as well as the categories assigned to the player
class. The name is the identifier in other elements.
4.2.5. RULE
The player class rule represents a range of values for specific player statistics. A player’s relevant
statistic must fall within the defined range for the rule to be satisfied. All rules within a player class
must be satisfied for the player to be considered a member of the player class.
Also note that the player classes are relevant and depend upon any applied search filters. So, for
example, a particular player may be a “Fish” in scheduled tournaments and a “Shark” in $10-20 sit &
go tournaments.
4.3. PLAYER
The player response object contains a number of PlayerView objects:
4.3.1. PLAYERVIEW
This is a view to player’s data. It is defined by the filter and player network/name. It contains the
Filter and Player objects. The latter contains sparsely populated data depending on the request.
4.3.2. FILTER
The filter object represents the filter applied to the request. It is effectively a container of Constraint
objects that define individual filter constraints.
4.3.3. CONSTRAINT
The Constraint object represents individual filter constraints. The id attribute maps directly to a
ConstraintDefinition object in the metadata. Depending on the type it contains the value(s) of the
constraint in appropriate sub-elements.
Examples:
<Constraint id="Game">
<Selection id="O" />
<Selection id="OHL" />
<Selection id="7CS" />
<Selection id="7CSHL" />
</Constraint>
<Constraint id="Format">
<Selection id="HU" />
<Selection id="SAT" />
</Constraint>
<Constraint id="Stake">
<Minimum>2.00</Minimum>
</Constraint>
<Constraint id="Structure">
<Selection id="PL" />
<Selection id="FL" />
</Constraint>
<Constraint id="Limit">
<Value>100</Value>
</Constraint>
4.3.4. PLAYER
The player object contains sparsely populated data depending on the request. It always contains a
name and a network attribute that uniquely identifies the player. It may also optionally contain the
following objects:
Icon: If the player has associated icons.
Statistics: if statistics were requested and the player is not blocked.
recentTournaments: A list of the most recent tournaments, or
completedTournaments: A list of the current tournaments.
activeTournaments: A list of the current tournaments.
The player may also be a consolidated player group in which case the element name is PlayerGroup.
A player group doesn’t have a network attribute and contains one or more Player objects. These player
objects may only contain Icon objects, the statistics and recent tournaments for those players are
consolidated at the top level player group object.
Examples:
<Player network="PokerStars" name="someone">
<Icon type="blog" tip="Visit my Blog" image="images/icons/blog.gif"
url="http://www.sharkscopers.com/blog/21210" />
<Statistics ...
<RecentTournaments ...
</Player>
<PlayerGroup name="somePlayerGroup">
<Players>
<Player network="PokerStars" name="someone">
<Icon type="blog" tip="Visit my Blog"
image="images/icons/blog.gif"
url="http://www.sharkscopers.com/blog/21210" />
</Player>
<Player network="FullTilt" name="someone" />
</Players>
<Statistics ...
<RecentTournaments ...
</PlayerGroup>
4.3.5. STATISTICS
The statistics object is effectively a container of Statistic and StatisticalDataSet objects. It contains
two attributes: “optedIn” and “displayCurrency”. The “optedIn” attribute contains a Boolean value
and is “true” if the player has opted in. The display currency contains the currency used in statistic
values.
Examples:
<Statistics optedIn="true" displayCurrency="USD">
<Statistic id="Count">2198</Statistic>
<Statistic id="AvProfit">7.78</Statistic>
<Statistic id="AvStake">28.67</Statistic>
<Statistic id="AvROI">25.43</Statistic>
<Statistic id="TotalProfit">17091.70</Statistic>
<Statistic id="Form">LLLLWPLW</Statistic>
<Statistic id="TotalStake">63015.00</Statistic>
<StatisticalDataSet id="byDate">
<Data x="1122336000">
<Y id="totalProfit">-118.00</Y>
<Y id="averageROI">-76.62</Y>
<Y id="averageStake">20.00</Y>
<Y id="gamesPlayed">7</Y>
</Data>
<Data x="1122422400">
<Y id="totalProfit">60.00</Y>
<Y id="averageROI">90.91</Y>
<Y id="averageStake">20.00</Y>
<Y id="gamesPlayed">3</Y>
</Data>
<Data x="1122508800">
<Y id="totalProfit">152.00</Y>
<Y id="averageROI">276.36</Y>
<Y id="averageStake">25.00</Y>
<Y id="gamesPlayed">2</Y>
</Data>
<Data x="1123200000">
<Y id="totalProfit">-33.00</Y>
<Y id="averageROI">-100.00</Y>
<Y id="averageStake">30.00</Y>
<Y id="gamesPlayed">1</Y>
</Data>
</StatisticalDataSet>
</Statistics>
4.3.6. STATISTIC
The Statistic object represents a single statistical value. It contains an id attribute that refers to the
StatisticDefinition from the metadata. The value depends on the type.
Examples:
<Statistic id="Count">2198</Statistic>
<Statistic id="AvProfit">7.78</Statistic>
<Statistic id="AvStake">28.67</Statistic>
<Statistic id="AvROI">25.43</Statistic>
4.3.7. STATISTICALDATASET
The StatisticalDataSet object represents a set of values that can be represented as a graph. It contains
an id attribute that refers to the StatisticalDataSetDefinition from the metadata. It also contains Data
elements which define data points in the graph. The Y values map directly to the metadata definition.
Examples:
<StatisticalDataSet id="byDate">
<Data x="1122336000">
<Y id="totalProfit">-118.00</Y>
<Y id="averageROI">-76.62</Y>
<Y id="averageStake">20.00</Y>
<Y id="gamesPlayed">7</Y>
</Data>
<Data x="1122422400">
<Y id="totalProfit">60.00</Y>
<Y id="averageROI">90.91</Y>
<Y id="averageStake">20.00</Y>
<Y id="gamesPlayed">3</Y>
</Data>
<Data x="1122508800">
<Y id="totalProfit">152.00</Y>
<Y id="averageROI">276.36</Y>
<Y id="averageStake">25.00</Y>
<Y id="gamesPlayed">2</Y>
</Data>
<Data x="1123200000">
<Y id="totalProfit">-33.00</Y>
<Y id="averageROI">-100.00</Y>
<Y id="averageStake">30.00</Y>
<Y id="gamesPlayed">1</Y>
</Data>
</StatisticalDataSet>
4.3.8. PLAYERSUGGESTIONS
The PlayerSuggestions object is a container for player suggestions. It is returned in the
SearchSuggestionsResponse for the suggestions resource. The player suggestions object contains
Player objects with only the name, network and Icon objects populated.
Example:
<PlayerSuggestions>
<Player network="PokerStars" name="Alkazar99">
<Icon type="video" tip="Instructional videos are available. "
image="images/icons/video.gif"
url="http://www.sharkscopers.com/video/20" />
<Icon type="blog" tip="Visit my Blog"
image="images/icons/blog.gif"
url="http://www.sharkscopers.com/blog/20" />
</Player>
<Player network="PokerStars" name="Alkazar1972" />
<Player network="PokerStars" name="alkazarus" />
<Player network="PokerStars" name="alkazara" />
<Player network="PokerStars" name="alkazar13" />
<Player network="PokerStars" name="alkazar78" />
</PlayerSuggestions>
4.4. TOURNAMENT
The tournament response object contains information about running, registering or completed
tournaments. Completed tournaments returned as part of a Player response will only contain
participant information the player and no statistics.
4.4.1. STATISTICS
Tournaments have their own statistics and statistical datasets. The definitions of these statistics are
included in the metadata under “TournamentStatisticsDefinitions”.
4.4.2. TOURNAMENTENTRY
Tournament entry objects contain information about the participants of the tournament as Player
objects. The player objects contained in tournament entries only contain basic player information like
username, icons without statistics.
For completed tournaments, the position of the player in the tournament and profit are also included.
4.5. LEADERBOARDS
The metadata response object contains leaderboard definitions as a hierarchy or individual
leaderboads with their players depending on the request. Examples follow.
4.5.1. HIERARCHY:
<LeaderboardDisplayResponse>
<Leaderboards year="2010" subcategory="$101-$300"
category="Any Game">
<LeaderboardDisplay year="2010" valueType="average"
subcategory="$101-$300" category="Any Game"/>
<LeaderboardDisplay year="2010" valueType="total"
subcategory="$101-$300" category="Any Game"/>
</Leaderboards>
</LeaderboardDisplayResponse>
4.5.2. LEADERBOARD
<LeaderboardDisplayResponse>
<LeaderboardDisplay year="2010" valueType="total"
subcategory="$101-$300" category="Any Game">
<Details/>
<Rank value="132708.0" position="1" count="12216">
<Player network="FullTilt" name="rams85">
5. SHARKSCOPE-AS-A-SERVICE (SHARKSCOPE-PUSH)
In addition to the API we offer a push service. Sharkscope-as-a-service can push each and every game
or a filtered subset of games on any network to you in real-time from our own game tracking system.
Game objects are serialized to JSON so they can be deserialized on many different platforms and
languages. Each game object is composed of over 50 fields which makes filtering and processing the
object quick and easy. The manner in which the object is pushed can vary depending on your needs
and throughput capabilities. Please contact us for more information .
6. ERRORS
6.1. DESCRIPTION
If a request fails for any reason an error response is returned. These have the following format:
<Response success="false" timestamp="1287868980">
<UserInfo>
...
</UserInfo>
<ErrorResponse>
<Error id="error code">Error Description
</Error>
</ErrorResponse>
</Response>
If the error code is 0 the error is internal and there is also a code supplied as and attribute that can be
used to report the error to SharkScope.
6.2. ERROR CODES
The following table shows the error codes that can be returned after a request, with their descriptions.
Error ID Description
0 Internal error.
101001 User not found.
101002 Invalid password.
101003 No username or password supplied.
101004 User already exists.
101005 User <username> already registered.
101006 Failed to create user.
101007 Failed to change the email.
101008 Invalid email address.
101009 An account already exists with this Email address.
101010 Failed to change the password.
101011 User-Agent header not specified
101012 Request information is not valid.
101013 Invalid username (must be a valid email address).
101014 Order number not found.
101015 Password email dispatch failed.
101016 User cannot be delete as they have payment entries registered to this account.
102001 Free daily searches quota used up.
102002 Daily searches quota used up.
102003 Pay-as-you-go searches used up.
102004 Operation only allowed for subscribers.
102005 Operation only allowed for gold subscribers.
103001 Invalid player class name.
103002 Invalid player class priority.
103003 Invalid player class rules.
103004 Player class not found.
103005 Player class update failed.
103006 Invalid player class currency.
105001 Player group not found.
105002 Invalid player group name.
105003 No valid player group members specified.
Error ID Description
105004 Player group already exists.
105005 Player not valid member for group.
105006 Player already in group.
105007 The group may be modified only by its owner.
105008 The maximum number of players allowed for this network have already been added to your personal group.
105009 Cannot add blocked players to groups.
105010 Personal group not configured.
105011 At least one member must be opted in.
106001 Maximum number of private leaderboards already exist.
106002 Private leaderboard contains maximum number.
106003 A private leaderboard with that name already exists.
106004 This player is blocked from being entered into leaderboards.
106005 This operation can only be performed on private leaderboards.
106006 This player is already in at least one leaderboard.
106007 This player was recently checked to see if they qualified for any leaderboards. Please try again later.
Error ID Description
200037 Network has its own Opt/Out procedure.
200038 Reset date must be in the past.
200039 Player group not found.
200040 Player is not a member of the group.
200041 Task not found.
200042 Task not stopped.
200043 Task not active.
200044 The <network> database in currently under maintenance. Please try again later.
200045 Unknown graph type.
201001 Master databases are not active.
201002 Invalid load balancing.
201003 Server is busy. Try again later.
202001 Filter <filter> not found
202002 Filter not valid
202003 Load user filters failed
202004 Save failed
202005 Delete failed
204001 Unknown filter constraint “<constraint>”.
204002 Constraint “<constraint>” is not valid for this request.
204003 Invalid value(s) for filter constraint “<constraint>”
204004 Constraint “<constraint>” is not allowed at your user level.
204005 Constraint “<constraint>” cannot be inverted.
204006 Constraint “<constraint>” is not valid for this type of search.
300001 Invalid order parameter.
300002 Invalid order option.
300003 Failed to parse order range.
300004 Invalid order range.
300005 Order range start must be one or greater.
300006 Order range end must be greater than start.
305001 No activation credentials.
305002 Invalid activation code.
305003 No such deal.
305004 Deal already activated.
305005 Username or Account number not found. Please allow up to 3 days after completing the sign
up requirements for your details to be registered in our system.
305006 Not enough player points earned. Please allow up to 3 days after completing the sign up
requirements for your latest player points total to be registered in our system.
400001 No authorization for this action.
400002 Player not opted in.
400003 Resets not allowed on this network.
400004 Access to this network is not authorized.
400005 Access to this application is not authorized.
500001 Failed to retrieve payment properties.
500002 Payment initialization failed.
500003 Payment initialization response was invalid
500004 Invalid payment parameters
500005 Cart not found
500006 Payment confirmation failed
500007 Payment confirmation response was invalid
Error ID Description
500008 Subscription setup failed
500009 Multiple recurring subscriptions are not allowed
500010 Too many cart items
500011 IPN Processing failed.
500012 IPN not verified.
500013 Payment not found.
500014 Payment modification failed.
500015 Invalid refund amount.
500016 Only Completed payments can be refunded.
500017 Billing Agreements cannot be refunded through admin. Perform the refund on the PayPal
site and then update the SharkScope price.
500018 Operation not supported.
990001 Invalid username.
990002 Role not found.
990003 Invalid role ID.
990004 Insufficient funds.
990005 User creation failed.
990006 Payment registration failed.