User Achievements / Quests¶
You may increment the progress of a User's achievement, set a progress percentage, or simply requests user achievement data. All requests require a valid api_key.
Warning
In order to increment or update the progress of an achievement, you need to set up a signature, using a specific formula. This formula is calculated for you in our AGI, and currently is not public/part of this document. An Admin or Partner may ignore the signature signing requirement.
When forming your request, you should provide the following parameters: developer_id, type, and pid.
A PUT made with a game's api_key is also held to the following:
- The achievement must be one of that game's own:
typeGameandpidthe game's ID. Anything else is refused with400 AgiKey is not associated with this game. - The user must have opened the game on armorgames.com while logged in, recently enough that the authentication token it was given has not expired. Otherwise the write is refused with
400 Either the user is not logged in or the authentication token has expired. - The achievement must be
Active. ADebugachievement can be written only for Armor Games staff and the game's developer, collaborators and testers; any other state is refused with400 Not Found (Achievement is <state>). An achievement the user has already completed is returned unchanged when submitted again, even if it has since been madeInactiveorDebug. - Each user has a limit on writes, on completions, and on the number of games completions land in within an hour. A write over a limit is refused with
429 Too many quest updates, try again later, and a refused completion is not recorded, so submit it again later.
URI¶
GET/PUT/DELETE https://services.armorgames.com/services/rest/v1/achievements/user/{{ uid }}.json
Parameters¶
Note
Parameters are case-sensitive.
| Method | Name | Description |
|---|---|---|
| ALL | api_key | 32 hexadecimal digits (UUID) An access key is unique to each game |
| ALL | method (optional) |
If your browser cannot do a DELETE or PUT you can use this parameter. |
| ALL | type | Game or Website |
| ALL | pid | Parent ID. Either a game_id or a website_id, depending on the type. A GET filters the list to that parent and type; an admin key omitting it lists the user's achievements across every parent. |
| ALL | developer_id | The ID the achievement users in-game. |
| PUT | increment | How much you wish to increment the progress of the achievement by. |
| PUT | progress | A float percentage from 0.0 to 1.0 of the total progress for the achievement. |
| PUT | reset (optional) |
If you supply reset=1 as part of the parameters, it will reset the achievement back to its starting value. |
| GET | limit (optional) |
Limit the amount of achievements returned. |
| GET | offset (optional) |
The offset count before the limit comes into play. |
| GET | order (optional) |
Order results by a specific field: started_date, completed_date, state, parent_id, percent_complete, or name. |
| GET | sort (optional) |
Sort direction of the order: asc, or desc |
| GET | filter (optional) |
Filtering results, options: parent (with type game this is the game name), name, percent_complete, or state. |
| GET | match (optional) |
Used with filter. |
Response¶
GET https://services.armorgames.com/services/rest/v1/achievements/user/bc361c39c528e399fbb7a9941c50784d.json?filt er=parent_id&limit=5&offset=0&match=13662&method=get&api_key=...
{
"version": 1,
"code": 200,
"message": "OK",
"payload": [
{
"id": 1233384,
"uid": "bc361c39c528e399fbb7a9941c50784d",
"achievement_id": 218,
"parent_id": "13662",
"current_value": 1,
"percent_complete": 100,
"state": "Completed",
"started_date": "2013-01-16 20:47:02",
"completed_date": "2013-01-16 20:47:02",
"updated_date": "2013-01-16 20:47:02",
"developer_id": "unluckyDeath",
"type": "Game",
"name": "Unlucky 13",
"target_value": 1
},
{
"id": 1233363,
"uid": "bc361c39c528e399fbb7a9941c50784d",
"achievement_id": 166,
"parent_id": "13662",
"current_value": 1,
"percent_complete": 100,
"state": "Completed",
"started_date": "2013-01-16 20:45:37",
"completed_date": "2013-01-16 20:45:37",
"updated_date": "2013-01-16 20:45:37",
"developer_id": "lowRoad",
"type": "Game",
"name": "Take the Low Road",
"target_value": 1
}
]
}
PUT https://services.armorgames.com/services/rest/v1/achievements/user/f6f8a828a87767560d9f5e52aa38b5cb.json?method=put&progress=1.0&dev_id=beacons-x3&pid=10317&type=Game&api_key=...
{
"version": 1,
"code": 200,
"message": "OK",
"payload": {
"state": "Completed",
"current_value": 1,
"percent_complete": 100,
"developer_id": "beacons-x3"
}
}