German Lawyer Scraper (BRAK) - Email, Phone, beA SAFE-ID avatar

German Lawyer Scraper (BRAK) - Email, Phone, beA SAFE-ID

Pricing

$18.00 / 1,000 per register entries

Go to Apify Store
German Lawyer Scraper (BRAK) - Email, Phone, beA SAFE-ID

German Lawyer Scraper (BRAK) - Email, Phone, beA SAFE-ID

Export admitted German lawyers (Rechtsanwälte) and law-firm companies from the official BRAK register: phone, mobile, email, website, beA SAFE-ID, Kammer, Fachanwalt titles, admission date and branch offices. Whole chambers, cities or postcodes. $0.018 per entry, no start fee.

Pricing

$18.00 / 1,000 per register entries

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

Share

German Lawyer Scraper (BRAK) — Email, Phone, beA SAFE-ID

Export admitted German lawyers (Rechtsanwälte / Rechtsanwältinnen) and law-firm companies (Berufsausübungsgesellschaften) from the official Bundesweites Amtliches Anwaltsverzeichnis run by the Bundesrechtsanwaltskammer (BRAK) — with the phone, mobile, fax, email, website and beA SAFE-ID each lawyer registered with their chamber, plus Kammer, admission dates, Fachanwalt titles, branch offices and, for firms, their partners and managing organs.

Search a whole bar chamber (Berlin: 17,405 entries), a city, a postcode, a Fachanwalt title, a surname or a firm — and get one clean row per register entry, deduplicated by the register's own id.

Who uses this

  • Legal-tech SaaS (case management, beA tooling, dictation, billing) — prospect every Kanzlei in a region, segmented by size and Fachanwalt focus.
  • Legal publishers' sales teams — reach the Fachanwalt für Arbeitsrecht in Munich, or every newly admitted lawyer this year (admittedSince).
  • Litigation funders and legal-marketing agencies — build targeted lists of practising lawyers with a reachable contact.
  • Compliance / KYC — verify that a counterparty is an admitted lawyer and read their beA SAFE-ID and Kammer from the official register.

What one row is

One entry in the register. Three kinds of entry exist, and every row says which (recordType, isSyndikusRechtsanwalt):

EntryWhat the row holds
Lawyer in private practiceName, Berufsbezeichnung, Kanzlei, address, contacts, SAFE-ID, Kammer, dates, Fachanwalt titles, branches
Syndikusrechtsanwalt (in-house)The same — but firmName is the employer (e.g. Deutsche Telekom AG) and the contacts are the employer's work contacts
Berufsausübungsgesellschaft (company)Firm name, legal form, commercial/partnership register entry, seat, contacts, SAFE-ID, partners (Gesellschafter) and organs, branches

The register keeps one entry per admission: a lawyer who is both in private practice and employed in-house appears twice, with two different SAFE-IDs (verified in the tests). Both are returned; recordTypes lets you keep only one kind.

Contact fill — measured, and it depends on the chamber

Each Kammer records the contact details its lawyers communicate to it, and chambers differ sharply. Measured on 2026-09-22/23 over complete result sets (every entry, not a sample), plus the first 600 of Berlin:

FieldBonn (city, all 2,655)Zweibrücken chamber (all 1,431)Berlin chamber (600 entries, A–)
email83.6%87.4%86.7%
phone89.8%9.0%80.2%
phone or mobile–12.0%99.2%
mobile28.2%4.4%37.8%
fax60.1%5.2%68.3%
website19.2%33.8%53.7%
any of phone / mobile / email / website–88.7%99.5%
beA SAFE-ID100%100%100%
street / postcode / city100 / 100 / 100%100 / 99.3 / 99.3%100 / 99.2 / 99.2%
Kammer, admission date100%100%100 / 99.8%
Fachanwalt title(s)23.8%34.0%17.0%
branch offices10.6%7.1%8.2%

Email is the dependable channel: 83.6–87.4% across three different frames. Phone ranges from 9% (Zweibrücken publishes almost none — confirmed in the raw bytes: the Telefon label is present and empty on 149 of 162 sampled entries) to 90% (Bonn). If you need a specific channel, set requireContact — entries without it are skipped and not charged.

Every null above is genuinely absent in the register, not a parser gap: the test suite checks, over 82 real detail responses captured on the Apify platform, that every published phone, mobile, fax, email, website and SAFE-ID is emitted, and that nothing is emitted where the register shows nothing.

Input

FieldWhat it does
kammernBar chambers to export in full (28 incl. the BGH bar). Berlin 17,405 · Köln 15,519 · Zweibrücken 1,431 entries.
citiesTowns (Ort). The register matches the Kanzlei and branch-office towns, so a Leipzig firm with a Bonn branch appears under Bonn.
postcodesGerman postcodes (PLZ).
specializationsFachanwalt titles (all 25 the register offers).
lastName, firstName, firmName, street, professionalTitleText filters applied to every search. firmName also finds in-house lawyers by employer.
salutation, academicTitle, publicDefenderOnlyThe register's own filters (Herr/Frau, Dr./Prof., interest in Pflichtverteidigung).
recordTypesLAWYER / SYNDIKUS / COMPANY. Filtered on the result card before any detail is read.
requireContactDeliver only entries with any contact, an email, a phone or a website. Skipped entries are free.
admittedSinceOnly entries admitted on or after a date (YYYY-MM-DD) — newly admitted lawyers and new firms.
includeBranches, includePartners, includeOtherTabsBranch offices; Gesellschafter/Organe; Zustellungsbevollmächtigte, Abwickler, Vertretung. On by default; each costs one extra request only for entries that have one.
maxResultsCap on delivered (= charged) entries. Default 20.
maxConcurrencyParallel register sessions (1–8, default 4).
proxyConfigurationDefault: none — the register has no anti-bot measures.

The lists combine as a product: kammern: ["M"] × specializations: ["1","5"] = two searches (Arbeitsrecht in München, Familienrecht in München); a lawyer holding both titles is returned once.

Example — every Fachanwalt für Arbeitsrecht in Hamburg who publishes an email:

{ "kammern": ["HH"], "specializations": ["1"], "requireContact": "email", "maxResults": 2000 }

Output

FieldDescription
idThe beA SAFE-ID — the register's own unique id. Rows are deduplicated on it before charging.
recordTypeLAWYER or COMPANY.
fullNameName as the register prints it (with academic titles), or the firm name.
salutation, academicTitle, firstName, lastName, familyNameName parts. firstName/academicTitle are set only when the result card and the detail agree on the split — otherwise null, never guessed. familyName only where the register prints a separate Familienname.
professionalTitle, professionalTitlesBerufsbezeichnung, e.g. Rechtsanwältin, Rechtsanwalt (Syndikusrechtsanwalt), Avukat (Türkei), § 206 BRAO.
isSyndikusRechtsanwalt, isForeignLawyerIn-house lawyer; European / § 206 BRAO lawyer.
fachanwaltTitlesFachanwalt titles, e.g. ["Arbeitsrecht","Strafrecht"].
firmName, legalFormKanzlei name (Syndikus: employer); legal form for companies.
phone, mobile, faxExactly as published (0228-28629220), never reformatted.
email, emailRawemail only when it is a well-formed address; the published value is always in emailRaw (one entry publishes sabina .krispenz@basf.com — kept raw, never repaired).
websiteInternetadresse as published.
beaSafeIdThe besonderes elektronisches Anwaltspostfach SAFE-ID.
addressLines, addressExtra, street, postcode, city, countryKanzlei address, split; the raw lines are kept.
chamberKammerzugehörigkeit.
admissionDate(Iso), firstAdmissionDate(Iso)Datum der (ersten) Zulassung, as published and as YYYY-MM-DD.
publicDefenderInterestJa / Keine Angabe.
registeredSeat, commercialRegisterCompanies: seat / Hauptniederlassung and Handels- or Partnerschaftsregister entry.
partners, organsCompanies: Gesellschafter and Organe, {name, role, extra}.
branchCount, branchesEvery further Kanzlei / Zweigstelle / Zweigniederlassung with its own address, phone, mobile, fax, email, website.
deliveryAgents, liquidators, representativesZustellungsbevollmächtigte, Abwickler (practice being wound up), chamber-appointed Vertretung — each a person with address and contacts.
otherFieldsAny detail line this actor does not map, verbatim — nothing the register publishes is dropped.
contactChannelsHow many of phone / mobile / email / website are present (0–4).
cardText, searchQuery, source, sourceUrl, scrapedAtAudit trail.

A real row

From live run TBYr0lFFj02pJ2t9j ({"kammern":["B"],"maxResults":600}, 2026-09-23). A company entry is shown; three of its four branch offices are cut for length.

{
"id": "DE.BRAK.b63f3dd3-da0a-42ed-9441-0bd40dd962af.7f80",
"recordType": "COMPANY",
"fullName": "Anwaltskanzlei Heckmann Rechtsanwaltsgesellschaft mbH",
"professionalTitle": "Berufsausübungsgesellschaft",
"isSyndikusRechtsanwalt": false,
"firmName": "Anwaltskanzlei Heckmann Rechtsanwaltsgesellschaft mbH",
"legalForm": "Gesellschaft mit beschränkter Haftung",
"phone": "030-40504030",
"mobile": null,
"fax": "030-405040321",
"email": "ra@heckmann.net",
"website": "www.heckmann.net",
"beaSafeId": "DE.BRAK.b63f3dd3-da0a-42ed-9441-0bd40dd962af.7f80",
"street": "Kantstraße 22",
"postcode": "10623",
"city": "Berlin",
"country": "DE",
"chamber": "Berlin",
"admissionDate": "22.01.2026",
"admissionDateIso": "2026-01-22",
"registeredSeat": "Deutschland",
"commercialRegister": "Handelsregister Abteilung B - 281620 B - Berlin",
"partners": [{ "name": "Jan A. Heckmann", "role": "Rechtsanwalt", "extra": null }],
"organs": [{ "name": "Jan A. Heckmann", "role": "Rechtsanwalt", "extra": null }],
"branchCount": 4,
"branches": [
{ "type": "Zweigstelle", "name": "Anwaltskanzlei Heckmann Rechtsanwaltsgesellschaft mbH", "street": "Alter Markt 8",
"postcode": "18439", "city": "Stralsund", "country": "DE", "chamber": "Berlin",
"phone": "03831-4348130", "email": "ra@heckmann.net", "website": "www.heckmann.net", "beaSafeId": null }
],
"contactChannels": 3,
"source": "Bundesweites Amtliches Anwaltsverzeichnis (BRAK)",
"sourceUrl": "https://bravsearch.bea-brak.de/bravsearch/index.brak"
}

Completeness guarantees

The register only holds the first 100 rows of a result until a "load all" step runs, and then silently repeats rows 96–99 for every later page — a scraper that does not check this ships the same 4–6 people hundreds of times. This actor:

  • asserts that every page is the page it asked for (first row index = requested index), and retries on a fresh session if not;
  • asserts that every detail belongs to its card — surname, the card's "PLZ Ort" line and its Berufsbezeichnung must match. (Measured: when the register cannot serve a detail it returns the previous entry's dialog with HTTP 200. The name check alone would pass that for the two entries of one person; address + title catch it.);
  • deduplicates on the SAFE-ID before charging;
  • for any search it reads to the end, checks that every row index 0…total−1 was examined and fails the run loudly if not. Full reads of Bonn (2,655 / 2,655 unique SAFE-IDs) and the Zweibrücken chamber (1,431 / 1,431) passed with zero duplicates;
  • writes a RUN_SUMMARY with the register's own total per search, pages read, coverage, per-field fill, and three separate kinds of "nothing": searches with no hits, entries skipped by your filters (free), and entries unreachable after retries (free).

Pricing

$0.018 per delivered register entry. No start fee, no charge for skipped, duplicate or unreadable entries. A full Zweibrücken chamber (1,431 entries) costs $25.76; 600 Berlin entries cost $10.80. Set maxResults (or a run-level maximum charge) to cap spend.

Speed

About 5 entries per second with the default 4 sessions (600 Berlin entries in 112 s on the platform). A full large chamber (17,405 for Berlin) takes roughly an hour: raise maxConcurrency to 8 and the run timeout for whole-chamber exports.

Data limits

  • Contact fill is the chamber's, not ours — see the table. Zweibrücken publishes phone for ~9% of lawyers; email is the reliable channel there.
  • firstName is withheld (null) where the result card and the detail disagree on how to split a name — 1 of 1,382 person rows in the full Zweibrücken read, 0 of 560 in the Berlin run. fullName and lastName are still there.
  • The register publishes no language skills or Tätigkeitsschwerpunkte on this search surface, so neither is returned.
  • A lawyer with no Berufsbezeichnung line in the register (24 of 2,655 in Bonn — in-house lawyers with an employer but no title printed) comes back with professionalTitle: null; that is what the register shows.
  • The register can change while a long run is in progress; if its total changes between sessions the search is flagged and not claimed complete.

Source

Bundesweites Amtliches Anwaltsverzeichnis, https://bravsearch.bea-brak.de/bravsearch/index.brak (the search behind rechtsanwaltsregister.org), maintained by the Bundesrechtsanwaltskammer (BRAK).

Is this an official BRAK tool? No. This actor is independent and not affiliated with the BRAK or any Rechtsanwaltskammer. It reads only data that is publicly available in the official register.