swagger : '2.0'
info :
title : "Matrix Client-Server v1 Room Membership API"
version : "1.0.0"
host : localhost:8008
schemes :
- https
- http
basePath : /_matrix/client/api/v1
consumes :
- application/json
produces :
- application/json
securityDefinitions :
accessToken :
type : apiKey
description : The user_id or application service access_token
name : access_token
in : query
paths :
"/rooms/{roomId}/join" :
post :
summary : Start the requesting user participating in a particular room.
description : |-
This API starts a user participating in a particular room, if that user
is allowed to participate in that room. After this call, the client is
allowed to see all current state events in the room, and all subsequent
events associated with the room until the user leaves the room.
After a user has joined a room, the room will appear as an entry in the
response of the |initialSync| API.
security :
- accessToken : [ ]
parameters :
- in : path
type : string
name : roomId
description : The room identifier or room alias to join.
required : true
x-example : "#monkeys:matrix.org"
responses :
200 :
description : |-
The room has been joined.
The joined room ID must be returned in the ``room_id`` field.
examples :
application/json : |-
{"room_id": "!d41d8cd:matrix.org" }
schema :
type : object
403 :
description : |-
You do not have permission to join the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejection are :
- The room is invite-only and the user was not invited.
- The user has been banned from the room.
examples :
application/json : |-
{"errcode": "M_FORBIDDEN", "error": "You are not invited to this room." }
429 :
description : This request was rate-limited.
schema :
"$ref": "definitions/error.yaml"
x-alias :
canonical-link : "post-matrix-client-api-v1-rooms-roomid-join"
aliases :
- /join/{roomId}
# With an extra " " to disambiguate from the 3pid invite endpoint
# The extra space makes it sort first for what I'm sure is a good reason.
"/rooms/{roomId}/invite " :
post :
summary : Invite a user to participate in a particular room.
description : |-
.. _invite-by-user-id-endpoint :
*Note that there are two forms of this API, which are documented separately.
This version of the API requires that the inviter knows the Matrix
identifier of the invitee. The other is documented in the*
`third party invites section`_.
This API invites a user to participate in a particular room.
They do not start participating in the room until they actually join the
room.
Only users currently in a particular room can invite other users to
join that room.
If the user was invited to the room, the home server will append a
``m.room.member`` event to the room.
.. _third party invites section : `invite-by-third-party-id-endpoint`_
security :
- accessToken : [ ]
parameters :
- in : path
type : string
name : roomId
description : The room identifier (not alias) to which to invite the user.
required : true
x-example : "!d41d8cd:matrix.org"
- in : body
name : body
required : true
schema :
type : object
example : |-
{
"user_id": "@cheeky_monkey:matrix.org"
}
properties :
user_id :
type : string
description : The fully qualified user ID of the invitee.
required : [ "user_id" ]
responses :
200 :
description : The user has been invited to join the room.
examples :
application/json : |-
{}
schema :
type : object
403 :
description : |-
You do not have permission to invite the user to the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejections are :
- The invitee has been banned from the room.
- The invitee is already a member of the room.
- The inviter is not currently in the room.
- The inviter's power level is insufficient to invite users to the room.
examples :
application/json : |-
{"errcode": "M_FORBIDDEN", "error": "@cheeky_monkey:matrix.org is banned from the room" }
429 :
description : This request was rate-limited.
schema :
"$ref": "definitions/error.yaml"