mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-09-20 06:45:49 -04:00
1.8 KiB
1.8 KiB
NIP-87
Relay Management API
draft
optional
Relays may provide an API for performing management tasks. This is made available as a JSON-RPC-like request-response protocol over HTTP, on the same URI as the relay's websocket.
When a relay receives an HTTP(s) request with an Authorization
header and a Content-Type
header of application/nostr+json+rpc
to a URI supporting WebSocket upgrades, it should parse the request as a JSON document with the following fields:
{
"method": "<method-name>",
"params": ["<array>", "<of>", "<parameters>"]
}
Then it should return a response in the format
{
"result": {"<arbitrary>": "<value>"},
"error": "<optional error message, if the call has errored>"
}
This is the list of methods that may be supported:
supportedmethods
:- params:
[]
- result:
["<method-name>", "<method-name>", ...]
(an array with the names of all the other supported methods)
- params:
banpubkey
:- params:
["<a 32-byte hex public key>", "<optional reason>"]
- result:
true
(a boolean always set totrue
)
- params:
listbannedpubkeys
:- params:
[]
- result:
[{"pubkey": "<32-byte hex>", "reason": "<optional reason>"}, ...]
, an array of objects
- params:
allowpubkey
:- params:
["<a 32-byte hex public key>", "<optional reason>"]
- result:
true
(a boolean always set totrue
)
- params:
listallowedpubkeys
:- params:
[]
- result:
[{"pubkey": "<32-byte hex>", "reason": "<optional reason>"}, ...]
, an array of objects
- params:
banevent
:- params:
["<a 32-byte hex event id>", "<optional reason>"]
- result:
true
(a boolean always set totrue
)
- params:
listbannedevents
:- params:
[]
- result:
[{"id": "<32-byte hex>", "reason": "<optional reason>"}, ...]
, an array of objects
- params: