# 1188.lv Scraper - Latvia Business Directory (`crawlerbros/1188-scraper`) Actor

Scrape 1188.lv, Latvia's leading business directory. Search by keyword, browse by category, or fetch business profiles by URL. Get names, addresses, phone numbers, emails, websites, ratings, opening hours, and registration details.

- **URL**: https://apify.com/crawlerbros/1188-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 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 and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 1188.lv Scraper - Latvia Business Directory

Scrape **1188.lv** — Latvia's leading business directory. Search any keyword or browse any of 384 business categories and get names, full addresses, phone numbers, emails, websites, ratings, opening hours, social media links, photos, and registration details. No login, no cookies, no API key, no proxy required.

### What this actor does

- **Three modes:** `search` (site-wide keyword search), `byCategory` (browse one of 384 real 1188.lv categories), and `byUrls` (fetch specific businesses by direct URL)
- **All 384 categories** available as a dropdown, or type any custom `slug-id` value
- **City filter** — restrict results to any Latvian city or town by matching the parsed address
- **Filter by** minimum star rating (1-5), "has website", "has email"
- **Rich business profiles** — every listing is enriched with its full detail page: phone number(s), email(s), website, GPS coordinates, seasonal opening hours, social media links, photo gallery, product/service keyword tags, and full legal registration details
- **Full Latvian character support** — ā, č, ē, ģ, ī, ķ, ļ, ņ, š, ū, ž are handled correctly in both input and output
- **Empty fields are omitted** — you only ever see fields that were actually found for a business

### Output per business

- `businessId` — 1188.lv internal business ID
- `name` — business name
- `category` — the business's own category/industry label(s) as published on its detail page (e.g. "Restorāns"), available in every mode including `byUrls`
- `description` — business description snippet
- `rating` (1-5), `reviewCount` — from the business's own detail-page rating block (most current/accurate)
- `fullAddress` — the complete address as published; `street`, `city`, `zipCode` — best-effort parsed parts
- `latitude`, `longitude` — precise GPS coordinates
- `phone` — primary phone number, `allPhones[]` — every phone number listed (businesses often list several)
- `email` — primary email address, `allEmails[]` — every email listed (1188.lv's own contact address is always excluded)
- `website` — business website (1188.lv's own UTM tracking parameters stripped)
- `openingHours[]` — structured opening hours (`{day, hours, season}` per slot; `season` is set only for businesses that publish separate winter/summer hours)
- `socialLinks` — business's own social media profiles, keyed by platform (e.g. `facebook`, `instagram`, `tripadvisor`)
- `photos[]` — photo gallery image URLs published on the business's profile
- `keywords[]` — product/service keyword tags the business is listed under
- `serviceArea` — the geographic area a business explicitly states it serves (delivery/service businesses), when published
- `registrationNumber`, `registrationDate`, `registerName` — Latvian business registry number, registration date, and register name (e.g. "Komercreģistrs"), when published
- `registrationStatus` — the business's current registry status (e.g. "Reģistrēts"), when published
- `legalForm` — legal form of the business (e.g. "Sabiedrība ar ierobežotu atbildību"), when published
- `legalAddress` — the business's registered legal address, when published (may differ from its operating `fullAddress`)
- `logoUrl` — business logo/photo
- `sourceUrl` — canonical 1188.lv business page URL
- `recordType: "business"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string (select) | `search` | `search` (keyword), `byCategory` (browse), or `byUrls` (fetch by URL) |
| `query` | string | `restorāns` | Keyword to search for (mode=search) |
| `category` | string (select) | `restorans-2686` | Pick from all 384 real 1188.lv categories, or `custom` to use `customCategory` (mode=byCategory) |
| `customCategory` | string | – | Any `slug-id` value, overrides `category` (mode=byCategory) |
| `city` | string | – | Only return businesses whose address contains this city/town (any mode) |
| `businessUrls` | array | – | 1188.lv business page URLs to fetch directly (mode=byUrls) |
| `minRating` | integer | `0` (no minimum) | Only return businesses rated at least 1-5 stars |
| `requireWebsite` | boolean | `false` | Only return businesses with a listed website |
| `requireEmail` | boolean | `false` | Only return businesses with a listed email address |
| `maxItems` | int | `20` | Hard cap on returned records (1-1000) |

#### Example: search for restaurants site-wide

```json
{
  "mode": "search",
  "query": "restorāns",
  "maxItems": 20
}
````

#### Example: browse dentists in Rīga with at least a 4-star rating

```json
{
  "mode": "byCategory",
  "category": "zobarstnieciba-6610",
  "city": "Rīga",
  "minRating": 4,
  "maxItems": 30
}
```

#### Example: banks with a published website and email

```json
{
  "mode": "byCategory",
  "category": "bankas-890",
  "requireWebsite": true,
  "requireEmail": true,
  "maxItems": 50
}
```

#### Example: fetch specific businesses by URL

```json
{
  "mode": "byUrls",
  "businessUrls": [
    { "url": "https://www.1188.lv/katalogs/restorans-2686/armenu-virtuve-nojan-tapan-498662" }
  ]
}
```

### Use cases

- **Local lead generation** — build a prospect list of Latvian businesses by category and city for B2B outreach
- **Market research** — measure business density and average ratings for a category across Latvian regions
- **Directory aggregation** — feed structured Latvian business data into your own local-search product
- **Competitor mapping** — see who else operates in a category and area, with ratings and contact info
- **Registry cross-referencing** — match businesses to Latvia's official registration numbers

### Limitations

- **`city` is a client-side address filter, not a server-side one.** 1188.lv's own location filter (`vzd_code`) only lists cities that already have results within the specific category/search being browsed, so there's no single stable city list valid across all categories. Instead, `city` matches the parsed address text (diacritic- and case-insensitive), which works uniformly everywhere but depends on the city name appearing in the address as published.
- **No authoritative total-result count.** 1188.lv's server-rendered listing pages don't expose a total-hit count, so pagination stops on the site's own natural signal (two consecutive empty pages) rather than a known total.
- **One extra request per result.** Every listing result is automatically enriched with its detail page (phone/email/website/hours only exist there, not on listing cards), so `byCategory`/`search` modes are roughly twice as slow per record as a listing-only scrape — this is by design, to guarantee complete records.

### FAQ

**What data source does this actor use?**
It reads the publicly available search, category-browse, and business-detail pages on 1188.lv, Latvia's leading business directory. No account or API key is needed.

**Is this affiliated with 1188.lv?**
No. This is an independent, third-party actor that reads publicly accessible pages.

**Why do some businesses have no rating, phone, or website?**
1188.lv only shows a rating once a business has received at least one review, and only shows contact details a business itself provided. Fields with no data are simply omitted from the record rather than shown as empty or null.

**What's the difference between `phone` and `allPhones`?**
`phone` is the primary number (from the business's structured data). `allPhones` additionally appears only when the business lists more than one number, and includes every number found on its detail page.

**Does this actor need a proxy or login?**
No — 1188.lv's search, category, and detail pages are served without any anti-bot challenge, so this actor runs entirely on Apify's free plan with no proxy and no credentials.

**How do I find a category's `slug-id` value?**
Browse https://www.1188.lv/katalogs and copy the URL segment after `/katalogs/` for any category (e.g. `restorans-2686` for restaurants), or just pick it from the `category` dropdown.

# Actor input Schema

## `mode` (type: `string`):

What to fetch: keyword search across all categories, browse a single category, or fetch business profiles from direct 1188.lv URLs.

## `query` (type: `string`):

Keyword to search for, e.g. a business name, product, or service ('restorāns', 'zobārsts', 'auto serviss'). Used when mode=search. Matches business names, descriptions and categories across the whole catalog.

## `category` (type: `string`):

Business category to browse (mode=byCategory). Pick from the full 1188.lv category list, or choose 'Custom category' and type your own 'slug-id' below.

## `customCategory` (type: `string`):

Free-text category in 'slug-id' form, e.g. 'restorans-2686' (mode=byCategory). Find the slug-id by browsing https://www.1188.lv/katalogs and copying the URL segment after /katalogs/. Takes priority over 'Category' when set.

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

Only return businesses whose address contains this city/town name, e.g. 'Rīga', 'Jūrmala', 'Liepāja', 'Daugavpils' (applies to any mode). Leave empty for all of Latvia. Matched case-insensitively against the parsed address.

## `businessUrls` (type: `array`):

Direct 1188.lv business page URLs to fetch, e.g. https://www.1188.lv/katalogs/restorans-2686/some-business-123456. Use the 'sourceUrl' field from search/category results.

## `minRating` (type: `integer`):

Only return businesses rated at least this many stars (1-5). 0 means no minimum. Businesses with no rating are excluded once this is set above 0.

## `requireWebsite` (type: `boolean`):

Only return businesses that have a website listed on their 1188.lv profile.

## `requireEmail` (type: `boolean`):

Only return businesses that have at least one email address listed on their 1188.lv profile.

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

Hard cap on the number of business records to return.

## Actor input object example

```json
{
  "mode": "search",
  "query": "restorāns",
  "category": "restorans-2686",
  "businessUrls": [],
  "minRating": 0,
  "requireWebsite": false,
  "requireEmail": false,
  "maxItems": 20
}
```

# Actor output Schema

## `businesses` (type: `string`):

Dataset containing all scraped 1188.lv business listings.

# 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 = {
    "mode": "search",
    "query": "restorāns",
    "category": "restorans-2686",
    "businessUrls": [],
    "minRating": 0,
    "requireWebsite": false,
    "requireEmail": false,
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/1188-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 = {
    "mode": "search",
    "query": "restorāns",
    "category": "restorans-2686",
    "businessUrls": [],
    "minRating": 0,
    "requireWebsite": False,
    "requireEmail": False,
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/1188-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "mode": "search",
  "query": "restorāns",
  "category": "restorans-2686",
  "businessUrls": [],
  "minRating": 0,
  "requireWebsite": false,
  "requireEmail": false,
  "maxItems": 20
}' |
apify call crawlerbros/1188-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/1188-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "1188.lv Scraper - Latvia Business Directory",
        "description": "Scrape 1188.lv, Latvia's leading business directory. Search by keyword, browse by category, or fetch business profiles by URL. Get names, addresses, phone numbers, emails, websites, ratings, opening hours, and registration details.",
        "version": "1.0",
        "x-build-id": "DIfkYJdtCxtsSpTzs"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~1188-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-1188-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~1188-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-1188-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~1188-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-1188-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "byCategory",
                            "byUrls"
                        ],
                        "type": "string",
                        "description": "What to fetch: keyword search across all categories, browse a single category, or fetch business profiles from direct 1188.lv URLs.",
                        "default": "search"
                    },
                    "query": {
                        "title": "Search keyword",
                        "type": "string",
                        "description": "Keyword to search for, e.g. a business name, product, or service ('restorāns', 'zobārsts', 'auto serviss'). Used when mode=search. Matches business names, descriptions and categories across the whole catalog.",
                        "default": "restorāns"
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "custom",
                            "advokati-10",
                            "aizkari-audumi-510",
                            "akmens-apstrade-70",
                            "alkoholiskie-dzerieni-alus-razosana-100",
                            "alkohols-alus-tirdznieciba-110",
                            "amatnieciba-amatnieki-1360",
                            "antenas-150",
                            "antikvariats-160",
                            "apaksvela-170",
                            "apavi-210",
                            "apavu-izgatavosana-200",
                            "apavu-remonts-190",
                            "apbedisanas-pakalpojumi-morgi-220",
                            "apdares-materiali-230",
                            "apdrosinasana-260",
                            "apgaismes-tehnika-270",
                            "apkure-siltums-5330",
                            "apkures-katli-1820",
                            "apsardzes-firmas-340",
                            "aptieka-350",
                            "apgerbi-320",
                            "apgerbu-razosana-300",
                            "arhitekti-projektesana-370",
                            "arhivs-380",
                            "arodbiedriba-390",
                            "arodskolas-profesionala-izglitiba-4820",
                            "asenizacija-biotualetes-2920",
                            "asfalts-asfaltbetons-1265",
                            "astrologi-zilesana-400",
                            "atbalsts-lauksaimniekiem-40",
                            "audio-video-tehnika-473",
                            "audits-revidents-500",
                            "augstskolas-koledzas-550",
                            "augu-aizsardzibas-lidzekli-mineralmesli-30",
                            "augli-darzeni-541",
                            "auto-gazes-iekartas-2065",
                            "auto-kravu-parvadajumi-3040",
                            "auto-krasas-auto-kimija-650",
                            "auto-noma-695",
                            "auto-piederumi-715",
                            "auto-rezerves-dalas-630",
                            "auto-signalizacijas-760",
                            "auto-stikli-7001",
                            "auto-tirdznieciba-670",
                            "autobusu-mikroautobusu-noma-610",
                            "autoevakuators-5890",
                            "autokapsetas-640",
                            "automazgatava-690",
                            "autoosta-700",
                            "autoservisa-aprikojums-750",
                            "autoserviss-740",
                            "autoskola-770",
                            "autostavvietas-garaza-780",
                            "avio-kravu-parvadajumi-861",
                            "avarijas-dienests-santehnikis-830",
                            "azarta-speles-2770",
                            "bankas-890",
                            "banketi-galda-klasana-900",
                            "banku-aprikojums-910",
                            "baseini-baseinu-aprikojums-920",
                            "baseins-peldbaseins-4580",
                            "baznicas-religiskas-organizacijas-930",
                            "betons-cements-dzelzsbetons-940",
                            "biblioteka-1020",
                            "biroja-tehnika-1050",
                            "biroja-tehnikas-serviss-1060",
                            "biznesa-konsultacijas-1110",
                            "biznesa-procesu-arpakalpojumi-1115",
                            "biskopiba-biskopibas-produkti-1100",
                            "bizuterija-1120",
                            "boulings-1130",
                            "brugis-1140",
                            "bernu-centrs-nometnes-990",
                            "bernu-preces-980",
                            "bernudarzs-pirmsskola-1010",
                            "buvgruzu-izvesana-atkritumu-apsaimniekosana-405",
                            "buvmateriali-celtniecibas-materiali-1190",
                            "buvuzraudziba-1230",
                            "caurules-1240",
                            "celtnieciba-remontdarbi-1150",
                            "celtniecibas-tehnika-1220",
                            "cela-zimes-3550",
                            "celojumi-6120",
                            "celu-buve-5980",
                            "celu-buves-tehnika-1263",
                            "citi-7019",
                            "csdd-820",
                            "dabas-takas-dabas-parki-5000",
                            "darba-aizsardziba-darba-drosiba-1390",
                            "darba-apgerbi-1370",
                            "darbs-uz-kuga-3143",
                            "datori-1453",
                            "datoru-remonts-1454",
                            "degviela-naftas-produkti-1530",
                            "degvielas-uzpildes-iekartas-1543",
                            "degvielas-uzpildes-stacijas-1540",
                            "deju-studija-7000",
                            "deratizacija-dezinsekcija-1570",
                            "derigie-izrakteni-1580",
                            "detektivs-1590",
                            "durvis-logi-3490",
                            "durvju-atversana-atslegas-450",
                            "dzelzcela-buve-1640",
                            "dzelzcela-kravu-parvadajumi-1641",
                            "dzelzcela-stacija-1650",
                            "dzeramais-udens-bezalkoholiskie-dzerieni-133",
                            "dzesesanas-saldesanas-iekartas-1660",
                            "dziednieki-4220",
                            "dzimtsarakstu-nodala-1680",
                            "dzivnieku-patversme-1700",
                            "darza-dizains-arborists-360",
                            "darza-meza-tehnika-1490",
                            "darzenu-audzesana-auglkopiba-540",
                            "davanas-suveniri-1520",
                            "dumvadi-skursteni-1630",
                            "eko-veikals-6410",
                            "elektroenergija-1720",
                            "elektromontaza-1770",
                            "elektronika-elektronikas-komponentes-1780",
                            "elektrotehnika-elektromateriali-1790",
                            "energija-1821",
                            "farmacija-1850",
                            "finansu-pakalpojumi-1900",
                            "foto-pakalpojumi-1930",
                            "frizieru-veikals-5490",
                            "frizetava-1950",
                            "galdnieciba-2000",
                            "galas-izstradajumi-2030",
                            "galas-parstrades-uznemumi-2020",
                            "ginekologs-3711",
                            "graudi-uzglabasana-apstrade-1810",
                            "gramatas-gramatnicas-2130",
                            "gramatvedibas-pakalpojumi-2140",
                            "gridas-segumi-4405",
                            "gultas-vela-2170",
                            "gultni-2180",
                            "gumijas-izstradajumi-2190",
                            "gaze-2060",
                            "gazes-baloni-2070",
                            "gazes-uzpildes-stacijas-2083",
                            "hidraulika-2230",
                            "hidrotehniskas-buves-7020",
                            "id-kartes-2270",
                            "iekraveji-2290",
                            "iepakojums-2310",
                            "ierakstu-studija-2840",
                            "ieramesanas-darbi-2330",
                            "informativie-pakalpojumi-2370",
                            "informacijas-tehnologijas-2360",
                            "instrumenti-darba-galdi-1400",
                            "interesu-klubi-2410",
                            "interjers-dizains-1610",
                            "interneta-pieslegums-2440",
                            "interneta-veikali-1705",
                            "internatskolas-speciala-izglitiba-2430",
                            "intimpreces-2470",
                            "inzenierkomunikacijas-6230",
                            "izdevnieciba-2490",
                            "izglitibas-parvalde-5410",
                            "izklaide-atputas-vietas-2530",
                            "izstades-galerija-3620",
                            "jumtu-remonts-2600",
                            "jumtu-segumi-2610",
                            "juridiskie-pakalpojumi-2620",
                            "juvelierizstradajumi-2640",
                            "juras-kravu-parvadajumi-2605",
                            "kafejnica-bars-krogs-2681",
                            "kafija-teja-2700",
                            "kamini-krasnis-2710",
                            "kancelejas-preces-2720",
                            "kapsetas-2730",
                            "kapu-pieminekli-2740",
                            "karogi-2750",
                            "kases-aparati-2760",
                            "kautuves-3520",
                            "kazokzveri-2790",
                            "kazokadas-izstradajumi-2780",
                            "kemperu-noma-piekabes-4610",
                            "keramika-2830",
                            "kino-kinoteatris-2850",
                            "koka-buvkonstrukcijas-2860",
                            "kokapstrade-2883",
                            "kokapstrades-iekartas-2890",
                            "kompresori-sukni-5750",
                            "koncertzales-4133",
                            "kondicionieri-ventilacijas-sistemas-6340",
                            "konditoreja-2940",
                            "konferencu-un-seminaru-organizesana-2970",
                            "kopesana-iesiesana-2350",
                            "kosmetika-parfimerija-4390",
                            "kravas-auto-rezerves-dalas-7007",
                            "kravas-auto-serviss-7008",
                            "kravas-automasinas-autobusi-3010",
                            "krediti-3480",
                            "krasas-3060",
                            "kulturas-centrs-3180",
                            "kurinamais-3190",
                            "kurjers-kurjerpasts-3200",
                            "kursi-apmacibas-3210",
                            "kugu-agentesana-3120",
                            "kugu-buve-remonts-3160",
                            "kazu-salons-2800",
                            "kudra-3220",
                            "labdariba-6670",
                            "laboratorijas-3300",
                            "laivas-udens-transports-3330",
                            "lauksaimnieciba-3340",
                            "lauksaimniecibas-tehnika-3380",
                            "lidosta-aviokompanijas-850",
                            "lietota-sadzives-tehnika-3440",
                            "lietoti-apgerbi-apavi-3450",
                            "lifti-3470",
                            "lombards-3500",
                            "lopbariba-3510",
                            "lopkopiba-3530",
                            "logistika-3030",
                            "maize-miltu-izstradajumi-3560",
                            "manikirs-pedikirs-3572",
                            "markesanas-iekartas-svitru-kodi-3580",
                            "masaza-3583",
                            "medicinas-preces-3690",
                            "medniekiem-makskernieku-veikals-3573",
                            "melioracija-3740",
                            "meteorologijas-centrs-3800",
                            "metinasanas-iekartas-piederumi-3820",
                            "metala-konstrukcijas-metals-1170",
                            "metalapstrade-3760",
                            "metalluzni-3785",
                            "mezizstrade-3830",
                            "mezsaimnieciba-3850",
                            "ministrijas-3940",
                            "mobilie-telefoni-3953",
                            "mobilo-telefonu-remonts-7011",
                            "modelu-agentura-3970",
                            "motocikli-motorolleri-4030",
                            "muitas-brokeri-4050",
                            "muitas-noliktavas-4060",
                            "muzeji-4070",
                            "majas-lapu-izstrade-2435",
                            "makslinieku-piederumi-3640",
                            "marketings-sabiedriskas-attiecibas-3670",
                            "mebeles-3890",
                            "mebelu-furnitura-3860",
                            "mebelu-izgatavosana-3870",
                            "mebelu-remonts-3880",
                            "mernieciba-geodezija-3913",
                            "muzikas-ierakstu-veikals-460",
                            "muzikas-instrumenti-4080",
                            "muzikas-skola-makslas-skola-3660",
                            "muzikas-nakts-klubi-4120",
                            "muzikas-skanu-gaismas-iekartas-5380",
                            "namu-apsaimniekosana-4190",
                            "narkologs-4150",
                            "nekustamie-ipasumi-4180",
                            "nodarbinatibas-valsts-agentura-6282",
                            "noliktavas-4230",
                            "notari-4260",
                            "ogas-senes-4270",
                            "optika-4290",
                            "osta-4310",
                            "pamatskola-sakumskola-4350",
                            "papirs-papira-izstradajumi-4380",
                            "partijas-4420",
                            "paradu-piedzina-4385",
                            "pasts-4450",
                            "pasakumu-organizesana-2540",
                            "pasvaldibas-4460",
                            "personalatlase-1380",
                            "piena-produkti-4620",
                            "pirotehnika-4660",
                            "pirtis-sauna-4670",
                            "pirts-lietas-4675",
                            "plastiska-kirurgija-4680",
                            "plastmasas-izstradajumi-4710",
                            "policija-4720",
                            "poligrafija-4730",
                            "poligrafijas-iekartas-materiali-4740",
                            "preses-abonesana-4780",
                            "prokuratura-4850",
                            "psihologs-4870",
                            "psihoterapeits-4875",
                            "pulksteni-pulkstenu-remonts-4900",
                            "putnkopiba-4910",
                            "partikas-piedevas-4510",
                            "partikas-razosana-4520",
                            "partikas-razosanas-parstrades-iekartas-4550",
                            "partikas-tirdznieciba-4530",
                            "partikas-vairumtirdznieciba-4540",
                            "parvaksanas-serviss-1070",
                            "raidorganizacijas-4920",
                            "razosanas-iekartas-izejvielas-5030",
                            "rehabilitacijas-centrs-5220",
                            "reklama-4953",
                            "restorans-2686",
                            "riepas-5020",
                            "riepu-serviss-5010",
                            "sabiedriskais-transports-4430",
                            "sabiedriskas-organizacijas-5090",
                            "sadzives-tehnika-5140",
                            "sadzives-tehnikas-remonts-5130",
                            "saimniecibas-preces-5150",
                            "sakari-telekomunikacijas-5160",
                            "saldumi-2950",
                            "santehnika-5250",
                            "seifi-5260",
                            "sertifikacija-ekspertizes-5610",
                            "signalizacija-5310",
                            "skaistumkopsanas-salons-5360",
                            "skruves-stiprinajumi-3774",
                            "skardnieku-darbi-5400",
                            "slimnica-5440",
                            "sleposana-slidotava-422",
                            "smervielas-ellas-5450",
                            "sociala-aprupe-5460",
                            "solarijs-5480",
                            "somas-galanterija-5500",
                            "sporta-centrs-7016",
                            "sporta-klubs-5560",
                            "sporta-organizacijas-5580",
                            "sporta-preces-5600",
                            "sporta-skola-5590",
                            "sporta-turisma-inventara-noma-4240",
                            "stikla-taras-pienemsana-5670",
                            "stikla-skiedra-stiklaplasts-5660",
                            "stiklinieku-darbnica-5680",
                            "studijas-arzemes-macibas-arzemes-2510",
                            "stadaudzetavas-seklas-5640",
                            "sunu-frizetava-5730",
                            "svari-meraparati-3900",
                            "tabaka-tabakas-izstradajumi-5820",
                            "taxi-5830",
                            "tekstils-majas-tekstils-5900",
                            "televizija-2661",
                            "tetovejumi-5960",
                            "teatris-5870",
                            "tiesas-5970",
                            "tiesu-izpilditaji-5975",
                            "tirdzniecibas-centrs-6160",
                            "tirdzniecibas-edinasanas-iekartas-6000",
                            "tirgus-6010",
                            "trauki-6060",
                            "trikotaza-6080",
                            "tulks-6100",
                            "terpu-noma-290",
                            "ugunsdrosiba-6130",
                            "ugunsdzesibas-glabsanas-dienests-6140",
                            "urologs-3712",
                            "uzkopsanas-serviss-5940",
                            "vagonu-buve-vagonu-remonts-1643",
                            "valodu-kursi-6260",
                            "valsts-aizsardziba-6270",
                            "valsts-iestades-6280",
                            "valsts-ienemumu-dienests-7017",
                            "velosipedi-6310",
                            "veselibas-centrs-3710",
                            "veterinara-aptieka-6360",
                            "veterinara-klinika-6370",
                            "velas-mazgatava-6330",
                            "vides-aizsardziba-1353",
                            "vidusskola-6420",
                            "viesu-nami-viesnicas-6430",
                            "vestnieciba-konsulati-6380",
                            "zekes-zekubikses-6470",
                            "ziedi-6500",
                            "zinatne-petijumi-6515",
                            "zirgu-stalli-6560",
                            "zivis-juras-veltes-7018",
                            "zivju-parstrades-uznemumi-6580",
                            "zivsaimnieciba-6650",
                            "zobarstnieciba-6610",
                            "zooveikals-6630",
                            "zimogi-6600",
                            "arstniecibas-augi-886",
                            "edienu-piegade-4600",
                            "geologiska-izpete-dzilurbumi-80",
                            "kimiska-tiritava-3270",
                            "kimiskas-preces-3250",
                            "susana-apgerbu-labosana-310",
                            "susanas-piederumi-5810",
                            "udens-ieguve-attirisana-6193",
                            "udens-skaititaji-5370",
                            "udensapgade-6210",
                            "zaluzijas-6660",
                            "zogi-varti-6300"
                        ],
                        "type": "string",
                        "description": "Business category to browse (mode=byCategory). Pick from the full 1188.lv category list, or choose 'Custom category' and type your own 'slug-id' below.",
                        "default": "restorans-2686"
                    },
                    "customCategory": {
                        "title": "Custom category (overrides selection above)",
                        "type": "string",
                        "description": "Free-text category in 'slug-id' form, e.g. 'restorans-2686' (mode=byCategory). Find the slug-id by browsing https://www.1188.lv/katalogs and copying the URL segment after /katalogs/. Takes priority over 'Category' when set."
                    },
                    "city": {
                        "title": "City filter",
                        "type": "string",
                        "description": "Only return businesses whose address contains this city/town name, e.g. 'Rīga', 'Jūrmala', 'Liepāja', 'Daugavpils' (applies to any mode). Leave empty for all of Latvia. Matched case-insensitively against the parsed address."
                    },
                    "businessUrls": {
                        "title": "Business URLs (mode=byUrls)",
                        "type": "array",
                        "description": "Direct 1188.lv business page URLs to fetch, e.g. https://www.1188.lv/katalogs/restorans-2686/some-business-123456. Use the 'sourceUrl' field from search/category results.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "url": {
                                    "title": "URL",
                                    "type": "string",
                                    "description": "1188.lv business page URL."
                                }
                            }
                        },
                        "default": []
                    },
                    "minRating": {
                        "title": "Minimum rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Only return businesses rated at least this many stars (1-5). 0 means no minimum. Businesses with no rating are excluded once this is set above 0.",
                        "default": 0
                    },
                    "requireWebsite": {
                        "title": "Require website",
                        "type": "boolean",
                        "description": "Only return businesses that have a website listed on their 1188.lv profile.",
                        "default": false
                    },
                    "requireEmail": {
                        "title": "Require email",
                        "type": "boolean",
                        "description": "Only return businesses that have at least one email address listed on their 1188.lv profile.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on the number of business records to return.",
                        "default": 20
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
