Reference
Users
8 routes, generated from Morse’s own OpenAPI document. Every path below hangs off the base URL, and every one needs the bearer header.
The examples are built from each route’s schema, so the shapes and types are exactly what the API declares. The values are illustrative, and no one has run them.
Change your profile and preferences: name, role, bio, picture, background, theme, accent, clock and timezone.
/users/meA field left out is unchanged; an explicit null clears it.
PATCH/users/me
curl -X PATCH "$MORSE/users/me" \
-H "Authorization: Bearer $MORSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "clock": "12", "extra_language": "en", "name": "Priya Shah", "onboarded": true, "share_tasks": true, "theme": "light", "timezone": "Asia/Kolkata", "title": "Pricing review" }'{
"accent": "…",
"avatar_choice": "…",
"avatar_original": true,
"avatar_uploads": true,
"avatar_url": "https://onmorse.com/priya",
"avatar_version": "…",
"background": "…",
"bio": "…",
"bookable": true,
"booking_handle": "…",
"clock": "…",
"company": "…",
"email": "priya@neuralarc.ai",
"extra_language": "en",
"extra_language_default": "en",
"id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
"is_admin": true,
"name": "Priya Shah",
"onboarded_at": "2026-10-02T10:30:00+05:30",
"organisation_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
"share_tasks": true,
"theme": "…",
"timezone": "Asia/Kolkata",
"title": "Pricing review"
}Forget the uploaded photo, and the original it was cut from.
/users/me/avatarChoosing it had replaced Google's photo, so that is what comes back — or the placeholder, which serves when there is none.
DELETE/users/me/avatar
curl -X DELETE "$MORSE/users/me/avatar" \
-H "Authorization: Bearer $MORSE_TOKEN"{
"accent": "…",
"avatar_choice": "…",
"avatar_original": true,
"avatar_uploads": true,
"avatar_url": "https://onmorse.com/priya",
"avatar_version": "…",
"background": "…",
"bio": "…",
"bookable": true,
"booking_handle": "…",
"clock": "…",
"company": "…",
"email": "priya@neuralarc.ai",
"extra_language": "en",
"extra_language_default": "en",
"id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
"is_admin": true,
"name": "Priya Shah",
"onboarded_at": "2026-10-02T10:30:00+05:30",
"organisation_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
"share_tasks": true,
"theme": "…",
"timezone": "Asia/Kolkata",
"title": "Pricing review"
}Step 3 of uploading a profile photo: say the file has arrived, and Morse checks it and makes it your picture.
/users/me/avatar/completeReturns your profile.
POST/users/me/avatar/complete
curl -X POST "$MORSE/users/me/avatar/complete" \
-H "Authorization: Bearer $MORSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "upload": "…" }'{
"accent": "…",
"avatar_choice": "…",
"avatar_original": true,
"avatar_uploads": true,
"avatar_url": "https://onmorse.com/priya",
"avatar_version": "…",
"background": "…",
"bio": "…",
"bookable": true,
"booking_handle": "…",
"clock": "…",
"company": "…",
"email": "priya@neuralarc.ai",
"extra_language": "en",
"extra_language_default": "en",
"id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
"is_admin": true,
"name": "Priya Shah",
"onboarded_at": "2026-10-02T10:30:00+05:30",
"organisation_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
"share_tasks": true,
"theme": "…",
"timezone": "Asia/Kolkata",
"title": "Pricing review"
}The photo your uploaded one was cut from, to frame it again.
/users/me/avatar/originalOnly ever your own, and the bytes themselves rather than a redirect: the page draws them on a canvas, which a redirect to the bucket would need the bucket's CORS for (plan 021 F8). 404 when there is none — a photo uploaded before originals were kept.
GET/users/me/avatar/original
curl "$MORSE/users/me/avatar/original" \
-H "Authorization: Bearer $MORSE_TOKEN"Step 1 of uploading a profile photo: a short-lived URL to PUT the file to, with exactly this type and size.
/users/me/avatar/uploadJPEG, PNG or WebP.
POST/users/me/avatar/upload
curl -X POST "$MORSE/users/me/avatar/upload" \
-H "Authorization: Bearer $MORSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "content_type": "image/jpeg", "size": 3 }'{
"content_type": "image/jpeg",
"upload": "…",
"url": "https://onmorse.com/priya"
}Suggest a tidier "What you do" line.
/users/me/bio/refineNothing is saved: the form shows it in place of what was typed, and the person saves it or undoes it.
POST/users/me/bio/refine
curl -X POST "$MORSE/users/me/bio/refine" \
-H "Authorization: Bearer $MORSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "text": "Annual plans are billed up front." }'{
"text": "Annual plans are billed up front."
}The picture others see.
/users/{user_id}/avataras previews a choice before it is saved — for
your own avatar only, so nobody can ask for a photo someone chose to hide.
GET/users/{user_id}/avatar
curl "$MORSE/users/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/avatar" \
-H "Authorization: Bearer $MORSE_TOKEN"A colleague's name and role, as shown beside their face. 404 for a disabled account.
/users/{user_id}/cardGET/users/{user_id}/card
curl "$MORSE/users/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/card" \
-H "Authorization: Bearer $MORSE_TOKEN"{
"id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
"name": "Priya Shah",
"title": "Pricing review"
}