Authentication

Every request carries a bearer token. Tokens are created in the dashboard and can be scoped read-only or restricted to a set of source addresses.

curl -H "Authorization: Bearer tsl_live_..." \
     "https://api-nl.safeeclipse.ru/v1/lookup?postcode=1015CS&number=62"

GET /v1/lookup

ParameterTypeRequiredNotes
postcodestringyesFour digits and two letters. Space and case are ignored.
numberintegeryesHouse number without suffix.
suffixstringnoLetter or addition. Omit to get every match.
langstringnonl (default) or fy for Frisian place names.

GET /v1/reverse

ParameterTypeRequiredNotes
bag_idstringyes16-digit BAG verblijfsobject identifier.

POST /v1/bulk

Body is a JSON array of up to 5 000 objects, each with postcode, number and optional suffix. The response preserves input order and returns null for rows that did not resolve.

curl -X POST -H "Authorization: Bearer tsl_live_..." \
     -H "Content-Type: application/json" \
     -d '[{"postcode":"1015CS","number":62}]' \
     "https://api-nl.safeeclipse.ru/v1/bulk"

Status codes

CodeMeaning
200Address resolved.
404Valid input, no such address in the register.
422Malformed postcode or house number.
429Rate limit exceeded. See Retry-After.
503Nightly rebuild in progress. Retry after 60 s.

Rate limits

Limits are per token, counted in a sliding 60-second window. Every response carries X-RateLimit-Remaining and X-RateLimit-Reset. Bulk requests count as one request regardless of row count, but rows count towards the monthly quota.