{ "apiVersion": "1.0.0", "swaggerVersion": "1.2", "basePath": "http://localhost:8008/_matrix/client/api/v1", "resourcePath": "/events", "produces": [ "application/json" ], "apis": [ { "path": "/events", "operations": [ { "method": "GET", "summary": "Listen on the event stream", "notes": "This can only be done by the logged in user. This will block until an event is received, or until the timeout is reached.", "type": "PaginationChunk", "nickname": "get_event_stream", "parameters": [ { "name": "from", "description": "The token to stream from.", "required": false, "type": "string", "paramType": "query" }, { "name": "timeout", "description": "The maximum time in milliseconds to wait for an event.", "required": false, "type": "integer", "paramType": "query" } ] } ], "responseMessages": [ { "code": 400, "message": "Bad pagination token." } ] }, { "path": "/events/{eventId}", "operations": [ { "method": "GET", "summary": "Get information about a single event.", "notes": "Get information about a single event.", "type": "Event", "nickname": "get_event", "parameters": [ { "name": "eventId", "description": "The event ID to get.", "required": true, "type": "string", "paramType": "path" } ], "responseMessages": [ { "code": 404, "message": "Event not found." } ] } ] }, { "path": "/initialSync", "operations": [ { "method": "GET", "summary": "Get this user's current state.", "notes": "Get this user's current state.", "type": "InitialSyncResponse", "nickname": "initial_sync", "parameters": [ { "name": "limit", "description": "The maximum number of messages to return for each room.", "type": "integer", "paramType": "query", "required": false } ] } ] }, { "path": "/publicRooms", "operations": [ { "method": "GET", "summary": "Get a list of publicly visible rooms.", "type": "PublicRoomsPaginationChunk", "nickname": "get_public_room_list" } ] } ], "models": { "PaginationChunk": { "id": "PaginationChunk", "properties": { "start": { "type": "string", "description": "A token which correlates to the first value in \"chunk\" for paginating.", "required": true }, "end": { "type": "string", "description": "A token which correlates to the last value in \"chunk\" for paginating.", "required": true }, "chunk": { "type": "array", "description": "An array of events.", "required": true, "items": { "$ref": "Event" } } } }, "Event": { "id": "Event", "properties": { "event_id": { "type": "string", "description": "An ID which uniquely identifies this event.", "required": true }, "room_id": { "type": "string", "description": "The room in which this event occurred.", "required": true } } }, "PublicRoomInfo": { "id": "PublicRoomInfo", "properties": { "aliases": { "type": "array", "description": "A list of room aliases for this room.", "items": { "$ref": "string" } }, "name": { "type": "string", "description": "The name of the room, as given by the m.room.name state event." }, "room_id": { "type": "string", "description": "The room ID for this public room.", "required": true }, "topic": { "type": "string", "description": "The topic of this room, as given by the m.room.topic state event." } } }, "PublicRoomsPaginationChunk": { "id": "PublicRoomsPaginationChunk", "properties": { "start": { "type": "string", "description": "A token which correlates to the first value in \"chunk\" for paginating.", "required": true }, "end": { "type": "string", "description": "A token which correlates to the last value in \"chunk\" for paginating.", "required": true }, "chunk": { "type": "array", "description": "A list of public room data.", "required": true, "items": { "$ref": "PublicRoomInfo" } } } }, "InitialSyncResponse": { "id": "InitialSyncResponse", "properties": { "end": { "type": "string", "description": "A streaming token which can be used with /events to continue from this snapshot of data.", "required": true }, "presence": { "type": "array", "description": "A list of presence events.", "items": { "$ref": "Event" }, "required": false }, "rooms": { "type": "array", "description": "A list of initial sync room data.", "required": false, "items": { "$ref": "InitialSyncRoomData" } } } }, "InitialSyncRoomData": { "id": "InitialSyncRoomData", "properties": { "membership": { "type": "string", "description": "This user's membership state in this room.", "required": true }, "room_id": { "type": "string", "description": "The ID of this room.", "required": true }, "messages": { "type": "PaginationChunk", "description": "The most recent messages for this room, governed by the limit parameter.", "required": false }, "state": { "type": "array", "description": "A list of state events representing the current state of the room.", "required": false, "items": { "$ref": "Event" } } } } } }