---
title: "Get Public Profile"
method: GET
path: "/api/v1/profiles/{username}"
tags: ["profiles"]
---

# Get Public Profile

`GET /api/v1/profiles/{username}`

## Request

- Base URL: `https://api.badgeia.com`
- URL: `https://api.badgeia.com/api/v1/profiles/{username}`
- Auth: none declared

Return a public profile page payload for `username` (case-insensitive).

404 if the user doesn't exist, is inactive, or has no username set.

## Path parameters

- `username` string, required

## Response `200`

Successful Response

- PublicProfile: Public-facing profile payload for GET /profiles/{username}. Strictly PII-free: no email, no internal ids beyond the stable username, no notification prefs, no plan-expiry dates. Returns aggregated stats and the user's public agents only (is_public=True).
  - `username` string, required
  - `name` string, nullable
  - `avatar_url` string, nullable
  - `plan` string, required
  - `joined_at` string, date-time, required
  - `public_agent_count` integer, required
  - `total_public_runs` integer, required
  - `best_score` number, nullable
  - `agents` PublicProfileAgent[]
    - `id` string, uuid, required
    - `name` string, required
    - `description` string, nullable
    - `provider_name` string, nullable
    - `model_name` string, nullable
    - `run_count` integer
    - `last_run_at` string, date-time, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/badgeia/apis/badge.md) · [All operations](https://skmtc.dev/badgeia/apis/badge/llms.txt) · [OpenAPI document](https://skmtc.dev/badgeia/apis/badge/revisions/7e7f7fee8b77?raw)
