taking longer than usual.

skip to content
sometimes/ developers

developers / bots / resources

groups, friends and presence

social actions use the installer’s relationships and authority. group ownership never expands access to other members’ private accounts.

API 1 · REST + gatewaydownload reference

group operations

bot.groups.create creates a group attributed to the bot while assigning human ownership to the installer. include the installer automatically; invited members must satisfy existing friendship, blocking and capacity rules. a single-chat installation does not gain access to the new group automatically: return its creation receipt, then the user can authorize a new installation there. existing group edits and membership changes require both the matching grant and current installer ownership at commit. ownership transfer, group destruction and group bot exclusions are human-only in v1.

group and relationship routes

FriendRequest is {id,sender,recipient,direction,created_at,revision}; basic identities contain no contact details. accepting/denying requires a request actually addressed to the installer. cancellation applies only to the installer’s outgoing request. block changes immediately affect message/event/media authorization; the response is a mutation receipt, not a full block-list export.

scroll the table horizontally to see all columns.

method and pathrequestresult
POST /groupsname:1–48 chars, member_ids[], icon_asset_id?; permission 41201 Group{id,name,owner_id,created_by_bot,revision}
GET /groups/{group}/memberscursor, limit; permission 15basic member identities + owner flag
PATCH /groups/{group}name?,icon_asset_id?,members_locked?; If-Match; permission 65Group mutation receipt
PUT /groups/{group}/members/{user}If-Match; permission 66204; normal invitation constraints
DELETE /groups/{group}/members/{user}If-Match; permission 66204; cannot remove owner
GET /me/friendscursor,limit; permission 16accepted friend basic identities
GET /me/friend-requestsdirection:incoming|outgoing|both, cursor,limit; permission 17FriendRequest list
POST /me/friend-requestsuser_id; permission 62201 FriendRequest receipt
DELETE /me/friend-requests/{id}permission 62; outgoing only204; cancel own request
POST /me/friend-requests/{id}/responddecision:accept|deny; permission 63request_id,status,revision
PUT /me/blocks/{user}permission 64204; block as installer
DELETE /me/blocks/{user}permission 64204; unblock as installer
GET /presenceuser_ids:up to 100; permission 13eligible {user_id,online,expires_at} only

addressing users

bots use stable IDs obtained from granted group/friend/request/profile surfaces or explicit command user selections. GET /profiles/resolve?username=HANDLE requires profile.read_others and returns a basic identity only if the installer could normally view that account; it is not a global account directory. human developer invite-list editing uses the dashboard’s own user picker. invalid or hidden identities return not_found without differentiating the reason.

presence and typing privacy

presence reads are limited to eligible friends, members of authorized chats or permitted bot DM peers. privacy opt-outs yield no online state; do not report a hidden user as offline. only online boolean and lease expiry are exposed, never device count, activity timestamps or last-seen history. typing is delivered only as transient gateway events and expires in five seconds. bots cannot publish human typing events, extend human presence, suppress human notifications by sending activity heartbeats or mark a conversation as read.

notifications to the installer

POST /notifications requires notifications.send and accepts {title,body,chat_id?,message_id?}. title is at most 80 characters, body at most 240; destination must be a currently authorized Sometimes resource. no arbitrary URL, recipient ID or push token is accepted. return {id,accepted:true} without delivery/read status. obey quiet hours, per-device categories, preview privacy and chat mutes before queueing and again before delivery. notifications containing message data require that message to remain readable. mute and notification grants cannot bypass OS permissions or spam limits.