Proff.no Scraper
Pricing
from $2.50 / 1,000 results
Proff.no Scraper
[💰 $2.50 / 1K] Extract Norwegian company data from proff.no — names, organisation numbers, contacts, addresses, industries, and headline financials. Search by keyword and county, or by proff.no search URLs.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
0
Monthly active users
19 days ago
Last modified
Categories
Share
Pull Norwegian company records from proff.no at scale — 9-digit organisation numbers, credit ratings, every industry category a company is listed under, revenue and operating profit with the currency they were filed in, direct phone numbers and named decision-makers, emails and websites where proff.no holds them, visitor and postal addresses with map coordinates, and employee counts, all in one clean row per company. Built for Norwegian B2B sales teams, market researchers, credit and risk analysts, and recruiters who need structured business intelligence without copying it out of proff.no one company page at a time.
Why This Scraper?
- 9-digit organisation number (orgnr) on every record — the unique Brønnøysundregistrene identifier that lets you dedupe, enrich, and join against any other Norwegian business dataset.
- Credit rating and full accounts on the same row — proff.no's own rating (
A++,A+, and down the scale) sits next to revenue, operating profit, headcount and accounts year, so credit and risk teams triage a shortlist without opening a single profile. proff.no rates roughly 1 company in 12 on a broad search, and about 4 in 10 of those that keep a proff.no directory profile. - Filed figures carry their own currency — revenue and operating profit in thousands, the accounts year (e.g.
2025), and acurrencycode on every figure. Roughly 99% of Norwegian companies file in NOK, but the biggest often do not: Equinor Asa comes back asrevenue: 67956000withcurrency: "USD", so you never multiply a dollar figure by a kroner rate. - Every industry a company is listed under, not just its main one — proff.no's own Norwegian bransje categories (
Entreprenører,Serveringssteder,Tannhelse,Shipping og sjøtransport), up to 7 per company, plus a singlecurrentIndustryfor one-column sector filtering. These are proff.no's plain-Norwegian directory categories, not official NACE codes, which makes them far easier to search and group than a numeric classification. - Contactable-only mode, so you never pay for blank columns — switch on Only companies with contact details and every row you collect has an email address or a website: a nationwide construction search returned 74 of 74 rows with contacts, 72 of them with an email. Leave it off and every row still carries a
hasContactDetailstrue/false flag, a direct phone number on around two thirds of companies, and a named decision-maker with their role on 93%. - All of Norway across 16 regions — filter a keyword search to any one of the 15 post-2024 fylker (Oslo, Akershus, Vestland, Rogaland, Trøndelag, Innlandet, Agder, Østfold, Buskerud, Vestfold, Nordland, Møre og Romsdal, Telemark, Troms, Finnmark) plus Svalbard.
- Two addresses plus map coordinates — separate visitor and postal address (street, postal code, city), the county, municipality and landsdel, and WGS84 latitude and longitude on 96% of companies, so a result set drops straight onto a map or into a territory plan.
- Up to 35 fields per company on one flat row — identity and branch relationships, contacts, two addresses with coordinates, financials with their currency, credit rating, industries, named contact person, logo URL, and a proff.no profile link that actually resolves, with empty fields stripped so you never get a wall of nulls.
- Three ways to target, and no duplicate rows — paste proff.no search-result URLs, search by keyword or company name, or narrow to a single fylke. proff.no lists some companies once per trade name; those repeats are collapsed before you are billed, while genuine branch offices stay as their own rows. Zero-result searches return a clear message rather than failing silently.
Use Cases
Lead Generation
- Build prospect lists filtered down to companies that actually have an email or website on file
- Narrow a keyword search to a single fylke to canvass a sales territory
- Attach the named contact person to each account before outreach
- Score leads by revenue, operating profit, or employee count
Credit & Risk Analysis
- Screen every rated company in a result set by proff.no credit rating in one run
- Check registration status where proff.no reports one, and spot units flagged with dated status remarks
- Prioritise low-risk counterparties before extending terms
- Pull organisation numbers to order full credit reports downstream
Market Research
- Map how many companies operate in an industry across Norway's 16 regions
- Compare revenue and employee distributions between fylker
- Size a market by counting active companies in a region
- Track company status changes within a sector over time
Recruitment
- Find employers by industry and region with headcount data
- Build candidate-sourcing target lists of companies in a fylke
- Identify growing firms by revenue and employee figures
- Reach decision-makers via the named contact person and direct phone
Competitive Intelligence
- Monitor competitors and their registered financials and credit ratings
- Map the full set of companies in a niche by industry category
- Benchmark a firm's revenue and headcount against its regional peers
- Track new entrants in a target sector and region
Getting Started
Search by Keyword
The simplest way to start — a single business or industry keyword:
{"searchTerm": "restaurant","maxResults": 100}
Narrow to a Region
Limit a keyword search to a single Norwegian county (fylke):
{"searchTerm": "bygg","county": "Vestland","maxResults": 50}
Paste a Search URL
Reuse the filters from any proff.no search-result page — right down to a single municipality — just paste the URL:
{"startUrls": ["https://www.proff.no/bransjesøk?q=frisør&county=Oslo","https://www.proff.no/bransjesøk?q=restaurant&county=Vestland&municipality=Bergen"],"maxResults": 200}
Contactable Companies Only
Skip the companies proff.no has no email or website for, so you only collect rows you can act on:
{"searchTerm": "bygg","onlyWithContactDetails": true,"maxResults": 100}
Collect Everything for a Search
Set maxResults to 0 to pull the full result set (a built-in 100,000 safety limit applies):
{"searchTerm": "Equinor","county": "Rogaland","maxResults": 0}
Input Reference
What to Scrape
Provide search URLs, or type a search term — you only need one of the two.
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | array | [] | Paste proff.no search-result URLs. The search words, the region, county, municipality and postal-town filters, the sort order and the page you're on are all carried over automatically. If a link contains anything proff.no's search can't apply, the run says so instead of quietly ignoring it. Leave empty if you'd rather build a search using the fields below. |
searchTerm | string | "restaurant" | A business or industry keyword, or a company name to search for (e.g. restaurant, bygg, Equinor). Leave empty if you're using Search URLs above. |
Search Filters
These filters apply only to the Search Term. A pasted Search URL keeps the region, county, municipality and postal-town filters written into the link itself.
| Parameter | Type | Default | Description |
|---|---|---|---|
county | select | null | Limit results to one Norwegian county (fylke): Oslo, Akershus, Vestland, Rogaland, Trøndelag, Innlandet, Agder, Østfold, Buskerud, Vestfold, Nordland, Møre og Romsdal, Telemark, Troms, Finnmark, or Svalbard. Leave blank to search all of Norway. |
onlyWithContactDetails | boolean | false | Return only companies that have an email address or a website listed on proff.no. Most Norwegian companies are registered without either, so those columns come back blank; turn this on when you need contactable companies and don't want to pay for rows you can't use. |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Maximum number of companies to return across all searches and URLs. Set to 0 to collect as many as are available (a built-in safety limit of 100,000 applies). Tip: start with 10-50 to test, then increase. |
sortBy | select | relevance | Order results by relevance (proff.no's own ranking), revenueDesc, revenueAsc, numEmployeesDesc, or numEmployeesAsc. Sorting by revenue or employees is the quickest way to pull the largest (or smallest) companies in a market when you're only collecting the first few hundred. |
Output
Each company is returned as one flat record. Empty fields are omitted to keep results clean.
{"name": "Grande Entreprenør AS","legalName": "Grande Entreprenør AS","orgNumber": "912051625","url": "https://www.proff.no/selskap/grande-entrepren%C3%B8r-as/verdal/entrepren%C3%B8rer/IF30FJD00C9","description": "Grande Entreprenør utvikler prosjekter, og kan gjennomføre totalenterpriser med egne fagfolk innen de fleste fag.","industries": ["Entreprenører", "Bygg- og anleggsleverandører"],"currentIndustry": "Entreprenører","revenue": 591417,"profit": 38906,"currency": "NOK","accountsLastUpdated": "2025","employees": 154,"creditRating": "A++","mainOffice": true,"phone": "41666600","email": "firmapost@grande-entreprenor.no","homePage": "https://grande-entreprenor.no/","hasContactDetails": true,"contactPerson": {"name": "Morten Hynne","role": "Daglig leder"},"visitorAddress": {"addressLine": "Neptunvegen 1","zipCode": "7652","postPlace": "Verdal"},"postalAddress": {"addressLine": "Neptunvegen 1","zipCode": "7652","postPlace": "Verdal"},"location": {"countryPart": "Midt-Norge","county": "Trøndelag","municipality": "Verdal","coordinates": [{"coordinateSystem": "EPSG:4326","xcoordinate": 11.452892156,"ycoordinate": 63.785402343}]},"logo": "https://www.proff.no/images/6969199","companyId": "IF30FJD00C9"}
Most Norwegian companies are registered without an email or a website. Those come back with hasContactDetails set to false and the contact columns simply absent, so you can filter or count them instead of guessing why a cell is blank. Note the accounts currency on this one:
{"name": "Equinor Asa","orgNumber": "923609016","url": "https://www.proff.no/selskap/equinor-asa/stavanger/olje-og-gass/IF9W5A00VFQ","currentIndustry": "Olje og gass","revenue": 67956000,"profit": 5563000,"currency": "USD","accountsLastUpdated": "2025","employees": 21239,"phone": "51990000","hasContactDetails": false,"location": { "county": "Rogaland", "municipality": "Stavanger" }}
Larger companies are listed once per office. A branch office comes back as its own row with its own organisation number, and points at the company it belongs to:
{"name": "WK Entreprenør AS avd Oslo","orgNumber": "987355662","parentOrgNumber": "980535053","parentName": "Wk Entreprenør AS","mainOffice": false,"businessUnitId": "987355662","location": { "county": "Oslo", "municipality": "Oslo" }}
Company Identity
| Field | Type | Description |
|---|---|---|
name | string | Company display name |
legalName | string | Registered legal name |
orgNumber | string | This listing's own Norwegian organisation number (organisasjonsnummer, 9 digits). For a branch office this is the branch's own number, not the parent company's, so each office stays a separate row when you join or de-duplicate on it |
parentOrgNumber | string | Present on branch offices only: the organisation number of the parent company the branch belongs to |
parentName | string | Present on branch offices only: the registered name of the parent company |
url | string | Link to the company's proff.no profile page |
status | string | Registration status as reported by proff.no. Search results cover currently registered companies, so this is normally absent; it appears only when proff.no flags the unit (e.g. dissolved, bankrupt) |
statusRemarks | array | Dated status remarks, on the rare rows where proff.no flags one |
businessUnitType | string | Business-unit type (main unit / sub-unit), on the rows where proff.no supplies one |
mainOffice | boolean | true when this listing is the registered company itself (hovedkontor), false when it is one of its branch offices |
description | string | Short company description |
Contact Details
proff.no holds an email or website only for companies that maintain a directory profile with them; for everyone else the registry simply has nothing on file. hasContactDetails tells you which is which on every row, and the onlyWithContactDetails input collects just the first group.
| Field | Type | Description |
|---|---|---|
hasContactDetails | boolean | On every row. true when proff.no lists an email or a website for the company, false when it has neither on file |
phone | string | Primary phone number, on roughly two thirds of companies |
email | string | Contact email, on companies with a proff.no directory profile |
homePage | string | Company website, on companies with a proff.no directory profile |
contactPerson | object | Named contact person as proff.no lists them, with exactly two fields: name and role (e.g. Daglig leder). Present on around 93% of companies. Changed: this object previously also carried the person's date of birth and a proff.no person identifier. Both are personal data with no business use, so they are no longer collected. If you were reading either one, that field is now absent |
phone2 | string | Secondary phone number, rarely registered |
mobile | string | Mobile number, rarely registered |
fax | string | Fax number, rarely registered |
Address & Location
| Field | Type | Description |
|---|---|---|
visitorAddress | object | Visiting address: addressLine, boxAddressLine, zipCode, postPlace |
postalAddress | object | Postal address, same shape as the visiting address |
location | object | county (fylke), municipality (kommune), countryPart (landsdel), and coordinates with WGS84 longitude (xcoordinate) and latitude (ycoordinate) |
Financials & Credit
| Field | Type | Description |
|---|---|---|
revenue | number | Latest reported revenue, in thousands of the currency named in currency |
profit | number | Latest operating profit, in the same units as revenue |
currency | string | The currency the accounts were filed in. NOK for around 99% of companies; USD, EUR or DKK for internationally reporting groups such as Equinor and the offshore and shipping companies |
accountsLastUpdated | string | Accounts year the figures cover (e.g. 2025) |
employees | number / string | Employee count, either an exact number or a band such as 1 - 4 for the smallest companies |
creditRating | string | proff.no credit rating (e.g. A+), where available |
Industry & Other
| Field | Type | Description |
|---|---|---|
industries | array | Every proff.no industry category (bransje) the company is listed under, up to 7. These are proff.no's own directory categories, not official NACE codes |
currentIndustry | string | Primary current industry, by name |
certificates | array | Certifications, on the rare rows where proff.no lists any |
logo | string | Link to the company logo image |
companyId | string | proff.no internal company identifier |
businessUnitId | string | Branch offices only: the branch's own organisation number, the same value orgNumber carries on that row |
fromUrl | string | On pasted-URL runs only: the Search URL this record came from, so you can tell which link produced which rows |
Tips for Best Results
- Start with
maxResultsat 10-50 to preview the data, then raise it once the search looks right. Set it to0to collect every available company for a search; for a broad keyword that can be a very large dataset, so confirm your filters first. - A keyword in
searchTermruns the broadest industry-and-name match — try a sector word likebyggorrestaurantrather than an exact company name for the widest coverage. - Power-user tip: narrow a search on proff.no down to a single municipality or postal town, then copy the page URL straight into
startUrls— the region, county, municipality, postal-town and sort settings all come across, so you never have to rebuild them here. - Shard a large industry by region — run the same
searchTermonce per fylke (county) to break a huge sector into clean, regional batches you can process and store separately. - Turn on Only companies with contact details when you need an outreach list: every row you collect will then have an email or a website. It works best on broad, nationwide searches. A tightly filtered search can legitimately come back empty, and the run tells you exactly how many companies it checked when that happens.
revenueandprofitare reported in thousands, so multiply by 1,000 for the full figure. Readcurrencyfirst: about 1 in 100 companies files in USD, EUR or DKK instead of NOK, and those are usually the largest names in a result set, so a blanket "kroner" assumption misreads them by an order of magnitude.- Use
creditRatingto pre-screen before outreach or underwriting, but read a missing rating as "proff.no doesn't rate this one" rather than as a warning sign: only about 1 company in 12 on a broad search carries a rating at all.
Pricing
From $2.50 per 1,000 results — pay only for the company records you get, with the price dropping as your Apify subscription tier goes up.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.30 | $0.28 | $0.27 | $0.25 |
| 1,000 | $3.00 | $2.80 | $2.65 | $2.50 |
| 10,000 | $30.00 | $28.00 | $26.50 | $25.00 |
| 100,000 | $300.00 | $280.00 | $265.00 | $250.00 |
Bronze, Silver and Gold are Apify's loyalty discount tiers — Gold pays the lowest rate. These tier rates take effect on 6 September 2026; until then every run is billed at the current flat $2.50 per 1,000 results.
One result is one company record. No compute charges — you only pay per result returned. Apify platform fees are additional and depend on your plan.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom workflows on run completion
- Apify API — Full programmatic access
Legal & Ethical Use
This actor collects publicly available business-information data from proff.no for legitimate purposes such as market research, lead generation, credit and risk analysis, recruitment, and due diligence. Records are company records: the only detail about a private individual in a row is the contact person's name and their role at the company, and no date of birth or personal identifier is collected. You are responsible for using the data in compliance with proff.no's terms of service, applicable data-protection laws (including the GDPR), and any restrictions on the use of personal data. Do not use the data for spam, harassment, or any unlawful purpose. Always respect the rights of the individuals and companies whose data you collect.