> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jaarrekening.be/llms.txt
> Use this file to discover all available pages before exploring further.

# Search

> Fuzzy company search, the same engine that powers the search box on jaarrekening.be. Tolerates typos, ignores word order and matches the last word as a prefix, so partial input while a user is still typing resolves to the right company.

Use this endpoint to turn what a user typed into an enterprise number. Use `GET /enterprises` instead when you already have an exact name or number and want a filterable, paginated list.

Purely numeric input is matched against the enterprise number rather than the name. Separators are ignored, so `BE0867441056`, `0867.446.056` and `0867 446 056` are equivalent. Results are ranked by relevance and are not paginated.

<Note>
  This is the endpoint to use when a person is typing a company name. It is the
  same search engine that powers the search box on jaarrekening.be, so it
  tolerates typos, ignores word order, and matches the last word as a prefix.

  `GET /enterprises` matches exactly instead. Searching `colruit group` there
  returns nothing, because no company name contains that exact text. Here it
  returns **Colruyt Group**, the company the user meant.
</Note>

## Which endpoint should I use?

| You have                                      | Use                         |
| --------------------------------------------- | --------------------------- |
| Free text a user typed                        | `GET /search`               |
| An exact name or enterprise number            | `GET /enterprises/{search}` |
| A filter and you want to page through results | `GET /enterprises`          |

Once you have a `number` from this endpoint, pass it to any of the
`/enterprises/{search}/…` endpoints to pull financials, directors and the rest.


## OpenAPI

````yaml GET /search
openapi: 3.1.0
info:
  title: Jaarrekening.be API
  description: >-
    API for accessing Belgian enterprise data including financials, directors,
    and investments.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://jaarrekening.be/api/v1
security:
  - bearerAuth: []
paths:
  /search:
    get:
      summary: Search enterprises
      description: >-
        Fuzzy company search, the same engine that powers the search box on
        jaarrekening.be. Tolerates typos, ignores word order and matches the
        last word as a prefix, so partial input while a user is still typing
        resolves to the right company.


        Use this endpoint to turn what a user typed into an enterprise number.
        Use `GET /enterprises` instead when you already have an exact name or
        number and want a filterable, paginated list.


        Purely numeric input is matched against the enterprise number rather
        than the name. Separators are ignored, so `BE0867441056`, `0867.446.056`
        and `0867 446 056` are equivalent. Results are ranked by relevance and
        are not paginated.
      parameters:
        - name: search
          in: query
          required: true
          description: >-
            What the user typed. A company name, part of a name, or an
            enterprise number. Minimum 2 characters.
          schema:
            type: string
            minLength: 2
            maxLength: 200
          example: colruit group
        - name: limit
          in: query
          required: false
          description: Number of results to return.
          schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 10
          example: 10
        - name: countries
          in: query
          required: false
          description: >-
            Comma separated ISO country codes to narrow results to, for example
            `BE,FR`. This only ever narrows: it cannot grant access to data your
            token does not already cover.
          schema:
            type: string
          example: BE
      responses:
        '200':
          description: >-
            Matching enterprises, most relevant first. An empty `data` array
            means no match.
          content:
            application/json:
              schema:
                type: object
              example:
                data:
                  - slug: colruyt-group
                    name: Colruyt Group
                    number: 0400.378.485
                    country: BE
                    logo: >-
                      https://jaarrekening.be/storage/logos/NmqDDBzAyOcsAHc4LpVdVgMb74CozdYKapJbfYkg.jpg
                    url: https://jaarrekening.be/nl/be/colruyt-group/0400.378.485
                    municipality_nl: Halle
                    municipality_fr: Halle
                    zipcode: '1500'
                    juridical_situation: 0
                  - slug: colruyt-group-foundation
                    name: Colruyt Group Foundation
                    number: 0753.616.160
                    country: BE
                    logo: null
                    url: >-
                      https://jaarrekening.be/nl/be/colruyt-group-foundation/0753.616.160
                    municipality_nl: Halle
                    municipality_fr: Halle
                    zipcode: '1500'
                    juridical_situation: 0
        '422':
          description: >-
            Validation failed, for example a `search` shorter than 2 characters
            or a `limit` above 50.
          content:
            application/json:
              schema:
                type: object
              example:
                message: The search field is required.
                errors:
                  search:
                    - The search field is required.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````