openapi: 3.0.3 info: title: Waku V2 node Store REST API version: 1.0.0 contact: name: VAC Team url: https://forum.vac.dev/ tags: - name: store description: Store REST API for WakuV2 node paths: /store/v1/messages: get: summary: Gets message history description: > Retrieves WakuV2 message history. The returned history can be potentially filtered by optional request parameters. operationId: getMessageHistory tags: - store parameters: - name: peerAddr in: query schema: type: string required: true description: > P2P fully qualified peer multiaddress in the format `(ip4|ip6)/tcp/p2p/$peerId` and URL-encoded. example: '%2Fip4%2F127.0.0.1%2Ftcp%2F60001%2Fp2p%2F16Uiu2HAmVFXtAfSj4EiR7mL2KvL4EE2wztuQgUSBoj2Jx2KeXFLN' - name: pubsubTopic in: query schema: type: string description: > The pubsub topic on which a WakuMessage is published. If left empty, no filtering is applied. It is also intended for pagination purposes. It should be a URL-encoded string. example: 'my%20pubsub%20topic' - name: contentTopics in: query schema: string description: > Comma-separated list of content topics. When specified, only WakuMessages that are linked to any of the given content topics will be delivered in the get response. It should be a URL-encoded-comma-separated string. example: 'my%20first%20content%20topic%2Cmy%20second%20content%20topic%2Cmy%20third%20content%20topic' - name: startTime in: query schema: type: string description: > The inclusive lower bound on the timestamp of queried WakuMessages. This field holds the Unix epoch time in nanoseconds as a 64-bits integer value. example: '1680590945000000000' - name: endTime in: query schema: type: string description: > The inclusive upper bound on the timestamp of queried WakuMessages. This field holds the Unix epoch time in nanoseconds as a 64-bits integer value. example: '1680590945000000000' - name: senderTime in: query schema: type: string description: > Cursor field intended for pagination purposes. Represents the Unix time in nanoseconds at which a message was generated. It could be empty for retrieving the first page, and will be returned from the GET response so that it can be part of the next page request. example: '1680590947000000000' - name: storeTime in: query schema: type: string description: > Cursor field intended for pagination purposes. Represents the Unix time in nanoseconds at which a message was stored. It could be empty for retrieving the first page, and will be returned from the GET response so that it can be part of the next page request. example: '1680590945000000000' - name: digest in: query schema: type: string description: > Cursor field intended for pagination purposes. URL-base64-encoded string computed as a hash of the a message content topic plus a message payload. It could be empty for retrieving the first page, and will be returned from the GET response so that it can be part of the next page request. example: 'Gc4ACThW5t2QQO82huq3WnDv%2FapPPJpD%2FwJfxDxAnR0%3D' - name: pageSize in: query schema: type: string description: > Number of messages to retrieve per page example: '5' - name: ascending in: query schema: type: string description: > "true" for paging forward, "false" for paging backward example: "true" responses: '200': description: WakuV2 message history. content: application/json: schema: $ref: '#/components/schemas/StoreResponse' '400': description: Bad request error. content: text/plain: type: string '412': description: Precondition failed. content: text/plain: type: string '500': description: Internal server error. content: text/plain: type: string components: schemas: StoreResponse: type: object properties: messages: type: array items: $ref: '#/components/schemas/WakuMessage' cursor: $ref: '#/components/schemas/HistoryCursor' error_message: type: string required: - messages HistoryCursor: type: object properties: pubsub_topic: type: string sender_time: type: string store_time: type: string digest: type: string required: - pubsub_topic - sender_time - store_time - digest WakuMessage: type: object properties: payload: type: string content_topic: type: string version: type: integer format: int32 timestamp: type: integer format: int64 ephemeral: type: boolean required: - payload - content_topic