Closets & me

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).

ParamWhereDefaultNotes
usernamepathAlphanumeric + underscore
limitquery121–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/me
Response 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"
  }
}
ErrorHTTPWhen
unauthorized401Missing or invalid key
forbidden403Key lacks read scope
not_found404Profile 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