-
Notifications
You must be signed in to change notification settings - Fork 1
Description
The Matrix client-server spec describes http endpoints. Let's implement some of those endpoints.
Below is a large list of endpoints for the homeserver. It is not the complete API, but it is a large piece of it. We can follow up with additional features in another epic. We may also choose to exclude some APIs to reduce scope.
We will need to get really familiar with this spec:
https://matrix.org/docs/spec/client_server/r0.4.0.html
Each endpoint should require at least one PR.
Version
Version
- GET /_matrix/client/versions
Service Discovery
Well-known URI
- GET /.well-known/matrix/client
Authentication
Login
- GET /_matrix/client/r0/login
- POST /_matrix/client/r0/login
- POST /_matrix/client/r0/logout
- POST /_matrix/client/r0/logout/all
Account registration and management
- POST /_matrix/client/r0/register
- POST /_matrix/client/r0/register/email/requestToken
- POST /_matrix/client/r0/register/msisdn/requestToken
- POST /_matrix/client/r0/account/password
- POST /_matrix/client/r0/account/password/email/requestToken
- POST /_matrix/client/r0/account/password/msisdn/requestToken
- POST /_matrix/client/r0/account/deactivate
- GET /_matrix/client/r0/register/available
Adding Account Administrative Contact Information
- GET /_matrix/client/r0/account/3pid
- POST /_matrix/client/r0/account/3pid
- POST /_matrix/client/r0/account/3pid/delete
- POST /_matrix/client/r0/account/3pid/email/requestToken
- POST /_matrix/client/r0/account/3pid/msisdn/requestToken
Current account information
- GET /_matrix/client/r0/account/whoami
Events
Syncing
- GET /_matrix/client/r0/sync
- GET /_matrix/client/r0/events
- GET /_matrix/client/r0/initialSync
- GET /_matrix/client/r0/events/{eventId}
Getting events for a room
- GET /_matrix/client/r0/rooms/{roomId}/event/{eventId}
- GET /_matrix/client/r0/rooms/{roomId}/state/{eventType}/{stateKey}
- GET /_matrix/client/r0/rooms/{roomId}/state/{eventType}
- GET /_matrix/client/r0/rooms/{roomId}/state
- GET /_matrix/client/r0/rooms/{roomId}/members
- GET /_matrix/client/r0/rooms/{roomId}/joined_members
- GET /_matrix/client/r0/rooms/{roomId}/messages
- GET /_matrix/client/r0/rooms/{roomId}/initialSync
Sending events to a room
- PUT /_matrix/client/r0/rooms/{roomId}/state/{eventType}/{stateKey}
- PUT /_matrix/client/r0/rooms/{roomId}/state/{eventType}
- PUT /_matrix/client/r0/rooms/{roomId}/send/{eventType}/{txnId}
Redactions Events
- PUT /_matrix/client/r0/rooms/{roomId}/redact/{eventId}/{txnId}
Rooms
Creation
- POST /_matrix/client/r0/createRoom
Room aliases
- PUT /_matrix/client/r0/directory/room/{roomAlias}
- GET /_matrix/client/r0/directory/room/{roomAlias}
- DELETE /_matrix/client/r0/directory/room/{roomAlias}
Permissions/Room membership
- GET /_matrix/client/r0/joined_rooms
Joining rooms
- POST /_matrix/client/r0/rooms/{roomId}/invite
- POST /_matrix/client/r0/rooms/{roomId}/join
- POST /_matrix/client/r0/join/{roomIdOrAlias}
Leaving rooms
- POST /_matrix/client/r0/rooms/{roomId}/leave
- POST /_matrix/client/r0/rooms/{roomId}/forget
- POST /_matrix/client/r0/rooms/{roomId}/kick
Banning users in a room
- POST /_matrix/client/r0/rooms/{roomId}/ban
- POST /_matrix/client/r0/rooms/{roomId}/unban
Listing rooms
- GET /_matrix/client/r0/directory/list/room/{roomId}
- PUT /_matrix/client/r0/directory/list/room/{roomId}
- GET /_matrix/client/r0/publicRooms
- POST /_matrix/client/r0/publicRooms
User Data
User Directory
- POST /_matrix/client/r0/user_directory/search
Profiles
- PUT /_matrix/client/r0/profile/{userId}/displayname
- GET /_matrix/client/r0/profile/{userId}/displayname
- PUT /_matrix/client/r0/profile/{userId}/avatar_url
- GET /_matrix/client/r0/profile/{userId}/avatar_url
- GET /_matrix/client/r0/profile/{userId}