Closets & me
Public closets are open profiles plus a sample of active live listings. GET /me returns the profile that owns your API key — the authenticated “who am I?” for integrations.
GET /profiles/{username}
Public closet summary. No API key required. Sample listings are live active only (Discover rules).
| Param | Where | Default | Notes |
|---|---|---|---|
username | path | — | Alphanumeric + underscore |
limit | query | 12 | 1–50 sample listings |
curl
curl -sS "https://www.threadzsocial.com/api/v1/profiles/jane?limit=12"Response data (shape)
{
"id": "uuid",
"username": "jane",
"display_name": "Jane",
"bio": "Closet notes…",
"avatar_url": null,
"active_listings_count": 14,
"listings": [
{
"id": "uuid",
"title": "…",
"price_cents": 2500,
"currency": "usd",
"status": "active",
"cover_image_url": "https://…",
"like_count": 2,
"published_at": "2026-07-18T12:00:00.000Z"
}
]
}meta may include next_cursor, count, and version.
Errors: 400 validation_error · 404 not_found
GET /me
Requires a valid API key with scope read(default on new keys). Returns the key owner's public profile fields plus key metadata — ideal for smoke tests and the go-live sandbox_me milestone.
curl
curl -sS \
-H "Authorization: Bearer stz_sandbox_YOUR_KEY" \
https://www.threadzsocial.com/api/v1/meResponse data (shape)
{
"id": "uuid",
"username": "jane",
"display_name": "Jane",
"bio": null,
"avatar_url": null,
"role": "both",
"created_at": "2026-07-01T00:00:00.000Z",
"api_key": {
"id": "uuid",
"scopes": ["read", "listings:write"],
"environment": "sandbox"
}
}| Error | HTTP | When |
|---|---|---|
unauthorized | 401 | Missing or invalid key |
forbidden | 403 | Key lacks read scope |
not_found | 404 | Profile missing for key owner |
Tip
After creating a key, call /me before any write logic. Confirm api_key.environment matches the environment you intend (sandbox vs live). See Authentication and Go live.
Related
- Listings
- Create API keys
- Web closets:
/closets/{username}