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: type Game and pid the game's ID. Anything else is refused with 400 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. A Debug achievement can be written only for Armor Games staff and the game's developer, collaborators and testers; any other state is refused with 400 Not Found (Achievement is <state>). An achievement the user has already completed is returned unchanged when submitted again, even if it has since been made Inactive or Debug.
  • 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"
  }
}