krak.dk APIkrak.dk ↗
Search Danish companies and persons, retrieve contact details, geocoordinates, and look up phone number spam reports via the Krak.dk API.
curl -X GET 'https://api.parse.bot/scraper/4733bf1e-bda6-46ca-82c0-5999ca676665/search_companies?page=1&query=restaurant' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for companies/businesses by name or keyword on krak.dk. Returns paginated results with basic info including name, ID, slug, URL, address, and phone.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| queryrequired | string | Search keyword or company name |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"query": "string, the search query used",
"results": "array of company objects with keys: name, id, slug, url, address, phone"
},
"sample": {
"data": {
"page": 1,
"query": "restaurant",
"results": [
{
"id": "65949783",
"url": "https://www.krak.dk/restaurant+oliva+hornb%c3%a6k/65949783/firma",
"name": "Restaurant Oliva",
"slug": "restaurant+oliva+hornb%c3%a6k",
"phone": "",
"address": ""
}
]
},
"status": "success"
}
}About the krak.dk API
The Krak.dk API provides 7 endpoints for querying Denmark's business and person directory, covering company search, person lookup, and phone number identification. The search_companies endpoint returns paginated results with name, address, and phone for any keyword or company name, while get_company_details adds email, website, geocoordinates, and business categories for a specific company.
Company and Person Search
The search_companies endpoint accepts a query string and an optional page integer, returning an array of company objects with name, id, slug, url, address, and phone. The id and slug fields from these results are the required inputs for get_company_details, which expands the record to include email, website, latitude, longitude, and a categories array. The search_persons endpoint follows the same pattern: query by name, paginate with page, and pass the returned id and slug to get_person_details for full address and geographic coordinates.
Phone Number Lookup
The who_called endpoint accepts a Danish phone number string (e.g. '70200000') and returns a statistics object containing searches_this_week and searches_total counts, plus a reports array of user-submitted descriptions such as spam or telemarketing flags. The get_who_called_overview endpoint requires no inputs and returns two lists: most_searched (each entry has phone and count) and recently_searched (each entry has phone and time). These endpoints correspond to Krak.dk's "Hvem Ringede" (Who Called) feature.
Autocomplete and Suggestions
The suggestions endpoint takes a query string and returns autocomplete candidates. Each result includes name, text, url, searchType (e.g. 'companies'), suggestType, and a geo field for geographic context. This is useful for building type-ahead search interfaces or normalizing input before passing it to the main search endpoints.
- Building a Danish business directory app with address, phone, and category data from
get_company_details - Identifying unknown callers by looking up search counts and spam reports via
who_called - Geocoding Danish company locations using
latitudeandlongitudefields from company detail responses - Monitoring trending phone numbers in Denmark using
get_who_called_overviewmost-searched data - Implementing autocomplete for Danish business or person name search using the
suggestionsendpoint - Aggregating contact details (email, website, phone) for Danish SMBs to support sales prospecting
- Cross-referencing person addresses and phone numbers for data enrichment pipelines targeting Denmark
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Krak.dk have an official developer API?+
What does `get_company_details` return beyond what the search results include?+
search_companies returns basic fields: name, id, slug, url, address, and phone. get_company_details adds email, website, latitude, longitude, and a categories array. It requires both id and slug from the search response.Does the `who_called` endpoint return the identity or name of the caller?+
who_called returns statistics (weekly and total search counts) and a reports array of user-submitted text descriptions. It does not resolve the phone number to a named person or company record. You can fork this API on Parse and revise it to add a lookup that cross-references the phone against search_companies or search_persons results.Is company opening hours data available?+
get_company_details response fields. The endpoint covers contact info, geocoordinates, and categories. You can fork this API on Parse and revise it to add opening hours if that field is present on the source page.How does pagination work across search endpoints?+
search_companies and search_persons accept an optional page integer. The response echoes back the current page number alongside the results array. There is no total_pages or total_results field in the response, so you iterate by incrementing page until the results array is empty.