---
title: "Contributor Profile"
method: GET
path: "/api/contributors/{username}/profile.json"
tags: ["Profiles"]
---

# Contributor Profile

`GET /api/contributors/{username}/profile.json`

Returns complete reputation profile (character sheet) for a contributor. Pre-generated artifact—no server-side computation. Includes tier status, expertise classification (character class), standing across time periods, specialization areas, achievements, and linked wallets. Complete view of contributor's reputation and expertise within the guild.

## Path parameters

- `username` string, required

## Response `200`

Complete character sheet with tier, class, score breakdown, focus areas, and achievements

- UserProfileResponse
  - `version` string, required
  - `username` string, required
  - `generatedAt` string, date-time, required
  - `characterSheet` object, required
    - `tier` 'beginner' | 'regular' | 'active' | 'veteran' | 'elite' | 'legend', required
    - `characterClass` string, required — Derived class (Author, Reviewer, Maintainer, etc.)
    - `percentile` number, required — Percentile ranking among all contributors
    - `rank` object, required
      - `monthly` integer, nullable, required — Rank in current month (null if no activity)
      - `weekly` integer, nullable, required — Rank in current week (null if no activity)
      - `lifetime` integer, nullable, required — All-time rank (null if no activity)
    - `scoreBreakdown` object, required — Detailed score breakdown by contribution type
      - `total` number
      - `prScore` number
      - `issueScore` number
      - `reviewScore` number
      - `commentScore` number
    - `focusAreas` object[], required — Top expertise areas with rankings
      - `area` string
      - `count` integer
      - `rank` integer
    - `achievements` object[] — Earned badges and achievements
      - `id` string
      - `name` string
      - `description` string
      - `earnedAt` string, date-time
    - `profile` object — GitHub profile information
      - `avatarUrl` string, uri
      - `name` string
      - `bio` string
      - `location` string
      - `twitter` string
    - `wallets` object, required — Cryptocurrency wallet addresses
      - `solana` string
      - `ethereum` string
  - `links` object, required
    - `summaries` object, required
      - `lifetime` string, uri, required
      - `monthly` string, uri, required
      - `weekly` string, uri, required
      - `daily` string, uri, required
    - `github` string, uri, required
    - `profile` string, uri, required

## Other responses

- `404` — Profile not found - contributor may not have any recorded activity

## Changes

- **2026-07-17** `69daa3a55ca9` — 1 breaking, 1 info
  - added the pattern `^[a-zA-Z0-9](?:[a-zA-Z0-9]|-(?=[a-zA-Z0-9])){0,38}$` to the `path` request parameter `username`
  - added the non-success response with the status `404`
- **2026-01-10** `5ad424f68194` — 4 breaking, 17 info
  - the `characterSheet/achievements/items/` response's property type changed from no type to `object` for status `200`
  - the `characterSheet/focusAreas/items/` response's property type changed from no type to `object` for status `200`
  - the `characterSheet/profile` response's property type changed from no type to `object` for status `200`
  - the `characterSheet/scoreBreakdown` response's property type changed from no type to `object` for status `200`
  - …17 more
- **2026-01-09** `89c8a87385fe` — 1 info
  - endpoint added
- **2025-12-20** `628863cc74d9` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/elizaos/apis/hiscores-api/changes/api/contributors/:username/profile.json/get.md)

---

[API](https://skmtc.dev/elizaos/apis/hiscores-api.md) · [All operations](https://skmtc.dev/elizaos/apis/hiscores-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/elizaos/hiscores-api/revisions/69daa3a55ca9/schema)
