API documentation
Robinsonlisten lookups via REST API
🚀 Get Started in Minutes
Quick start: Get your API key on the homepage (100 free lookups) or see pricing for unlimited lookups.
API Endpoints
Simple, RESTful endpoints for Robinson list lookups and address normalization
Robinson List Identification
https://robinsonlistenapi.dk/api/v1/identifications
âś“ Single person lookup via query parameters
https://robinsonlistenapi.dk/api/v1/identifications
Recommended
✓ Batch lookup (up to 1,000 people per request) – Best for high volume
Address Normalization
FREE
Validate and normalize Danish addresses using official DAWA data
https://robinsonlistenapi.dk/api/v1/address/normalize
âś“ Normalize and validate a single Danish address
https://robinsonlistenapi.dk/api/v1/address/normalize/batch
âś“ Batch address normalization (up to 100 addresses per request)
Authentication
Include your API key in the request body:
{
"api_key": "your_api_key_here",
"search": [...]
}
Request format
Send an array of people you want to check. Each person MUST include an address (with zip code). First name and last name are optional but highly recommended for accurate matching.
| Parameter | Type | Required | Description |
|---|---|---|---|
| first_name | string | Optional | First name (optional but recommended) |
| last_name | string | Optional | Last name (optional but recommended) |
| address | string | Optional | Address including zip code, e.g. "Vesterbrogade 1, 1620" (REQUIRED) |
| phone_number | string | Optional | Phone number (Danish format) |
| kvhx | string | Optional | Official Danish address code (KVHX) |
| query | string | Optional | General search query (tries both name and address) |
| id | string/number | Optional | Your internal ID (returned in response for tracking) |
Note: Provide at least one search parameter. The API will attempt to match on name, address, phone number, or KVHX code.
Example
fetch('https://robinsonlistenapi.dk/api/v1/identifications', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
api_key: 'your_api_key_here',
search: [
{
first_name: 'Marcus',
last_name: 'Jensen',
address: 'Vesterbrogade 1, 1620',
id: 1
},
{
address: 'Flakholmen 14 st. th., 2640',
id: 2
},
{
first_name: 'Hans',
last_name: 'Schøller',
address: 'Nørrebrogade 20, 2200',
id: 3
},
{
phone_number: '+4512345678',
id: 4
},
{
kvhx: '01010101__1__1',
first_name: 'Anna',
last_name: 'Hansen',
id: 5
}
]
})
})
.then(response => response.json())
.then(data => { console.log(data); return data; });
fetch('https://robinsonlistenapi.dk/api/v1/identifications?' + new URLSearchParams({
api_key: 'your_api_key_here',
first_name: 'Marcus',
last_name: 'Jensen',
address: 'Vesterbrogade 1, 1620'
}))
.then(response => response.json())
.then(data => { console.log(data); return data; });
require 'net/http'
require 'uri'
require 'json'
uri = URI.parse('https://robinsonlistenapi.dk/api/v1/identifications')
params = {
api_key: 'your_api_key_here',
first_name: 'Marcus',
last_name: 'Jensen',
address: 'Vesterbrogade 1, 1620'
}
uri.query = URI.encode_www_form(params)
response = Net::HTTP.get_response(uri)
data = JSON.parse(response.body)
puts data
require 'net/http'
require 'json'
uri = URI('https://robinsonlistenapi.dk/api/v1/identifications')
request = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
request.body = JSON.dump({
api_key: 'your_api_key_here',
search: [
{
first_name: 'Marcus',
last_name: 'Jensen',
address: 'Vesterbrogade 1, 1620',
id: 1
},
{
address: 'Flakholmen 14 st. th., 2640',
id: 2
},
{
first_name: 'Hans',
last_name: 'Schøller',
address: 'Nørrebrogade 20, 2200',
id: 3
},
{
phone_number: '+4512345678',
id: 4
}
]
})
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
http.request(request)
end
data = JSON.parse(response.body)
puts data
# Single lookup (GET)
curl -X GET 'https://robinsonlistenapi.dk/api/v1/identifications?api_key=your_api_key_here&first_name=Marcus&last_name=Jensen&address=Vesterbrogade%201%2C%201620'
# Batch lookup (POST)
curl -X POST 'https://robinsonlistenapi.dk/api/v1/identifications' \
-H 'Content-Type: application/json' \
-d '{
"api_key": "your_api_key_here",
"search": [
{
"first_name": "Marcus",
"last_name": "Jensen",
"address": "Vesterbrogade 1, 1620",
"id": 1
},
{
"phone_number": "+4512345678",
"id": 2
}
]
}'
// Single lookup (GET)
$curl = curl_init();
$params = http_build_query([
'api_key' => 'your_api_key_here',
'first_name' => 'Marcus',
'last_name' => 'Jensen',
'address' => 'Vesterbrogade 1, 1620'
]);
curl_setopt_array($curl, [
CURLOPT_URL => 'https://robinsonlistenapi.dk/api/v1/identifications?' . $params,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
]);
$response = curl_exec($curl);
$data = json_decode($response);
print_r($data);
import requests
# Single lookup (GET)
params = {
"api_key": "your_api_key_here",
"first_name": "Marcus",
"last_name": "Jensen",
"address": "Vesterbrogade 1, 1620"
}
response = requests.get("https://robinsonlistenapi.dk/api/v1/identifications", params=params)
data = response.json()
print(data)
# Batch lookup (POST)
payload = {
"api_key": "your_api_key_here",
"search": [
{
"first_name": "Marcus",
"last_name": "Jensen",
"address": "Vesterbrogade 1, 1620",
"id": 1
},
{
"phone_number": "+4512345678",
"id": 2
}
]
}
response = requests.post("https://robinsonlistenapi.dk/api/v1/identifications", json=payload)
data = response.json()
print(data)
Response format
[
{
"first_name": "Marcus",
"last_name": "Jensen",
"address": "Vesterbrogade 1, 1620",
"id": 1,
"robinsonlisten": "1",
"robinson_matched_on": ["first_name", "last_name", "address"]
},
{
"address": "Flakholmen 14 st. th., 2640",
"id": 2,
"robinsonlisten": "1",
"robinson_matched_on": ["address"]
},
{
"first_name": "Hans",
"last_name": "Schøller",
"address": "Nørrebrogade 20, 2200",
"id": 3,
"robinsonlisten": "0",
"robinson_matched_on": []
},
{
"phone_number": "+4512345678",
"id": 4,
"robinsonlisten": "1",
"robinson_matched_on": ["phone_number"],
"phone_lookup_data": {
"first_name": "Marcus",
"last_name": "Jensen",
"address": "Vesterbrogade 1, 1620 København V"
}
}
]
{
"first_name": "Marcus",
"last_name": "Jensen",
"address": "Vesterbrogade 1, 1620",
"robinsonlisten": "1",
"robinson_matched_on": ["first_name", "last_name", "address"]
}
Response fields
| Field | Description |
|---|---|
| robinsonlisten | "1" = on list, "0" = not on list |
| robinson_matched_on | Array of fields that matched (e.g., ["first_name", "last_name", "address"]). Empty array if no match. |
| phone_lookup_data | Only for phone lookups - data about the number owner |
Example interpretation
If the response shows:
[
{
"query": "Marcus Jensen",
"result": {
"robinsonlisten": "1",
"robinson_matched_on": "first_name, last_name",
"robinson_match_attempts": "first_name, last_name, address"
}
}
]
It means: The search for "Marcus Jensen" returned a match. The person is on Robinsonlisten and was matched on name (first_name, last_name).
Address Normalization API
The Address Normalization API validates and normalizes Danish addresses using official DAWA (Danmarks Adressers Web API) data.
Free to use: Address normalization requests are tracked for monitoring but do NOT count toward your API usage limits or billing.
Single Address Normalization
https://robinsonlistenapi.dk/api/v1/address/normalize
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| address | string | Yes | The Danish address to normalize |
Example Request
{
"api_key": "your_api_key_here",
"address": "Vesterbrogade 1, 1620"
}
Response Format
{
"address": "Vesterbrogade 1, 1620",
"success": true,
"match_quality": "A",
"normalized_address": "Vesterbrogade 1, 1., 1620 København V",
"kvhx": "01010101__1__1",
"components": {
"municipality_code": "0101",
"road_code": "0101",
"house_number": "1",
"floor": "1",
"door": null,
"postal_code": "1620",
"city": "København V"
},
"coordinates": {
"lat": 55.674557,
"lng": 12.561615
}
}
Batch Address Normalization
https://robinsonlistenapi.dk/api/v1/address/normalize/batch
Maximum 100 addresses per request
Example Request
{
"api_key": "your_api_key_here",
"addresses": [
"Vesterbrogade 1, 1620",
"Nørrebrogade 20, 2200",
"Amagerbrogade 150, 2300"
]
}
Response Fields
| Field | Description |
|---|---|
| success | Whether the address was successfully normalized |
| match_quality | A = perfect match, B = good match, C = uncertain match |
| normalized_address | The official normalized address format |
| kvhx | Official Danish address code (Kommune-Vej-Husnummer-Etage-Dør) |
| components | Structured address components (municipality, road, house number, floor, door, postal code, city) |
| coordinates | GPS coordinates (latitude and longitude) |
Batch lookups
Send multiple people in the same request to optimize throughput.
Tip: For large datasets (>1000 people), contact us for access to our dedicated batch endpoint with higher limits.
Need help?
Contact Support
Have questions or need technical assistance?