summary refs log tree commit diff
path: root/docs/client-server/urls.rst
blob: c0d2eaa80c7bc9b433f129dda01cd22bfde1fc50 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
=========================
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