nwaku/docs/api/v2/rest-api.md

2.4 KiB

HTTP REST API

Similar to the JSON-RPC API, the HTTP REST API consists of a set of methods operating on the Waku Node remotely over HTTP.

This API is divided in different namespaces which group a set of resources:

Namespace Description
/debug Information about a Waku v2 node.
/relay Control of the relaying of messages. See 11/WAKU2-RELAY RFC
/store Retrieve the message history. See 13/WAKU2-STORE RFC
/filter Control of the content filtering. See 12/WAKU2-FILTER RFC
/admin Privileged access to the internal operations of the node.
/private Provides functionality to encrypt/decrypt WakuMessage payloads using either symmetric or asymmetric cryptography. This allows backwards compatibility with Waku v1 nodes.

The full HTTP REST API documentation can be found here: TBD

API Specification

The HTTP REST API has been designed following the OpenAPI 3.0.3 standard specification format. The OpenAPI specification file can be found here: TBD

Check the OpenAPI Tools site for the right tool for you (e.g. REST API client generator)

Usage example

get_waku_v2_debug_v1_info

JSON-RPC call:

curl -d '{"jsonrpc":"2.0","method":"get_waku_v2_debug_v1_info","params":[],"id":1}' -H 'Content-Type: application/json' localhost:8645 -s | jq

Equivalent call for the REST API:

curl http://localhost:8645/debug/v1/info -s | jq

Node configuration

A subset of the node configuration can be used to modify the behaviour of the HTTP REST API. These are the relevant command line options:

CLI option Description Default value
--rest Enable Waku REST HTTP server. false
--rest-address Listening address of the REST HTTP server. 127.0.0.1
--rest-port Listening port of the REST HTTP server. 8645
--rest-relay-cache-capacity Capacity of the Relay REST API message cache. 30
--rest-admin Enable access to REST HTTP Admin API. false
--rest-private Enable access to REST HTTP Private API. false

Note that these command line options have their counterpart option in the node configuration file.