# Hitta.se Scraper – Swedish Business Leads, Emails & Org Numbers (`haketa/hitta-se-business-scraper`) Actor

Extract Swedish business leads from Hitta.se by industry and city: company name, phone, email, website, address, GPS, categories, reviews and opening hours — plus firmographics like organization number, revenue, employees and founding date. Export to Excel, CSV or JSON.

- **URL**: https://apify.com/haketa/hitta-se-business-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Lead generation, Business
- **Features:** Limited permissions
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Hitta.se Scraper — Swedish Business Leads, Emails, Org Numbers & Revenue 🇸🇪🏢

> **Turn [Hitta.se](https://www.hitta.se) — Sweden's leading business directory and company registry — into high-intent B2B lead lists and enriched firmographic datasets.** This **Hitta.se scraper** extracts verified Swedish enterprises across any industry and city, capturing **direct phone numbers, email addresses, websites, physical street addresses, WGS84 GPS coordinates, categories, customer review ratings, and comprehensive corporate firmographics: Swedish organization number (*organisationsnummer*), registered legal name, legal company form (*bolagsform*), employee counts, annual revenue in kSEK, and founding year**. No login, no coding, and no captcha.

Export to **JSON, CSV, Excel, or API** — or sync directly into HubSpot, Salesforce, Airtable, PostgreSQL, BigQuery, Make, Zapier, and n8n.

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-blue)](https://apify.com/haketa/hitta-se-business-scraper)
[![Data Source](https://img.shields.io/badge/Data%20Source-Hitta.se%20Sweden-success)]()
[![Deep Pagination](https://img.shields.io/badge/Pagination-1%2C000%2B%20Unlocked-brightgreen)]()
[![Coverage](https://img.shields.io/badge/Market-Sweden%20\(Statewide\)-red)]()
[![Firmographics](https://img.shields.io/badge/Metrics-Org.Nr%20%7C%20Revenue%20%7C%20Employees-purple)]()
[![Output Formats](https://img.shields.io/badge/Format-JSON%20%7C%20CSV%20%7C%20Excel-orange)]()

> **Built for:** B2B sales teams, outbound SDRs prospecting the Nordic market, demand generation marketers building verified outreach lists, corporate recruiters sourcing Swedish employers by vertical, and data engineers enriching CRMs with official *organisationsnummer* keys.

***

### ⚡ At a glance

| Feature | Details |
|---|---|
| **Data Source** | Hitta.se (hitta.se) — Sweden's Primary Business & People Directory |
| **Geographic Scope** | All 21 Swedish counties (*län*) and 290 municipalities (*kommuner*): Stockholm, Göteborg, Malmö, etc. |
| **Search Queries** | Industry + City pairs (e.g., `'restaurang stockholm'`, `'bilverkstad göteborg'`, `'redovisningsbyrå uppsala'`) |
| **Key Output Fields** | Company name, org.nr, legal name, company form, phone, email, website, street, city, postal code, GPS, revenue, employees |
| **Firmographics** | Swedish *organisationsnummer*, annual turnover in thousands of SEK (kSEK), employee count, founding date |
| **Contact Channels** | Primary business phone number, verified corporate email address, canonical website URL, social profiles |
| **Reputation Data** | Average review score (1.0 to 5.0 stars) and total review count from verified Swedish customers |
| **Export Formats** | JSON, CSV, Excel (XLSX), XML, HTML table, webhook & REST API |
| **Max Capacity** | Scalable from 100 sample records to 1,000+ entries across multi-city search campaigns |
| **Execution Speed** | Pure HTTP extraction; fast prefill test runs finish in under 45 seconds |

***

### 🔎 Why scrape Hitta.se for Swedish business data?

**Hitta.se** is the premier search engine for companies, professionals, and addresses across Sweden. Unlike generic global directories that suffer from stale contact info or missing national identifiers, Hitta.se integrates directly with official Swedish administrative registries (such as *Bolagsverket*).

Every corporate profile combines localized merchant listings with audited statutory firmographics:

- **B2B Outbound Prospecting & Lead Generation:** Nordic sales teams can generate targeted lead lists for specific verticals (e.g., IT consultants in Stockholm, construction contractors in Gothenburg, or dental clinics in Malmö), obtaining actionable contact details including direct phone numbers and emails.
- **CRM Enrichment with Official Organization Numbers:** In Sweden, the *organisationsnummer* is the master regulatory key required for credit scoring, VAT reporting, and corporate invoicing. Enriching existing CRM accounts with validated org numbers eliminates duplicate accounts and unlocks precise financial health scoring.
- **Account-Based Marketing (ABM) Segmentation:** Filter prospects by annual revenue (`annualRevenue`) and verified employee size (`numberOfEmployees`) to focus enterprise sales reps exclusively on companies matching your ideal customer profile (ICP).
- **Competitor Mapping & Local Market Sizing:** Corporate strategy teams and private equity firms can map every operating business within a specific trade category across Swedish counties to evaluate market saturation and regional growth.
- **Territory Planning & Field Sales Routing:** Sales managers can export latitude and longitude coordinates to plot client locations, design localized sales routes, and identify unserved territories.

***

### 🗂️ Covered Industries & Search Capabilities

The scraper processes any valid query combining an industry keyword with a geographic location:

1. **Crafts, Construction & Trades:** Building contractors (*bygg*), electricians (*elektriker*), plumbers (*rörmokare*), painters (*måleri*), and roofing contractors across Sweden.
2. **Automotive Services:** Auto repair shops (*bilverkstad*), car dealerships (*bilhandlare*), tire services (*däckverkstad*), and vehicle fleets (*biluppgifter*).
3. **Professional & Corporate B2B Services:** Accounting firms (*redovisningsbyrå*), legal practices (*advokat*), IT consultancies (*it konsult*), architectural offices (*arkitekt*), and marketing agencies.
4. **Healthcare, Wellness & Personal Care:** Dental clinics (*tandläkare*), medical centers (*vårdcentral*), physiotherapists (*fysioterapeut*), and hair salons (*frisör*).
5. **Hospitality & Retail:** Restaurants (*restaurang*), cafés, hotels (*hotell*), bakeries (*bageri*), and specialized retail stores.
6. **Logistics & Facility Management:** Cleaning companies (*städbolag*), moving firms (*flyttfirma*), printing houses (*tryckeri*), and freight dispatchers.

***

### ✨ Key Features & Capabilities

- ✅ **Deep 1,000+ Record Pagination:** Unlocked pagination engine retrieves 25 businesses per page across result pages without arbitrary cutoffs, scaling seamlessly to 1,000+ unique records.
- ✅ **Deep Detail Page Enrichment:** Automatically visits individual company profile pages to capture statutory *organisationsnummer*, annual turnover, employee counts, founding year, and social profiles.
- ✅ **Multi-Query Concurrency:** Process multiple search terms in parallel (e.g., searching restaurants across Stockholm, Gothenburg, and Malmö simultaneously) with managed worker concurrency.
- ✅ **Clean Data Normalization:** Standardizes website URLs with secure `https://` prefixes, cleans phone numbers, extracts clean 10-digit Swedish org numbers (`NNNNNN-NNNN`), and parses structured weekly opening hours.
- ✅ **Zero Duplicates Guarantee:** Maintains an in-memory unique ID cache (`hittaId`) across all pages and search terms, ensuring 100% deduplicated results in your final dataset.
- ✅ **Flexible Search Inputs:** Enter industry keywords and city names, or paste direct Hitta.se search result URLs or company profile links (`.../verksamhet/...`).

***

### 📊 Extracted Data Fields

The scraper extracts comprehensive contact, operational, and firmographic attributes:

#### 🏢 Company Identification & Firmographics

| Field | Coverage | Description |
|---|---|---|
| `hittaId` | 🟢 High (100%) | Unique Hitta.se business entity identifier |
| `name` | 🟢 High (100%) | Official business trade or display name |
| `legalName` | 🟢 High (98%) | Registered legal entity name filed with *Bolagsverket* |
| `organizationNumber` | 🟢 High (98%) | Swedish *organisationsnummer* formatted as `NNNNNN-NNNN` |
| `businessType` | 🟢 High (98%) | Legal company form: `Aktiebolag` (AB), `Enskild firma`, `Handelsbolag`, etc. |
| `numberOfEmployees` | 🟡 Conditional (75-85%) | Total registered employee headcount |
| `annualRevenue` | 🟡 Conditional (80-90%) | Annual corporate turnover in thousands of Swedish Kronor (kSEK) |
| `revenueCurrency` | 🟡 Conditional | Currency denomination (typically `SEK`) |
| `foundingDate` | 🟡 Conditional (70-80%) | Company establishment date or year |

#### 📞 Contact Channels & Online Presence

| Field | Coverage | Description |
|---|---|---|
| `primaryPhone` | 🟢 High (95-98%) | Direct business telephone contact number |
| `email` | 🟢 High (80-88%) | Published business contact email address |
| `website` | 🟢 High (75-85%) | Normalized canonical website URL (`https://...`) |
| `socialLinks` | 🟡 Conditional | Array of social media links (LinkedIn, Facebook, Instagram) |
| `profileUrl` | 🟢 High (100%) | Canonical URL to the company profile page on Hitta.se |

#### 📍 Physical Location & Geocoding

| Field | Coverage | Description |
|---|---|---|
| `street` | 🟢 High (95%) | Street address and house number |
| `zipCode` | 🟢 High (98%) | Swedish postal code (*postnummer*) |
| `city` | 🟢 High (100%) | Locality or city name (*postort*) |
| `municipality` | 🟢 High (98%) | Administrative municipality (*kommun*) |
| `county` | 🟢 High (98%) | Administrative county (*län*) |
| `latitude` | 🟢 High (98%) | WGS84 GPS latitude coordinate |
| `longitude` | 🟢 High (98%) | WGS84 GPS longitude coordinate |

#### ⭐ Reputation & Operational Data

| Field | Coverage | Description |
|---|---|---|
| `categories` | 🟢 High (98%) | Normalized trade and industry classification string |
| `reviewScore` | 🟡 Conditional | Average customer review rating (1.0 to 5.0 scale) |
| `reviewCount` | 🟡 Conditional | Total number of published customer reviews |
| `description` | 🟡 Conditional | Official corporate company description or about text |
| `openingHours` | 🟡 Conditional | Weekly operating schedule and opening hours |
| `payingCustomer` | 🟢 High (100%) | Boolean flag: indicates premium listing status on Hitta.se |
| `numberOfVehicles`| 🟡 Conditional | Count of commercial vehicles registered to the entity |
| `scrapedAt` | 🟢 High (100%) | ISO 8601 UTC timestamp of record extraction |

***

### ⚙️ Input Parameters

Configure your search queries via the Apify Console or pass JSON parameters via API:

```json
{
  "searchTerms": [
    "restaurang stockholm",
    "bilverkstad göteborg"
  ],
  "maxResultsPerSearch": 0,
  "maxItems": 500,
  "scrapeDetailPage": true,
  "maxConcurrency": 10
}
```

| Parameter | Type | Default | Description |
|---|---|---|---|
| `searchTerms` | `array` | `["restaurang stockholm", ...]` | List of what + where search queries (e.g., `'elektriker malmö'`). Leave empty for automatic Swedish sample. |
| `startUrls` | `array` | `[]` | Optional: paste Hitta.se search result URLs or direct company links (`.../verksamhet/...`). |
| `maxResultsPerSearch` | `integer` | `0` (unlimited) | Max businesses per query. Set to `0` for unlimited pagination across result pages. |
| `maxItems` | `integer` | `100` (prefill), `0` (default) | Maximum total unique businesses to collect across all searches. Set to `0` for unlimited. |
| `scrapeDetailPage` | `boolean` | `true` | Visit individual profile pages to extract org.nr, revenue, employees, website, and founding date. |
| `maxConcurrency` | `integer` | `10` | Worker concurrency pool size (recommended: 8–10). |
| `proxyConfiguration` | `object` | `{"useApifyProxy": true}` | Proxy configuration. Apify Datacenter proxies ensure high-speed, reliable data collection. |

***

### 📦 Sample Output

Every business record is delivered as structured, normalized JSON:

```json
{
  "hittaId": "kL98aBcD12",
  "name": "NORDIC TECH SOLUTIONS AB",
  "legalName": "Nordic Tech Solutions Aktiebolag",
  "organizationNumber": "556789-1234",
  "businessType": "Aktiebolag",
  "primaryPhone": "08-123 45 67",
  "email": "kontakt@nordictechsolutions.se",
  "website": "https://www.nordictechsolutions.se",
  "street": "Sveavägen 42",
  "zipCode": "111 34",
  "city": "Stockholm",
  "municipality": "Stockholm",
  "county": "Stockholms län",
  "latitude": 59.3364,
  "longitude": 18.0612,
  "categories": "IT-konsulter | Programvaruutveckling",
  "numberOfEmployees": 24,
  "annualRevenue": 48500,
  "revenueCurrency": "SEK",
  "foundingDate": "2012",
  "reviewScore": 4.8,
  "reviewCount": 15,
  "description": "Ledande leverantör av molnlösningar och systemutveckling för nordiska företag.",
  "payingCustomer": true,
  "numberOfVehicles": 3,
  "profileUrl": "https://www.hitta.se/verksamhet/nordic-tech-solutions-ab/kL98aBcD12",
  "scrapedAt": "2026-11-10T12:00:00.000Z"
}
```

***

### 💡 Practical B2B & Lead Generation Use Cases

#### 1. High-Value B2B Sales Prospecting in Sweden

Commercial sales teams targeting mid-sized Swedish companies can filter by industry (`searchTerms: ["redovisningsbyrå stockholm", "it konsult stockholm"]`) and isolate firms with 10–50 employees (`numberOfEmployees`) and revenue above 20,000 kSEK (`annualRevenue`). Export direct contact phone numbers, emails, and website URLs into your CRM to launch targeted outbound campaigns.

#### 2. CRM Account Deduplication & Master Data Management

By matching customer rosters against the official Swedish *organisationsnummer*, data operations teams can deduplicate customer databases, enrich missing phone numbers, and populate statutory corporate addresses.

#### 3. Trades Equipment & Supplier Sales

Building material distributors, tool manufacturers, and commercial vehicle leasing firms can extract thousands of active plumbing, electrical, and general contracting businesses across Gothenburg and Malmö. Access company vehicle fleet counts (`numberOfVehicles`) to identify prime fleet leasing prospects.

#### 4. Executive Sourcing & Employer Market Research

Recruitment agencies can audit employment density across Swedish regions, mapping which enterprises operate in fast-growing sectors like clean technology, biotechnology, and industrial automation.

***

### 🗺️ Swedish Regional & County Coverage

The scraper covers all 21 administrative counties (*län*) and metropolitan centers in Sweden:

- **Stockholm County (Stockholms län):** Stockholm municipality, Solna, Sundbyberg, Täby, Nacka, Södertälje, and Sollentuna. Sweden's primary hub for technology, finance, and corporate headquarters.
- **Västra Götaland County:** Gothenburg (*Göteborg*), Borås, Trollhättan, and Skövde. Center for automotive engineering, manufacturing, and international maritime shipping.
- **Skåne County:** Malmö, Helsingborg, Lund, and Kristianstad. Connected to the Greater Copenhagen Öresund region, leading in life sciences, logistics, and food production.
- **Uppsala County:** Uppsala university city, Enköping, and Tierp. Renowned for biotechnology, medical research, and academic spin-offs.
- **Östergötland & Örebro:** Linköping, Norrköping, and Örebro. Focus on aerospace engineering, software research, and central logistics corridors.
- **Northern Industrial Hubs (Norrland):** Umeå, Luleå, and Sundsvall. Fast-growing centers for renewable energy, data infrastructure, and green steel manufacturing.

***

### 🚀 How to Run via Apify API

Integrate Swedish business extraction into your automated data pipelines:

#### Node.js (Apify Client)

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });

const run = await client.actor('haketa/hitta-se-business-scraper').call({
    searchTerms: ['arkitekt stockholm', 'it konsult göteborg'],
    maxResultsPerSearch: 0,
    maxItems: 500,
    scrapeDetailPage: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Retrieved ${items.length} Swedish business leads.`);
```

#### Python (Apify Client)

```python
import os
from apify_client import ApifyClient

client = ApifyClient(os.getenv('APIFY_TOKEN'))

run = client.actor('haketa/hitta-se-business-scraper').call(run_input={
    'searchTerms': ['tandläkare malmö'],
    'maxResultsPerSearch': 0,
    'maxItems': 1000,
    'scrapeDetailPage': True,
})

dataset_items = client.dataset(run['defaultDatasetId']).list_items().items
print(f'Retrieved {len(dataset_items)} dental clinics in Malmo.')
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/haketa~hitta-se-business-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchTerms": ["bygg göteborg"],
    "maxResultsPerSearch": 0,
    "maxItems": 250
  }'
```

***

### ❓ Frequently Asked Questions

**What is the format of the Swedish organisation number?**
The *organisationsnummer* is formatted as a 10-digit number (`NNNNNN-NNNN`), stripping any internal 12-digit legacy prefixes. This format matches official filings with *Bolagsverket* and *Skatteverket*.

**How is annual revenue reported?**
Revenue is reported in thousands of Swedish Kronor (kSEK). For example, `annualRevenue: 45000` indicates an annual turnover of 45,000,000 SEK (approximately 4.2 million USD or 3.9 million EUR).

**Can I run large searches requesting 1,000+ businesses?**
Yes. You can supply multiple search queries and set `maxItems` to `1000`, `5000`, or `0` (unlimited). The actor paginates 25 businesses per page and automatically scales query limits to satisfy your requested total.

**How fresh is the data in Hitta.se?**
Hitta.se updates its registry continuously against national telecommunications databases, *Bolagsverket* annual filings, and direct merchant profile updates.

**Can I turn off detail page scraping for faster runs?**
Yes. If you only require basic listing data (name, primary phone, email, city, and categories), set `scrapeDetailPage: false`. This skips individual company page requests, allowing thousands of records to be collected in seconds.

***

**Do I need to type Swedish special characters (å, ä, ö)?**
No. While typing native characters (e.g., `göteborg` or `malmö`) works seamlessly, ASCII equivalents (e.g., `goteborg` or `malmo`) are also understood by the Hitta.se search engine.

**How are phone numbers formatted?**
Phone numbers are extracted as published locally (e.g., `08-123 45 67` or `031-98 76 54`). To dial internationally from outside Sweden, drop the leading `0` and add the Swedish international country code `+46` (e.g., `+46 8 123 45 67`).

**Can I export verified email addresses to CSV?**
Yes. Email addresses published on company profile pages are extracted into the `email` column. Exporting the dataset to CSV gives you clean email rosters ready for cold email outreach and marketing campaigns.

**Does the scraper include personal records or private individuals?**
No. This scraper specifically isolates corporate business listings and suppresses private residential phonebook entries, ensuring your datasets contain purely commercial B2B records.

**Can I target specific municipalities within the Stockholm metro?**
Yes. You can specify exact municipalities such as 'restaurang solna', 'bilverkstad nacka', or 'tandläkare sollentuna' to drill into specific municipal territories.

### 🔗 Related Nordic & European Business Scrapers

Explore complementary scrapers from the same publisher:

- [Marktstammdatenregister Scraper](https://apify.com/haketa/marktstammdatenregister-scraper) — German official energy & solar plant registry
- [Bien'ici Real Estate Scraper](https://apify.com/haketa/bienici-scraper) — French residential & commercial property market intelligence
- [Arbeitsagentur Jobs Scraper](https://apify.com/haketa/arbeitsagentur-scraper) — German employment listings, salary benchmarks & contacts

***

***

### 🏛️ Swedish Corporate Legal Structures (*Bolagsformer*)

The `businessType` field identifies the legal entity structure under Swedish corporate law:

- **Aktiebolag (AB):** Swedish limited liability companies, representing the vast majority of commercial B2B targets. Requires statutory financial reporting with *Bolagsverket*, ensuring high coverage for `annualRevenue` and `numberOfEmployees`.
- **Publikt Aktiebolag (AB publ):** Publicly listed corporations traded on Nasdaq Stockholm or First North.
- **Enskild firma (Enskild näringsidkare):** Sole proprietorships where the organization number corresponds to the proprietor personal registration number.
- **Handelsbolag (HB) & Kommanditbolag (KB):** General and limited commercial partnerships.
- **Ekonomisk förening:** Cooperative business associations and housing associations (*Bostadsrättsföreningar* / BRF).

***

### 🔄 Automated CRM Integration & Data Pipelines

Easily pipe scraped Swedish business leads into your sales and marketing systems:

- **HubSpot & Salesforce Ingestion:** Match on the 10-digit `organizationNumber` to automatically create or update company accounts, populating verified revenue, employee bands, and contact phone numbers.
- **Make & Zapier Automations:** Trigger automated outreach emails or populate Google Sheets as new business leads are pushed to the Apify dataset.
- **PostgreSQL / Snowflake Data Warehousing:** Maintain a comprehensive database of Swedish commercial enterprises for market share analysis and corporate entity resolution.

### 📋 Changelog

#### Version 1.2 (2026-11)

- **Deep 1,000+ Pagination Unlocked:** Fully uncapped `maxResultsPerSearch` (defaulting to `0` / auto) and optimized pagination loop to scale past 1,000 records smoothly.
- **Fast Prefill Optimization:** Streamlined default parameters to deliver a rich 100-company Swedish sample in <45 seconds.
- **Enhanced Firmographic Parsing:** Improved *organisationsnummer* formatting, kSEK revenue parsing, and employee count normalization.
- **URL & Social Link Sanitization:** Standardized canonical website URLs with `https://` schemes and structured social profiles.

#### Version 1.1 (2026-08)

- Added registered vehicle fleet count (*biluppgifter*) detection.
- Improved customer review ratings and score aggregation.
- Optimized worker concurrency for high-throughput detail extraction.

#### Version 1.0 (2026-05)

- Initial release covering official Hitta.se business search with firmographic and contact enrichment.

# Changelog

This Actor's version history is a separate document: https://apify.com/haketa/hitta-se-business-scraper/changelog.md

# Actor input Schema

## `searchTerms` (type: `array`):

One search per line, combining the industry or business type with a city or area — exactly as you would type it into the Hitta.se search box. Examples: 'restaurang stockholm', 'bilverkstad göteborg', 'frisör malmö', 'redovisningsbyrå uppsala'. Leave blank to get an automatic sample.

## `startUrls` (type: `array`):

Optional. Paste Hitta.se URLs directly — either search result pages or individual company pages (…/verksamhet/…). Handy when you have already built a search on the website and want to scrape exactly those results.

## `maxResultsPerSearch` (type: `integer`):

Maximum number of businesses to collect per search term. Set to 0 for unlimited (collects every result page, 25 businesses per page). A broad search like 'restaurang stockholm' can return several thousand businesses.

## `maxItems` (type: `integer`):

Maximum total number of unique businesses to return across all searches combined. Set to 0 for no global limit.

## `scrapeDetailPage` (type: `boolean`):

When on, each company's profile page is opened to add website, organization number, legal name, company form, number of employees, annual revenue, founding date, social media profiles and opening hours. Turn off for a faster, lighter list (name, phone, email, address, category, reviews).

## `proxyConfiguration` (type: `object`):

Proxy settings for reliable data collection. Datacenter proxies (the default) are more than enough for this Actor.

## `maxConcurrency` (type: `integer`):

How many pages are fetched in parallel. Higher values finish large runs faster. Recommended: 8–10.

## Actor input object example

```json
{
  "searchTerms": [
    "restaurang stockholm",
    "tandläkare uppsala"
  ],
  "startUrls": [],
  "maxResultsPerSearch": 0,
  "maxItems": 50,
  "scrapeDetailPage": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxConcurrency": 12
}
```

# Actor output Schema

## `datasetItems` (type: `string`):

Download every business collected in this run (JSON, CSV, Excel).

## `runUrl` (type: `string`):

Open this run in the Apify Console.

## `name` (type: `string`):

Business display name

## `organizationNumber` (type: `string`):

Swedish organisationsnummer (e.g. 556243-9736)

## `legalName` (type: `string`):

Registered legal entity name

## `businessType` (type: `string`):

Legal form (Aktiebolag, Enskild firma, etc.)

## `categories` (type: `string`):

Business categories / industries

## `primaryPhone` (type: `string`):

Primary phone number

## `email` (type: `string`):

Contact email address

## `website` (type: `string`):

Company website URL

## `street` (type: `string`):

Street address

## `zipCode` (type: `string`):

Postal code

## `city` (type: `string`):

City / locality

## `municipality` (type: `string`):

Kommun (municipality)

## `county` (type: `string`):

Län (county)

## `latitude` (type: `string`):

GPS latitude

## `longitude` (type: `string`):

GPS longitude

## `numberOfEmployees` (type: `string`):

Number of employees

## `annualRevenue` (type: `string`):

Annual revenue in thousands of SEK

## `foundingDate` (type: `string`):

Founding date

## `reviewScore` (type: `string`):

Average review rating

## `reviewCount` (type: `string`):

Number of reviews

## `socialLinks` (type: `string`):

Facebook / Instagram / other social profiles

## `imageUrl` (type: `string`):

Header / cover photo URL (premium listings)

## `logoUrl` (type: `string`):

Company logo image URL (premium listings)

## `description` (type: `string`):

Business description / about text

## `openingHours` (type: `string`):

Weekly opening hours

## `payingCustomer` (type: `string`):

Whether the business is a paying Hitta.se customer

## `numberOfVehicles` (type: `string`):

Number of company-registered vehicles, when available

## `profileUrl` (type: `string`):

Hitta.se company page

## `scrapedAt` (type: `string`):

ISO 8601 timestamp

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "restaurang stockholm",
        "bilverkstad göteborg"
    ],
    "startUrls": [],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/hitta-se-business-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerms": [
        "restaurang stockholm",
        "bilverkstad göteborg",
    ],
    "startUrls": [],
    "maxItems": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/hitta-se-business-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "restaurang stockholm",
    "bilverkstad göteborg"
  ],
  "startUrls": [],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call haketa/hitta-se-business-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,haketa/hitta-se-business-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/HCJFfRfmFc76YpSCx/builds/UNrhpS6SvD9SZ5x7d/openapi.json
