Check a name before your users pay it

Two public endpoints, with no key needed. Each response carries an x-atto-data header naming its source: mock for the demo data, sandbox for the ATTO contracts on a local test chain.

Has this name changed owner?

days is optional, from 1 to 3650, and defaults to 7.

GET /api/v1/names/corner.cafe/changed?days=7

{
  "changed": true,
  "at": "2026-11-04T12:00:00.000Z",
  "kind": "re_rented",
  "previous_owner": "firsttenant.near"
}

When nothing changed inside the window:

{ "changed": false }

kind is one of transferred, sold_clean, reclaimed or re_rented. Renewals don't count as a change of owner.

What has happened to this name?

Returns every recorded event, newest first.

GET /api/v1/names/corner.cafe/history

[
  {
    "id": 6,
    "token_id": "corner.cafe",
    "kind": "re_rented",
    "from_owner": "firsttenant.near",
    "to_owner": "newtenant.near",
    "block_time": "2026-11-04T12:00:00.000Z",
    "tx_hash": "mock-tx-6"
  }
]

Errors

An unknown name returns 404. An invalid days returns 400. More than 60 requests in a minute from one address returns 429, with a retry-after header giving the seconds to wait. All of them have a body of { "error": "..." }.