For some (but not all) players with non-ASCII characters all API calls fail with a 404: Not Found (that being the JSON response, as opposed to an empty content 404 if you hit a non-existing endpoint).
Here’s an example where this happens:
[~] curl -s -H "Authorization: Bearer $ACCESS_TOKEN" "https://us.api.blizzard.com/profile/wow/character/kelthuzad/adrían?namespace=profile-us&locale=en_US" | jq "."
{
"code": 404,
"type": "BLZWEBAPI00000404",
"detail": "Not Found"
}
Here’s an example where it doesn’t happen and the call returns correctly:
[~] curl -s -H "Authorization: Bearer $ACCESS_TOKEN" "https://us.api.blizzard.com/profile/wow/character/kelthuzad/finnthéhuman?namespace=profile-us&locale=en_US" | jq ".name"
"Finnthéhuman"
Are you sure this profile allows 3rd party integration ?
The account owner might have the privacy option that disallow 3rd party access to API data enabled. In such case you can still have their profile showing up in the armory but not on the API.
Another thing is to make sure you use all lowercase letters (even for non ascii) which you did in this request, so that is not the reason for this particular one.
There is also a minimum level for any character to show up in the API, it was level 10 before but I guess it is level 20 now.
I’m not sure on the privacy options (is there a place I can see that?), but I’m sure the player is level 80. In fact, this issue occurs for only two players in my guild, both of whom have non-ASCII characters in their names (and doesn’t occur for the third, curiously).
Only the account owner can verify their privacy option. It is an option in the battle.net account itself and affects the whole account.
If you are able to fetch data from another character on the same account that is not the problem.
One more thing to consider is if they are active characters. The API hold data for about 40 days after the last logout. If that is the problem it will be fixed once those characters (not the account) sign in and out of the game.