synapse/docs/client-server/urls.rst

1.9 KiB

Client-Server URL Summary

A brief overview of the URL scheme involved in the Synapse Client-Server API.

URLs

Fetch events:

GET /events

Registering an account

POST /register

Unregistering an account

POST /unregister

Rooms

Creating a room by ID

PUT /rooms/$roomid

Creating an anonymous room

POST /rooms

Room topic

GET /rooms/$roomid/topic PUT /rooms/$roomid/topic

List rooms

GET /rooms/list

Invite/Join/Leave

GET /rooms/$roomid/members/$userid/state PUT /rooms/$roomid/members/$userid/state DELETE /rooms/$roomid/members/$userid/state

List members

GET /rooms/$roomid/members/list

Sending/reading messages

PUT /rooms/$roomid/messages/$sender/$msgid

Feedback

GET /rooms/$roomid/messages/$sender/$msgid/feedback/$feedbackuser/$feedback PUT /rooms/$roomid/messages/$sender/$msgid/feedback/$feedbackuser/$feedback

Paginating messages

GET /rooms/$roomid/messages/list

Profiles

Display name

GET /profile/$userid/displayname PUT /profile/$userid/displayname

Avatar URL

GET /profile/$userid/avatar_url PUT /profile/$userid/avatar_url

Metadata

GET /profile/$userid/metadata POST /profile/$userid/metadata

Presence

My state or status message

GET /presence/$userid/status PUT /presence/$userid/status also 'GET' for fetching others

TODO(paul): per-device idle time, device type; similar to above

My presence list

GET /presence_list/$myuserid POST /presence_list/$myuserid body is JSON-encoded dict of keys: invite: list of UserID strings to invite drop: list of UserID strings to remove TODO(paul): define other ops: accept, group management, ordering?

Presence polling start/stop

POST /presence_list/$myuserid?op=start POST /presence_list/$myuserid?op=stop

Presence invite

POST /presence_list/$myuserid/invite/$targetuserid