Endpoint

Also mounted at POST /api/v1/location/ (identical behavior). Auth: None (public). Limited to 60 requests / minute — per API key when you send X-API-Key, otherwise per client IP.

Purpose

Resolve a location_hash you already hold to the street address it belongs to — for example, to display the install address for a session or hand-off. The lookup direction is hash → address, not address → hash.
There is no partner endpoint that looks up a location_hash from an address. Location hashes are issued by kurnl: they arrive in checkout sessions, in the port hand-off from your operator, or directly from the operator dashboard. To check whether an address is in your coverage, use the serviceability endpoints.

Request body

Provide at least one of the two fields (location_hash is preferred; if both are sent, location_hash wins):
Sending neither fails validation with "Provide location_hash or location_identifier" (422).

Response — 200 OK

The location’s address, as a flat object with these fields when the address has them: street, housenumber, postalcode, city, unitnumber, floor, country, latitude, longitude, full_address, province. Then four fields that identify the location itself (the first three added 2026-09-15, postal_unit added 2026-10-02):

Errors

POST /partner/location/details exists on the same router and resolves a hash to the address (with unit number and floor), the port (location_identifier, port_type, interface) and the switch’s name — never the switch’s own address. It needs a staff login allowed to add customers (subscribers:write; other logins get 403) and is not callable with partner credentials.