Queries

/api
Returns a page containing all currently possible gw2wingman api calls.

/api/patches
Returns a (descending) list of GW2 balance patch eras as they are used by gw2wingman.

/api/bosses
Returns a dictionary from bossIDs to higher-level information about all bosses supported by gw2wingman.

/api/classes
Returns a dictionary from profession names to higher-level information about these classes.

/api/boons
Returns a dictionary from boonIDs to higher-level information about these boons.

/api/boss
Returns rough compiled informations about kill times (in ms) and profession performances (in dps, non-support) at a specified boss in a specified era.
If the bossID is positive, it returns data for the normal mode (NM). If its negative, it returns data for the challenge mode (CM). Some fractals do not have a NM.
Parameters:
?era= Specifies the balance patch era (as ID, see /api/patches). Default: "all". Set to "this" or "latest" for most recent patch.
?bossID= Specifies the bossID (see /api/bosses).
Example:
https://gw2wingman.nevermindcreations.de/api/boss?bossID=15429&era=this

/api/getDpsArray
Returns the dps array for all players of a specified log (or only those of a specified profession).
The values in dpsArray indicate the dps numbers after n seconds.
Returns an error if the url is not reachable, not a valid log page, the profession is not available (if specified).
Parameters:
?url= Specifies the log url
?profession= Specifies the profession of interest
Example:
https://gw2wingman.nevermindcreations.de/api/getDpsArray?url=https://dps.report/x6Xi-20210613-231742_golem

/api/getRotationFromLog
Returns the sequential rotation of skill names (and cast duration) for the first player of a specified log.
Returns an error if the url is not reachable or not a valid log page.
Parameters:
?url= Specifies the log url
Example:
https://gw2wingman.nevermindcreations.de/api/getRotationFromLog?url=https://gw2wingman.nevermindcreations.de/log/20221103-220200_MedGolem_kill

/api/getPlayerStats
Returns the player stats (characters, alt accounts, killproofs, fastest/highest performances etc) for a player authenticated by an api-key.
Returns an error if the player did not register an account on wingman with this api-key or has no recorded data.
Parameters:
?apikey= Specifies the api key of the player to query

/api/kp
Returns the publicly available player stats (characters, alt accounts, killproofs) for a player by account name.
Returns an error if no account is specified or it has no recorded data.
Parameters:
?account= Specifies the account name of the player to query

/api/getJson/link
Returns the json (in EI html format) from the specified log.
Returns { "error": "404: Log not found." } if cannot be found.
Parameters:
link Specifies the log url

Example:
https://gw2wingman.nevermindcreations.de/api/getJson/20230102-202238_dhuum_kill

/api/getMetadata/link
Returns the metadata json from the specified log.
Returns { "error": "404: Log not found." } if cannot be found.
Returns { "error": "403. Forbidden: This log is private." } if not publicly accessible.
Parameters:
link Specifies the log url

Example:
https://gw2wingman.nevermindcreations.de/api/getMetadata/20230102-202238_dhuum_kill


/api/getPercentileOfLog/link
Parameters:
link Specifies the log url

Returns how fast the given log was in (percentile) comparison to other successful logs of that patch era.
Example return:
{ "link": "vh8u-20240311-224125_sab", "note": "Log vh8u-20240311-224125_sab is faster than 85% percent of logs from patch 24-02", "percentile": 85, "success": 1 } Also possible with metadata only, like: https://gw2wingman.nevermindcreations.de/api/getPercentileByMetadata?bossID=15438&isCM=False&duration=123456×tamp=1720724012

Uploading

The following endpoints are used by the gw2wingman uploader, but can also be used by foreign tools.

/testConnection
Returns "True" if a connection to the wingman database can be established, "False" otherwise.

/api/EIversion
Returns the most recent version of Elite Insights supported by wingman.

/api/importLogQueued
Parameters:
?link= Specifies the log url

Adds the specified foreign log link to the import queue (also works for POST requests). This will be added to the wingman database as soon as possible. Returns information about whether it was successfully added to the queue (duplicate checks are performed at the later import time).

Example:
https://gw2wingman.nevermindcreations.de/api/importLogQueued?link=https://dps.report/iIoY-20220529-225311_sloth
Returns:
{ "link": "https://dps.report/iIoY-20220529-225311_sloth", "note": "Successfully added to queue.", "success": 1 }

/api/checkLogQueued
Parameters:
?link= Specifies the log url

Returns whether or not the specified foreign log link (also works for POST requests) is currently in the import queue or not.
Example return:
{ "link": "https://dps.report/iIoY-20220529-225311_sloth", "inQueue": True, "targetURL": "https://gw2wingman.nevermindcreations.de/log/iIoY-20220529-225311_sloth", }

/api/checkLogQueuedOrDB
Parameters:
?link= Specifies the log url

Returns whether or not the specified foreign log link (also works for POST requests) is currently in the import queue, already in the database or neither.
Example return:
{ "link": "https://dps.report/iIoY-20220529-225311_sloth", "inQueue": False, "inDB": False, "targetURL": "https://gw2wingman.nevermindcreations.de/log/iIoY-20220529-225311_sloth", }

/checkUpload
Checks if there is a conflict in the database regarding a specified log. Returns "Error" if no upload is possible right now, "False" if 'file' or 'filesize' is not specified or the log already exists in the database, "True" if upload is possible.
It is highly recommended to run this before /uploadProcessed to quickly reject duplicates without the need of uploading or processing.
POST 'file': The name of the .zevtc file to be checked.
POST 'timestamp': The timestamp of the creation of this .zevtc file (Unix epoch timestamps in seconds).
POST 'filesize': The size in bytes of this .zevtc file.
POST 'account': The account name of the uploader account. Recommended for quicker detection of duplicates.

/uploadProcessed
Uploads an EliteInsights-processed log (composed of .zevtc, .json, .html), checks for duplicates and adds it to the gw2wingman database if appropriate. Returns the processed json if successful, "False" otherwise.
POST 'file': The original .zevtc log file.
POST 'jsonfile': The EliteInsights .json output file.
POST 'htmlfile': The EliteInsights .html output file.
POST 'account': The account name of the uploader account. Optional, but recommended for desk-rejecting duplicate logs.