Super People Docs
API Reference

Birthdays

Today's birthdays, sending wishes, and hearting or replying to the wishes you received.

Today's birthdays, sending wishes, and hearting or replying to the wishes you received.

Generated from the OpenAPI spec by npm run docs:api -w api. Do not edit this page — change the decorators in apps/api/src/ and regenerate.

Conventions

  • Auth — a session on every route: the cookie on web, the bearer token on mobile. See Authentication.
  • Errors — every non-2xx response has the body described in Errors.
  • Types — a ? after a field name means it is optional; | null means it is present but may be null.

Endpoints

GET /api/v1/birthdays/today — Who is celebrating a birthday today

Today in the company's timezone. Names and photos only — never a date of birth, so nobody learns anybody else’s age. The first call on somebody's birthday also sends everyone that day's birthday notification.

Returns 200 → BirthdayResponse[]

ErrorWhen
401No valid session. Clear the stored token and sign in again.
403Signed in, but not allowed to do this.

GET /api/v1/birthdays/me/wishes — The birthday wishes you have received this year

Newest first. Only ever your own — nobody can read yours.

Returns 200 → BirthdayWishResponse[]

ErrorWhen
401No valid session. Clear the stored token and sign in again.
403Signed in, but not allowed to do this.

POST /api/v1/birthdays/{userId}/wishes — Wish somebody a happy birthday

Only on their birthday, and not to yourself. One wish per person per birthday: sending again replaces the words, and only the first notifies.

Path parameterTypeNotes
userIdstringWhose birthday it is.

Body — SendWishDto

Returns 204 → no body

ErrorWhen
400The request was rejected. message is an array of field errors when validation failed.
401No valid session. Clear the stored token and sign in again.
403Signed in, but not allowed to do this.
404It is not their birthday today.

PUT /api/v1/birthdays/wishes/{wishId}/love — Heart a wish you received, or take the heart back

Only the person the wish was sent to. The first heart notifies whoever wrote it.

Path parameterTypeNotes
wishIdstring

Body — LoveWishDto

Returns 204 → no body

ErrorWhen
400The request was rejected. message is an array of field errors when validation failed.
401No valid session. Clear the stored token and sign in again.
403Signed in, but not allowed to do this.
404No such wish of yours.

PUT /api/v1/birthdays/wishes/{wishId}/reply — Reply to a wish you received

Only the person the wish was sent to. One reply per wish — sending again rewords it, and an empty message clears it. The first reply notifies whoever wrote the wish, with its words.

Path parameterTypeNotes
wishIdstring

Body — ReplyToWishDto

Returns 204 → no body

ErrorWhen
400The request was rejected. message is an array of field errors when validation failed.
401No valid session. Clear the stored token and sign in again.
403Signed in, but not allowed to do this.
404No such wish of yours.

Data models

BirthdayResponse

FieldTypeNotes
idstring
namestring
imagestring | null
titlestring
wishedbooleanWhether you have already wished them this year.
wishCountnumberWishes received this year — only on your own entry, 0 on anybody else's.

BirthdayWishResponse

FieldTypeNotes
idstring
authorMentionResponse
messagestring
createdAtstring ISO 8601
lovedbooleanWhether you have hearted it.
replystring | nullYour reply to it, or null.
repliedAtstring ISO 8601 | null

MentionResponse

FieldTypeNotes
idstring
namestring
imagestring | null

SendWishDto

FieldTypeNotes
messagestringThe wish itself, as the person celebrating will read it. · ≤ 500 chars

LoveWishDto

FieldTypeNotes
lovedbooleantrue to heart the wish, false to take the heart back.

ReplyToWishDto

FieldTypeNotes
messagestringThe reply. Empty clears it. · ≤ 500 chars

On this page