[Request] Expose character ID

API Discussion
Context: WoW

Would is be possible for all API calls which return a reference to a character to include in that character data the characters ID as it stands in the Blizzard systems?

This would allow us some kind of unique identifier to identify characters by. We obv. already have our unique ID's in our databases, but when retrieving characters from the API the best thing we have to go on is name-realm-locale combinations to match a character from the API with a character in our database.

This is fine for the most part. However, it gets messy when a character gets a name change or realm transfers. If we suspect a character has undergone one of these processes we can compare achievement points and determine who the character is now, however that's pretty messy and requires the user to let us know that they changed something with their character.

If we had the character ID, we could just compare the character ID to the say `blizz_id` in our table, then blindly update the characters details when we retrieve the character from the API.

While I understand that when we query the API for a specific character we have to provide the name-realm-local combination, however, at least in my uses I am normally requesting all of a accounts characters, rather than requesting a specific character from the API.

If we have the ID we could say do a query for wow/character/{id} rather than wow/character/{realm}/{charactername}.

If adding additional routes is out of the scope of possibility, it would really just be awesome to have the ID exposed when retrieving a character via pre-existing routes.

As always,
Thanks for your time and consideration.
Could you share your use case for this request? Obviously you want to track characters across renames and transfers, but why? What problem you’re trying to solve?

I ask because the most common use case I’m aware of is tracking guild members that have left or stalkers/harassers following tracking their targets. As you note, the current methods you have to track a character are "pretty messy"; given the privacy issues related to tracking characters, this is more a feature than a bug.

That said, if there are valid use case we’d like to better understand them.

Technically speaking, there are limitations on what we could expose. If we did provide a character ID, it wouldn’t persist across realm transfers and it we can’t guarantee it will stay the same when a user changes a character’s name.
[removed my long winded explanation and replaced with a TLDR]

TLDR: its easier to reference and request a character from the API based on their ID than it is using a compounded key of region/realm/characterName.

Along with the ease of use which an ID provides, it would be useful to applications which track characters to create leaderboards or point accumulating systems.

Example: say character X has accumulated 1,000 points in the system based on in game activities. If the character were to then undergo a name change or realm change, the application would be unable to accurately link to the character and the character would "lose" all of the points they had accumulated.

The application could ask the owner of the character to tell the application what the new realm or the new name was, and we could check the authenticity of the information by forcing the user to go through the remove gear pieces x, y, and z process like we used to before oAuth, but that is cumbersome.

Thanks
-Ron
The functionality that you have stated there is far beyond that which a character id could provide. From the look of it, you would be seeking a player id rather than a character id. Essentially if you simply want a character id to use as a reference you can just use a database and a unique auto-incrementing id number to track the character.
Hi Azramon,

Player ID's are actually already (kinda of) provided by the API. Using the WoW Profile route we are able to get a players account ID, which uniquely identifies the players Battle.net account.

In the use cases I described above, having a Character ID that is unique to Blizzard's internal system is useful for querying characters that may have undergone character name changes or realm transfers. Our database already uses an auto_increment ID for each record (character), that doesn't help us at all when querying Blizzard for the character statistical or other information.

From my OP:

We obv. already have our unique ID's in our databases, but when retrieving characters from the API the best thing we have to go on is name-realm-locale combinations to match a character from the API with a character in our database.

This is fine for the most part. However, it gets messy when a character gets a name change or realm transfers. If we suspect a character has undergone one of these processes we can compare achievement points and determine who the character is now, however that's pretty messy and requires the user to let us know that they changed something with their character.


If we have the ID we can ask Blizzard for a character by ID, rather than by charactername-realm-locale.

If we have the ID we could say do a query for wow/character/{id} rather than wow/character/{realm}/{charactername}.
another use case is detection of rerolls for wow challenges (a character dies and rerolls), while you can track some statistics to figure out that it is so, a new id for the same name-realm would make things simpler
a case could be made that a unque character id that is not linked to any other character or account out put but remains the same for the character could be useful for some other sites like wow challenges that way people rerolling toons can use the same name but the id would be changed and thus show as a new toon not an old one
The thumbnail URL is the character guid: https://us.battle.net/forums/en/bnet/topic/19972717510#post-3

Unfortunately, the guid is a 2-parter: realm plus character id. So it's not like you have one number that is globally unique for all characters. Also, the guid may (or may not) change upon some character services (renames, race/gender change). Obviously it'll change if they move to another realm. It should also change if you create a character, delete it, then create another with the same name and realm.
Since someone asked Chromie to open another portal and revive a 2 expansions old thread, here is another perspective on this topic:

While this could be very useful and perhaps even necessary for some apps to work properly we have to consider one downside of such information: this unique ID could be used by bullies to follow someone across realm transfers or name changes to keep harassing players.

For this to work in a way it doesn't affect player's privacy, users should be asked if they want to keep the ID or generate a new one every time they change their character. It seems quite a lot of work to very little benefit.
As per Ulminia, we definitely could use the character ID in the API for our site.

Currently if a person wants to reroll using the same name, we overwrite the record with the current character info, however, to keep our data clean we restrict reusing names for anyone doing a Team Challenge.

If we could get the character id that would make things much easier on my side of things and allow folks to use the same character names over and over should they desire.
Stone, it seems the thumnail url as mentioned above is effectively the GUID (even though if it was put as a proper field it'd be a lot cleaner)
confirmed but this could change at any point and changes with character services

Join the Conversation

Return to Forum