Lawton Campbell.8517:

Just turned on a couple of new endpoints:

/v2/pvp/stats

Requires “pvp” permission.

Dumps a bunch of aggregate pvp data — basically some of the stuff that’s displayed in the in-game UI. Some of it’s missing (e.g., fav map, etc). Consider this an initial pass — going to try to add more details here at some point.

/v2/pvp/games

Requires “pvp” permission.

Dumps the most recent pvp games played. This is a very very initial implementation; there honestly isn’t much useful here right now. There’s a lot more I want to do with this endpoint, but data needs to be plumbed through multiple services owned by multiple teams (who are all already busy) so it’s going to take some time.

As an important note, this endpoint only serves the 10 most recent games (that have occurred within the last 30 days, IIRC). I realize this is terrible and would like to make it a bit more reasonable, but it’s gonna take some time to get better data retention. Highly recommend any applications interested in this data use a server component which periodically polls+persists the endpoint data.

/v2/characters/:id/specializations

Requires “builds” permission.

The specializations are available in both /v2/characters (in the .specializations field) and in /v2/characters/:id/specializations. Data is provided for all of PvE, PvP and WvW builds (specializations can be cross-referenced against /v2/specializations, traits against /v2/traits which I just turned on).

Skills and PvP equipment will be coming at some point in the future but probably not this month (sorry!).

Questions/comments?

Archomeda.6472:

As an important note, this endpoint only serves the 10 most recent games (that have occurred within the last 30 days, IIRC).

Hmm, apparently I have 10 matches listed, and the dates range from 2015-07-12T02:27:08.000Z to 2015-07-14T03:09:30.000Z. So it would seem that the retention is higher than 30 days

Edit: A question, what are the possibilities of the results? Currently I have Buy, Defeat, Victory and Forfeit. And what triggers what to show up?
Edit2: I also saw that I’ve had a couple matches of which neither team has reached 500 points. These matches have the map 1011, I’m assuming that’s Battle of the Champion’s Dusk? It’s not yet listed in /v2/maps.

queicherius.2563:

Wooo! Finally sharing with traits! Thank you so much for this.

Lawton Campbell.8517:

As an important note, this endpoint only serves the 10 most recent games (that have occurred within the last 30 days, IIRC).

Hmm, apparently I have 10 matches listed, and the dates range from 2015-07-12T02:27:08.000Z to 2015-07-14T03:09:30.000Z. So it would seem that the retention is higher than 30 days

Uhh maybe it’s 90 days. Will double-check and get back to you.

Edit: A question, what are the possibilities of the results? Currently I have Buy, Defeat, Victory and Forfeit. And what triggers what to show up?

Eww gross, I missed a “Buy” typo coming from our upstream data source. I’m going to patch that to “Bye”. There’s also “Desertion”.

I’m not sure what bye/desertion mean TBH.

Edit2: I also saw that I’ve had a couple matches of which neither team has reached 500 points. These matches have the map 1011, I’m assuming that’s Battle of the Champion’s Dusk? It’s not yet listed in /v2/maps.

I’ll whitelist the map in a sec, pretty sure that’s the stronghold map. When neither team has 500 points it means the timer was hit.

Lawton Campbell.8517:

Wooo! Finally sharing with traits! Thank you so much for this.

Woot! That was really fast

stress level zero.4907:

Cool, thanks Lawton.

(You’re took fast! I can only work so fast :-)).

Archomeda.6472:

Nice. Thanks for looking into it

Nabrok.9023:

I’m not sure what bye/desertion mean TBH.

“Bye” is when somebody on opposing team disconnects and you win. “Desertion” is when somebody on your team disconnects and you lose.

Dawntree.7246:

As an important note, this endpoint only serves the 10 most recent games (that have occurred within the last 30 days, IIRC).

Hmm, apparently I have 10 matches listed, and the dates range from 2015-07-12T02:27:08.000Z to 2015-07-14T03:09:30.000Z. So it would seem that the retention is higher than 30 days

Uhh maybe it’s 90 days. Will double-check and get back to you.

I’ve got matches played in January listed (yeah, haven’t played much pvp this year)

BTW, thanks for the awesome work!

queicherius.2563:

Something interesting is going on with my trait ids here

My guess is that that’s a character I didnt log in yet after the change for traits?

LadyRhonwyn.2501:

I’m not sure what bye/desertion mean TBH.

“Bye” is when somebody on opposing team disconnects and you win. “Desertion” is when somebody on your team disconnects and you lose.

So, when you lose even though there’s a disconnect on the other team (or vice versa), it’s not logged? (yes, it has happened to me…)

Lawton Campbell.8517:

Something interesting is going on with my trait ids here

My guess is that that’s a character I didnt log in yet after the change for traits?

UHHH. Looks like we’re reading garbage memory. That’s kind of surprising; I thought the interfaces I was using automatically detect this (apparently not!).

Thanks for the report <3

Nabrok.9023:

I’m not sure what bye/desertion mean TBH.

“Bye” is when somebody on opposing team disconnects and you win. “Desertion” is when somebody on your team disconnects and you lose.

So, when you lose even though there’s a disconnect on the other team (or vice versa), it’s not logged? (yes, it has happened to me…)

If you win as the “4”, or lose as the “5”, then I think it’s just counted as a win or loss.

sookya.8625:

Hey Lawton,

is it possible to add the Character ID (next to profession) to the PVP-Game-API? With only having the profession, there is no possibility to check with which character the person played, if he has more than one character per profession (2 guards for example).

That would be super cool

Greetings
Chris

queicherius.2563:

I have a few questions about how the pvp/stats API works. Let’s talk about these stats from one of my users (raw data here).

  • Do “Solo Ranked” and “Team Ranked” get added together for the “Ranked” ladder? If yes, what are the 49 “Ranked” matches, that are additional if you add “solo” and “team” together? Based on the raw data: (282+288+2+1)-(75+74+185+190) = 49. What exactly are the definitions of these ladders?
  • Assuming that “solo ranked” and “team ranked” are included in the “ranked” matches, the aggregate number does not match up with the ladders number: (567+503+6+23+17)-(282+288+2+1+213+157+6+21+16) = 130. Are these custom arenas?
  • What is the “none” ladder for?

Edit: While I am at it, the timezone offeset for the played matches seems wrong. The match I played a few minutes ago is dated “2015-09-10T18:34:54.000Z”, when it should be “2015-09-10T10:34:54.000Z” or “2015-09-10T18:44:54+08:00”.

Thanks for all the new APIs, it’s a blast building stuff with it.

Lawton Campbell.8517:

is it possible to add the Character ID (next to profession) to the PVP-Game-API? With only having the profession, there is no possibility to check with which character the person played, if he has more than one character per profession (2 guards for example).

Planning on adding that at some point in the future. This data is coming from the MMR component which doesn’t currently care about character names so it doesn’t have the data. Gonna take awhile to get all the good stuff (character names and builds) plumbed through the system.

  • Do “Solo Ranked” and “Team Ranked” get added together for the “Ranked” ladder? If yes, what are the 49 “Ranked” matches, that are additional if you add “solo” and “team” together? Based on the raw data: (282+288+2+1)-(75+74+185+190) = 49. What exactly are the definitions of these ladders?
  • Assuming that “solo ranked” and “team ranked” are included in the “ranked” matches, the aggregate number does not match up with the ladders number: (567+503+6+23+17)-(282+288+2+1+213+157+6+21+16) = 130. Are these custom arenas?

So, back in the days of glory there were two game modes — soloq and team (“solo ranked” and “team ranked”). These are distinct from the modes we have now — unranked and ranked. New accounts won’t have the former but old accounts have their old data still in the system.

AFAIK custom arenas are tracked in the other aggregates, but not in the ladders.

  • What is the “none” ladder for?

I’m not entirely sure actually. I think it’s debris from a bug at some point.

Edit: While I am at it, the timezone offeset for the played matches seems wrong. The match I played a few minutes ago is dated “2015-09-10T18:34:54.000Z”, when it should be “2015-09-10T10:34:54.000Z” or “2015-09-10T18:44:54+08:00”.

Ick, I wonder where that’s coming from. Should be able to bandaid that sometime next week.

MarkPhilips.5169:

Wow, really good.

I find especially useful for ranked and unranked games a better separation in the latest matches

It would be really interesting tracking roster compositions for every game (which profession people used, especially for ranked/unranked) and the stats pvp team lately added in the game (like total damage done etc.) that we can hardly analyze at the end of the match.

Other super useful thing it would be the roster size for ranked and unranked games, example grp of 3 people + 2 soloers for every team.

I think with the pvp leagues incoming the entire section could be really interesting and useful to monitor progressions.

Good job

zweiter.1267:

Hey Lawton

Planning on adding that at some point in the future. This data is coming from the MMR component which doesn’t currently care about character names so it doesn’t have the data. Gonna take awhile to get all the good stuff (character names and builds) plumbed through the system.

thanks for your reply. So I wait some time and hope, that this feature comes at a time not so far far away…

In addition to this, it would be super cool, if the api delivers the team- and enemy-team composition (only the professions, not the character names/id’s).

Best Wishes
Chris

sookya.8625:

Whoops, that should be posted with my main-account -.- Sorry

Lawton Campbell.8517:

It would be really interesting tracking roster compositions for every game (which profession people used, especially for ranked/unranked) and the stats pvp team lately added in the game (like total damage done etc.) that we can hardly analyze at the end of the match.

In addition to this, it would be super cool, if the api delivers the team- and enemy-team composition (only the professions, not the character names/id’s).

We’ll add those in at some point; it’s probably gonna be a month or two from now though ;_;

Patches.7584:

Does the game keep track “Top X” awards internally? eg: Top Condition Damage Received.

I’m curious if this will ever be available in the API.

It’d be neat to get it via pvp/games, but a counter in pvp/stats would be cool as well.

Nabrok.9023:

Does the game keep track “Top X” awards internally? eg: Top Condition Damage Received.

I’m curious if this will ever be available in the API.

It’d be neat to get it via pvp/games, but a counter in pvp/stats would be cool as well.

That stuff really should be available in game for at least the last match you were in. As it is you have about 5 seconds to look at it before it’s gone forever.

Lawton Campbell.8517:

Does the game keep track “Top X” awards internally? eg: Top Condition Damage Received.

I’m curious if this will ever be available in the API.

It’d be neat to get it via pvp/games, but a counter in pvp/stats would be cool as well.

That stuff really should be available in game for at least the last match you were in. As it is you have about 5 seconds to look at it before it’s gone forever.

Yeah, AFAIK it’s currently only tracked by the map instance server and not persisted anywhere. Might take a look at the current state of all the pvp stuff next week, I really want match rosters.

Ryan.9387:

The aggregate data for https://account.arena.net/applications is incorrect/out of date.

My current PvP stats from the in game window are different
Ranger : 3834
From the API : 3701

This difference of some number exists across multiple API keys and professions.

EDIT: I didn’t take into account byes/forfeits/desertions.

Lawton Campbell.8517:

My current PvP stats from the in game window are different
Ranger : 3834
From the API : 3701

Which in-game data are you looking at?

Note that the in-game UI considers a “bye” as a victory and a “forfeit” as a defeat when it displays aggregates — that might be the cause of the discrepancy. Both the in-game UI and the API are pulling from the same internal API, so it’s unlikely they’re out-of-sync.

fro.8967:

the in-game UI considers a “bye” as a victory and a “forfeit” as a defeat

What about desertions?

Lawton Campbell.8517:

the in-game UI considers a “bye” as a victory and a “forfeit” as a defeat

What about desertions?

Ah, those are counted as defeats too.

Ryan.9387:

My current PvP stats from the in game window are different
Ranger : 3834
From the API : 3701

Which in-game data are you looking at?

Note that the in-game UI considers a “bye” as a victory and a “forfeit” as a defeat when it displays aggregates — that might be the cause of the discrepancy. Both the in-game UI and the API are pulling from the same internal API, so it’s unlikely they’re out-of-sync.

I was looking only at wins and losses. After adding in the byes, forfeits, and desertions I got to the numbers reflected in the in game UI.

Ryan.9387:

Can we get an idea of the data coming to the pvp api in the coming months? I’m not looking for a date, more so an idea of what will/will not be added long term. The info well help drive the design of my website.

Specifically things like:
Account names for all players
Per player score
The detailed stats tab
Builds
League info

Lawton Campbell.8517:

Can we get an idea of the data coming to the pvp api in the coming months? I’m not looking for a date, more so an idea of what will/will not be added long term. The info well help drive the design of my website.

Specifically things like:
Account names for all players
Per player score
The detailed stats tab
Builds
League info

Ideally I’d like all of those things in (and more), but I can’t really commit to features or a timeline. Especially when it’s the competitive team doing all the backend work for me on those parts