diff --git a/api/client-server/old_sync.yaml b/api/client-server/old_sync.yaml index dd633069..c502c239 100644 --- a/api/client-server/old_sync.yaml +++ b/api/client-server/old_sync.yaml @@ -407,7 +407,8 @@ paths: retrieve this event e.g. by being a member in the room for this event. This endpoint was deprecated in r0 of this specification. Clients - should instead call the |/rooms/{roomId}/context/{eventId}|_ API. + should instead call the |/rooms/{roomId}/event/{eventId}|_ API + or the |/rooms/{roomId}/context/{eventId}|_ API. operationId: getOneEvent security: - accessToken: [] diff --git a/api/client-server/rooms.yaml b/api/client-server/rooms.yaml index 176d9fc9..88c2b9d9 100644 --- a/api/client-server/rooms.yaml +++ b/api/client-server/rooms.yaml @@ -27,6 +27,49 @@ produces: securityDefinitions: $ref: definitions/security.yaml paths: + "/rooms/{roomId}/event/{eventId}": + get: + summary: Get a single event by event ID. + description: |- + Get a single event based on ``roomId/eventId``. You must have permission to + retrieve this event e.g. by being a member in the room for this event. + operationId: getOneRoomEvent + security: + - accessToken: [] + parameters: + - in: path + type: string + name: roomId + description: The ID of the room the event is in. + required: true + x-example: "!asfDuShaf7Gafaw:matrix.org" + - in: path + type: string + name: eventId + description: The event ID to get. + required: true + x-example: "$asfDuShaf7Gafaw:matrix.org" + responses: + 200: + description: The full event. + examples: + application/json: { + "content": { + "body": "Hello world!", + "msgtype": "m.text" + }, + "room_id": "!wfgy43Sg4a:matrix.org", + "sender": "@bob:matrix.org", + "event_id": "$asfDuShaf7Gafaw:matrix.org", + "type": "m.room.message" + } + schema: + allOf: + - "$ref": "definitions/event-schemas/schema/core-event-schema/event.yaml" + 404: + description: The event was not found or you do not have permission to read this event. + tags: + - Room participation "/rooms/{roomId}/state/{eventType}/{stateKey}": get: summary: Get the state identified by the type and key. diff --git a/changelogs/client_server.rst b/changelogs/client_server.rst index 233f7480..d86aeb63 100644 --- a/changelogs/client_server.rst +++ b/changelogs/client_server.rst @@ -7,6 +7,8 @@ Unreleased changes - ``POST /user_directory/search`` (`#1096 `_). + - ``GET /rooms/{roomId}/event/{eventId}`` + (`#1110 `_). - Spec clarifications: diff --git a/specification/client_server_api.rst b/specification/client_server_api.rst index 464d20ae..1041dc15 100644 --- a/specification/client_server_api.rst +++ b/specification/client_server_api.rst @@ -1447,6 +1447,9 @@ have to wait in milliseconds before they can try again. .. |/rooms/{roomId}/context/{eventId}| replace:: ``/rooms/{roomId}/context/{eventId}`` .. _/rooms/{roomId}/context/{eventId}: #get-matrix-client-%CLIENT_MAJOR_VERSION%-rooms-roomid-context-eventid +.. |/rooms/{roomId}/event/{eventId}| replace:: ``/rooms/{roomId}/event/{eventId}`` +.. _/rooms/{roomId}/event/{eventId}: #get-matrix-client-%CLIENT_MAJOR_VERSION%-rooms-roomid-event-eventid + .. |/account/3pid| replace:: ``/account/3pid`` .. _/account/3pid: #post-matrix-client-%CLIENT_MAJOR_VERSION%-account-3pid