Impressum Scraper API

Get the managing director, address, VAT and registration number from Impressum pages, from your AI assistant, no-code workflow or own code.

  • From $0.0067 per Website
  • Managing Director Details
  • 10,000 Websites per Task
Your list
Website
brightwave-analytics.de
northpeak-logistik.de
junipervale.studio
What you get back
CompanyManaging director
Brightwave GmbHMaya Lindqvist
Northpeak Logistik KGTom Okafor
Juniper & Vale UGLéa Moreau

Trusted by 38,000+ users at startups and Fortune 500 teams

AmazonAirbusUberFedexSAPSeonDatadogZendesk

Works with any tool that can send HTTP requests

  • Claude
  • Cursor
  • Codex
  • Make
  • n8n
  • Zapier
  • Your own code
Get Started

Pick Your Way In

Let an AI assistant or your automation tool do the setup, or call the REST API from your own code.

1

Paste the setup prompt

2

Paste your API key

Get your API key
3

Get your results

See a sample result
Using Make, n8n or Zapier? Here is every field for the HTTP request

Use the HTTP request module or node your tool offers. You need three steps: send the list, wait, then read the results.

1. Send your list (HTTP request)

Method
POST
URL
https://api.datablist.com/v1/enrichments/tasks
Headers
X-API-Key = your API key
Content-Type = application/json
Body (JSON)
json
{
"enrichmentId": "impressum-scraper",
"uniqueId": "impressum-scraper-import-1",
"settings": {},
"inputs": [
{"inputId": "row-1", "data": {"websiteUrl": "https://www.brightwave-analytics.de"}},
{"inputId": "row-2", "data": {"websiteUrl": "https://www.northpeak-logistik.de"}},
{"inputId": "row-3", "data": {"websiteUrl": "https://junipervale.studio"}}
]
}
Keep
The @id from the response. That is your task ID.

2. Wait until it is done

Add a short wait or delay, then a GET request to https://api.datablist.com/v1/enrichments/tasks/TASK_ID with the same X-API-Key header. Repeat until status is completed.

3. Read the results

GET https://api.datablist.com/v1/enrichments/tasks/TASK_ID/results?limit=50. Map outputs to your columns. If nextCursor is not empty, call again with &cursor= plus that value.

Overview

At a Glance

German, Austrian and Swiss websites must publish an Impressum. The API finds that page and reads the legal details for you. No Datablist workspace, collection or import needed.

What you give it

What it costs

Use Cases

What Teams Build With It

Put Impressum Scraper wherever your data already flows.

Sales DACH

Find the decision maker

  1. Company website
  2. Read the Impressum
  3. Managing director by name

Get the Geschäftsführer of every company on your list, then pass the name and domain to an email finder.

Data and Compliance

Check company records

  1. Supplier or customer site
  2. Read the Impressum
  3. VAT and register number

Collect VAT and commercial register numbers to check suppliers, customers or marketplace sellers.

Lead Generation

Complete scraped lead lists

  1. Google Maps or directory list
  2. Read the Impressum
  3. Address, phone, email

Turn a list of local businesses into full records with legal name, address, phone and email.

Pricing

What Will It Cost You?

Pay per lookup with credits. API access starts on the Growth plan.

Calculator

How much will it cost you?

Tell us how many websites you need to scrape and we'll show you the cheapest way to get it done.

Required: API/MCP access and automation start on the Growth plan.

Recommended plan
…
Credits you'll have
…
Total this month
…
Get your API key

Same credits as the Datablist app View pricing

How credits work

1,000 credits = $1, so each credit costs a tenth of a cent. Each website costs 10 credits, even when some fields are not on the page. Every result returns creditsUsed, so you can track the real cost per row. Plan credits renew monthly and reset if unused. Top-up credits never expire.

For Developers

Build It Into Your Code

Everything you need to call the REST API directly: code, responses, endpoints, fields, authentication and limits.

datablist/impressum-scraper-api

Official examples: cURL, Python with Requests or async HTTPX, and TypeScript. Put your key in DATABLIST_API_KEY and run.

Open repository

Copy, Paste, Run

A complete script that creates a task, waits for it and prints every result. Replace YOUR_PERSONAL_API_KEY with your key.

# 1. Create the task (returns 202 Accepted and the task "@id")
curl --request POST 'https://api.datablist.com/v1/enrichments/tasks' \
--header 'X-API-Key: YOUR_PERSONAL_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"enrichmentId": "impressum-scraper",
"uniqueId": "impressum-scraper-import-1",
"settings": {},
"inputs": [
{"inputId": "row-1", "data": {"websiteUrl": "https://www.brightwave-analytics.de"}},
{"inputId": "row-2", "data": {"websiteUrl": "https://www.northpeak-logistik.de"}},
{"inputId": "row-3", "data": {"websiteUrl": "https://junipervale.studio"}}
]
}'
# 2. Poll every few seconds until status is completed, failed or stopped
curl 'https://api.datablist.com/v1/enrichments/tasks/TASK_ID' \
--header 'X-API-Key: YOUR_PERSONAL_API_KEY'
# 3. Read the results, then follow nextCursor until it is null
curl 'https://api.datablist.com/v1/enrichments/tasks/TASK_ID/results?limit=50' \
--header 'X-API-Key: YOUR_PERSONAL_API_KEY'

What the API Returns

One result per input, with your inputId, a status, the outputs and the credits used. Sample data.

GET /resultsjson
{
"taskId": "00000000000040008000000000000001",
"results": [
{
"inputId": "row-1",
"status": "success",
"outputs": {
"companyName": "Brightwave GmbH",
"firstName": "Maya",
"lastName": "Lindqvist",
"gender": "female",
"postalAddress": "Musterstraße 12, 10115 Berlin",
"emailAddress": "info@brightwave-analytics.de",
"phoneNumber": "+49 30 1234567",
"vatNumber": "DE123456789",
"registrationNumber": "HRB 123456",
"impressumUrl": "https://www.brightwave-analytics.de/impressum",
"agentConfidenceScore": 90
},
"creditsUsed": "10",
"error": null
}
],
"nextCursor": null
}

Endpoints and Fields

All paths are relative to https://api.datablist.com. Field definitions come from GET /v1/enrichments/impressum-scraper (docs updated Oct 19, 2026). Schema version: 2026-09-12.

View API schema (JSON) (opens in a new tab)

GET
/v1/enrichments/impressum-scraper
Read the schema, no key needed
POST
/v1/enrichments/tasks
Create a task
GET
/v1/enrichments/tasks/{taskId}
Poll status and progress
GET
/v1/enrichments/tasks/{taskId}/results
Read results, 1 to 100 per page
POST
/v1/enrichments/tasks/{taskId}/stop
Cancel a running task
GET
/v1/enrichments/tasks
Task history, newest first

Schema Reference

Send settings once per task and one data object per input. Results can include extra fields as the enrichment evolves, so keep unknown keys when you parse outputs.

Show all settings, inputs and outputs
Settings
Settings

No fields.

Inputs (data)
Inputs (data)
websiteUrlrequiredWebsiteText

URL of the website to visit

Outputs
Outputs
firstNameManaging Director First NameText

The first name of the Managing Director/Founder. Empty if not found.

lastNameManaging Director Last NameText

The last name of the Managing Director/Founder. Empty if not found.

genderManaging Director GenderText

The gender (male, female) of the Managing Director/Founder. Empty if not found.

companyNameCompany NameText

The name of the company, when available.

postalAddressPostal AddressText

The postal address for the company, when available.

emailAddressEmail AddressesText

Email addresses found on the impressum page.

phoneNumberPhone NumberText

The company phone number.

vatNumberVAT numberText

The company VAT number.

registrationNumberCompany Registration NumberText

The company identification number.

impressumUrlImpressum UrlText

The link to the impressum page.Format: uri

agentConfidenceScoreConfidence ScoreNumber

Confidence score for the results. Between 0 and 100. The higher, the better.

One Header, Clear Limits

Create a Personal API Key in your Datablist account and send it on every authenticated request.

Authentication

Send your key in the X-API-Key header. Datablist exchanges and renews access tokens for you.

  • Header: X-API-Key: YOUR_PERSONAL_API_KEY
  • Optional: manage tokens yourself with Authorization: Bearer from POST /v1/account/token
  • One or the other: sending both headers returns 400 AmbiguousCredentials
  • Server side only: keep keys out of URLs, browser code and logs

Limits

  • Inputs per task: 1 to 10,000
  • Size: 16 KiB per input, 10 MiB per request
  • Run time: up to 24 hours per task
  • Task creation: 10 requests per 60 seconds per account
  • Polling and results: 120 requests per 60 seconds per operation
  • Active tasks: about 20 at once per account
  • Retention: tasks and results are kept for 90 days
FAQ

Frequently Asked Questions

Everything you or your AI coding agent need to integrate the Impressum Scraper API: auth, request, polling, results, limits and retries.