Skip to content

Public API

Free, read-only JSON API. No key, no registration, CORS enabled. Data refreshes every 6 hours — please cache responses accordingly.

Base URL

http://www.nostrdex.com/api/v1

Conventions

  • List parameters accept comma separated values or repeated keys: nips=1,11,42 or nips=1&nips=11.
  • Booleans accept true / false (also 1 / 0).
  • Timestamps are Unix seconds, durations are milliseconds, ratios are 0–1.
  • Paginate with limit (max 500) and offset. The meta object contains total and next_offset.
  • Add format=urls to receive a plain text list of URLs — handy for relay pools.
  • Errors return a JSON body { "error": { "code", "message" } } with a matching HTTP status.

Ideas for integrations

  • Pick healthy fallback relays for outbox-model clients.
  • Suggest relays and media servers during user onboarding.
  • Find relays supporting NIP-50 search, NIP-29 groups or NIP-17 DMs.
  • Choose Blossom servers that actually accept uploads right now.

Endpoints

GET/api/v1/relays

List and filter relays.

Query parameters

ParameterTypeDescription
qstringFull text search over URL, name, description and software.
statuslistonline, degraded, offline, unknown.
min_usersnumberMinimum number of users listing the server (NIP-65 / BUD-03).
min_uptimenumberMinimum 7 day uptime, 0–1 or percent.
max_latencynumberMaximum latency in milliseconds.
nipslist<number>Relay must support all listed NIPs.
softwarelistSoftware name, e.g. strfry, khatru, nostr-rs-relay.
networklistclearnet, tor, i2p, loki.
countrylistISO 3166 country code from NIP-11 relay_countries.
languagelistIETF language tag from NIP-11 language_tags.
authbooleanRelay requires NIP-42 authentication.
paymentbooleanRelay requires payment.
writablebooleanRelay accepted our signed test event.
sortenumscore, popularity, uptime, latency, activity (events in the last hour), newest, name.
orderasc | descasc or desc. Defaults depend on the sort.
limitnumberPage size, 1–500. Default 50.
offsetnumberNumber of items to skip.
formatjson | urlsjson (default) or urls.
curl
curl "http://www.nostrdex.com/api/v1/relays?nips=50&status=online&sort=uptime&limit=10"
GET/api/v1/relays/{host}

A single relay including its NIP-11 document and check history.

curl
curl "http://www.nostrdex.com/api/v1/relays/relay.damus.io"
GET/api/v1/blossom

List and filter Blossom servers.

Query parameters

ParameterTypeDescription
qstringFull text search over URL, name, description and software.
statuslistonline, degraded, offline, unknown.
min_usersnumberMinimum number of users listing the server (NIP-65 / BUD-03).
min_uptimenumberMinimum 7 day uptime, 0–1 or percent.
max_latencynumberMaximum latency in milliseconds.
open_uploadbooleanOur test upload succeeded and the blob was retrievable afterwards.
open_adult_uploadbooleanOur adult-category test upload succeeded and the blob was retrievable afterwards.
uploadlistUpload test outcome: ok, auth-required, payment-required, forbidden, too-large, unsupported-type, rate-limited, error, skipped.
corsbooleanServer sends CORS headers (needed for web clients).
mediabooleanSupports BUD-05 /media.
mirrorbooleanSupports BUD-04 /mirror.
listbooleanSupports BUD-12 /list.
sortenumscore, popularity, uptime, latency, upload_success, newest, name.
orderasc | descasc or desc. Defaults depend on the sort.
limitnumberPage size, 1–500. Default 50.
offsetnumberNumber of items to skip.
formatjson | urlsjson (default) or urls.
curl
curl "http://www.nostrdex.com/api/v1/blossom?open_upload=true&cors=true&sort=upload_success"
GET/api/v1/blossom/{host}

A single Blossom server including its check history.

curl
curl "http://www.nostrdex.com/api/v1/blossom/blossom.primal.net"
GET/api/v1/stats

Aggregated network statistics and crawler status.

curl
curl "http://www.nostrdex.com/api/v1/stats"