Skip to content

REST Endpoints

All endpoints use base URL https://api.hashee.ai. Authentication is via Authorization: Bearer {token} unless marked as public.

Auth

MethodPathAuthDescription
POST/auth/registerPublicRegister new account
POST/auth/loginPublicPassword login
POST/auth/login-codePublicVerification code login
POST/auth/send-codePublicSend verification code
POST/auth/refreshCookieRefresh access token
POST/auth/logoutJWTLogout current session
POST/auth/reset-passwordPublicReset account password
POST/auth/change-passwordJWTChange account password
POST/auth/change-protection-passwordJWTChange protection password
GET/auth/meJWTGet current user profile
POST/auth/passkey/beginPublicBegin Passkey login
POST/auth/passkey/completePublicComplete Passkey login
POST/auth/passkey/register/beginJWTBegin Passkey registration
POST/auth/passkey/register/completeJWTComplete Passkey registration
GET/auth/passkey/credentialsJWTList Passkey credentials
PATCH/auth/passkey/credentials/:idJWTRename a Passkey
DELETE/auth/passkey/credentials/:idJWTDelete a Passkey

Users

MethodPathAuthDescription
GET/users/meJWTGet own profile
PATCH/users/meJWTUpdate own profile
GET/users/:idJWTGet user by ID
GET/users/searchJWTSearch users
DELETE/users/meJWTDeactivate and delete account
PATCH/users/contacts/:idJWTSet contact remark name

E2EE Keys

MethodPathAuthDescription
POST/keys/backupJWTUpload encrypted key backup
GET/keys/backupJWTDownload key backup
PUT/keys/backupJWTUpdate key backup
GET/keys/users/:id/devicesJWTGet user device public keys
GET/keys/agents/:idJWTGet agent public key
GET/keys/groups/:idJWTGet group encryption key
POST/keys/groups/:id/rotateJWTRotate group key
POST/keys/rotation/requestJWTRequest H2H key rotation
POST/keys/rotation/confirmJWTConfirm H2H key rotation
POST/agents/:id/keys/registerAgentRegister agent public key

Conversations

MethodPathAuthDescription
GET/conversationsJWTList conversations
PATCH/conversations/:idJWTUpdate conversation settings
DELETE/conversations/:idJWTHide conversation
POST/conversations/:id/readJWTMark as read
GET/conversations/:id/messagesJWTGet message history
GET/conversations/:id/mediaJWTGet media in conversation
PUT/conversations/:id/draftJWTSave draft
GET/conversations/:id/draftJWTGet draft
DELETE/conversations/:id/draftJWTDelete draft

Messages

MethodPathAuthDescription
POST/conversations/:id/messagesJWTSend a message
POST/messages/:id/recallJWTRecall a message
POST/messages/:id/reactionsJWTAdd/remove reaction
GET/messages/:id/reactionsJWTGet reactions list
POST/messages/forwardJWTForward messages (max 10 targets)
PATCH/messages/:id/artifactAgentUpdate an artifact

Groups

MethodPathAuthDescription
POST/groupsJWTCreate group
GET/groups/:idJWTGet group details
PATCH/groups/:idJWTUpdate group settings
DELETE/groups/:idJWTDelete group
GET/groups/:id/membersJWTList members
POST/groups/:id/membersJWTAdd members
DELETE/groups/:gid/members/:midJWTRemove member
PATCH/groups/:gid/members/:midJWTUpdate member role
PATCH/groups/:gid/members/meJWTUpdate own group profile
POST/groups/:gid/leaveJWTLeave group
POST/groups/:id/transferJWTTransfer ownership
POST/groups/:gid/joinJWTJoin group via share code
GET/groups/:gid/join-requestsJWTList pending join requests
POST/groups/:gid/join-requests/:uid/approveJWTApprove join request
POST/groups/:gid/join-requests/:uid/rejectJWTReject join request
POST/groups/:id/pinned-messagesJWTPin a message
GET/groups/:id/pinned-messagesJWTList pinned messages
DELETE/groups/:gid/pinned-messages/:midJWTUnpin a message
POST/groups/:gid/members/:mid/muteJWTMute a member
POST/groups/:id/agent-instancesJWTAdd agent to group
DELETE/groups/:gid/agent-instances/:iidJWTRemove agent from group

Agent Management (Creator)

MethodPathAuthDescription
POST/agentsJWTCreate agent
GET/agentsJWTList own agents
GET/agents/:idJWTGet agent details
PATCH/agents/:idJWTUpdate agent profile
DELETE/agents/:idJWTDelete agent
GET/agents/check-idJWTCheck custom ID availability
GET/agents/:id/tokenJWTGet agent token
POST/agents/:id/token/regenerateJWTRegenerate token
GET/agents/:id/commandsJWTGet slash commands
POST/agents/:id/commandsJWTUpdate slash commands
GET/agents/:id/invite-codesJWTList invite codes
POST/agents/:id/invite-codesJWTCreate invite code
PATCH/invite-codes/:idJWTUpdate invite code
GET/agents/:id/requestsJWTList user requests
POST/agents/:id/requests/:rid/approveJWTApprove user request
POST/agents/:id/users/:uid/suspendJWTSuspend user
POST/agents/:id/users/:uid/restoreJWTRestore user
GET/agents/:id/governanceJWTGet governance status

Agent Endpoints (Agent Token Auth)

MethodPathAuthDescription
POST/agents/:id/conversations/:cid/messagesAgentSend message
POST/agents/:id/typingAgentSend typing indicator
GET/agents/:id/messages/pollAgentPoll for messages
GET/agents/:id/conversationsAgentList conversations
GET/agents/:id/conversations/:cid/messagesAgentGet conversation messages
POST/agents/:id/filesAgentRequest file upload URL
PUT/agents/:id/files/:uploadId/uploadAgentUpload file binary

Files

MethodPathAuthDescription
POST/files/presignJWTRequest presigned upload URL
PUT/files/:upload_id/uploadJWTUpload file binary
POST/files/confirmJWTConfirm upload with SHA-256

Other

MethodPathAuthDescription
GET/healthPublicHealth check
GET/searchJWTSearch actors and artifacts
POST/reportsJWTReport an agent
POST/share/friendJWTCreate friend share link
POST/share/agentJWTCreate agent share link
POST/share/groupJWTCreate group share link
GET/share/*PublicResolve share link

Next Steps