---
title: "Fulltext search + filters (public)"
method: GET
path: "/v1/search"
tags: ["search"]
---

# Fulltext search + filters (public)

`GET /v1/search`

## Request

- Base URL: `https://api.orsf.sk`
- URL: `https://api.orsf.sk/v1/search`
- Auth: none declared

Public fulltext over company names, with two numeric fast-paths that bypass Meilisearch and read straight from the database (sub-100ms, always fresh):

- `q` = 6–8 digits → exact national ID (IČO) lookup, response `mode: "ico"`, at most 1 hit.
- `q` = exactly 10 digits → exact tax ID (DIČ) lookup, response `mode: "dic"`, up to 5 hits (DIČ is not unique in the source registers, so this returns a normal result list).
- anything else → Meilisearch with facet support, response `mode: "meili"`.

The two fast-path ranges cannot overlap (6–8 vs. exactly 10 digits); a 9-digit query goes to Meilisearch. VAT ID (IČ DPH, `SK…`) lookup is NOT supported here — use the `vatId` field on `/v1/companies/{ico}`. Filters: `kind`, `legalForm`, `register`, `status`, `region`, `isVatPayer`, `establishedYearMin/Max`.

## Query parameters

- `q` string
- `limit` integer
- `offset` integer
- `kind` 'company' | 'sole_trader' | 'other'
- `legalForm` string
- `register` string
- `isVatPayer` 'true' | 'false'
- `region` string

## Response `200`

Search results with facets. `mode` is one of `ico` | `dic` | `meili` and tells you which engine answered: `ico`/`dic` are exact DB fast-paths (`facetDistribution` is always `{}`, `estimatedTotalHits` is the exact hit count), `meili` is fulltext with facets. The hit object shape is identical for `ico` and `dic`.

## Other responses

- `429`: Too many requests — see Retry-After header

---

[API](https://skmtc.dev/orsf/apis/orsf-api-open-register-of-slovak-companies.md) · [All operations](https://skmtc.dev/orsf/apis/orsf-api-open-register-of-slovak-companies/llms.txt) · [OpenAPI document](https://skmtc.dev/orsf/apis/orsf-api-open-register-of-slovak-companies/revisions/21d1be487652?raw)
