monoesdocs
Menu

API reference

Profile & identity

The authenticated user's own profile: identity, avatar, and username.

GET/api/community/mecommunity:read

Get the authenticated user's id, username, name, and avatar URL.

Response

{ id, username, name: string | null, avatarUrl: string | null }

avatarUrl (when set) is /api/images/avatar/<key>?v=<updatedAt ms> — the query param is a cache-buster, not part of the key.

PATCH/api/community/profilecommunity:write

Update your profile: name, tagline, job, tags, and social links.

Request

{ name, tagline?, jobTitle?, company?, tags?: string[], githubUrl?, twitterUrl?, linkedinUrl?, websiteUrl? }

Response

{ name, tagline, jobTitle, company, tags, githubUrl, twitterUrl, linkedinUrl, websiteUrl }

name required, 1-100 chars. tagline ≤140, jobTitle ≤80, company ≤80. Up to 10 tags (1-24 chars, alnum/underscore/hyphen). githubUrl/linkedinUrl must be https and match their platform's domain; twitterUrl accepts twitter.com or x.com (or a subdomain of either); websiteUrl just needs to be https.

POST/api/community/profile/avatarcommunity:write

Upload a new avatar image.

Request

multipart/form-data, field 'avatar': PNG/JPEG/WebP, max 2 MB

Response

{ avatarKey, updatedAt }

Stored at a fixed per-user key (avatars/<userId>) — re-uploading overwrites the previous image.

POST/api/community/usernamecommunity:write

Set or change your username (required once, during onboarding).

Request

{ username: string }

Response

{ username }

3-24 chars, letters/numbers/underscore/hyphen; must be unique — a taken username is a 400, not a 409 (see /docs/errors).