How to Scrape Allabolag.se Sweden Company Leads in 2026
Extract Swedish company data from allabolag.se — org number, revenue, CEO, phone and email — without an API key. A guide to bulk firmographics and B2B leads.
If you need a list of Swedish companies in a specific industry — with revenue, headcount, and a CEO to contact — allabolag.se is the obvious source. It’s one of Sweden’s largest business-information portals, sourced from Dun & Bradstreet, and it covers virtually every registered aktiebolag, handelsbolag, and enskild firma in the country. The problem is that allabolag.se has no easy public API for bulk export. You can browse it one company at a time, but building a segment of 500 marketing agencies with contact details means either weeks of manual copy-paste or a scraper that reads the site’s own structured data. This guide covers the second path.
What’s worth extracting
Every company row from allabolag.se carries a consistent set of fields. The scraper returns 40+ per company, and they group into a few logical clusters:
- Corporate identity —
companyName,legalName, and theorgNumber(organisationsnummer), the unique Swedish registration number that is your only stable join key. - Address & geography —
address,zip,city,municipality(kommun),county(län), pluslat/lngcoordinates of the registered address. - Industry —
industry(bransch),industryCode, and thesniCode(SNI/NACE) that lets you filter by sector. - Financials —
revenue(omsättning),profit,employees, andaccountsYear. These come straight from the search results, so you get them on every row without extra requests. - B2B lead fields —
ceoNameandceoRole(the VD, or verkställande direktör), plusphone,mobile,email, andhomePagewhere the source publishes them. - Deep-enrichment fields — with
fetchDetailsenabled:boardMembers,companyForm(AB/HB/EF),fskatt(F-skatt status),momsregistrerad(VAT),shareCapital, registration and foundation dates,parentCompany, and estimated turnover.
For most lead-gen work, the identity plus financial plus CEO fields are enough. Turn on detail enrichment when you’re doing KYC or need board composition.
How the source works
allabolag.se is a search-driven site. You type a bransch, keyword, or company name into the search box and it returns paginated results, 25 companies per page. The scraper mirrors this exactly: you give it a query string — the same text you’d type on the site — and it walks every page of the result set, de-duplicating by org number as it goes.
A minimal run looks like this:
{
"query": "marketing",
"maxResults": 300,
"sort": "revenueDesc"
}
That pulls up to 300 marketing companies, biggest first by revenue. The sort field accepts relevance, revenueDesc, revenueAsc, numEmployeesDesc, and numEmployeesAsc — sorting server-side means you can grab the top companies in a sector without pulling the whole long tail.
If you’ve already set precise county and industry filters on the site itself, you can copy the resulting search URL and paste it into the searchUrls array instead. That’s the escape hatch for filter combinations the plain query field doesn’t express.
The important technical detail: the scraper reads the site’s own structured data over plain HTTP. There’s no headless browser, no JavaScript execution, and no captcha to solve. That’s what keeps it fast and cheap — a datacenter proxy is enough, and the default maxConcurrency of 3 runs several searches in parallel.
▶ Run the Allabolag Scraper on Apify — one run turns a bransch like
restauranginto a de-duped list of Swedish companies with org number, revenue, CEO, and contact fields. No login, no API key. Export to CSV, Excel, or JSON.
The access reality
allabolag.se doesn’t sit behind an aggressive anti-bot wall the way a travel or retail site does — the friction here is different, and it’s worth understanding before you build your own pipeline.
- No official bulk API. The site is designed for human browsing. There’s no documented endpoint you can hit for a whole industry, so any bulk approach means reading the search-result structure and handling pagination yourself.
- Pagination is the real work. Results come 25 to a page. A single bransch can span dozens of pages, so you need reliable paging logic that stops at your
maxResultsand doesn’t double-count companies that appear across pages. The scraper de-dupes byorgNumberto handle this. - Field coverage varies by source, not by scraper. This is the honest part. The scraper returns exactly what allabolag.se publishes — it never invents data. Per the README’s own coverage notes: CEO name and headline financials (revenue/profit/employees) are present for roughly 97% of search results, phone for about 57%, and email for about 28%. If a company hasn’t published an email, no tool can conjure one.
- Detail enrichment costs requests.
fetchDetailsopens each company’s profile page to pull board members, VAT status, and share capital. It’s richer but slower and more expensive per row, because it’s one extra fetch per company. Leave it off for pure list-building; turn it on for KYC.
Example output
A single company record with fetchDetails: true looks like this:
{
"companyName": "iGoMoon AB",
"orgNumber": "5568995681",
"status": "ACTIVE",
"companyForm": "Aktiebolag",
"industry": "Datautveckling, systemutveckling, programutveckling",
"sniCode": "62100 Dataprogrammering",
"address": "Birger Jarlsgatan 57A",
"city": "Stockholm",
"county": "Stockholms Län",
"phone": "010-4101100",
"email": "[email protected]",
"homePage": "https://www.igomoon.com/",
"ceoName": "Olov Mattias Grönborg",
"revenue": "8388",
"profit": "2",
"currency": "SEK",
"employees": "8",
"shareCapital": "62",
"momsregistrerad": "true",
"scrapedAt": "2026-07-06T12:00:00.000Z"
}
Note the revenue value: 8388. That’s 8,388,000 SEK, not 8,388.
Use cases
- Sweden B2B lead generation — build a targeted list of companies in a bransch, complete with CEO name, phone, email, and website, ready to import into a CRM.
- Sales prospecting — segment by revenue, employee count, kommun, or län; sort biggest-first and prioritize the accounts worth chasing.
- Market and financial research — pull revenue, profit, and employee bands across a whole industry for TAM sizing and benchmarking.
- Competitor analysis — retrieve every company in a category and compare financials, locations, and headcount side by side.
- KYC and due diligence — verify a company by organisationsnummer, check F-skatt and VAT registration status, and read board composition and share capital.
- CRM enrichment and dedup — match your existing records against the Swedish registry using the org number as the join key.
Cost and effort: build vs. managed
You could build this yourself. It’s not the hardest scraping target — no browser required — but the effort adds up:
- Building from scratch — a day or two to reverse-engineer the structured-data format and write pagination logic, plus ongoing maintenance every time allabolag.se changes its markup. You’ll also need a datacenter proxy pool to avoid rate limiting on large runs, and code to normalize the kSEK financial values and de-dupe by org number.
- Using the managed actor — start running in a few minutes and pay per result. The pricing is pay-per-result: a fraction of a cent per company returned, plus a negligible per-run start fee. For a segment of 500 companies, that’s a few cents of data, not a proxy subscription.
The real saving is maintenance. A scraper that reads a specific site’s structured data breaks when that structure changes, and keeping it green is recurring work. A managed actor puts that burden on someone who’s already carrying it.
Common pitfalls
A few things specific to allabolag.se that will bite you if you don’t plan for them:
- Financials are in thousands of SEK.
revenue,profit, andshareCapitalare all in kSEK, exactly as the site publishes them. Arevenueof8388is 8.388 million SEK. Multiply by 1,000 before you put these in a dashboard, or your numbers will be off by three orders of magnitude. - Coverage gaps are real, not bugs. Only ~28% of companies publish an email. Don’t treat a missing
emailfield as a scraper failure — it’s a source limitation. Plan your outreach around the fields that are actually populated (CEO name and financials are near-universal). - Org number is the only stable ID. Company names and addresses change subtly across regions and over time. Always join and dedup on
orgNumber, never on name. - GDPR applies to the personal fields. CEO names, board members, and contact details are personal data under GDPR. You’re collecting publicly available registry information, but you’re responsible for handling it lawfully — especially for outreach.
- Detail enrichment multiplies cost and time. Because
fetchDetailsfires one extra request per company, a 500-company run with detail on is materially slower and pricier than the same run without it. Scope it to the rows that actually need board and VAT data.
Wrapping up
allabolag.se is the cleanest single source for Swedish firmographics and B2B contacts, but its lack of a bulk API means you either grind it manually or read its structured data with a scraper. If you need a one-off list, building from scratch is a reasonable exercise. If you want a repeatable, de-duped feed of Swedish companies by industry — with financials and CEO contacts — a managed actor is the faster route.
▶ Open the Allabolag Scraper on Apify — one run yields a de-duped Sweden company list with org number, revenue, CEO, phone, and email; no login or API key. Export to JSON, CSV, or Excel, and start on Apify’s free monthly credit.
Related guides
EU Company Registry Data Export — Germany, France, Netherlands
How to extract company-registry records from Handelsregister, INPI, and KvK in a unified schema — for KYC, B2B lead generation, and compliance workflows.
How to Scrape the Australia Business Register (ABN/ABR)
Bulk-export Australian business names, ABNs, status and registration dates from the official data.gov.au CKAN register — no API key, no browser, no captcha.
How to Scrape Bien'ici France Real Estate Data in 2026
Extract French property listings from Bien'ici — prices, €/m², DPE energy class, GPS and agency data — from its own JSON search endpoint. No API key.