---
title: "Get the achievement catalog. Hidden badges are counted but never described."
method: GET
path: "/api/achievements/catalog"
tags: ["Achievements"]
---

# Get the achievement catalog. Hidden badges are counted but never described.

`GET /api/achievements/catalog`

## Request

- Base URL: `https://api.3dprintlog.com`
- URL: `https://api.3dprintlog.com/api/achievements/catalog`
- Auth: one of:
  - none
  - OAuth 2 (authorization code, authorization URL `https://3dprintlog.auth0.com/authorize`, token URL `https://3dprintlog.auth0.com/oauth/token`)
  - API key in header `X-Api-Key`
  - API key in query parameter `api_key`

## Response `200`

The catalog, with each tier's rarity.

- PrintLogApiModelsDTOsAchievementsAchievementCatalogDto
  - `version` integer
  - `hiddenCount` integer: How many hidden families exist. Their keys and copy are never sent.
  - `families` PrintLogApiModelsDTOsAchievementsAchievementFamilyDto[], nullable
    - `key` string, nullable
    - `category` 1 | 2 | 3 | 4 | 5 | 6: Catalog groupings. Serialized as numbers; the UI mirrors these values. Sent as an integer: `1` = GettingStarted, `2` = Milestones, `3` = Streaks, `4` = Integrations, `5` = Community, `6` = Hidden.
    - `glyph` string, nullable
    - `title` string, nullable
    - `hintOrder` integer
    - `tiers` PrintLogApiModelsDTOsAchievementsAchievementTierDto[], nullable
      - `tier` integer
      - `threshold` integer
      - `description` string, nullable: The tier's description with its threshold filled in.
      - `rarityPercent` number, double, nullable: Share of evaluated makers holding this tier, 0–100.

---

[API](https://skmtc.dev/3dprintlog/apis/3d-print-log-api.md) · [All operations](https://skmtc.dev/3dprintlog/apis/3d-print-log-api/llms.txt) · [OpenAPI document](https://skmtc.dev/3dprintlog/apis/3d-print-log-api/revisions/dfc3a4df4e38?raw)
