Follow a job and download the result
All the team's jobs are listed under Jobs in the dashboard (the API → Jobs menu, or danskadresseapi.dk/dashboard/jobs). The list updates live: new jobs slide in, and progress, rows per second and estimated time count up while the job runs.
Start a job
- Click New job.
- Choose the type (and variant), and drag the file in — or click choose a file.
- The dashboard reads the file with the same parser as the job and shows the first rows, how many lookups the job uses and whether the quota covers it. If there is an error in the file, you see the line number right away.
- Choose the key the job is billed to, and start the job.
Only team members who are allowed to create API keys can start jobs.
Status — what does it mean?
| Status | Means | Can the result be downloaded? |
|---|---|---|
koe | Waiting for a free slot in the queue | No |
koerer | The job is being processed right now | Not yet |
pauset | Paused — the part in progress was finished and saved. Resumes from the same place | Yes, the partial result |
faerdig | All rows have been processed | Yes |
fejlet | The job stopped because of an error — see the error code | Yes, the partial result |
kvote_stop | The team's quota (or overage cap) was reached along the way | Yes, the partial result |
annulleret | Someone cancelled the job | Yes, the partial result |
udloebet | The result has been deleted (after 7 or 30 days) | No |
A paused job uses no lookups and doesn't take up one of the team's active-job slots. If it isn't resumed before the result expires, it is deleted with the error code pause_udloebet.
Waiting for capacity — a job with status koerer can temporarily show «Waiting for capacity». It means the API is busy and the job is waiting with its next part so regular calls go first. Enterprise jobs only wait at a higher load than Pro jobs. A job waits at most about 2 minutes per part, nothing is lost, and the job continues by itself. In the API it shows as venter_paa_kapacitet: true.
A faerdig job can still have rows that gave no answer — for example an address that couldn't be recognised. They show as «errors» or «warnings» on the job; see Rows that could not be processed.
The job's detail page
Click a job to open its detail page. At the top you see the status, progress, duration and number of rows, and under the tabs:
- Overview — processing time (rows per second over time), key figures, the input file and the job's configuration (type, variant, delimiter, encoding, whether the first row is a header, the key and when the result is deleted).
- Data — the result page by page with search, statistics per status and an explanation of the columns.
- Errors and warnings — the rows that gave no (reliable) answer, with the reason.
- Raw response — the first rows exactly as stored (NDJSON).
- Webhooks — the webhooks sent for the job, and whether they were delivered.
- History — created, time in queue, started, parts saved, ended and when the result was first downloaded.
If the job was stopped by an error, the error code, an explanation and the possible actions are shown at the top — see When a job fails — error codes.
Actions
- Download result (CSV, NDJSON — or JSONL for an export).
- Pause / Resume — a queued or running job can be paused: the part in progress is finished and saved, and after that no new lookups are used. Resume queues the job again, and it continues exactly after the last saved row (the quota is checked first — if it won't cover the rest, you get a warning). The pause doesn't extend how long the result and the input are kept. Via the API:
POST /v1/jobs/{id}/pauseandPOST /v1/jobs/{id}/genoptag. - Resume (stopped job) — a job that has
fejlet, stopped at the quota (kvote_stop) or wasannulleretcontinues on the same job where it left off. The processed rows are kept, and only the rest counts towards the quota (the quota is checked first). Requires that the input hasn't been deleted yet. Available in the dashboard. - Run again — a new job with the same input and configuration, e.g. after you've fixed something. Every row with a result counts as one lookup again. If the input has been deleted, it is rejected with
input_udloebet. Available in the dashboard. - Cancel — a queued, running or paused job stops. What was processed by then can be downloaded.
- Download input, Copy job id and Delete job (deletes the job, the result and the input — can't be undone; a running job must be cancelled first).
The result
The result can be downloaded in two formats:
NDJSON — one JSON line per row, exactly the same object as the synchronous batch endpoints return, plus idx (the row's position in your file, 0 = the first data row). All matches are included.
CSV — one line per row with fixed columns. UTF-8 with BOM (so Excel shows æ, ø and å correctly), comma as the delimiter, and fields containing a comma, quote or line break are in "…". For reverse and cleansing the CSV holds the best match.
| Type | Columns in the CSV |
|---|---|
reverse | idx, lat, lon, antal_match, adgangsadresse_id, adresse, vejnavn, husnr, postnr, postnrnavn, kommunekode, adresse_lat, adresse_lon |
datavask | idx, input, kategori, score, historisk, variant, adresse, id, adgangsadresse_id, vejnavn, husnr, etage, doer, postnr, postnrnavn, kommunekode, lat, lon, fejl |
bbr (buildings) | idx, id, fundet and the building's BBR fields (status, use, year built, areas, materials, heating, water, drainage and more) |
bbr (units) | idx, id, fundet and the unit's BBR fields (status, use, dwelling type, areas, rooms, toilet, bath and kitchen facilities and more) |
dagi | idx, lat, lon, postnr, kilde, code and name for parish, municipality, region, police district, court district, constituency, greater constituency, province and electoral province, polling district, fejl |
eksport | The same columns as the property search in Find properties |
For cleansing, kategori means: A = reliable match, B = uncertain match (check the best guess), C = no match. For DAGI lookups by postal code, municipalities, parishes etc. are a JSON list in the cell, because a postal code can span several.
The complete column list for your type is also on the detail page tab Data → Columns and under See file format.
The error rows
Rows that gave no answer can be downloaded on their own — so you can fix them and run them again:
- In the dashboard: the Errors and warnings tab shows the rows with their reason, and Download error rows (CSV) downloads them.
- Via the API:
GET /v1/jobs/{id}/fejlgives a CSV (or NDJSON with?format=ndjson) with the columns:
| Column | Contents |
|---|---|
raekke | The row's number among the data rows (1 = the first row below the header) |
| the input columns | What the job read from your file: lat, lon, radius, limit (reverse) · betegnelse (cleansing) · id (BBR) · lat, lon, postnr (DAGI) |
aarsag | The reason code, e.g. ikke_tolket — see Rows that could not be processed |
alvor | fejl (error: no answer) or advarsel (warning: the answer is uncertain or empty) |
forklaring | What the reason means and what you can do |
bedste_bud | The best answer the row gave anyway (cleansing category B and C) |
Add ?aarsag=ikke_tolket for a single reason, and ?sprog=en for explanations in English.
When the result is deleted
The result and the input are deleted 7 days (Pro) or 30 days (Enterprise) after the job ended. The date is shown under «Job configuration». If nobody has downloaded the result, you get a reminder 24 hours before — see Notifications and webhooks for jobs.
