German Lawyers Scraper (BRAK / BRAV Official Register) avatar

German Lawyers Scraper (BRAK / BRAV Official Register)

Pricing

$4.00 / 1,000 lawyer records

Go to Apify Store
German Lawyers Scraper (BRAK / BRAV Official Register)

German Lawyers Scraper (BRAK / BRAV Official Register)

Scrape the official German lawyer register (BRAK / BRAV public search at bravsearch.bea-brak.de) into structured JSON. Public search only — no login, no Anwalt.de. Pay only for unique lawyers delivered. Honest ~100-hit soft cap; narrow filters required.

Pricing

$4.00 / 1,000 lawyer records

Rating

0.0

(0)

Developer

Elisha

Elisha

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

Categories

Share

German Lawyers Scraper (BRAK / BRAV Official Register)

Turn the official German lawyer register (BRAK / BRAV) into clean, structured JSON. Public search only — no login, no Anwalt.de, pay only for the lawyers you get.

Germany’s Bundesrechtsanwaltskammer publishes a nationwide official directory of admitted lawyers. This Actor reads the public BRAV search at bravsearch.bea-brak.de the same way a human researcher would: narrow filters (city, chamber, Fachanwalt, name), list cards, optional detail fields (contacts, beA SAFE-ID, specializations). You get one consistent dataset row per lawyer.

Important soft cap: the public UI effectively exposes about ~100 browsable hits per search query. Broad queries (e.g. “all Berlin”) will not dump the full register. Use Fachanwalt + city/PLZ/chamber and/or name shards (lastName) — or the multi-queries input — to cover a niche honestly.


Who it's for

  • Legal-tech and referral marketplaces. Chamber-verified lawyer rows (name, Kanzlei, Fachanwalt, city, public contacts) from the official register.
  • Law-firm marketing / SEO agencies. Build city × specialty lists for content targeting and compliant outreach planning (you remain responsible under GDPR / UWG).
  • Insurance, claims, and panel-counsel builders. Filter by Fachanwalt + Kammer for panel construction.
  • Compliance / KYB enrichment. “Is this person admitted?” style checks against the canonical public source.

What you get

  • ✅ Official BRAK / BRAV source only — not a commercial directory scrape. Anwalt.de is out of scope.
  • ✅ Structured lawyer rows: name, title, address, chamber (Kammer), admission date (when shown), Fachanwalt specializations, Pflichtverteidiger flag, public phone / mobile / fax / email / website, beA SAFE-ID when published on the detail view.
  • ✅ Narrow filters that match the real UI: city, PLZ prefix, chamber, Fachanwalt, name, office name, Pflichtverteidiger-only.
  • ✅ Optional multi-shard queries so you can cover a large niche without pretending one query returns everything.
  • ✅ Optional detail fetch per card (Kammer, contacts, beA, specializations).
  • ✅ Empty searches, failures and duplicates are free. You pay only for unique lawyers delivered.
  • ✅ HTTP / PrimeFaces AJAX client — no browser farm required for MVP; polite delays by default.
  • ✅ Honest about the ~100-hit soft cap — warnings in the run log when the register reports more hits than can be browsed.
  • ✅ Export as JSON, CSV, Excel, or via API, webhooks, Make, n8n or Zapier.

How to use

  1. Click Try for free (prefill: city=Berlin, fachanwalt=Arbeitsrecht, maxResults=25, includeDetails=true).
  2. Set at least one narrowing filter, for example:
    • City Berlin + Fachanwalt Arbeitsrecht
    • Chamber Berlin (B) + Pflichtverteidiger only
    • City + lastName letter shards (A, B, C, …) via queries
  3. Leave Include details on if you need email / phone / beA / specializations.
  4. Set Max results ≤ 100 (default 100).
  5. Click Start and download your dataset.

Why did I only get 100 rows when the register says thousands? That is a limitation of the public search UI (~100 browsable hits per query). Narrow the query or split into shards — see FAQ.

Input fields

FieldWhat it doesDefault
cityOrt filterempty
postalCodePrefixPLZ prefixempty
chamberRechtsanwaltskammer code (e.g. B = Berlin)empty
fachanwaltFachanwalt specialization labelempty
lastName / firstNameName filters / shardingempty
officeNameKanzlei name filterempty
pflichtverteidigerOnlyOnly lawyers marked Pflichtverteidigerfalse
includeDetailsFetch detail dialog fieldstrue
maxResultsCap per run/query (max 100)100
queriesArray of shard filter objects (optional)[]
requestDelayMs / maxConcurrencyPoliteness (keep concurrency at 1)1000 / 1
proxyConfigurationOptional Apify datacenter proxyoff

At least one narrowing field (or a non-empty queries list) is required.

Sample input

{
"city": "Berlin",
"chamber": "B",
"fachanwalt": "Arbeitsrecht",
"includeDetails": true,
"maxResults": 100,
"requestDelayMs": 1000
}

Sample multi-shard input

{
"includeDetails": true,
"maxResults": 100,
"queries": [
{ "city": "Berlin", "fachanwalt": "Arbeitsrecht", "lastName": "A" },
{ "city": "Berlin", "fachanwalt": "Arbeitsrecht", "lastName": "B" },
{ "city": "Berlin", "fachanwalt": "Arbeitsrecht", "lastName": "C" }
]
}

Sample output

One dataset item per lawyer (illustrative shape):

{
"fullName": "Aalderks, Dirk Johann Dr. jur.",
"title": "Rechtsanwalt",
"street": "Beispielstraße 1",
"postalCode": "10247",
"city": "Berlin",
"country": "DE",
"chamber": "Rechtsanwaltskammer Berlin",
"chamberCode": "B",
"admissionDate": "2001-05-14",
"specializations": ["Arbeitsrecht"],
"pflichtverteidiger": false,
"phone": "+49 30 123456",
"email": "kanzlei@example.de",
"website": "https://www.example-kanzlei.de",
"beaSafeId": "DE.JUSTIZ.…",
"source": "BRAK",
"sourceUrl": "https://bravsearch.bea-brak.de/bravsearch/",
"detailFetched": true,
"lawyerKey": "a1b2c3d4e5f60718293a4b5c6d7e8f9012345678",
"scrapedAt": "2026-10-05T18:58:00Z"
}

Dataset views: Overview (name, title, city, chamber, specializations, email, phone, website) and Full.


Pricing: pay per event

$4.00 per 1,000 lawyers ($0.004 per lawyer delivered to your dataset).

You run…Lawyers chargedYou pay
Berlin × Arbeitsrecht demo, 25 details25~$0.10
One niche shard, 100 lawyers100~$0.40
10 shards × 100 (deduped ≈ 900)900~$3.60
1,000 unique lawyers1,000$4.00

Free: empty searches, failed or blocked queries, duplicates within a run. No extra per-run fee from us when Console allows a zero/omitted start charge (standard Apify platform rules still apply). Set a maximum cost per run in Apify; the Actor stops cleanly when it is reached.


FAQ

Do I need a BRAK account or login? No. The Actor uses only the public BRAV search (Einsichtnahme without registration).

Does it scrape Anwalt.de? No. Anwalt.de is explicitly out of scope. Official BRAK / BRAV register only.

Why only ~100 results? The public PrimeFaces results grid effectively caps browsable hits around 100 per query, even when “Anzahl gefundener Einträge” is higher. Narrow filters or use queries / lastName shards. The run summary warns when the register reported more hits than were returned.

Can I download every lawyer in Germany in one run? Not via a single broad query. Plan sharded runs (specialty × region × name letters). That is by design of the public UI, not an artificial Actor limit we invented to upsell.

Are emails and phones included? Only when they appear on the public detail view, and only if includeDetails=true. You are the controller of any further use — see Responsible use.

Do you bypass CAPTCHAs or spoof browsers? No. Public pages only, honest User-Agent, polite delays. If the register starts challenging datacenter traffic, runs fail cleanly and those failures are free.

Is this affiliated with BRAK? No. Independent tool — see disclaimer below.


Responsible use / UWG / GDPR

  • Buyers are controllers. Output includes professional personal data (names, sometimes emails, phones, beA SAFE-IDs) from a public register. If you store or further process it, you must have a lawful basis under the GDPR (and respect Swiss FADP where relevant). This Actor does not supply that basis.
  • No spam / DE UWG. Do not use the dataset for unlawful unsolicited advertising or cold email/phone campaigns to lawyers. German UWG rules on cold outreach are strict; “I bought a lead list” is not a defence.
  • Public register only. The Actor requests only publicly available BRAV search and detail fragments. It does not log in, solve CAPTCHAs, fingerprint-spoof, or access non-public beA messaging content.
  • Polite use. Default ~1 s delay between requests, concurrency 1, backoff on errors, automatic stop on blocks. Do not schedule aggressive sub-hourly hammering of the same filters.
  • No non-public data. If a field is not shown to an anonymous public user, it will not appear in the dataset.

Disclaimer

This Actor is built and maintained by Frontiersman (independent community publisher). It is not affiliated with, endorsed by, or sponsored by the Bundesrechtsanwaltskammer (BRAK), BRAV, beA, or any Rechtsanwaltskammer. “BRAK”, “BRAV”, “Anwaltsverzeichnis” and related marks are used only to describe compatibility with the public register. All trademarks belong to their owners.

Rights holders with concerns can contact us via the Apify Issues tab; we respond within 12 hours on business days.


Roadmap

Planned, subject to demand. Independent community Actor — not a BRAK product.

  • 🔜 Helper presets for common Fachanwalt × city packs.
  • 🔜 Better guided sharding wizard when register-reported hits ≫ 100.
  • 🔜 Optional list-only cheaper event (if demand appears).
  • ❌ Anwalt.de support is not on the roadmap while anti-bot bypass would be required.

Missing a field? Open an issue. We read every one.


Actor README · 2026-10-05 · PPE lock $4.00 / 1k lawyers · Softgarden Actor #1 unchanged · local build only (no Store publish).