nwaku/docs/api/rest-api.md

2.5 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.

API Specification

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

Namespace OpenAPI file
/debug openapi.yaml
/relay openapi.yaml
/store openapi.yaml
/filter openapi.yaml

The OpenAPI files can be analysed online with Redocly

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

A particular OpenAPI spec can be easily imported into Postman

  1. Open Postman.
  2. Click on File -> Import...
  3. Load the openapi.yaml of interest, stored in your computer.
  4. Then, requests can be made from within the 'Collections' section.

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

Find details here