> For the complete documentation index, see [llms.txt](https://dynamicpixels.gitbook.io/dynamicpixels-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dynamicpixels.gitbook.io/dynamicpixels-docs/web-api/achievement.md).

# Achievement

Explore the list of Web APIs functions available for managing achievement, including detailed descriptions and usage examples.

{% hint style="warning" %}
To use service functions, first ensure that the service is activated before. You can see services by opening "Service Hub" From the game's dashboard header.&#x20;
{% endhint %}

## GET /api/table/services/achievements/{achievementId}

> Retrieves achievement data by its unique identifier.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/table/services/achievements/{achievementId}":{"get":{"tags":["Achievements"],"summary":"Retrieves achievement data by its unique identifier.","operationId":"GetAchievement","parameters":[{"name":"achievementId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/RichAchievementRowsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/RichAchievementRowsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/RichAchievementRowsResponse"}}}}}}}},"components":{"schemas":{"RichAchievementRowsResponse":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/RichAchievement"},"nullable":true},"totalCount":{"type":"integer","format":"int32"}},"additionalProperties":false},"RichAchievement":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"desc":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"extend_table":{"type":"string","nullable":true},"step_extend_table":{"type":"string","nullable":true},"start_at":{"type":"string","format":"date-time"},"end_at":{"type":"string","format":"date-time"},"steps":{"type":"array","items":{},"nullable":true}},"additionalProperties":false}}}}
```

## GET /api/table/services/achievements

> Retrieves a list of achievements for the current user based on the provided parameters.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/table/services/achievements":{"get":{"tags":["Achievements"],"summary":"Retrieves a list of achievements for the current user based on the provided parameters.","operationId":"GetAchievements","parameters":[{"name":"justDone","in":"query","schema":{"type":"boolean","default":true}},{"name":"skip","in":"query","schema":{"type":"integer","format":"int32","default":0}},{"name":"limit","in":"query","schema":{"type":"integer","format":"int32","default":25}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/RichAchievementRowsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/RichAchievementRowsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/RichAchievementRowsResponse"}}}}}}}},"components":{"schemas":{"RichAchievementRowsResponse":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/RichAchievement"},"nullable":true},"totalCount":{"type":"integer","format":"int32"}},"additionalProperties":false},"RichAchievement":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"desc":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"extend_table":{"type":"string","nullable":true},"step_extend_table":{"type":"string","nullable":true},"start_at":{"type":"string","format":"date-time"},"end_at":{"type":"string","format":"date-time"},"steps":{"type":"array","items":{},"nullable":true}},"additionalProperties":false}}}}
```

## POST /api/table/services/achievements

> Unlocks an achievement for the current user based on the provided parameters.

```json
{"openapi":"3.0.4","info":{"title":"DynamicPixels GameService V2","version":"v2"},"paths":{"/api/table/services/achievements":{"post":{"tags":["Achievements"],"summary":"Unlocks an achievement for the current user based on the provided parameters.","operationId":"UnlockAchievement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AchievementRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/AchievementRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AchievementRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/UnlockRowResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/UnlockRowResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/UnlockRowResponse"}}}}}}}},"components":{"schemas":{"AchievementRequest":{"required":["achievement_id","step_id"],"type":"object","properties":{"achievement_id":{"type":"integer","format":"int32"},"step_id":{"type":"integer","format":"int32"}},"additionalProperties":false},"UnlockRowResponse":{"type":"object","properties":{"row":{"$ref":"#/components/schemas/Unlock"}},"additionalProperties":false},"Unlock":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"player":{"type":"integer","format":"int32"},"achievement":{"type":"integer","format":"int32"},"step":{"type":"integer","format":"int32"}},"additionalProperties":false}}}}
```
