Messa
Private messaging server · Cloudflare Pages + D1
Checking…
Auth
POST
/api/auth/register
New account — username, password, recovery_email
POST
/api/auth/login
Login — returns Bearer token (valid 30 days)
POST
/api/auth/logout
Invalidate session token
POST
/api/auth/forgot-password
Generate 6-digit reset code
POST
/api/auth/reset-password
Set new password using reset code
Messages — chat history always preserved server-side
POST
/api/messages/send
Send text or media message to a user
GET
/api/messages/conversation?with=<user>
Full chat history (paginated, auto marks as read)
GET
/api/messages/contacts
All chats with last message + unread count
GET
/api/messages/inbox
Unread count per sender
GET
/api/messages/poll?since=<ISO>
New messages since timestamp (Android app polls this)
POST
/api/messages/read
Mark all messages from a user as read
DEL
/api/messages/<message_id>
Soft-delete your own message
Media — image / video / file attachments
POST
/api/media/upload
Upload base64 media, get back a media_id
GET
/api/media/<media_id>
Download media by ID
GET
/api/media/storage
Storage usage per partition
Users
GET
/api/users/me
Your own profile
GET
/api/users/search?q=name
Find users to start a chat
GET
/api/users/online
Users active in the last 2 minutes
POST
/api/users/avatar
Set profile picture (pass a media_id)
GET
/api/users/<username>
Public profile of any user