{
  "openapi": "3.0.1",
  "info": {
    "title": "UnternehmensScreener API",
    "version": "v1",
    "description": "# Getting started\n\n- **API key:** If you don't have an API key, head over to [firmenakte.at/app/api](https://firmenakte.at/app/api).\n- **Install:** `npm i @firmenakte/api-client`\n- **MCP:** Point your AI agent (Cursor, Claude, …) at the MCP server **mcp.firmenakte.at/mcp** and it\n  queries companies, people and change feeds through this API directly, on your key and your quota.\n\n## Quickstart\n\nOne request, one minute. `34853f` is PORR AG — a real Firmenbuchnummer, so this works as written.\n\n```sh\nexport FIRMENAKTE_KEY=<your key>\ncurl -H \"x-api-key: $FIRMENAKTE_KEY\" https://api.firmenakte.at/api/v1/businesses/34853f\n```\n\n```json\n{\n  \"fnr\": \"34853f\",\n  \"name\": \"PORR AG\",\n  \"legalForm\": { \"code\": \"AG\", \"text\": \"Aktiengesellschaft\" },\n  \"court\": { \"code\": \"90001\", \"text\": \"Wien\" },\n  \"isActive\": true,\n  \"addresses\": [{ \"street\": \"Absberggasse\", \"zipCode\": \"1100\", \"city\": \"Wien\" }],\n  \"oenaces\": [{ \"code\": \"N 70.10-0\", \"kurztitel\": \"Führung v. Unternehmen\" }],\n  \"latestKeyFigures\": { \"employees\": 561, \"bilanzSumme\": 1775949626.05 }\n}\n```\n\nEvery request needs the `x-api-key` header: without it you get `401`, and once your plan's monthly\nquota is spent you get `429` with a `Retry-After`. Every endpoint costs exactly one request.\n\nFrom here: `GET /businesses?search=porr` finds a company by name, `GET /businesses` with filters\nscreens a whole market, and `GET /globalchanges?sinceId=…` polls for what has changed since.\n\n## Glossary\n\nThese identifiers are the currency of the whole API. They are matched **exactly** as stored — the one\nexception is the `fnr` _filter_, below — so pass them back in the form the API gave you.\n\n- **`fnr`** — Firmenbuchnummer, the id of an Austrian company, normalised: lower case, no spaces, no\n  leading zeros, no `FN` prefix. `34853f`, never `FN 34853 f` and never `034853F`. It is the path\n  segment of `/businesses/{fnr}` and a filter on most other endpoints. As a filter — on\n  `/businesses`, on `/people`, on `/graph` and on every change feed — the value you send is\n  normalised the same way before matching — trimmed, spaces and leading zeros removed — so\n  `?fnr=034853 f` finds the same company as `?fnr=34853f`. Case is never folded (`034853F` matches\n  nothing), and the path segment is matched exactly, so `/businesses/034853f` answers 404.\n- **`vnr`** — Vollzugsnummer, the id of a single Firmenbuch legal record (Eintragung). Unique per\n  company, so a record is identified by the pair `(fnr, vnr)`.\n- **`gisaZahl`** — the number of one trade licence (Gewerbeberechtigung) in the GISA register. A\n  company usually holds several, each with its own wording, address and status.\n- **`tradeKey`** — the Gewerbeschlüssel: the code of a _kind_ of trade in the GISA catalogue, e.g.\n  `500267`. So `gisaZahl` is one company's licence and `tradeKey` is the trade it is a licence for.\n  Browse the catalogue at `GET /trades`; filter companies by trade with `gisaLicenseKey`.\n- **`documentKey`** — the id of a document filed with the Firmenbuch, a Jahresabschluss for instance.\n  Download it with `GET /documents/download/{documentKey}`.\n- **`personId`** — a synthetic id for a person, built as `firstname-lastname-birthdate`: lower case,\n  inner spaces replaced by hyphens, the birthdate as `yyyy-mm-dd`, and `x` for a part the register\n  does not give — `max-mustermann-1970-01-01`, or `max-mustermann-x` without a birthdate.\n- **Edikt** — a notice published in the Ediktsdatei, the Austrian courts' public register; most\n  importantly insolvency proceedings. `hasEdikt` on a company means at least one is on file for it.\n- **Scheinunternehmen** — a company on the Finanzministerium's published list of bogus companies\n  (BMF LSU). `isScheinunternehmen` says whether it is on the list, and\n  `scheinunternehmenKundmachungen` on the detail response carries the publications behind it.\n- **OENACE** — the Austrian form of the EU's NACE industry classification. A company carries its code\n  as `oenaceNumericCode` (e.g. `46649`) and the full entries under `oenaces`; the catalogue is\n  `GET /oenace`, and `oenaceCode` filters `/businesses` by it.\n\n## Pagination\n\nEvery list endpoint takes `page` and `pageSize` and answers with the same envelope: `data`, plus\n`pageNumber`, `pageSize`, `totalRecords` and `totalPages`. Omitting them is not an error — `page`\ndefaults to `1` and `pageSize` to `10`, except on the change feeds (`/globalchanges`,\n`/businesses/changes`, `/documents/changes`, `/edikte/changes`, `/trades/changes`), where `pageSize`\ndefaults to `100`. `totalRecords` counts every match, not the rows on this page.\n\nOn the five change feeds it counts only as far as `page` reaches: `page` stops at 1000, so\n`totalRecords` stops at `1000 × pageSize` and `totalPages` at `1000`. Below that cap it is the exact\nnumber of matches, as everywhere else — every `fnr` query and every caught-up `sinceId` poll is — and\nat it, it means \"at least this many\". Counting a register of millions of changes on every poll cost\nmore than delivering the page did, and no page past 1000 can be requested anyway.\n\nOffset paging is safe on a static list, but a change feed grows while you read it — see below for how\nto poll one without skipping a change.\n\n## Polling for changes\n\nThe five change feeds — `/globalchanges` and the typed `/businesses/changes`, `/documents/changes`,\n`/edikte/changes`, `/trades/changes` — are all ordered by **ascending `id`**, and that `id` is the\ncursor. Ids are assigned once and never reused, and the same id identifies a change in the typed feed\nand in `/globalchanges`.\n\nThe recipe, and the only reliable one:\n\n1. Request the feed with `sinceId=<the highest id you have stored>`, `page=1` and a fixed `pageSize`.\n2. Read `data`, then request `page=2`, `page=3`, … with **the same `sinceId`**, until a page comes\n   back with fewer than `pageSize` rows.\n3. Store the highest `id` you saw, and start the next poll from it.\n\n`sinceId` is **exclusive**: the change with that id is not returned, so nothing is delivered twice.\nBecause a new change always takes a higher id than everything already in the feed, changes that arrive\nin the middle of a poll are appended to the end — they cannot shift a page you have already read, so\nwalking the pages misses nothing.\n\n`since` is a different filter, not a cursor: it is inclusive, filters on when _we recorded_ the change\nrather than on the date the register carries, and applies together with `sinceId` when both are sent.\nIt is useful for a first backfill; for polling, use `sinceId`.\n\n**Paging without `sinceId` is not a feed.** `page` stops at 1000, and an offset is not a watermark:\nthe next poll has nothing to resume from, and rows arriving between two requests move the whole feed\nunder the offsets.\n\nOne honest caveat: two changes being written at the same moment can become visible out of id order for\na moment, so a change can appear just after a higher id was already delivered. A consumer that must\nnever miss a change — an insolvency notice, say — resumes each poll from the _previous_ poll's\nwatermark instead of the newest one, which costs one cycle of overlap, and de-duplicates by `id`.\n\n```sh\n# Everything since change 41 200, one page at a time.\ncurl -H \"x-api-key: $FIRMENAKTE_KEY\" \\\n  \"https://api.firmenakte.at/api/v1/edikte/changes?sinceId=41200&page=1&pageSize=100\"\n```\n\n## Reading the numbers\n\nThe financial figures — `latestKeyFigures`, and every entry of `parsedJahresabschluesse` — are read\nfrom a company's filed annual accounts, one filing at a time. `null` always means **this position was\nnot reported in that filing**, never zero and never \"the company has none\": most companies file\nabridged accounts, so most positions are absent for most companies. Do not sum or average a `null`\nas `0`.\n\nWhich year a figure belongs to is the `documentDate` of the object carrying it — the date of the\nfiling it was parsed from. `latestKeyFigures` comes from whichever filing has the latest\n`documentDate`, so two companies are only comparable if their `documentDate` is.\n\n## Errors\n\nEvery endpoint can answer with an error, and there are three body shapes:\n\n- **`401` and `429`** are written before your request reaches an endpoint, so they are plain\n  `application/json`: `{ \"error\": \"…\" }` (`ApiError`).\n- **`400`, `404` and `500`** come from the API itself as RFC 7807 `application/problem+json`\n  (`ProblemDetails`): `title`, `status`, `detail`, `instance`, plus a `traceId` worth quoting in a\n  support request. A model validation failure adds `errors`, keyed by field, and a body written by\n  the exception handler — every `500`, and the `400`/`404`s that come from a thrown exception — also\n  carries `correlationId`. That value is on **every** response as the `X-Correlation-ID` header,\n  echoing the `x-correlation-id` you sent or a new one if you sent none, so quote the header rather\n  than waiting for the field.\n- **`503`** occurs only on `GET /documents/download/{documentKey}` and is neither: a `text/plain`\n  German sentence, `Firmenbuch API aktuell nicht verfügbar`. Do not parse it as JSON — retry the\n  download later.\n\n| Status | When                                                                                     |\n| ------ | ---------------------------------------------------------------------------------------- |\n| 400    | a malformed or out-of-range parameter, or a filter value the endpoint does not accept    |\n| 401    | `x-api-key` missing, unknown or no longer active                                         |\n| 404    | no resource matches the identifier                                                       |\n| 429    | the monthly quota is exhausted, or too many requests in a short burst — see below        |\n| 500    | unexpected server error                                                                  |\n| 503    | only on document downloads: the Firmenbuch document service is unreachable — retry later |\n\n## Quotas & rate limits\n\n**Monthly quota.** Each plan carries a monthly request quota; see\n[firmenakte.at/app/api](https://firmenakte.at/app/api) for your current usage and limits. The count is kept **per\nuser, not per key** — issuing or rotating a key does not reset it — and it resets at 00:00 UTC on\nthe first of the month.\n\nThe quota is checked after your key is authenticated and before the endpoint runs, so **a request\nis billed whatever it answers**: a 400, a 404 and a 500 all count. A request rejected with 401, or\nrejected by the burst limit below, does not. Once the quota is used up, every request answers `429`\nwith `{\"error\":\"Monthly request quota exceeded…\"}` and a `Retry-After` header holding the seconds\nuntil the reset.\n\n**Burst limit.** Independently of the quota, a sliding window caps how fast a single key may call —\n1000 requests per 60 seconds by default. Over it the API also answers `429`, with the same body\nshape and `Retry-After: 60`. These requests never reach the quota counter, so they are not billed.\n\n`Retry-After` is what tells the two apart: 60 seconds is the burst limit, anything larger is the\nmonthly quota.\n"
  },
  "servers": [
    {
      "url": "https://api.firmenakte.at"
    }
  ],
  "paths": {
    "/api/v1/queries": {
      "get": {
        "tags": [
          "Queries"
        ],
        "summary": "Your Abfragen",
        "description": "Every saved Abfrage of the calling account, newest first.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QueryResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QueryResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QueryResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1QueriesList();"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/queries' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      },
      "post": {
        "tags": [
          "Queries"
        ],
        "summary": "Save an Abfrage",
        "description": "Keeps a filter set. A save whose filters match an Abfrage the account already has updates that one instead of adding a second — pass updateId to pin the row being edited.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveQueryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveQueryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveQueryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1QueriesCreate();"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X POST 'https://api.firmenakte.at/api/v1/queries' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/queries/{id}": {
      "get": {
        "tags": [
          "Queries"
        ],
        "summary": "One Abfrage",
        "description": "The saved Abfrage with this id, when it belongs to the calling account.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1QueriesDetail('string');"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/queries/string' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      },
      "delete": {
        "tags": [
          "Queries"
        ],
        "summary": "Delete an Abfrage",
        "description": "Removes one saved Abfrage from the Suchverlauf.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1QueriesDelete('string');"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X DELETE 'https://api.firmenakte.at/api/v1/queries/string' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/queries/all": {
      "delete": {
        "tags": [
          "Queries"
        ],
        "summary": "Clear the Suchverlauf",
        "description": "Deletes every saved Abfrage of the calling account.",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1QueriesAllDelete();"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X DELETE 'https://api.firmenakte.at/api/v1/queries/all' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/lists": {
      "get": {
        "tags": [
          "Lists"
        ],
        "summary": "Your Listen",
        "description": "Every Liste of the calling account, oldest first.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ListResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ListResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ListResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1ListsList();"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/lists' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      },
      "post": {
        "tags": [
          "Lists"
        ],
        "summary": "Create a Liste",
        "description": "Creates an empty Liste, or one already holding the companies you pass.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateListRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateListRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateListRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1ListsCreate();"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X POST 'https://api.firmenakte.at/api/v1/lists' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/lists/{id}": {
      "get": {
        "tags": [
          "Lists"
        ],
        "summary": "One Liste",
        "description": "The Liste with this id, when it belongs to the calling account.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1ListsDetail('string');"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/lists/string' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      },
      "patch": {
        "tags": [
          "Lists"
        ],
        "summary": "Update a Liste",
        "description": "A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateListRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateListRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateListRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1ListsPartialUpdate('string');"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X PATCH 'https://api.firmenakte.at/api/v1/lists/string' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      },
      "delete": {
        "tags": [
          "Lists"
        ],
        "summary": "Delete a Liste",
        "description": "Deletes the Liste. The companies on it are not touched anywhere else.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1ListsDelete('string');"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X DELETE 'https://api.firmenakte.at/api/v1/lists/string' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/lists/{id}/add": {
      "post": {
        "tags": [
          "Lists"
        ],
        "summary": "Add companies to a Liste",
        "description": "Appends the companies that are not on it yet, keeping the order of the ones that are. A company that had been taken off comes back off the removed set.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListMembersRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ListMembersRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ListMembersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1ListsAddCreate('string');"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X POST 'https://api.firmenakte.at/api/v1/lists/string/add' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/lists/{id}/remove": {
      "post": {
        "tags": [
          "Lists"
        ],
        "summary": "Remove companies from a Liste",
        "description": "Takes the companies off the Liste and records them as removed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListMembersRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ListMembersRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ListMembersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1ListsRemoveCreate('string');"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X POST 'https://api.firmenakte.at/api/v1/lists/string/remove' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/exports/businesses": {
      "post": {
        "tags": [
          "Exports"
        ],
        "summary": "Export companies",
        "description": "Builds a CSV or an Excel workbook over the companies you name: an explicit set of FNRs, a Liste, or a saved Abfrage. Nothing is stored and no link is handed back: the CSV is written out as it is produced, the workbook is built in memory first. One export carries at most 1000 companies: a set of FNRs or a Liste that holds more is refused with a 400 rather than cut short, and a saved Abfrage exports its first 1000 matches. An export that would hold no rows answers 204 rather than an empty file.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportBusinessesRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportBusinessesRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ExportBusinessesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/FileResult"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/FileResult"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1ExportsBusinessesCreate();"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X POST 'https://api.firmenakte.at/api/v1/exports/businesses' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/trades/documents/{gisaZahl}": {
      "get": {
        "tags": [
          "Trades"
        ],
        "summary": "GISA PDF extract",
        "description": "Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De).",
        "parameters": [
          {
            "name": "gisaZahl",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "historical",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "language",
            "in": "query",
            "schema": {
              "enum": [
                "De",
                "En"
              ],
              "default": "De"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/pdf": {}
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1TradesDocumentsDetail(0, { historical: false, language: 'De' });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/trades/documents/0?historical=false&language=De' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/trades": {
      "get": {
        "tags": [
          "Trades"
        ],
        "summary": "GISA trade catalog",
        "description": "Returns the global catalog of GISA Trade Definitions with pagination.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "minCompanyCount",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfTradeCatalogItemResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfTradeCatalogItemResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfTradeCatalogItemResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1TradesList({ search: 'string', minCompanyCount: 0, page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/trades?search=string&minCompanyCount=0&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/trades/{tradeKey}/licenses": {
      "get": {
        "tags": [
          "Trades"
        ],
        "summary": "Licenses by trade",
        "description": "Returns all company licenses for a specific trade definition with pagination.",
        "parameters": [
          {
            "name": "tradeKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfGisaLicense"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfGisaLicense"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfGisaLicense"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1TradesLicensesList(0, { page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/trades/0/licenses?page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/trades/company/{fnr}": {
      "get": {
        "tags": [
          "Trades"
        ],
        "summary": "Company GISA licenses",
        "description": "Returns all licenses for a specific company (FNR).",
        "parameters": [
          {
            "name": "fnr",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GisaLicense"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GisaLicense"
                  }
                },
                "example": [
                  {
                    "gisaZahl": 31284915,
                    "fnr": "477012p",
                    "createdAt": "2023-02-09T21:41:03.884Z",
                    "updatedAt": "2026-04-27T02:33:19.640Z",
                    "licenseKey": 21422,
                    "trade": {
                      "licenseKey": 21422,
                      "createdAt": "2021-02-11T09:00:00.000Z",
                      "updatedAt": "2021-02-11T09:00:00.000Z",
                      "description": "Handelsgewerbe und Handelsagent",
                      "isHistorical": false
                    },
                    "description": "Handelsgewerbe und Handelsagent",
                    "isActive": true,
                    "addressId": 811204,
                    "personId": null
                  },
                  {
                    "gisaZahl": 33907442,
                    "fnr": "477012p",
                    "createdAt": "2023-02-09T21:41:03.884Z",
                    "updatedAt": "2026-04-27T02:33:19.640Z",
                    "licenseKey": 62021,
                    "trade": {
                      "licenseKey": 62021,
                      "createdAt": "2021-02-11T09:00:00.000Z",
                      "updatedAt": "2021-02-11T09:00:00.000Z",
                      "description": "Güterbeförderung mit Kraftfahrzeugen",
                      "isHistorical": false
                    },
                    "description": "Güterbeförderung mit Kraftfahrzeugen im nationalen Verkehr",
                    "isActive": false,
                    "addressId": 811204,
                    "personId": "gerald-steinmetz-1965-11-02"
                  }
                ]
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GisaLicense"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1TradesCompanyDetail('string');"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/trades/company/string' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/trades/changes/{id}": {
      "get": {
        "tags": [
          "Trades"
        ],
        "summary": "GISA change by id",
        "description": "Returns a single GISA change by id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GisaChange"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GisaChange"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GisaChange"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1TradesChangesDetail(0);"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/trades/changes/0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/trades/changes": {
      "get": {
        "tags": [
          "Trades"
        ],
        "summary": "GISA change feed",
        "description": "Feed of GISA changes — one entry per change to a company's trade licences. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means \"at least this many\" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.",
        "parameters": [
          {
            "name": "fnr",
            "in": "query",
            "description": "Only changes for this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "since",
            "in": "query",
            "description": "Only changes we recorded at or after this instant — inclusive, and ANDed with sinceId when both are sent. A timestamp is not a cursor: poll on sinceId.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "sinceId",
            "in": "query",
            "description": "Only changes with a higher id than this — exclusive, so pass back the highest id you have stored. This is the cursor to poll the feed on.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted. Walk it upwards within one poll, holding sinceId fixed, until a page comes back with fewer than pageSize rows.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfGisaChange"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfGisaChange"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfGisaChange"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1TradesChangesList({ fnr: 'string', since: '2024-01-01T00:00:00.000Z', sinceId: 0, page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/trades/changes?fnr=string&since=2024-01-01T00%3A00%3A00.000Z&sinceId=0&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/search": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Companies and people in one ranked list",
        "description": "The autocomplete read: /businesses and /people for one term, ranked together, so a search field costs one request per keystroke rather than two and does not have to merge two orders itself. Each row carries either business or person, whichever type names. Ordered by where the term sits in the name, then by the shorter name, then companies before people. pageSize is per side, so the answer holds up to twice as many rows. An empty search answers an empty list; use /businesses to page through the whole dataset.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "description": "The term. Empty answers an empty list — this endpoint suggests, it does not list.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "How many rows to take from each side before they are ranked together, so the answer holds at most twice this many; defaults to 10 when omitted.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1SearchList({ search: 'string', pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/search?search=string&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/people/names": {
      "get": {
        "tags": [
          "People"
        ],
        "summary": "Person name index",
        "description": "Returns (id, name) pairs for all people with at least one business assignment. For client-side name index.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PersonNameItem"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PersonNameItem"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PersonNameItem"
                  }
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1PeopleNamesList();"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/people/names' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/people": {
      "get": {
        "tags": [
          "People"
        ],
        "summary": "People search",
        "description": "Lists people who hold a function in, or a GISA licence for, an Austrian company. name and search behave identically here — both split the term on spaces and keep people whose \"firstName lastName\" contains every token, case-insensitively — except that search wins when both are given. Ordered by last name, then first name unless orderBy says otherwise. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte all describe one and the same assignment: a person comes back only if a single company of theirs satisfies every one of them. So the youngest owners of this year's new Viennese companies are one page: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG&orderBy=birthDate&orderByDescending=true&pageSize=3",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "firstName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lastName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "functionCode",
            "in": "query",
            "description": "Only people holding one of these functions, e.g. IN, KP, GS and PG for the owner roles. Repeat the parameter for more than one code; they are ORed. Only a person's current role at a company counts — where the register filed several rows for them there, the newest (highest vnr) one is the one matched, so a GS later superseded by a GF no longer answers to functionCode=GS.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "businessName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "businessCity",
            "in": "query",
            "description": "Only people assigned to a company whose Geschäftsanschrift is in this city. Matched exactly (trimmed, case-insensitively), unlike city on /businesses, which is a substring match: businessCity=Wien does not return Wiener Neustadt.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "businessRegisteredSince_gte",
            "in": "query",
            "description": "Only people assigned to a company registered (\"Eingetragen seit\") on or after this date — the same fact as registeredSince_gte on /businesses. Companies whose registration date is unknown are excluded, as they are there.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "fnr",
            "in": "query",
            "description": "Only people assigned to this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hasEdikt",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "Sort key; only \"birthDate\" is supported. Omitted, people come back by last name, then first name. People whose birth date the register does not give sort last under orderByDescending=true.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderByDescending",
            "in": "query",
            "description": "If true, sort descending; with orderBy=birthDate that is the youngest first.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfPerson"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfPerson"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfPerson"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1PeopleList({ name: 'string', search: 'string', firstName: 'string', lastName: 'string', functionCode: [], businessName: 'string', businessCity: 'string', businessRegisteredSince_gte: '2024-01-01T00:00:00.000Z', fnr: 'string', hasEdikt: true, orderBy: 'string', orderByDescending: true, page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/people?name=string&search=string&firstName=string&lastName=string&functionCode=&businessName=string&businessCity=string&businessRegisteredSince_gte=2024-01-01T00%3A00%3A00.000Z&fnr=string&hasEdikt=true&orderBy=string&orderByDescending=true&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/people/{personId}": {
      "get": {
        "tags": [
          "People"
        ],
        "summary": "Person detail",
        "description": "Returns one person with every company function, GISA licence and Edikt attached to them. personId is the synthetic id described in the glossary — \"firstname-lastname-birthdate\", lower case, inner spaces replaced by hyphens and \"x\" for a part the register does not give, e.g. \"max-mustermann-1970-01-01\". It is matched exactly. Take it from a list row or from an assignment on a company rather than composing it yourself.",
        "parameters": [
          {
            "name": "personId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PersonDetailResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonDetailResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1PeopleDetail('string');"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/people/string' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/oenace": {
      "get": {
        "tags": [
          "Oenace"
        ],
        "summary": "OeNACE classification catalog",
        "description": "Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ebene",
            "in": "query",
            "description": "Filter by hierarchy level (1–5). Omit to return all levels.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "minCompanyCount",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfOenaceCatalogItemResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfOenaceCatalogItemResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfOenaceCatalogItemResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1OenaceList({ search: 'string', ebene: 0, minCompanyCount: 0, page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/oenace?search=string&ebene=0&minCompanyCount=0&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/legalforms": {
      "get": {
        "tags": [
          "LegalForms"
        ],
        "summary": "Legal form catalog",
        "description": "Returns all legal forms with pagination and optional search, sorted by business count descending.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "maxLength": 200,
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfLegalFormCatalogItemResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfLegalFormCatalogItemResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfLegalFormCatalogItemResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1LegalformsList({ search: 'string', page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/legalforms?search=string&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/graph": {
      "get": {
        "tags": [
          "Graph"
        ],
        "summary": "Relationship graph",
        "description": "Returns the graph (nodes and edges) within 2 hops of the start entity. Exactly one of personId or fnr must be provided. The network of people and companies around one starting point — who sits on which board with whom. nodes are people (\"person\") and companies (\"business\"), each carrying the id you would pass to /people/{personId} or /businesses/{fnr}; edges are source/target pairs of those ids whose relationshipType is \"assignment\", a person holding a function in a company. Two further edge types the deployment can enable: \"address\", two companies registered at the same street address, and \"ownership\", a company holding shares in another — source is the shareholder, target the company it holds, and capitalAmount, currency and sharePercent carry the stake where the register gives one. Ownership edges are drawn only for companies crawled since the shareholder mapping went live, so a company not yet re-crawled reports none rather than implying it has none. The traversal depth is fixed at 2 hops and is not a parameter — a node with further connections outside that boundary carries hasMore=true, and isCentralNode marks the entity you started from. personId and fnr are mutually exclusive, not combinable: supplying both, or neither, is a 400, and an id that exists in neither register is a 404.",
        "parameters": [
          {
            "name": "personId",
            "in": "query",
            "description": "Start from this person. Mutually exclusive with fnr.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fnr",
            "in": "query",
            "description": "Start from this company. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company; case is not folded. Mutually exclusive with personId.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GraphResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GraphResponse"
                },
                "example": {
                  "nodes": [
                    {
                      "id": "477012p",
                      "type": "business",
                      "label": "Alpenquell Getränkehandel GmbH",
                      "isCentralNode": true,
                      "hasMore": false
                    },
                    {
                      "id": "martina-hofbauer-1978-03-14",
                      "type": "person",
                      "label": "Mag. Martina Hofbauer",
                      "isCentralNode": false,
                      "hasMore": false
                    },
                    {
                      "id": "bernhard-ostermann-1969-08-22",
                      "type": "person",
                      "label": "Bernhard Ostermann",
                      "isCentralNode": false,
                      "hasMore": true
                    },
                    {
                      "id": "398201s",
                      "type": "business",
                      "label": "Donaustadt Logistik GmbH",
                      "isCentralNode": false,
                      "hasMore": false
                    },
                    {
                      "id": "301774k",
                      "type": "business",
                      "label": "Sonnwend Immobilienverwaltung GmbH",
                      "isCentralNode": false,
                      "hasMore": false
                    }
                  ],
                  "edges": [
                    {
                      "source": "martina-hofbauer-1978-03-14",
                      "target": "477012p",
                      "isActive": true,
                      "relationshipType": "assignment"
                    },
                    {
                      "source": "bernhard-ostermann-1969-08-22",
                      "target": "477012p",
                      "isActive": true,
                      "relationshipType": "assignment"
                    },
                    {
                      "source": "bernhard-ostermann-1969-08-22",
                      "target": "398201s",
                      "isActive": true,
                      "relationshipType": "assignment"
                    },
                    {
                      "source": "398201s",
                      "target": "477012p",
                      "isActive": true,
                      "relationshipType": "ownership",
                      "capitalAmount": 17500,
                      "currency": "EUR",
                      "sharePercent": 50
                    },
                    {
                      "source": "477012p",
                      "target": "301774k",
                      "isActive": true,
                      "relationshipType": "address"
                    }
                  ]
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GraphResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1GraphList({ personId: 'string', fnr: 'string' });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/graph?personId=string&fnr=string' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/globalchanges": {
      "get": {
        "tags": [
          "GlobalChanges"
        ],
        "summary": "All-register change feed",
        "description": "The single feed of every change across all registers — Firmenbuch, GISA, Ediktsdatei and the BMF Scheinunternehmen list — as lightweight reference rows. Each row carries only id, fnr, changeType and the dates; fetch the payload with GET /globalchanges/{id}, or poll one register's typed feed instead (/businesses/changes, /documents/changes, /edikte/changes, /trades/changes). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means \"at least this many\" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id.",
        "parameters": [
          {
            "name": "fnr",
            "in": "query",
            "description": "Only changes for this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "since",
            "in": "query",
            "description": "Only changes we recorded at or after this instant — inclusive, and ANDed with sinceId when both are sent. A timestamp is not a cursor: poll on sinceId.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "sinceId",
            "in": "query",
            "description": "Only changes with a higher id than this — exclusive, so pass back the highest id you have stored. This is the cursor to poll the feed on.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted. Walk it upwards within one poll, holding sinceId fixed, until a page comes back with fewer than pageSize rows.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfGlobalChange"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfGlobalChange"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfGlobalChange"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1GlobalchangesList({ fnr: 'string', since: '2024-01-01T00:00:00.000Z', sinceId: 0, page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/globalchanges?fnr=string&since=2024-01-01T00%3A00%3A00.000Z&sinceId=0&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/globalchanges/aggregated": {
      "get": {
        "tags": [
          "GlobalChanges"
        ],
        "summary": "Aggregated watchlist changes",
        "description": "Changes for a watchlist of companies, all four change types in one unpaged response. Built for watchlist polling: pass up to 1000 fnr values (repeat the parameter) and one cursor, and get back four arrays — businessChanges, documentChanges, ediktChanges, globalChanges — each ordered by ascending id and capped at maxResultsPerType. Not paged: raise maxResultsPerType or advance sinceId instead. sinceId is exclusive and since is inclusive, exactly as on the paged feeds, but one sinceId covers all four arrays: an array that comes back full at maxResultsPerType has more behind it and bounds the cursor, so advance sinceId only to the lowest of the full arrays' highest ids, and to the highest id of all four once none comes back full. Passing no fnr returns four empty arrays, not the whole feed.",
        "parameters": [
          {
            "name": "fnr",
            "in": "query",
            "description": "Firmenbuch numbers to fetch changes for. Max 1000 items. Each is normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "since",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "sinceId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "maxResultsPerType",
            "in": "query",
            "description": "Max number of changes to return per type. Default 500, max 2000.",
            "schema": {
              "maximum": 2000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AggregatedChangesResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AggregatedChangesResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AggregatedChangesResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1GlobalchangesAggregatedList({ fnr: [], since: '2024-01-01T00:00:00.000Z', sinceId: 0, maxResultsPerType: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/globalchanges/aggregated?fnr=&since=2024-01-01T00%3A00%3A00.000Z&sinceId=0&maxResultsPerType=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/globalchanges/{id}": {
      "get": {
        "tags": [
          "GlobalChanges"
        ],
        "summary": "Change by id",
        "description": "Returns one change with its typed payload, whichever register it came from. The envelope is a discriminator plus the payload: changeType says which register, and data is the matching object — a BusinessChange, DocumentChange, EdiktChange, GisaChange or ScheinunternehmenChange. Since data is a union, read changeType before it.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ChangeDetailResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangeDetailResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangeDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1GlobalchangesDetail(0);"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/globalchanges/0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/edikte/changes/{id}": {
      "get": {
        "tags": [
          "Edikte"
        ],
        "summary": "Edikt change by id",
        "description": "Returns one Ediktsdatei change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not \"edikt\" answers 404 here.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EdiktChange"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EdiktChange"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EdiktChange"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1EdikteChangesDetail(0);"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/edikte/changes/0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/edikte/changes": {
      "get": {
        "tags": [
          "Edikte"
        ],
        "summary": "Ediktsdatei change feed",
        "description": "Feed of Ediktsdatei changes — insolvency and other court notices published about a company or a person. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the publication date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means \"at least this many\" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss an insolvency notice resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.",
        "parameters": [
          {
            "name": "fnr",
            "in": "query",
            "description": "Only changes for this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "since",
            "in": "query",
            "description": "Only changes we recorded at or after this instant — inclusive, and ANDed with sinceId when both are sent. A timestamp is not a cursor: poll on sinceId.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "sinceId",
            "in": "query",
            "description": "Only changes with a higher id than this — exclusive, so pass back the highest id you have stored. This is the cursor to poll the feed on.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted. Walk it upwards within one poll, holding sinceId fixed, until a page comes back with fewer than pageSize rows.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfEdiktChange"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfEdiktChange"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfEdiktChange"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1EdikteChangesList({ fnr: 'string', since: '2024-01-01T00:00:00.000Z', sinceId: 0, page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/edikte/changes?fnr=string&since=2024-01-01T00%3A00%3A00.000Z&sinceId=0&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/documents/download/{documentKey}": {
      "get": {
        "tags": [
          "Documents"
        ],
        "summary": "Firmenbuch document download",
        "description": "Downloads a Firmenbuch document (PDF/XML) by its document key.",
        "parameters": [
          {
            "name": "documentKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/pdf": {},
              "application/xml": {},
              "application/octet-stream": {}
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "The Firmenbuch document service is unreachable. Retry later; counts against the monthly quota.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1DocumentsDownloadDetail('string');"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/documents/download/string' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/documents/changes/{id}": {
      "get": {
        "tags": [
          "Documents"
        ],
        "summary": "Document change by id",
        "description": "Returns one document change by id, with the document's metadata. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not \"document\" answers 404 here.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentChange"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentChange"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentChange"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1DocumentsChangesDetail(0);"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/documents/changes/0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/documents/changes": {
      "get": {
        "tags": [
          "Documents"
        ],
        "summary": "Document change feed",
        "description": "Feed of newly filed Firmenbuch documents — this is how you learn that a company has published a new Jahresabschluss. Each entry names a documentKey; fetch the file itself with GET /documents/download/{documentKey}. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the document date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means \"at least this many\" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.",
        "parameters": [
          {
            "name": "fnr",
            "in": "query",
            "description": "Only changes for this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "since",
            "in": "query",
            "description": "Only changes we recorded at or after this instant — inclusive, and ANDed with sinceId when both are sent. A timestamp is not a cursor: poll on sinceId.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "sinceId",
            "in": "query",
            "description": "Only changes with a higher id than this — exclusive, so pass back the highest id you have stored. This is the cursor to poll the feed on.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted. Walk it upwards within one poll, holding sinceId fixed, until a page comes back with fewer than pageSize rows.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfDocumentChange"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfDocumentChange"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfDocumentChange"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1DocumentsChangesList({ fnr: 'string', since: '2024-01-01T00:00:00.000Z', sinceId: 0, page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/documents/changes?fnr=string&since=2024-01-01T00%3A00%3A00.000Z&sinceId=0&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/courts": {
      "get": {
        "tags": [
          "Courts"
        ],
        "summary": "Court catalog",
        "description": "Returns all courts with pagination and optional search, sorted by business count descending.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "maxLength": 200,
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfCourtCatalogItemResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfCourtCatalogItemResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfCourtCatalogItemResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1CourtsList({ search: 'string', page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/courts?search=string&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/businesses/resolve-names": {
      "post": {
        "tags": [
          "Businesses"
        ],
        "summary": "Name to FNR resolution",
        "description": "Resolve company names to FNRs by exact name match (1:1). Used for CSV import.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResolveBusinessNamesRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ResolveBusinessNamesRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ResolveBusinessNamesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResolveBusinessNamesResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResolveBusinessNamesResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResolveBusinessNamesResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1BusinessesResolveNamesCreate();"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X POST 'https://api.firmenakte.at/api/v1/businesses/resolve-names' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/businesses": {
      "get": {
        "tags": [
          "Businesses"
        ],
        "summary": "Company search",
        "description": "Lists companies matching the filters, one page of list rows per call. name and search are different tools. name is a case-insensitive substring match on the company name and nothing else. search splits the term on spaces and keeps only companies matching every token, where a token matches the name, the fnr, or — when the whole term is a number — a GISA licence key or GISA-Zahl; it additionally lifts companies whose name starts with the term to the top of the default (name) ordering. So name narrows a known name, search finds an unknown one. Inactive companies always sort after active ones, whatever orderBy says. Pass countOnly=true for totalRecords without the rows, and use /businesses/aggregate to group the same filter set instead of paging through it.",
        "parameters": [
          {
            "name": "fnr",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "city",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "courtCode",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "legalFormCode",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "zipCode",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. The Firmenbuch stores no Bundesland, so the assignment is derived from the PLZ of the Geschäftsanschrift; it is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich. An unknown name is a 400.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "hasEdikt",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "active",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "isScheinunternehmen",
            "in": "query",
            "description": "Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "gisaLicenseKey",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "oenaceCode",
            "in": "query",
            "description": "Filter by OeNACE code (OenaceZuord / NumericCode), e.g. [\"46649\"].",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "registeredSince_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for the Firmenbuch registration date (\"Eingetragen seit\"), the earliest executionDate over the company's legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — it is not a founding date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "registeredSince_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for the Firmenbuch registration date (\"Eingetragen seit\"), the earliest executionDate over the company's legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — it is not a founding date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "signerCount_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for the number of distinct people with signing authority, counting the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO and excluding the insolvency and liquidation ones (AB, AW, IW, MW, VW, ZW). Currently held functions only.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "signerCount_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for the number of distinct people with signing authority, counting the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO and excluding the insolvency and liquidation ones (AB, AW, IW, MW, VW, ZW). Currently held functions only.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "enum": [
                "bilanz.AktivierteEigenleistungen",
                "bilanz.AnlageVermoegen",
                "bilanz.Bilanzgewinn",
                "bilanz.BilanzSumme",
                "bilanz.Eigenkapital",
                "bilanz.EingefordertesStammkapital",
                "bilanz.Finanzanlagen",
                "bilanz.Forderungen",
                "bilanz.ForderungenLieferungen",
                "bilanz.Gewinnruecklagen",
                "bilanz.ImmaterielleVermoegensgegenstaende",
                "bilanz.Kapitalruecklagen",
                "bilanz.KurzfristigeForderungen",
                "bilanz.KurzfristigeVerbindlichkeiten",
                "bilanz.LangfristigeForderungen",
                "bilanz.LangfristigeVerbindlichkeiten",
                "bilanz.LiquidesVermoegen",
                "bilanz.PassiveRechnungsabgrenzungen",
                "bilanz.Rechnungsabgrenzungen",
                "bilanz.Rueckstellungen",
                "bilanz.Sachanlagen",
                "bilanz.Umlaufvermoegen",
                "bilanz.Verbindlichkeiten",
                "bilanz.VerbindlichkeitenLieferungen",
                "bilanz.Vorraete",
                "bilanz.Vortrag",
                "bilanz.Wertpapiere",
                "detailViews",
                "employees",
                "guv.Abschreibungen",
                "guv.AufloesungGewinnruecklagen",
                "guv.AufwendungenAusFinanzanlagen",
                "guv.Bestandsveraenderung",
                "guv.BetriebsErfolg",
                "guv.ErgebnisVorSteuern",
                "guv.ErtraegeAusBeteiligungen",
                "guv.ErtraegeAusWertpapieren",
                "guv.Finanzerfolg",
                "guv.Jahresueberschuss",
                "guv.Personalaufwand",
                "guv.SonstigeBetrieblicheAufwendungen",
                "guv.SonstigeBetrieblicheErtraege",
                "guv.SonstigeZinsenUndAehnlicheErtraege",
                "guv.SozialeAufwendungen",
                "guv.Steueraufwand",
                "guv.Umsatzerloese",
                "guv.WarenUndMaterialeinkauf",
                "guv.ZinsenUndAehnlicheAufwendungen",
                "name",
                "registeredSince",
                "signerCount"
              ],
              "type": "string",
              "description": "Sort by this key figure or by name. Same options as key figure filter keys.",
              "nullable": true
            }
          },
          {
            "name": "orderByDescending",
            "in": "query",
            "description": "If true, sort descending; otherwise ascending.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "countOnly",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "minLat",
            "in": "query",
            "description": "Map viewport; all four required together. Matches businesses with >=1 geocoded address in the box.",
            "schema": {
              "maximum": 90,
              "minimum": -90,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxLat",
            "in": "query",
            "schema": {
              "maximum": 90,
              "minimum": -90,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minLng",
            "in": "query",
            "schema": {
              "maximum": 180,
              "minimum": -180,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxLng",
            "in": "query",
            "schema": {
              "maximum": 180,
              "minimum": -180,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted. /businesses/aggregate is unpaged and ignores it.",
            "schema": {
              "maximum": 100000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted. /businesses/aggregate is unpaged and ignores it — top caps its bucket list instead.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "bilanz.AktivierteEigenleistungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: AktivierteEigenleistungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.AktivierteEigenleistungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: AktivierteEigenleistungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.AnlageVermoegen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: AnlageVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.AnlageVermoegen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: AnlageVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Bilanzgewinn_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Bilanzgewinn",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Bilanzgewinn_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Bilanzgewinn",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.BilanzSumme_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: BilanzSumme",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.BilanzSumme_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: BilanzSumme",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Eigenkapital_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Eigenkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Eigenkapital_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Eigenkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.EingefordertesStammkapital_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: EingefordertesStammkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.EingefordertesStammkapital_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: EingefordertesStammkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Finanzanlagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Finanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Finanzanlagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Finanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Forderungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Forderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Forderungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Forderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ForderungenLieferungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: ForderungenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ForderungenLieferungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: ForderungenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Gewinnruecklagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Gewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Gewinnruecklagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Gewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ImmaterielleVermoegensgegenstaende_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: ImmaterielleVermoegensgegenstaende",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ImmaterielleVermoegensgegenstaende_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: ImmaterielleVermoegensgegenstaende",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Kapitalruecklagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Kapitalruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Kapitalruecklagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Kapitalruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeForderungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: KurzfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeForderungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: KurzfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeVerbindlichkeiten_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: KurzfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeVerbindlichkeiten_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: KurzfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeForderungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: LangfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeForderungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: LangfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeVerbindlichkeiten_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: LangfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeVerbindlichkeiten_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: LangfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LiquidesVermoegen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: LiquidesVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LiquidesVermoegen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: LiquidesVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.PassiveRechnungsabgrenzungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: PassiveRechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.PassiveRechnungsabgrenzungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: PassiveRechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rechnungsabgrenzungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Rechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rechnungsabgrenzungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Rechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rueckstellungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Rueckstellungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rueckstellungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Rueckstellungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Sachanlagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Sachanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Sachanlagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Sachanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Umlaufvermoegen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Umlaufvermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Umlaufvermoegen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Umlaufvermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Verbindlichkeiten_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Verbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Verbindlichkeiten_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Verbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.VerbindlichkeitenLieferungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: VerbindlichkeitenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.VerbindlichkeitenLieferungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: VerbindlichkeitenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vorraete_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Vorraete",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vorraete_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Vorraete",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vortrag_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Vortrag",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vortrag_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Vortrag",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Wertpapiere_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Wertpapiere",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Wertpapiere_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Wertpapiere",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "employees_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by number of employees",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "employees_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by number of employees",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Abschreibungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Abschreibungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Abschreibungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Abschreibungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufloesungGewinnruecklagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: AufloesungGewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufloesungGewinnruecklagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: AufloesungGewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufwendungenAusFinanzanlagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: AufwendungenAusFinanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufwendungenAusFinanzanlagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: AufwendungenAusFinanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Bestandsveraenderung_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Bestandsveraenderung",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Bestandsveraenderung_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Bestandsveraenderung",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.BetriebsErfolg_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: BetriebsErfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.BetriebsErfolg_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: BetriebsErfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErgebnisVorSteuern_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ErgebnisVorSteuern",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErgebnisVorSteuern_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ErgebnisVorSteuern",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusBeteiligungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ErtraegeAusBeteiligungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusBeteiligungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ErtraegeAusBeteiligungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusWertpapieren_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ErtraegeAusWertpapieren",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusWertpapieren_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ErtraegeAusWertpapieren",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Finanzerfolg_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Finanzerfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Finanzerfolg_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Finanzerfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Jahresueberschuss_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Jahresueberschuss",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Jahresueberschuss_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Jahresueberschuss",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Personalaufwand_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Personalaufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Personalaufwand_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Personalaufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheAufwendungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheAufwendungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheErtraege_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheErtraege_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeZinsenUndAehnlicheErtraege_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SonstigeZinsenUndAehnlicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeZinsenUndAehnlicheErtraege_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SonstigeZinsenUndAehnlicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SozialeAufwendungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SozialeAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SozialeAufwendungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SozialeAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Steueraufwand_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Steueraufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Steueraufwand_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Steueraufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Umsatzerloese_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Umsatzerloese",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Umsatzerloese_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Umsatzerloese",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.WarenUndMaterialeinkauf_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: WarenUndMaterialeinkauf",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.WarenUndMaterialeinkauf_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: WarenUndMaterialeinkauf",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ZinsenUndAehnlicheAufwendungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ZinsenUndAehnlicheAufwendungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfBusinessListResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfBusinessListResponse"
                },
                "example": {
                  "data": [
                    {
                      "fnr": "477012p",
                      "name": "Alpenquell Getränkehandel GmbH",
                      "addresses": [
                        {
                          "id": 811204,
                          "fnr": "477012p",
                          "createdAt": "2023-02-09T21:40:11.502Z",
                          "updatedAt": "2026-06-18T03:12:44.118Z",
                          "street": "Sonnwendgasse",
                          "houseNumber": "14/3",
                          "zipCode": "1100",
                          "city": "Wien",
                          "country": "Österreich",
                          "hash": "6E3E9862A6B530C94BA88D6D3648041F758A522AE6FEB0AEADC0179973BE6696",
                          "latitude": 48.17934,
                          "longitude": 16.38217
                        }
                      ],
                      "legalForm": {
                        "code": "GMBH",
                        "createdAt": "2021-02-11T09:00:00.000Z",
                        "updatedAt": "2021-02-11T09:00:00.000Z",
                        "text": "Gesellschaft mit beschränkter Haftung"
                      },
                      "isActive": true,
                      "isScheinunternehmen": false,
                      "hasEdikt": false,
                      "oenaceNumericCode": "46349",
                      "bilanzSumme": 4218736.42,
                      "registeredSince": "2011-06-15T00:00:00.000Z",
                      "signerCount": 2
                    },
                    {
                      "fnr": "398201s",
                      "name": "Donaustadt Logistik GmbH",
                      "addresses": [
                        {
                          "id": 811205,
                          "fnr": "398201s",
                          "createdAt": "2023-02-09T21:40:11.502Z",
                          "updatedAt": "2026-05-02T02:51:08.774Z",
                          "street": "Erzherzog-Karl-Straße",
                          "houseNumber": "218",
                          "zipCode": "1220",
                          "city": "Wien",
                          "country": "Österreich",
                          "hash": "9CA3A49748F6E4F31DAFD54108B158293312DB977EE2F209CFDD6174A14C1453",
                          "latitude": 48.22571,
                          "longitude": 16.46903
                        }
                      ],
                      "legalForm": {
                        "code": "GMBH",
                        "createdAt": "2021-02-11T09:00:00.000Z",
                        "updatedAt": "2021-02-11T09:00:00.000Z",
                        "text": "Gesellschaft mit beschränkter Haftung"
                      },
                      "isActive": true,
                      "isScheinunternehmen": false,
                      "hasEdikt": false,
                      "oenaceNumericCode": "49410",
                      "bilanzSumme": 1836420.09,
                      "registeredSince": "2014-03-11T00:00:00.000Z",
                      "signerCount": 1
                    },
                    {
                      "fnr": "214785k",
                      "name": "Traunsee Metallbau GmbH",
                      "addresses": [
                        {
                          "id": 811206,
                          "fnr": "214785k",
                          "createdAt": "2023-02-09T21:40:11.502Z",
                          "updatedAt": "2025-12-11T04:07:52.310Z",
                          "street": "Traunuferstraße",
                          "houseNumber": "7",
                          "zipCode": "4810",
                          "city": "Gmunden",
                          "country": "Österreich",
                          "hash": "8922767999BCF24E028C591B4891CCD2B7C2BFF8FD0A3BB27DB942C5CD176A85",
                          "latitude": 47.91832,
                          "longitude": 13.79945
                        }
                      ],
                      "legalForm": {
                        "code": "GMBH",
                        "createdAt": "2021-02-11T09:00:00.000Z",
                        "updatedAt": "2021-02-11T09:00:00.000Z",
                        "text": "Gesellschaft mit beschränkter Haftung"
                      },
                      "isActive": false,
                      "isScheinunternehmen": false,
                      "hasEdikt": true,
                      "oenaceNumericCode": "25110",
                      "bilanzSumme": null,
                      "registeredSince": "2003-09-24T00:00:00.000Z",
                      "signerCount": null
                    }
                  ],
                  "pageNumber": 1,
                  "pageSize": 25,
                  "totalRecords": 137,
                  "totalPages": 6
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfBusinessListResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-keyFigureFilterKeys": [
          "bilanz.AktivierteEigenleistungen",
          "bilanz.AnlageVermoegen",
          "bilanz.Bilanzgewinn",
          "bilanz.BilanzSumme",
          "bilanz.Eigenkapital",
          "bilanz.EingefordertesStammkapital",
          "bilanz.Finanzanlagen",
          "bilanz.Forderungen",
          "bilanz.ForderungenLieferungen",
          "bilanz.Gewinnruecklagen",
          "bilanz.ImmaterielleVermoegensgegenstaende",
          "bilanz.Kapitalruecklagen",
          "bilanz.KurzfristigeForderungen",
          "bilanz.KurzfristigeVerbindlichkeiten",
          "bilanz.LangfristigeForderungen",
          "bilanz.LangfristigeVerbindlichkeiten",
          "bilanz.LiquidesVermoegen",
          "bilanz.PassiveRechnungsabgrenzungen",
          "bilanz.Rechnungsabgrenzungen",
          "bilanz.Rueckstellungen",
          "bilanz.Sachanlagen",
          "bilanz.Umlaufvermoegen",
          "bilanz.Verbindlichkeiten",
          "bilanz.VerbindlichkeitenLieferungen",
          "bilanz.Vorraete",
          "bilanz.Vortrag",
          "bilanz.Wertpapiere",
          "employees",
          "guv.Abschreibungen",
          "guv.AufloesungGewinnruecklagen",
          "guv.AufwendungenAusFinanzanlagen",
          "guv.Bestandsveraenderung",
          "guv.BetriebsErfolg",
          "guv.ErgebnisVorSteuern",
          "guv.ErtraegeAusBeteiligungen",
          "guv.ErtraegeAusWertpapieren",
          "guv.Finanzerfolg",
          "guv.Jahresueberschuss",
          "guv.Personalaufwand",
          "guv.SonstigeBetrieblicheAufwendungen",
          "guv.SonstigeBetrieblicheErtraege",
          "guv.SonstigeZinsenUndAehnlicheErtraege",
          "guv.SozialeAufwendungen",
          "guv.Steueraufwand",
          "guv.Umsatzerloese",
          "guv.WarenUndMaterialeinkauf",
          "guv.ZinsenUndAehnlicheAufwendungen"
        ],
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1BusinessesList({ fnr: [], name: 'string', search: 'string', city: [], courtCode: [], legalFormCode: [], zipCode: [], state: [], hasEdikt: true, active: true, isScheinunternehmen: true, gisaLicenseKey: [], oenaceCode: [], registeredSince_gte: '2024-01-01T00:00:00.000Z', registeredSince_lte: '2024-01-01T00:00:00.000Z', signerCount_gte: 0, signerCount_lte: 0, orderBy: 'bilanz.AktivierteEigenleistungen', orderByDescending: true, countOnly: true, minLat: 0, maxLat: 0, minLng: 0, maxLng: 0, page: 0, pageSize: 0, bilanz.AktivierteEigenleistungen_gte: 0, bilanz.AktivierteEigenleistungen_lte: 0, bilanz.AnlageVermoegen_gte: 0, bilanz.AnlageVermoegen_lte: 0, bilanz.Bilanzgewinn_gte: 0, bilanz.Bilanzgewinn_lte: 0, bilanz.BilanzSumme_gte: 0, bilanz.BilanzSumme_lte: 0, bilanz.Eigenkapital_gte: 0, bilanz.Eigenkapital_lte: 0, bilanz.EingefordertesStammkapital_gte: 0, bilanz.EingefordertesStammkapital_lte: 0, bilanz.Finanzanlagen_gte: 0, bilanz.Finanzanlagen_lte: 0, bilanz.Forderungen_gte: 0, bilanz.Forderungen_lte: 0, bilanz.ForderungenLieferungen_gte: 0, bilanz.ForderungenLieferungen_lte: 0, bilanz.Gewinnruecklagen_gte: 0, bilanz.Gewinnruecklagen_lte: 0, bilanz.ImmaterielleVermoegensgegenstaende_gte: 0, bilanz.ImmaterielleVermoegensgegenstaende_lte: 0, bilanz.Kapitalruecklagen_gte: 0, bilanz.Kapitalruecklagen_lte: 0, bilanz.KurzfristigeForderungen_gte: 0, bilanz.KurzfristigeForderungen_lte: 0, bilanz.KurzfristigeVerbindlichkeiten_gte: 0, bilanz.KurzfristigeVerbindlichkeiten_lte: 0, bilanz.LangfristigeForderungen_gte: 0, bilanz.LangfristigeForderungen_lte: 0, bilanz.LangfristigeVerbindlichkeiten_gte: 0, bilanz.LangfristigeVerbindlichkeiten_lte: 0, bilanz.LiquidesVermoegen_gte: 0, bilanz.LiquidesVermoegen_lte: 0, bilanz.PassiveRechnungsabgrenzungen_gte: 0, bilanz.PassiveRechnungsabgrenzungen_lte: 0, bilanz.Rechnungsabgrenzungen_gte: 0, bilanz.Rechnungsabgrenzungen_lte: 0, bilanz.Rueckstellungen_gte: 0, bilanz.Rueckstellungen_lte: 0, bilanz.Sachanlagen_gte: 0, bilanz.Sachanlagen_lte: 0, bilanz.Umlaufvermoegen_gte: 0, bilanz.Umlaufvermoegen_lte: 0, bilanz.Verbindlichkeiten_gte: 0, bilanz.Verbindlichkeiten_lte: 0, bilanz.VerbindlichkeitenLieferungen_gte: 0, bilanz.VerbindlichkeitenLieferungen_lte: 0, bilanz.Vorraete_gte: 0, bilanz.Vorraete_lte: 0, bilanz.Vortrag_gte: 0, bilanz.Vortrag_lte: 0, bilanz.Wertpapiere_gte: 0, bilanz.Wertpapiere_lte: 0, employees_gte: 0, employees_lte: 0, guv.Abschreibungen_gte: 0, guv.Abschreibungen_lte: 0, guv.AufloesungGewinnruecklagen_gte: 0, guv.AufloesungGewinnruecklagen_lte: 0, guv.AufwendungenAusFinanzanlagen_gte: 0, guv.AufwendungenAusFinanzanlagen_lte: 0, guv.Bestandsveraenderung_gte: 0, guv.Bestandsveraenderung_lte: 0, guv.BetriebsErfolg_gte: 0, guv.BetriebsErfolg_lte: 0, guv.ErgebnisVorSteuern_gte: 0, guv.ErgebnisVorSteuern_lte: 0, guv.ErtraegeAusBeteiligungen_gte: 0, guv.ErtraegeAusBeteiligungen_lte: 0, guv.ErtraegeAusWertpapieren_gte: 0, guv.ErtraegeAusWertpapieren_lte: 0, guv.Finanzerfolg_gte: 0, guv.Finanzerfolg_lte: 0, guv.Jahresueberschuss_gte: 0, guv.Jahresueberschuss_lte: 0, guv.Personalaufwand_gte: 0, guv.Personalaufwand_lte: 0, guv.SonstigeBetrieblicheAufwendungen_gte: 0, guv.SonstigeBetrieblicheAufwendungen_lte: 0, guv.SonstigeBetrieblicheErtraege_gte: 0, guv.SonstigeBetrieblicheErtraege_lte: 0, guv.SonstigeZinsenUndAehnlicheErtraege_gte: 0, guv.SonstigeZinsenUndAehnlicheErtraege_lte: 0, guv.SozialeAufwendungen_gte: 0, guv.SozialeAufwendungen_lte: 0, guv.Steueraufwand_gte: 0, guv.Steueraufwand_lte: 0, guv.Umsatzerloese_gte: 0, guv.Umsatzerloese_lte: 0, guv.WarenUndMaterialeinkauf_gte: 0, guv.WarenUndMaterialeinkauf_lte: 0, guv.ZinsenUndAehnlicheAufwendungen_gte: 0, guv.ZinsenUndAehnlicheAufwendungen_lte: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/businesses?fnr=&name=string&search=string&city=&courtCode=&legalFormCode=&zipCode=&state=&hasEdikt=true&active=true&isScheinunternehmen=true&gisaLicenseKey=&oenaceCode=&registeredSince_gte=2024-01-01T00%3A00%3A00.000Z&registeredSince_lte=2024-01-01T00%3A00%3A00.000Z&signerCount_gte=0&signerCount_lte=0&orderBy=bilanz.AktivierteEigenleistungen&orderByDescending=true&countOnly=true&minLat=0&maxLat=0&minLng=0&maxLng=0&page=0&pageSize=0&bilanz.AktivierteEigenleistungen_gte=0&bilanz.AktivierteEigenleistungen_lte=0&bilanz.AnlageVermoegen_gte=0&bilanz.AnlageVermoegen_lte=0&bilanz.Bilanzgewinn_gte=0&bilanz.Bilanzgewinn_lte=0&bilanz.BilanzSumme_gte=0&bilanz.BilanzSumme_lte=0&bilanz.Eigenkapital_gte=0&bilanz.Eigenkapital_lte=0&bilanz.EingefordertesStammkapital_gte=0&bilanz.EingefordertesStammkapital_lte=0&bilanz.Finanzanlagen_gte=0&bilanz.Finanzanlagen_lte=0&bilanz.Forderungen_gte=0&bilanz.Forderungen_lte=0&bilanz.ForderungenLieferungen_gte=0&bilanz.ForderungenLieferungen_lte=0&bilanz.Gewinnruecklagen_gte=0&bilanz.Gewinnruecklagen_lte=0&bilanz.ImmaterielleVermoegensgegenstaende_gte=0&bilanz.ImmaterielleVermoegensgegenstaende_lte=0&bilanz.Kapitalruecklagen_gte=0&bilanz.Kapitalruecklagen_lte=0&bilanz.KurzfristigeForderungen_gte=0&bilanz.KurzfristigeForderungen_lte=0&bilanz.KurzfristigeVerbindlichkeiten_gte=0&bilanz.KurzfristigeVerbindlichkeiten_lte=0&bilanz.LangfristigeForderungen_gte=0&bilanz.LangfristigeForderungen_lte=0&bilanz.LangfristigeVerbindlichkeiten_gte=0&bilanz.LangfristigeVerbindlichkeiten_lte=0&bilanz.LiquidesVermoegen_gte=0&bilanz.LiquidesVermoegen_lte=0&bilanz.PassiveRechnungsabgrenzungen_gte=0&bilanz.PassiveRechnungsabgrenzungen_lte=0&bilanz.Rechnungsabgrenzungen_gte=0&bilanz.Rechnungsabgrenzungen_lte=0&bilanz.Rueckstellungen_gte=0&bilanz.Rueckstellungen_lte=0&bilanz.Sachanlagen_gte=0&bilanz.Sachanlagen_lte=0&bilanz.Umlaufvermoegen_gte=0&bilanz.Umlaufvermoegen_lte=0&bilanz.Verbindlichkeiten_gte=0&bilanz.Verbindlichkeiten_lte=0&bilanz.VerbindlichkeitenLieferungen_gte=0&bilanz.VerbindlichkeitenLieferungen_lte=0&bilanz.Vorraete_gte=0&bilanz.Vorraete_lte=0&bilanz.Vortrag_gte=0&bilanz.Vortrag_lte=0&bilanz.Wertpapiere_gte=0&bilanz.Wertpapiere_lte=0&employees_gte=0&employees_lte=0&guv.Abschreibungen_gte=0&guv.Abschreibungen_lte=0&guv.AufloesungGewinnruecklagen_gte=0&guv.AufloesungGewinnruecklagen_lte=0&guv.AufwendungenAusFinanzanlagen_gte=0&guv.AufwendungenAusFinanzanlagen_lte=0&guv.Bestandsveraenderung_gte=0&guv.Bestandsveraenderung_lte=0&guv.BetriebsErfolg_gte=0&guv.BetriebsErfolg_lte=0&guv.ErgebnisVorSteuern_gte=0&guv.ErgebnisVorSteuern_lte=0&guv.ErtraegeAusBeteiligungen_gte=0&guv.ErtraegeAusBeteiligungen_lte=0&guv.ErtraegeAusWertpapieren_gte=0&guv.ErtraegeAusWertpapieren_lte=0&guv.Finanzerfolg_gte=0&guv.Finanzerfolg_lte=0&guv.Jahresueberschuss_gte=0&guv.Jahresueberschuss_lte=0&guv.Personalaufwand_gte=0&guv.Personalaufwand_lte=0&guv.SonstigeBetrieblicheAufwendungen_gte=0&guv.SonstigeBetrieblicheAufwendungen_lte=0&guv.SonstigeBetrieblicheErtraege_gte=0&guv.SonstigeBetrieblicheErtraege_lte=0&guv.SonstigeZinsenUndAehnlicheErtraege_gte=0&guv.SonstigeZinsenUndAehnlicheErtraege_lte=0&guv.SozialeAufwendungen_gte=0&guv.SozialeAufwendungen_lte=0&guv.Steueraufwand_gte=0&guv.Steueraufwand_lte=0&guv.Umsatzerloese_gte=0&guv.Umsatzerloese_lte=0&guv.WarenUndMaterialeinkauf_gte=0&guv.WarenUndMaterialeinkauf_lte=0&guv.ZinsenUndAehnlicheAufwendungen_gte=0&guv.ZinsenUndAehnlicheAufwendungen_lte=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/businesses/names": {
      "get": {
        "tags": [
          "Businesses"
        ],
        "summary": "Company name index",
        "description": "Returns all business (fnr, name) pairs for client-side name index. No pagination.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BusinessNameItem"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BusinessNameItem"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BusinessNameItem"
                  }
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1BusinessesNamesList();"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/businesses/names' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/businesses/count": {
      "get": {
        "tags": [
          "Businesses"
        ],
        "summary": "Company count",
        "description": "Returns the number of companies in the dataset, as a bare integer. Unfiltered — it is the size of the whole dataset, not of a search. For a count over filters, call GET /businesses with countOnly=true and read totalRecords.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "maximum": 1000,
                  "minimum": 1,
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "maximum": 1000,
                  "minimum": 1,
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "maximum": 1000,
                  "minimum": 1,
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1BusinessesCountList();"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/businesses/count' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/businesses/aggregate": {
      "get": {
        "tags": [
          "Businesses"
        ],
        "summary": "Grouped company counts",
        "description": "Counts over the same filter set as GET /businesses, grouped by one dimension — the server-side GROUP BY that a caller would otherwise page the whole result set to compute. Every /businesses filter means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored — top and minCount cap the bucket list instead. totalRecords equals /businesses?countOnly=true for the same filter; how the buckets relate to it is documented on BusinessAggregateResponse.",
        "parameters": [
          {
            "name": "groupBy",
            "in": "query",
            "description": "Dimension to group by. One of Dimensions.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "Number of buckets returned, largest first. City and zipCode have thousands of distinct values.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "minCount",
            "in": "query",
            "description": "Drop buckets below this count. Mirrors minCompanyCount on the catalogue endpoints.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fnr",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "city",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "courtCode",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "legalFormCode",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "zipCode",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. The Firmenbuch stores no Bundesland, so the assignment is derived from the PLZ of the Geschäftsanschrift; it is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich. An unknown name is a 400.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "hasEdikt",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "active",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "isScheinunternehmen",
            "in": "query",
            "description": "Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "gisaLicenseKey",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "oenaceCode",
            "in": "query",
            "description": "Filter by OeNACE code (OenaceZuord / NumericCode), e.g. [\"46649\"].",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "registeredSince_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for the Firmenbuch registration date (\"Eingetragen seit\"), the earliest executionDate over the company's legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — it is not a founding date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "registeredSince_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for the Firmenbuch registration date (\"Eingetragen seit\"), the earliest executionDate over the company's legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — it is not a founding date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "signerCount_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for the number of distinct people with signing authority, counting the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO and excluding the insolvency and liquidation ones (AB, AW, IW, MW, VW, ZW). Currently held functions only.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "signerCount_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for the number of distinct people with signing authority, counting the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO and excluding the insolvency and liquidation ones (AB, AW, IW, MW, VW, ZW). Currently held functions only.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "enum": [
                "bilanz.AktivierteEigenleistungen",
                "bilanz.AnlageVermoegen",
                "bilanz.Bilanzgewinn",
                "bilanz.BilanzSumme",
                "bilanz.Eigenkapital",
                "bilanz.EingefordertesStammkapital",
                "bilanz.Finanzanlagen",
                "bilanz.Forderungen",
                "bilanz.ForderungenLieferungen",
                "bilanz.Gewinnruecklagen",
                "bilanz.ImmaterielleVermoegensgegenstaende",
                "bilanz.Kapitalruecklagen",
                "bilanz.KurzfristigeForderungen",
                "bilanz.KurzfristigeVerbindlichkeiten",
                "bilanz.LangfristigeForderungen",
                "bilanz.LangfristigeVerbindlichkeiten",
                "bilanz.LiquidesVermoegen",
                "bilanz.PassiveRechnungsabgrenzungen",
                "bilanz.Rechnungsabgrenzungen",
                "bilanz.Rueckstellungen",
                "bilanz.Sachanlagen",
                "bilanz.Umlaufvermoegen",
                "bilanz.Verbindlichkeiten",
                "bilanz.VerbindlichkeitenLieferungen",
                "bilanz.Vorraete",
                "bilanz.Vortrag",
                "bilanz.Wertpapiere",
                "detailViews",
                "employees",
                "guv.Abschreibungen",
                "guv.AufloesungGewinnruecklagen",
                "guv.AufwendungenAusFinanzanlagen",
                "guv.Bestandsveraenderung",
                "guv.BetriebsErfolg",
                "guv.ErgebnisVorSteuern",
                "guv.ErtraegeAusBeteiligungen",
                "guv.ErtraegeAusWertpapieren",
                "guv.Finanzerfolg",
                "guv.Jahresueberschuss",
                "guv.Personalaufwand",
                "guv.SonstigeBetrieblicheAufwendungen",
                "guv.SonstigeBetrieblicheErtraege",
                "guv.SonstigeZinsenUndAehnlicheErtraege",
                "guv.SozialeAufwendungen",
                "guv.Steueraufwand",
                "guv.Umsatzerloese",
                "guv.WarenUndMaterialeinkauf",
                "guv.ZinsenUndAehnlicheAufwendungen",
                "name",
                "registeredSince",
                "signerCount"
              ],
              "type": "string",
              "description": "Sort by this key figure or by name. Same options as key figure filter keys.",
              "nullable": true
            }
          },
          {
            "name": "orderByDescending",
            "in": "query",
            "description": "If true, sort descending; otherwise ascending.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "countOnly",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "minLat",
            "in": "query",
            "description": "Map viewport; all four required together. Matches businesses with >=1 geocoded address in the box.",
            "schema": {
              "maximum": 90,
              "minimum": -90,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxLat",
            "in": "query",
            "schema": {
              "maximum": 90,
              "minimum": -90,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minLng",
            "in": "query",
            "schema": {
              "maximum": 180,
              "minimum": -180,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxLng",
            "in": "query",
            "schema": {
              "maximum": 180,
              "minimum": -180,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted. /businesses/aggregate is unpaged and ignores it.",
            "schema": {
              "maximum": 100000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted. /businesses/aggregate is unpaged and ignores it — top caps its bucket list instead.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "bilanz.AktivierteEigenleistungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: AktivierteEigenleistungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.AktivierteEigenleistungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: AktivierteEigenleistungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.AnlageVermoegen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: AnlageVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.AnlageVermoegen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: AnlageVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Bilanzgewinn_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Bilanzgewinn",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Bilanzgewinn_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Bilanzgewinn",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.BilanzSumme_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: BilanzSumme",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.BilanzSumme_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: BilanzSumme",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Eigenkapital_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Eigenkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Eigenkapital_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Eigenkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.EingefordertesStammkapital_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: EingefordertesStammkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.EingefordertesStammkapital_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: EingefordertesStammkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Finanzanlagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Finanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Finanzanlagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Finanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Forderungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Forderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Forderungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Forderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ForderungenLieferungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: ForderungenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ForderungenLieferungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: ForderungenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Gewinnruecklagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Gewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Gewinnruecklagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Gewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ImmaterielleVermoegensgegenstaende_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: ImmaterielleVermoegensgegenstaende",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ImmaterielleVermoegensgegenstaende_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: ImmaterielleVermoegensgegenstaende",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Kapitalruecklagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Kapitalruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Kapitalruecklagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Kapitalruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeForderungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: KurzfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeForderungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: KurzfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeVerbindlichkeiten_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: KurzfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeVerbindlichkeiten_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: KurzfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeForderungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: LangfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeForderungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: LangfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeVerbindlichkeiten_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: LangfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeVerbindlichkeiten_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: LangfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LiquidesVermoegen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: LiquidesVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LiquidesVermoegen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: LiquidesVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.PassiveRechnungsabgrenzungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: PassiveRechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.PassiveRechnungsabgrenzungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: PassiveRechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rechnungsabgrenzungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Rechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rechnungsabgrenzungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Rechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rueckstellungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Rueckstellungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rueckstellungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Rueckstellungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Sachanlagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Sachanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Sachanlagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Sachanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Umlaufvermoegen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Umlaufvermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Umlaufvermoegen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Umlaufvermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Verbindlichkeiten_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Verbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Verbindlichkeiten_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Verbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.VerbindlichkeitenLieferungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: VerbindlichkeitenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.VerbindlichkeitenLieferungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: VerbindlichkeitenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vorraete_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Vorraete",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vorraete_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Vorraete",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vortrag_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Vortrag",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vortrag_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Vortrag",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Wertpapiere_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Wertpapiere",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Wertpapiere_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Wertpapiere",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "employees_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by number of employees",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "employees_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by number of employees",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Abschreibungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Abschreibungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Abschreibungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Abschreibungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufloesungGewinnruecklagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: AufloesungGewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufloesungGewinnruecklagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: AufloesungGewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufwendungenAusFinanzanlagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: AufwendungenAusFinanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufwendungenAusFinanzanlagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: AufwendungenAusFinanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Bestandsveraenderung_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Bestandsveraenderung",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Bestandsveraenderung_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Bestandsveraenderung",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.BetriebsErfolg_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: BetriebsErfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.BetriebsErfolg_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: BetriebsErfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErgebnisVorSteuern_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ErgebnisVorSteuern",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErgebnisVorSteuern_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ErgebnisVorSteuern",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusBeteiligungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ErtraegeAusBeteiligungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusBeteiligungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ErtraegeAusBeteiligungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusWertpapieren_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ErtraegeAusWertpapieren",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusWertpapieren_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ErtraegeAusWertpapieren",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Finanzerfolg_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Finanzerfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Finanzerfolg_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Finanzerfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Jahresueberschuss_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Jahresueberschuss",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Jahresueberschuss_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Jahresueberschuss",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Personalaufwand_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Personalaufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Personalaufwand_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Personalaufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheAufwendungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheAufwendungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheErtraege_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheErtraege_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeZinsenUndAehnlicheErtraege_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SonstigeZinsenUndAehnlicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeZinsenUndAehnlicheErtraege_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SonstigeZinsenUndAehnlicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SozialeAufwendungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SozialeAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SozialeAufwendungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SozialeAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Steueraufwand_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Steueraufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Steueraufwand_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Steueraufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Umsatzerloese_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Umsatzerloese",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Umsatzerloese_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Umsatzerloese",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.WarenUndMaterialeinkauf_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: WarenUndMaterialeinkauf",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.WarenUndMaterialeinkauf_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: WarenUndMaterialeinkauf",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ZinsenUndAehnlicheAufwendungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ZinsenUndAehnlicheAufwendungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessAggregateResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessAggregateResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessAggregateResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-keyFigureFilterKeys": [
          "bilanz.AktivierteEigenleistungen",
          "bilanz.AnlageVermoegen",
          "bilanz.Bilanzgewinn",
          "bilanz.BilanzSumme",
          "bilanz.Eigenkapital",
          "bilanz.EingefordertesStammkapital",
          "bilanz.Finanzanlagen",
          "bilanz.Forderungen",
          "bilanz.ForderungenLieferungen",
          "bilanz.Gewinnruecklagen",
          "bilanz.ImmaterielleVermoegensgegenstaende",
          "bilanz.Kapitalruecklagen",
          "bilanz.KurzfristigeForderungen",
          "bilanz.KurzfristigeVerbindlichkeiten",
          "bilanz.LangfristigeForderungen",
          "bilanz.LangfristigeVerbindlichkeiten",
          "bilanz.LiquidesVermoegen",
          "bilanz.PassiveRechnungsabgrenzungen",
          "bilanz.Rechnungsabgrenzungen",
          "bilanz.Rueckstellungen",
          "bilanz.Sachanlagen",
          "bilanz.Umlaufvermoegen",
          "bilanz.Verbindlichkeiten",
          "bilanz.VerbindlichkeitenLieferungen",
          "bilanz.Vorraete",
          "bilanz.Vortrag",
          "bilanz.Wertpapiere",
          "employees",
          "guv.Abschreibungen",
          "guv.AufloesungGewinnruecklagen",
          "guv.AufwendungenAusFinanzanlagen",
          "guv.Bestandsveraenderung",
          "guv.BetriebsErfolg",
          "guv.ErgebnisVorSteuern",
          "guv.ErtraegeAusBeteiligungen",
          "guv.ErtraegeAusWertpapieren",
          "guv.Finanzerfolg",
          "guv.Jahresueberschuss",
          "guv.Personalaufwand",
          "guv.SonstigeBetrieblicheAufwendungen",
          "guv.SonstigeBetrieblicheErtraege",
          "guv.SonstigeZinsenUndAehnlicheErtraege",
          "guv.SozialeAufwendungen",
          "guv.Steueraufwand",
          "guv.Umsatzerloese",
          "guv.WarenUndMaterialeinkauf",
          "guv.ZinsenUndAehnlicheAufwendungen"
        ],
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1BusinessesAggregateList({ groupBy: 'string', top: 0, minCount: 0, fnr: [], name: 'string', search: 'string', city: [], courtCode: [], legalFormCode: [], zipCode: [], state: [], hasEdikt: true, active: true, isScheinunternehmen: true, gisaLicenseKey: [], oenaceCode: [], registeredSince_gte: '2024-01-01T00:00:00.000Z', registeredSince_lte: '2024-01-01T00:00:00.000Z', signerCount_gte: 0, signerCount_lte: 0, orderBy: 'bilanz.AktivierteEigenleistungen', orderByDescending: true, countOnly: true, minLat: 0, maxLat: 0, minLng: 0, maxLng: 0, page: 0, pageSize: 0, bilanz.AktivierteEigenleistungen_gte: 0, bilanz.AktivierteEigenleistungen_lte: 0, bilanz.AnlageVermoegen_gte: 0, bilanz.AnlageVermoegen_lte: 0, bilanz.Bilanzgewinn_gte: 0, bilanz.Bilanzgewinn_lte: 0, bilanz.BilanzSumme_gte: 0, bilanz.BilanzSumme_lte: 0, bilanz.Eigenkapital_gte: 0, bilanz.Eigenkapital_lte: 0, bilanz.EingefordertesStammkapital_gte: 0, bilanz.EingefordertesStammkapital_lte: 0, bilanz.Finanzanlagen_gte: 0, bilanz.Finanzanlagen_lte: 0, bilanz.Forderungen_gte: 0, bilanz.Forderungen_lte: 0, bilanz.ForderungenLieferungen_gte: 0, bilanz.ForderungenLieferungen_lte: 0, bilanz.Gewinnruecklagen_gte: 0, bilanz.Gewinnruecklagen_lte: 0, bilanz.ImmaterielleVermoegensgegenstaende_gte: 0, bilanz.ImmaterielleVermoegensgegenstaende_lte: 0, bilanz.Kapitalruecklagen_gte: 0, bilanz.Kapitalruecklagen_lte: 0, bilanz.KurzfristigeForderungen_gte: 0, bilanz.KurzfristigeForderungen_lte: 0, bilanz.KurzfristigeVerbindlichkeiten_gte: 0, bilanz.KurzfristigeVerbindlichkeiten_lte: 0, bilanz.LangfristigeForderungen_gte: 0, bilanz.LangfristigeForderungen_lte: 0, bilanz.LangfristigeVerbindlichkeiten_gte: 0, bilanz.LangfristigeVerbindlichkeiten_lte: 0, bilanz.LiquidesVermoegen_gte: 0, bilanz.LiquidesVermoegen_lte: 0, bilanz.PassiveRechnungsabgrenzungen_gte: 0, bilanz.PassiveRechnungsabgrenzungen_lte: 0, bilanz.Rechnungsabgrenzungen_gte: 0, bilanz.Rechnungsabgrenzungen_lte: 0, bilanz.Rueckstellungen_gte: 0, bilanz.Rueckstellungen_lte: 0, bilanz.Sachanlagen_gte: 0, bilanz.Sachanlagen_lte: 0, bilanz.Umlaufvermoegen_gte: 0, bilanz.Umlaufvermoegen_lte: 0, bilanz.Verbindlichkeiten_gte: 0, bilanz.Verbindlichkeiten_lte: 0, bilanz.VerbindlichkeitenLieferungen_gte: 0, bilanz.VerbindlichkeitenLieferungen_lte: 0, bilanz.Vorraete_gte: 0, bilanz.Vorraete_lte: 0, bilanz.Vortrag_gte: 0, bilanz.Vortrag_lte: 0, bilanz.Wertpapiere_gte: 0, bilanz.Wertpapiere_lte: 0, employees_gte: 0, employees_lte: 0, guv.Abschreibungen_gte: 0, guv.Abschreibungen_lte: 0, guv.AufloesungGewinnruecklagen_gte: 0, guv.AufloesungGewinnruecklagen_lte: 0, guv.AufwendungenAusFinanzanlagen_gte: 0, guv.AufwendungenAusFinanzanlagen_lte: 0, guv.Bestandsveraenderung_gte: 0, guv.Bestandsveraenderung_lte: 0, guv.BetriebsErfolg_gte: 0, guv.BetriebsErfolg_lte: 0, guv.ErgebnisVorSteuern_gte: 0, guv.ErgebnisVorSteuern_lte: 0, guv.ErtraegeAusBeteiligungen_gte: 0, guv.ErtraegeAusBeteiligungen_lte: 0, guv.ErtraegeAusWertpapieren_gte: 0, guv.ErtraegeAusWertpapieren_lte: 0, guv.Finanzerfolg_gte: 0, guv.Finanzerfolg_lte: 0, guv.Jahresueberschuss_gte: 0, guv.Jahresueberschuss_lte: 0, guv.Personalaufwand_gte: 0, guv.Personalaufwand_lte: 0, guv.SonstigeBetrieblicheAufwendungen_gte: 0, guv.SonstigeBetrieblicheAufwendungen_lte: 0, guv.SonstigeBetrieblicheErtraege_gte: 0, guv.SonstigeBetrieblicheErtraege_lte: 0, guv.SonstigeZinsenUndAehnlicheErtraege_gte: 0, guv.SonstigeZinsenUndAehnlicheErtraege_lte: 0, guv.SozialeAufwendungen_gte: 0, guv.SozialeAufwendungen_lte: 0, guv.Steueraufwand_gte: 0, guv.Steueraufwand_lte: 0, guv.Umsatzerloese_gte: 0, guv.Umsatzerloese_lte: 0, guv.WarenUndMaterialeinkauf_gte: 0, guv.WarenUndMaterialeinkauf_lte: 0, guv.ZinsenUndAehnlicheAufwendungen_gte: 0, guv.ZinsenUndAehnlicheAufwendungen_lte: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/businesses/aggregate?groupBy=string&top=0&minCount=0&fnr=&name=string&search=string&city=&courtCode=&legalFormCode=&zipCode=&state=&hasEdikt=true&active=true&isScheinunternehmen=true&gisaLicenseKey=&oenaceCode=&registeredSince_gte=2024-01-01T00%3A00%3A00.000Z&registeredSince_lte=2024-01-01T00%3A00%3A00.000Z&signerCount_gte=0&signerCount_lte=0&orderBy=bilanz.AktivierteEigenleistungen&orderByDescending=true&countOnly=true&minLat=0&maxLat=0&minLng=0&maxLng=0&page=0&pageSize=0&bilanz.AktivierteEigenleistungen_gte=0&bilanz.AktivierteEigenleistungen_lte=0&bilanz.AnlageVermoegen_gte=0&bilanz.AnlageVermoegen_lte=0&bilanz.Bilanzgewinn_gte=0&bilanz.Bilanzgewinn_lte=0&bilanz.BilanzSumme_gte=0&bilanz.BilanzSumme_lte=0&bilanz.Eigenkapital_gte=0&bilanz.Eigenkapital_lte=0&bilanz.EingefordertesStammkapital_gte=0&bilanz.EingefordertesStammkapital_lte=0&bilanz.Finanzanlagen_gte=0&bilanz.Finanzanlagen_lte=0&bilanz.Forderungen_gte=0&bilanz.Forderungen_lte=0&bilanz.ForderungenLieferungen_gte=0&bilanz.ForderungenLieferungen_lte=0&bilanz.Gewinnruecklagen_gte=0&bilanz.Gewinnruecklagen_lte=0&bilanz.ImmaterielleVermoegensgegenstaende_gte=0&bilanz.ImmaterielleVermoegensgegenstaende_lte=0&bilanz.Kapitalruecklagen_gte=0&bilanz.Kapitalruecklagen_lte=0&bilanz.KurzfristigeForderungen_gte=0&bilanz.KurzfristigeForderungen_lte=0&bilanz.KurzfristigeVerbindlichkeiten_gte=0&bilanz.KurzfristigeVerbindlichkeiten_lte=0&bilanz.LangfristigeForderungen_gte=0&bilanz.LangfristigeForderungen_lte=0&bilanz.LangfristigeVerbindlichkeiten_gte=0&bilanz.LangfristigeVerbindlichkeiten_lte=0&bilanz.LiquidesVermoegen_gte=0&bilanz.LiquidesVermoegen_lte=0&bilanz.PassiveRechnungsabgrenzungen_gte=0&bilanz.PassiveRechnungsabgrenzungen_lte=0&bilanz.Rechnungsabgrenzungen_gte=0&bilanz.Rechnungsabgrenzungen_lte=0&bilanz.Rueckstellungen_gte=0&bilanz.Rueckstellungen_lte=0&bilanz.Sachanlagen_gte=0&bilanz.Sachanlagen_lte=0&bilanz.Umlaufvermoegen_gte=0&bilanz.Umlaufvermoegen_lte=0&bilanz.Verbindlichkeiten_gte=0&bilanz.Verbindlichkeiten_lte=0&bilanz.VerbindlichkeitenLieferungen_gte=0&bilanz.VerbindlichkeitenLieferungen_lte=0&bilanz.Vorraete_gte=0&bilanz.Vorraete_lte=0&bilanz.Vortrag_gte=0&bilanz.Vortrag_lte=0&bilanz.Wertpapiere_gte=0&bilanz.Wertpapiere_lte=0&employees_gte=0&employees_lte=0&guv.Abschreibungen_gte=0&guv.Abschreibungen_lte=0&guv.AufloesungGewinnruecklagen_gte=0&guv.AufloesungGewinnruecklagen_lte=0&guv.AufwendungenAusFinanzanlagen_gte=0&guv.AufwendungenAusFinanzanlagen_lte=0&guv.Bestandsveraenderung_gte=0&guv.Bestandsveraenderung_lte=0&guv.BetriebsErfolg_gte=0&guv.BetriebsErfolg_lte=0&guv.ErgebnisVorSteuern_gte=0&guv.ErgebnisVorSteuern_lte=0&guv.ErtraegeAusBeteiligungen_gte=0&guv.ErtraegeAusBeteiligungen_lte=0&guv.ErtraegeAusWertpapieren_gte=0&guv.ErtraegeAusWertpapieren_lte=0&guv.Finanzerfolg_gte=0&guv.Finanzerfolg_lte=0&guv.Jahresueberschuss_gte=0&guv.Jahresueberschuss_lte=0&guv.Personalaufwand_gte=0&guv.Personalaufwand_lte=0&guv.SonstigeBetrieblicheAufwendungen_gte=0&guv.SonstigeBetrieblicheAufwendungen_lte=0&guv.SonstigeBetrieblicheErtraege_gte=0&guv.SonstigeBetrieblicheErtraege_lte=0&guv.SonstigeZinsenUndAehnlicheErtraege_gte=0&guv.SonstigeZinsenUndAehnlicheErtraege_lte=0&guv.SozialeAufwendungen_gte=0&guv.SozialeAufwendungen_lte=0&guv.Steueraufwand_gte=0&guv.Steueraufwand_lte=0&guv.Umsatzerloese_gte=0&guv.Umsatzerloese_lte=0&guv.WarenUndMaterialeinkauf_gte=0&guv.WarenUndMaterialeinkauf_lte=0&guv.ZinsenUndAehnlicheAufwendungen_gte=0&guv.ZinsenUndAehnlicheAufwendungen_lte=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/businesses/facets": {
      "get": {
        "tags": [
          "Businesses"
        ],
        "summary": "Filter-builder facet counts",
        "description": "Counts for every value of every filter group at once — what a filter builder puts on its chips. Takes the same filters as GET /businesses and means them the same way; page, pageSize, orderBy, orderByDescending and countOnly are ignored. Faceted semantics: a group is counted with all *other* active filters applied but its own lifted, so a value's count answers \"how many results if I also select this\", and selecting one never empties its own group. totalRecords is the current result count, with every filter applied. Each group returns its top values (top, default 10) plus every value the request already filters on, marked selected — a \"Mehr\" expander is a second call for that one group with a larger top, e.g. ?groups=city&top=50. city and zipCode count a business once per distinct value, so those counts can sum above totalRecords. One caveat worth knowing before wiring a chip up: the city filter matches a substring, while a city facet key is a whole city name, so selecting \"Wien\" also keeps \"Wien-Umgebung\" and can return more than the chip promised. Every other group matches its key exactly. Every group costs its own count, so ask for the groups you are rendering rather than all ten; the answer is cacheable for a day and varies on the whole query string.",
        "parameters": [
          {
            "name": "groups",
            "in": "query",
            "description": "Groups to count; all of them when omitted. One or more of city, zipCode, legalFormCode, courtCode, oenaceCode, gisaLicenseKey, active, hasEdikt, isScheinunternehmen, kennzahl.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "Values per group, largest count first. The status and kennzahl groups are complete lists and ignore it. A \"Mehr\" expander is a second call for the one group with a larger top.",
            "schema": {
              "maximum": 200,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "fnr",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "city",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "courtCode",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "legalFormCode",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "zipCode",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. The Firmenbuch stores no Bundesland, so the assignment is derived from the PLZ of the Geschäftsanschrift; it is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich. An unknown name is a 400.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "hasEdikt",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "active",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "isScheinunternehmen",
            "in": "query",
            "description": "Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "gisaLicenseKey",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "oenaceCode",
            "in": "query",
            "description": "Filter by OeNACE code (OenaceZuord / NumericCode), e.g. [\"46649\"].",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "registeredSince_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for the Firmenbuch registration date (\"Eingetragen seit\"), the earliest executionDate over the company's legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — it is not a founding date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "registeredSince_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for the Firmenbuch registration date (\"Eingetragen seit\"), the earliest executionDate over the company's legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — it is not a founding date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "signerCount_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for the number of distinct people with signing authority, counting the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO and excluding the insolvency and liquidation ones (AB, AW, IW, MW, VW, ZW). Currently held functions only.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "signerCount_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for the number of distinct people with signing authority, counting the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO and excluding the insolvency and liquidation ones (AB, AW, IW, MW, VW, ZW). Currently held functions only.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "enum": [
                "bilanz.AktivierteEigenleistungen",
                "bilanz.AnlageVermoegen",
                "bilanz.Bilanzgewinn",
                "bilanz.BilanzSumme",
                "bilanz.Eigenkapital",
                "bilanz.EingefordertesStammkapital",
                "bilanz.Finanzanlagen",
                "bilanz.Forderungen",
                "bilanz.ForderungenLieferungen",
                "bilanz.Gewinnruecklagen",
                "bilanz.ImmaterielleVermoegensgegenstaende",
                "bilanz.Kapitalruecklagen",
                "bilanz.KurzfristigeForderungen",
                "bilanz.KurzfristigeVerbindlichkeiten",
                "bilanz.LangfristigeForderungen",
                "bilanz.LangfristigeVerbindlichkeiten",
                "bilanz.LiquidesVermoegen",
                "bilanz.PassiveRechnungsabgrenzungen",
                "bilanz.Rechnungsabgrenzungen",
                "bilanz.Rueckstellungen",
                "bilanz.Sachanlagen",
                "bilanz.Umlaufvermoegen",
                "bilanz.Verbindlichkeiten",
                "bilanz.VerbindlichkeitenLieferungen",
                "bilanz.Vorraete",
                "bilanz.Vortrag",
                "bilanz.Wertpapiere",
                "detailViews",
                "employees",
                "guv.Abschreibungen",
                "guv.AufloesungGewinnruecklagen",
                "guv.AufwendungenAusFinanzanlagen",
                "guv.Bestandsveraenderung",
                "guv.BetriebsErfolg",
                "guv.ErgebnisVorSteuern",
                "guv.ErtraegeAusBeteiligungen",
                "guv.ErtraegeAusWertpapieren",
                "guv.Finanzerfolg",
                "guv.Jahresueberschuss",
                "guv.Personalaufwand",
                "guv.SonstigeBetrieblicheAufwendungen",
                "guv.SonstigeBetrieblicheErtraege",
                "guv.SonstigeZinsenUndAehnlicheErtraege",
                "guv.SozialeAufwendungen",
                "guv.Steueraufwand",
                "guv.Umsatzerloese",
                "guv.WarenUndMaterialeinkauf",
                "guv.ZinsenUndAehnlicheAufwendungen",
                "name",
                "registeredSince",
                "signerCount"
              ],
              "type": "string",
              "description": "Sort by this key figure or by name. Same options as key figure filter keys.",
              "nullable": true
            }
          },
          {
            "name": "orderByDescending",
            "in": "query",
            "description": "If true, sort descending; otherwise ascending.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "countOnly",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "minLat",
            "in": "query",
            "description": "Map viewport; all four required together. Matches businesses with >=1 geocoded address in the box.",
            "schema": {
              "maximum": 90,
              "minimum": -90,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxLat",
            "in": "query",
            "schema": {
              "maximum": 90,
              "minimum": -90,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minLng",
            "in": "query",
            "schema": {
              "maximum": 180,
              "minimum": -180,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxLng",
            "in": "query",
            "schema": {
              "maximum": 180,
              "minimum": -180,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted. /businesses/aggregate is unpaged and ignores it.",
            "schema": {
              "maximum": 100000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted. /businesses/aggregate is unpaged and ignores it — top caps its bucket list instead.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "bilanz.AktivierteEigenleistungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: AktivierteEigenleistungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.AktivierteEigenleistungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: AktivierteEigenleistungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.AnlageVermoegen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: AnlageVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.AnlageVermoegen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: AnlageVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Bilanzgewinn_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Bilanzgewinn",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Bilanzgewinn_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Bilanzgewinn",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.BilanzSumme_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: BilanzSumme",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.BilanzSumme_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: BilanzSumme",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Eigenkapital_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Eigenkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Eigenkapital_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Eigenkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.EingefordertesStammkapital_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: EingefordertesStammkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.EingefordertesStammkapital_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: EingefordertesStammkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Finanzanlagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Finanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Finanzanlagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Finanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Forderungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Forderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Forderungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Forderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ForderungenLieferungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: ForderungenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ForderungenLieferungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: ForderungenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Gewinnruecklagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Gewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Gewinnruecklagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Gewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ImmaterielleVermoegensgegenstaende_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: ImmaterielleVermoegensgegenstaende",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ImmaterielleVermoegensgegenstaende_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: ImmaterielleVermoegensgegenstaende",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Kapitalruecklagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Kapitalruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Kapitalruecklagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Kapitalruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeForderungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: KurzfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeForderungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: KurzfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeVerbindlichkeiten_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: KurzfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeVerbindlichkeiten_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: KurzfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeForderungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: LangfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeForderungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: LangfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeVerbindlichkeiten_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: LangfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeVerbindlichkeiten_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: LangfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LiquidesVermoegen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: LiquidesVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LiquidesVermoegen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: LiquidesVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.PassiveRechnungsabgrenzungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: PassiveRechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.PassiveRechnungsabgrenzungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: PassiveRechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rechnungsabgrenzungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Rechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rechnungsabgrenzungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Rechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rueckstellungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Rueckstellungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rueckstellungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Rueckstellungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Sachanlagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Sachanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Sachanlagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Sachanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Umlaufvermoegen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Umlaufvermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Umlaufvermoegen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Umlaufvermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Verbindlichkeiten_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Verbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Verbindlichkeiten_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Verbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.VerbindlichkeitenLieferungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: VerbindlichkeitenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.VerbindlichkeitenLieferungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: VerbindlichkeitenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vorraete_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Vorraete",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vorraete_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Vorraete",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vortrag_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Vortrag",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vortrag_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Vortrag",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Wertpapiere_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Wertpapiere",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Wertpapiere_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Wertpapiere",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "employees_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by number of employees",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "employees_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by number of employees",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Abschreibungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Abschreibungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Abschreibungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Abschreibungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufloesungGewinnruecklagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: AufloesungGewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufloesungGewinnruecklagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: AufloesungGewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufwendungenAusFinanzanlagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: AufwendungenAusFinanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufwendungenAusFinanzanlagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: AufwendungenAusFinanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Bestandsveraenderung_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Bestandsveraenderung",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Bestandsveraenderung_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Bestandsveraenderung",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.BetriebsErfolg_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: BetriebsErfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.BetriebsErfolg_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: BetriebsErfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErgebnisVorSteuern_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ErgebnisVorSteuern",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErgebnisVorSteuern_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ErgebnisVorSteuern",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusBeteiligungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ErtraegeAusBeteiligungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusBeteiligungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ErtraegeAusBeteiligungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusWertpapieren_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ErtraegeAusWertpapieren",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusWertpapieren_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ErtraegeAusWertpapieren",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Finanzerfolg_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Finanzerfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Finanzerfolg_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Finanzerfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Jahresueberschuss_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Jahresueberschuss",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Jahresueberschuss_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Jahresueberschuss",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Personalaufwand_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Personalaufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Personalaufwand_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Personalaufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheAufwendungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheAufwendungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheErtraege_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheErtraege_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeZinsenUndAehnlicheErtraege_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SonstigeZinsenUndAehnlicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeZinsenUndAehnlicheErtraege_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SonstigeZinsenUndAehnlicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SozialeAufwendungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SozialeAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SozialeAufwendungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SozialeAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Steueraufwand_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Steueraufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Steueraufwand_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Steueraufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Umsatzerloese_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Umsatzerloese",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Umsatzerloese_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Umsatzerloese",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.WarenUndMaterialeinkauf_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: WarenUndMaterialeinkauf",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.WarenUndMaterialeinkauf_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: WarenUndMaterialeinkauf",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ZinsenUndAehnlicheAufwendungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ZinsenUndAehnlicheAufwendungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessFacetsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessFacetsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessFacetsResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-keyFigureFilterKeys": [
          "bilanz.AktivierteEigenleistungen",
          "bilanz.AnlageVermoegen",
          "bilanz.Bilanzgewinn",
          "bilanz.BilanzSumme",
          "bilanz.Eigenkapital",
          "bilanz.EingefordertesStammkapital",
          "bilanz.Finanzanlagen",
          "bilanz.Forderungen",
          "bilanz.ForderungenLieferungen",
          "bilanz.Gewinnruecklagen",
          "bilanz.ImmaterielleVermoegensgegenstaende",
          "bilanz.Kapitalruecklagen",
          "bilanz.KurzfristigeForderungen",
          "bilanz.KurzfristigeVerbindlichkeiten",
          "bilanz.LangfristigeForderungen",
          "bilanz.LangfristigeVerbindlichkeiten",
          "bilanz.LiquidesVermoegen",
          "bilanz.PassiveRechnungsabgrenzungen",
          "bilanz.Rechnungsabgrenzungen",
          "bilanz.Rueckstellungen",
          "bilanz.Sachanlagen",
          "bilanz.Umlaufvermoegen",
          "bilanz.Verbindlichkeiten",
          "bilanz.VerbindlichkeitenLieferungen",
          "bilanz.Vorraete",
          "bilanz.Vortrag",
          "bilanz.Wertpapiere",
          "employees",
          "guv.Abschreibungen",
          "guv.AufloesungGewinnruecklagen",
          "guv.AufwendungenAusFinanzanlagen",
          "guv.Bestandsveraenderung",
          "guv.BetriebsErfolg",
          "guv.ErgebnisVorSteuern",
          "guv.ErtraegeAusBeteiligungen",
          "guv.ErtraegeAusWertpapieren",
          "guv.Finanzerfolg",
          "guv.Jahresueberschuss",
          "guv.Personalaufwand",
          "guv.SonstigeBetrieblicheAufwendungen",
          "guv.SonstigeBetrieblicheErtraege",
          "guv.SonstigeZinsenUndAehnlicheErtraege",
          "guv.SozialeAufwendungen",
          "guv.Steueraufwand",
          "guv.Umsatzerloese",
          "guv.WarenUndMaterialeinkauf",
          "guv.ZinsenUndAehnlicheAufwendungen"
        ],
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1BusinessesFacetsList({ groups: [], top: 0, fnr: [], name: 'string', search: 'string', city: [], courtCode: [], legalFormCode: [], zipCode: [], state: [], hasEdikt: true, active: true, isScheinunternehmen: true, gisaLicenseKey: [], oenaceCode: [], registeredSince_gte: '2024-01-01T00:00:00.000Z', registeredSince_lte: '2024-01-01T00:00:00.000Z', signerCount_gte: 0, signerCount_lte: 0, orderBy: 'bilanz.AktivierteEigenleistungen', orderByDescending: true, countOnly: true, minLat: 0, maxLat: 0, minLng: 0, maxLng: 0, page: 0, pageSize: 0, bilanz.AktivierteEigenleistungen_gte: 0, bilanz.AktivierteEigenleistungen_lte: 0, bilanz.AnlageVermoegen_gte: 0, bilanz.AnlageVermoegen_lte: 0, bilanz.Bilanzgewinn_gte: 0, bilanz.Bilanzgewinn_lte: 0, bilanz.BilanzSumme_gte: 0, bilanz.BilanzSumme_lte: 0, bilanz.Eigenkapital_gte: 0, bilanz.Eigenkapital_lte: 0, bilanz.EingefordertesStammkapital_gte: 0, bilanz.EingefordertesStammkapital_lte: 0, bilanz.Finanzanlagen_gte: 0, bilanz.Finanzanlagen_lte: 0, bilanz.Forderungen_gte: 0, bilanz.Forderungen_lte: 0, bilanz.ForderungenLieferungen_gte: 0, bilanz.ForderungenLieferungen_lte: 0, bilanz.Gewinnruecklagen_gte: 0, bilanz.Gewinnruecklagen_lte: 0, bilanz.ImmaterielleVermoegensgegenstaende_gte: 0, bilanz.ImmaterielleVermoegensgegenstaende_lte: 0, bilanz.Kapitalruecklagen_gte: 0, bilanz.Kapitalruecklagen_lte: 0, bilanz.KurzfristigeForderungen_gte: 0, bilanz.KurzfristigeForderungen_lte: 0, bilanz.KurzfristigeVerbindlichkeiten_gte: 0, bilanz.KurzfristigeVerbindlichkeiten_lte: 0, bilanz.LangfristigeForderungen_gte: 0, bilanz.LangfristigeForderungen_lte: 0, bilanz.LangfristigeVerbindlichkeiten_gte: 0, bilanz.LangfristigeVerbindlichkeiten_lte: 0, bilanz.LiquidesVermoegen_gte: 0, bilanz.LiquidesVermoegen_lte: 0, bilanz.PassiveRechnungsabgrenzungen_gte: 0, bilanz.PassiveRechnungsabgrenzungen_lte: 0, bilanz.Rechnungsabgrenzungen_gte: 0, bilanz.Rechnungsabgrenzungen_lte: 0, bilanz.Rueckstellungen_gte: 0, bilanz.Rueckstellungen_lte: 0, bilanz.Sachanlagen_gte: 0, bilanz.Sachanlagen_lte: 0, bilanz.Umlaufvermoegen_gte: 0, bilanz.Umlaufvermoegen_lte: 0, bilanz.Verbindlichkeiten_gte: 0, bilanz.Verbindlichkeiten_lte: 0, bilanz.VerbindlichkeitenLieferungen_gte: 0, bilanz.VerbindlichkeitenLieferungen_lte: 0, bilanz.Vorraete_gte: 0, bilanz.Vorraete_lte: 0, bilanz.Vortrag_gte: 0, bilanz.Vortrag_lte: 0, bilanz.Wertpapiere_gte: 0, bilanz.Wertpapiere_lte: 0, employees_gte: 0, employees_lte: 0, guv.Abschreibungen_gte: 0, guv.Abschreibungen_lte: 0, guv.AufloesungGewinnruecklagen_gte: 0, guv.AufloesungGewinnruecklagen_lte: 0, guv.AufwendungenAusFinanzanlagen_gte: 0, guv.AufwendungenAusFinanzanlagen_lte: 0, guv.Bestandsveraenderung_gte: 0, guv.Bestandsveraenderung_lte: 0, guv.BetriebsErfolg_gte: 0, guv.BetriebsErfolg_lte: 0, guv.ErgebnisVorSteuern_gte: 0, guv.ErgebnisVorSteuern_lte: 0, guv.ErtraegeAusBeteiligungen_gte: 0, guv.ErtraegeAusBeteiligungen_lte: 0, guv.ErtraegeAusWertpapieren_gte: 0, guv.ErtraegeAusWertpapieren_lte: 0, guv.Finanzerfolg_gte: 0, guv.Finanzerfolg_lte: 0, guv.Jahresueberschuss_gte: 0, guv.Jahresueberschuss_lte: 0, guv.Personalaufwand_gte: 0, guv.Personalaufwand_lte: 0, guv.SonstigeBetrieblicheAufwendungen_gte: 0, guv.SonstigeBetrieblicheAufwendungen_lte: 0, guv.SonstigeBetrieblicheErtraege_gte: 0, guv.SonstigeBetrieblicheErtraege_lte: 0, guv.SonstigeZinsenUndAehnlicheErtraege_gte: 0, guv.SonstigeZinsenUndAehnlicheErtraege_lte: 0, guv.SozialeAufwendungen_gte: 0, guv.SozialeAufwendungen_lte: 0, guv.Steueraufwand_gte: 0, guv.Steueraufwand_lte: 0, guv.Umsatzerloese_gte: 0, guv.Umsatzerloese_lte: 0, guv.WarenUndMaterialeinkauf_gte: 0, guv.WarenUndMaterialeinkauf_lte: 0, guv.ZinsenUndAehnlicheAufwendungen_gte: 0, guv.ZinsenUndAehnlicheAufwendungen_lte: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/businesses/facets?groups=&top=0&fnr=&name=string&search=string&city=&courtCode=&legalFormCode=&zipCode=&state=&hasEdikt=true&active=true&isScheinunternehmen=true&gisaLicenseKey=&oenaceCode=&registeredSince_gte=2024-01-01T00%3A00%3A00.000Z&registeredSince_lte=2024-01-01T00%3A00%3A00.000Z&signerCount_gte=0&signerCount_lte=0&orderBy=bilanz.AktivierteEigenleistungen&orderByDescending=true&countOnly=true&minLat=0&maxLat=0&minLng=0&maxLng=0&page=0&pageSize=0&bilanz.AktivierteEigenleistungen_gte=0&bilanz.AktivierteEigenleistungen_lte=0&bilanz.AnlageVermoegen_gte=0&bilanz.AnlageVermoegen_lte=0&bilanz.Bilanzgewinn_gte=0&bilanz.Bilanzgewinn_lte=0&bilanz.BilanzSumme_gte=0&bilanz.BilanzSumme_lte=0&bilanz.Eigenkapital_gte=0&bilanz.Eigenkapital_lte=0&bilanz.EingefordertesStammkapital_gte=0&bilanz.EingefordertesStammkapital_lte=0&bilanz.Finanzanlagen_gte=0&bilanz.Finanzanlagen_lte=0&bilanz.Forderungen_gte=0&bilanz.Forderungen_lte=0&bilanz.ForderungenLieferungen_gte=0&bilanz.ForderungenLieferungen_lte=0&bilanz.Gewinnruecklagen_gte=0&bilanz.Gewinnruecklagen_lte=0&bilanz.ImmaterielleVermoegensgegenstaende_gte=0&bilanz.ImmaterielleVermoegensgegenstaende_lte=0&bilanz.Kapitalruecklagen_gte=0&bilanz.Kapitalruecklagen_lte=0&bilanz.KurzfristigeForderungen_gte=0&bilanz.KurzfristigeForderungen_lte=0&bilanz.KurzfristigeVerbindlichkeiten_gte=0&bilanz.KurzfristigeVerbindlichkeiten_lte=0&bilanz.LangfristigeForderungen_gte=0&bilanz.LangfristigeForderungen_lte=0&bilanz.LangfristigeVerbindlichkeiten_gte=0&bilanz.LangfristigeVerbindlichkeiten_lte=0&bilanz.LiquidesVermoegen_gte=0&bilanz.LiquidesVermoegen_lte=0&bilanz.PassiveRechnungsabgrenzungen_gte=0&bilanz.PassiveRechnungsabgrenzungen_lte=0&bilanz.Rechnungsabgrenzungen_gte=0&bilanz.Rechnungsabgrenzungen_lte=0&bilanz.Rueckstellungen_gte=0&bilanz.Rueckstellungen_lte=0&bilanz.Sachanlagen_gte=0&bilanz.Sachanlagen_lte=0&bilanz.Umlaufvermoegen_gte=0&bilanz.Umlaufvermoegen_lte=0&bilanz.Verbindlichkeiten_gte=0&bilanz.Verbindlichkeiten_lte=0&bilanz.VerbindlichkeitenLieferungen_gte=0&bilanz.VerbindlichkeitenLieferungen_lte=0&bilanz.Vorraete_gte=0&bilanz.Vorraete_lte=0&bilanz.Vortrag_gte=0&bilanz.Vortrag_lte=0&bilanz.Wertpapiere_gte=0&bilanz.Wertpapiere_lte=0&employees_gte=0&employees_lte=0&guv.Abschreibungen_gte=0&guv.Abschreibungen_lte=0&guv.AufloesungGewinnruecklagen_gte=0&guv.AufloesungGewinnruecklagen_lte=0&guv.AufwendungenAusFinanzanlagen_gte=0&guv.AufwendungenAusFinanzanlagen_lte=0&guv.Bestandsveraenderung_gte=0&guv.Bestandsveraenderung_lte=0&guv.BetriebsErfolg_gte=0&guv.BetriebsErfolg_lte=0&guv.ErgebnisVorSteuern_gte=0&guv.ErgebnisVorSteuern_lte=0&guv.ErtraegeAusBeteiligungen_gte=0&guv.ErtraegeAusBeteiligungen_lte=0&guv.ErtraegeAusWertpapieren_gte=0&guv.ErtraegeAusWertpapieren_lte=0&guv.Finanzerfolg_gte=0&guv.Finanzerfolg_lte=0&guv.Jahresueberschuss_gte=0&guv.Jahresueberschuss_lte=0&guv.Personalaufwand_gte=0&guv.Personalaufwand_lte=0&guv.SonstigeBetrieblicheAufwendungen_gte=0&guv.SonstigeBetrieblicheAufwendungen_lte=0&guv.SonstigeBetrieblicheErtraege_gte=0&guv.SonstigeBetrieblicheErtraege_lte=0&guv.SonstigeZinsenUndAehnlicheErtraege_gte=0&guv.SonstigeZinsenUndAehnlicheErtraege_lte=0&guv.SozialeAufwendungen_gte=0&guv.SozialeAufwendungen_lte=0&guv.Steueraufwand_gte=0&guv.Steueraufwand_lte=0&guv.Umsatzerloese_gte=0&guv.Umsatzerloese_lte=0&guv.WarenUndMaterialeinkauf_gte=0&guv.WarenUndMaterialeinkauf_lte=0&guv.ZinsenUndAehnlicheAufwendungen_gte=0&guv.ZinsenUndAehnlicheAufwendungen_lte=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/businesses/map-top": {
      "get": {
        "tags": [
          "Businesses"
        ],
        "summary": "Top company per Bundesland or city",
        "description": "The single largest company of every place in the viewport, by one metric — what a map draws as one pin per place instead of every dot in the box. groupBy picks the place: state (the nine Bundesländer, the default) or city (the towns in view). metric is one of detailViews (Aufrufe), bilanzSumme or employees (Mitarbeiter). minLat, maxLat, minLng and maxLng are required for groupBy=city and ignored for groupBy=state: the nine Bundesländer are the same nine wherever the map is looking, so that call takes no viewport at all — which is what lets one URL serve every pan and actually be cached, here and in the browser. Every /businesses filter additionally applies and means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored. groupLabel is the place's name — \"Tirol\", \"Innsbruck\" — and is what the pin's card is headed with. A company carrying no value for the metric is skipped rather than counted as 0, so a place holding only such companies — like an empty one — returns nothing at all and the array is shorter than the number of places. Each item carries everything a popover card shows, so no second call per pin is needed. groupBy=city answers at most 16 pins, the biggest of the towns in view; the rest is what zooming in is for. Bundesländer are derived from the PLZ of the Geschäftsanschrift, the same rule the state filter on GET /businesses uses, because the Firmenbuch carries no Land. A company that is the biggest of two places in view wins both, each pin carrying an address that is actually on screen and in the town it won. Cached for an hour rather than the day GET /businesses gets: view counts move.",
        "parameters": [
          {
            "name": "metric",
            "in": "query",
            "description": "The figure a place's company is the largest by. One of Metrics.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groupBy",
            "in": "query",
            "description": "What one pin stands for: state or city. Defaults to state.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fnr",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "city",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "courtCode",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "legalFormCode",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "zipCode",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. The Firmenbuch stores no Bundesland, so the assignment is derived from the PLZ of the Geschäftsanschrift; it is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich. An unknown name is a 400.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "hasEdikt",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "active",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "isScheinunternehmen",
            "in": "query",
            "description": "Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "gisaLicenseKey",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "oenaceCode",
            "in": "query",
            "description": "Filter by OeNACE code (OenaceZuord / NumericCode), e.g. [\"46649\"].",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "registeredSince_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for the Firmenbuch registration date (\"Eingetragen seit\"), the earliest executionDate over the company's legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — it is not a founding date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "registeredSince_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for the Firmenbuch registration date (\"Eingetragen seit\"), the earliest executionDate over the company's legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — it is not a founding date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "signerCount_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for the number of distinct people with signing authority, counting the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO and excluding the insolvency and liquidation ones (AB, AW, IW, MW, VW, ZW). Currently held functions only.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "signerCount_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for the number of distinct people with signing authority, counting the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO and excluding the insolvency and liquidation ones (AB, AW, IW, MW, VW, ZW). Currently held functions only.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "enum": [
                "bilanz.AktivierteEigenleistungen",
                "bilanz.AnlageVermoegen",
                "bilanz.Bilanzgewinn",
                "bilanz.BilanzSumme",
                "bilanz.Eigenkapital",
                "bilanz.EingefordertesStammkapital",
                "bilanz.Finanzanlagen",
                "bilanz.Forderungen",
                "bilanz.ForderungenLieferungen",
                "bilanz.Gewinnruecklagen",
                "bilanz.ImmaterielleVermoegensgegenstaende",
                "bilanz.Kapitalruecklagen",
                "bilanz.KurzfristigeForderungen",
                "bilanz.KurzfristigeVerbindlichkeiten",
                "bilanz.LangfristigeForderungen",
                "bilanz.LangfristigeVerbindlichkeiten",
                "bilanz.LiquidesVermoegen",
                "bilanz.PassiveRechnungsabgrenzungen",
                "bilanz.Rechnungsabgrenzungen",
                "bilanz.Rueckstellungen",
                "bilanz.Sachanlagen",
                "bilanz.Umlaufvermoegen",
                "bilanz.Verbindlichkeiten",
                "bilanz.VerbindlichkeitenLieferungen",
                "bilanz.Vorraete",
                "bilanz.Vortrag",
                "bilanz.Wertpapiere",
                "detailViews",
                "employees",
                "guv.Abschreibungen",
                "guv.AufloesungGewinnruecklagen",
                "guv.AufwendungenAusFinanzanlagen",
                "guv.Bestandsveraenderung",
                "guv.BetriebsErfolg",
                "guv.ErgebnisVorSteuern",
                "guv.ErtraegeAusBeteiligungen",
                "guv.ErtraegeAusWertpapieren",
                "guv.Finanzerfolg",
                "guv.Jahresueberschuss",
                "guv.Personalaufwand",
                "guv.SonstigeBetrieblicheAufwendungen",
                "guv.SonstigeBetrieblicheErtraege",
                "guv.SonstigeZinsenUndAehnlicheErtraege",
                "guv.SozialeAufwendungen",
                "guv.Steueraufwand",
                "guv.Umsatzerloese",
                "guv.WarenUndMaterialeinkauf",
                "guv.ZinsenUndAehnlicheAufwendungen",
                "name",
                "registeredSince",
                "signerCount"
              ],
              "type": "string",
              "description": "Sort by this key figure or by name. Same options as key figure filter keys.",
              "nullable": true
            }
          },
          {
            "name": "orderByDescending",
            "in": "query",
            "description": "If true, sort descending; otherwise ascending.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "countOnly",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "minLat",
            "in": "query",
            "description": "Map viewport; all four required together. Matches businesses with >=1 geocoded address in the box.",
            "schema": {
              "maximum": 90,
              "minimum": -90,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxLat",
            "in": "query",
            "schema": {
              "maximum": 90,
              "minimum": -90,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "minLng",
            "in": "query",
            "schema": {
              "maximum": 180,
              "minimum": -180,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "maxLng",
            "in": "query",
            "schema": {
              "maximum": 180,
              "minimum": -180,
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted. /businesses/aggregate is unpaged and ignores it.",
            "schema": {
              "maximum": 100000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted. /businesses/aggregate is unpaged and ignores it — top caps its bucket list instead.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "bilanz.AktivierteEigenleistungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: AktivierteEigenleistungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.AktivierteEigenleistungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: AktivierteEigenleistungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.AnlageVermoegen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: AnlageVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.AnlageVermoegen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: AnlageVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Bilanzgewinn_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Bilanzgewinn",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Bilanzgewinn_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Bilanzgewinn",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.BilanzSumme_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: BilanzSumme",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.BilanzSumme_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: BilanzSumme",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Eigenkapital_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Eigenkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Eigenkapital_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Eigenkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.EingefordertesStammkapital_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: EingefordertesStammkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.EingefordertesStammkapital_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: EingefordertesStammkapital",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Finanzanlagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Finanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Finanzanlagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Finanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Forderungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Forderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Forderungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Forderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ForderungenLieferungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: ForderungenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ForderungenLieferungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: ForderungenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Gewinnruecklagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Gewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Gewinnruecklagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Gewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ImmaterielleVermoegensgegenstaende_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: ImmaterielleVermoegensgegenstaende",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.ImmaterielleVermoegensgegenstaende_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: ImmaterielleVermoegensgegenstaende",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Kapitalruecklagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Kapitalruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Kapitalruecklagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Kapitalruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeForderungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: KurzfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeForderungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: KurzfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeVerbindlichkeiten_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: KurzfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.KurzfristigeVerbindlichkeiten_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: KurzfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeForderungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: LangfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeForderungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: LangfristigeForderungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeVerbindlichkeiten_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: LangfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LangfristigeVerbindlichkeiten_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: LangfristigeVerbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LiquidesVermoegen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: LiquidesVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.LiquidesVermoegen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: LiquidesVermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.PassiveRechnungsabgrenzungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: PassiveRechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.PassiveRechnungsabgrenzungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: PassiveRechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rechnungsabgrenzungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Rechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rechnungsabgrenzungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Rechnungsabgrenzungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rueckstellungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Rueckstellungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Rueckstellungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Rueckstellungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Sachanlagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Sachanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Sachanlagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Sachanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Umlaufvermoegen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Umlaufvermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Umlaufvermoegen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Umlaufvermoegen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Verbindlichkeiten_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Verbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Verbindlichkeiten_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Verbindlichkeiten",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.VerbindlichkeitenLieferungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: VerbindlichkeitenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.VerbindlichkeitenLieferungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: VerbindlichkeitenLieferungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vorraete_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Vorraete",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vorraete_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Vorraete",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vortrag_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Vortrag",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Vortrag_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Vortrag",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Wertpapiere_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by balance sheet item: Wertpapiere",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "bilanz.Wertpapiere_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by balance sheet item: Wertpapiere",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "employees_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by number of employees",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "employees_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by number of employees",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Abschreibungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Abschreibungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Abschreibungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Abschreibungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufloesungGewinnruecklagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: AufloesungGewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufloesungGewinnruecklagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: AufloesungGewinnruecklagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufwendungenAusFinanzanlagen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: AufwendungenAusFinanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.AufwendungenAusFinanzanlagen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: AufwendungenAusFinanzanlagen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Bestandsveraenderung_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Bestandsveraenderung",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Bestandsveraenderung_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Bestandsveraenderung",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.BetriebsErfolg_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: BetriebsErfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.BetriebsErfolg_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: BetriebsErfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErgebnisVorSteuern_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ErgebnisVorSteuern",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErgebnisVorSteuern_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ErgebnisVorSteuern",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusBeteiligungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ErtraegeAusBeteiligungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusBeteiligungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ErtraegeAusBeteiligungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusWertpapieren_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ErtraegeAusWertpapieren",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ErtraegeAusWertpapieren_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ErtraegeAusWertpapieren",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Finanzerfolg_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Finanzerfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Finanzerfolg_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Finanzerfolg",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Jahresueberschuss_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Jahresueberschuss",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Jahresueberschuss_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Jahresueberschuss",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Personalaufwand_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Personalaufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Personalaufwand_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Personalaufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheAufwendungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheAufwendungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheErtraege_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeBetrieblicheErtraege_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SonstigeBetrieblicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeZinsenUndAehnlicheErtraege_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SonstigeZinsenUndAehnlicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SonstigeZinsenUndAehnlicheErtraege_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SonstigeZinsenUndAehnlicheErtraege",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SozialeAufwendungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: SozialeAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.SozialeAufwendungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: SozialeAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Steueraufwand_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Steueraufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Steueraufwand_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Steueraufwand",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Umsatzerloese_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: Umsatzerloese",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.Umsatzerloese_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: Umsatzerloese",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.WarenUndMaterialeinkauf_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: WarenUndMaterialeinkauf",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.WarenUndMaterialeinkauf_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: WarenUndMaterialeinkauf",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ZinsenUndAehnlicheAufwendungen_gte",
            "in": "query",
            "description": "Lower bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          },
          {
            "name": "guv.ZinsenUndAehnlicheAufwendungen_lte",
            "in": "query",
            "description": "Upper bound (inclusive) for Filter by profit and loss item: ZinsenUndAehnlicheAufwendungen",
            "schema": {
              "type": "number",
              "format": "decimal",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BusinessMapTopItem"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BusinessMapTopItem"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BusinessMapTopItem"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-keyFigureFilterKeys": [
          "bilanz.AktivierteEigenleistungen",
          "bilanz.AnlageVermoegen",
          "bilanz.Bilanzgewinn",
          "bilanz.BilanzSumme",
          "bilanz.Eigenkapital",
          "bilanz.EingefordertesStammkapital",
          "bilanz.Finanzanlagen",
          "bilanz.Forderungen",
          "bilanz.ForderungenLieferungen",
          "bilanz.Gewinnruecklagen",
          "bilanz.ImmaterielleVermoegensgegenstaende",
          "bilanz.Kapitalruecklagen",
          "bilanz.KurzfristigeForderungen",
          "bilanz.KurzfristigeVerbindlichkeiten",
          "bilanz.LangfristigeForderungen",
          "bilanz.LangfristigeVerbindlichkeiten",
          "bilanz.LiquidesVermoegen",
          "bilanz.PassiveRechnungsabgrenzungen",
          "bilanz.Rechnungsabgrenzungen",
          "bilanz.Rueckstellungen",
          "bilanz.Sachanlagen",
          "bilanz.Umlaufvermoegen",
          "bilanz.Verbindlichkeiten",
          "bilanz.VerbindlichkeitenLieferungen",
          "bilanz.Vorraete",
          "bilanz.Vortrag",
          "bilanz.Wertpapiere",
          "employees",
          "guv.Abschreibungen",
          "guv.AufloesungGewinnruecklagen",
          "guv.AufwendungenAusFinanzanlagen",
          "guv.Bestandsveraenderung",
          "guv.BetriebsErfolg",
          "guv.ErgebnisVorSteuern",
          "guv.ErtraegeAusBeteiligungen",
          "guv.ErtraegeAusWertpapieren",
          "guv.Finanzerfolg",
          "guv.Jahresueberschuss",
          "guv.Personalaufwand",
          "guv.SonstigeBetrieblicheAufwendungen",
          "guv.SonstigeBetrieblicheErtraege",
          "guv.SonstigeZinsenUndAehnlicheErtraege",
          "guv.SozialeAufwendungen",
          "guv.Steueraufwand",
          "guv.Umsatzerloese",
          "guv.WarenUndMaterialeinkauf",
          "guv.ZinsenUndAehnlicheAufwendungen"
        ],
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1BusinessesMapTopList({ metric: 'string', groupBy: 'string', fnr: [], name: 'string', search: 'string', city: [], courtCode: [], legalFormCode: [], zipCode: [], state: [], hasEdikt: true, active: true, isScheinunternehmen: true, gisaLicenseKey: [], oenaceCode: [], registeredSince_gte: '2024-01-01T00:00:00.000Z', registeredSince_lte: '2024-01-01T00:00:00.000Z', signerCount_gte: 0, signerCount_lte: 0, orderBy: 'bilanz.AktivierteEigenleistungen', orderByDescending: true, countOnly: true, minLat: 0, maxLat: 0, minLng: 0, maxLng: 0, page: 0, pageSize: 0, bilanz.AktivierteEigenleistungen_gte: 0, bilanz.AktivierteEigenleistungen_lte: 0, bilanz.AnlageVermoegen_gte: 0, bilanz.AnlageVermoegen_lte: 0, bilanz.Bilanzgewinn_gte: 0, bilanz.Bilanzgewinn_lte: 0, bilanz.BilanzSumme_gte: 0, bilanz.BilanzSumme_lte: 0, bilanz.Eigenkapital_gte: 0, bilanz.Eigenkapital_lte: 0, bilanz.EingefordertesStammkapital_gte: 0, bilanz.EingefordertesStammkapital_lte: 0, bilanz.Finanzanlagen_gte: 0, bilanz.Finanzanlagen_lte: 0, bilanz.Forderungen_gte: 0, bilanz.Forderungen_lte: 0, bilanz.ForderungenLieferungen_gte: 0, bilanz.ForderungenLieferungen_lte: 0, bilanz.Gewinnruecklagen_gte: 0, bilanz.Gewinnruecklagen_lte: 0, bilanz.ImmaterielleVermoegensgegenstaende_gte: 0, bilanz.ImmaterielleVermoegensgegenstaende_lte: 0, bilanz.Kapitalruecklagen_gte: 0, bilanz.Kapitalruecklagen_lte: 0, bilanz.KurzfristigeForderungen_gte: 0, bilanz.KurzfristigeForderungen_lte: 0, bilanz.KurzfristigeVerbindlichkeiten_gte: 0, bilanz.KurzfristigeVerbindlichkeiten_lte: 0, bilanz.LangfristigeForderungen_gte: 0, bilanz.LangfristigeForderungen_lte: 0, bilanz.LangfristigeVerbindlichkeiten_gte: 0, bilanz.LangfristigeVerbindlichkeiten_lte: 0, bilanz.LiquidesVermoegen_gte: 0, bilanz.LiquidesVermoegen_lte: 0, bilanz.PassiveRechnungsabgrenzungen_gte: 0, bilanz.PassiveRechnungsabgrenzungen_lte: 0, bilanz.Rechnungsabgrenzungen_gte: 0, bilanz.Rechnungsabgrenzungen_lte: 0, bilanz.Rueckstellungen_gte: 0, bilanz.Rueckstellungen_lte: 0, bilanz.Sachanlagen_gte: 0, bilanz.Sachanlagen_lte: 0, bilanz.Umlaufvermoegen_gte: 0, bilanz.Umlaufvermoegen_lte: 0, bilanz.Verbindlichkeiten_gte: 0, bilanz.Verbindlichkeiten_lte: 0, bilanz.VerbindlichkeitenLieferungen_gte: 0, bilanz.VerbindlichkeitenLieferungen_lte: 0, bilanz.Vorraete_gte: 0, bilanz.Vorraete_lte: 0, bilanz.Vortrag_gte: 0, bilanz.Vortrag_lte: 0, bilanz.Wertpapiere_gte: 0, bilanz.Wertpapiere_lte: 0, employees_gte: 0, employees_lte: 0, guv.Abschreibungen_gte: 0, guv.Abschreibungen_lte: 0, guv.AufloesungGewinnruecklagen_gte: 0, guv.AufloesungGewinnruecklagen_lte: 0, guv.AufwendungenAusFinanzanlagen_gte: 0, guv.AufwendungenAusFinanzanlagen_lte: 0, guv.Bestandsveraenderung_gte: 0, guv.Bestandsveraenderung_lte: 0, guv.BetriebsErfolg_gte: 0, guv.BetriebsErfolg_lte: 0, guv.ErgebnisVorSteuern_gte: 0, guv.ErgebnisVorSteuern_lte: 0, guv.ErtraegeAusBeteiligungen_gte: 0, guv.ErtraegeAusBeteiligungen_lte: 0, guv.ErtraegeAusWertpapieren_gte: 0, guv.ErtraegeAusWertpapieren_lte: 0, guv.Finanzerfolg_gte: 0, guv.Finanzerfolg_lte: 0, guv.Jahresueberschuss_gte: 0, guv.Jahresueberschuss_lte: 0, guv.Personalaufwand_gte: 0, guv.Personalaufwand_lte: 0, guv.SonstigeBetrieblicheAufwendungen_gte: 0, guv.SonstigeBetrieblicheAufwendungen_lte: 0, guv.SonstigeBetrieblicheErtraege_gte: 0, guv.SonstigeBetrieblicheErtraege_lte: 0, guv.SonstigeZinsenUndAehnlicheErtraege_gte: 0, guv.SonstigeZinsenUndAehnlicheErtraege_lte: 0, guv.SozialeAufwendungen_gte: 0, guv.SozialeAufwendungen_lte: 0, guv.Steueraufwand_gte: 0, guv.Steueraufwand_lte: 0, guv.Umsatzerloese_gte: 0, guv.Umsatzerloese_lte: 0, guv.WarenUndMaterialeinkauf_gte: 0, guv.WarenUndMaterialeinkauf_lte: 0, guv.ZinsenUndAehnlicheAufwendungen_gte: 0, guv.ZinsenUndAehnlicheAufwendungen_lte: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/businesses/map-top?metric=string&groupBy=string&fnr=&name=string&search=string&city=&courtCode=&legalFormCode=&zipCode=&state=&hasEdikt=true&active=true&isScheinunternehmen=true&gisaLicenseKey=&oenaceCode=&registeredSince_gte=2024-01-01T00%3A00%3A00.000Z&registeredSince_lte=2024-01-01T00%3A00%3A00.000Z&signerCount_gte=0&signerCount_lte=0&orderBy=bilanz.AktivierteEigenleistungen&orderByDescending=true&countOnly=true&minLat=0&maxLat=0&minLng=0&maxLng=0&page=0&pageSize=0&bilanz.AktivierteEigenleistungen_gte=0&bilanz.AktivierteEigenleistungen_lte=0&bilanz.AnlageVermoegen_gte=0&bilanz.AnlageVermoegen_lte=0&bilanz.Bilanzgewinn_gte=0&bilanz.Bilanzgewinn_lte=0&bilanz.BilanzSumme_gte=0&bilanz.BilanzSumme_lte=0&bilanz.Eigenkapital_gte=0&bilanz.Eigenkapital_lte=0&bilanz.EingefordertesStammkapital_gte=0&bilanz.EingefordertesStammkapital_lte=0&bilanz.Finanzanlagen_gte=0&bilanz.Finanzanlagen_lte=0&bilanz.Forderungen_gte=0&bilanz.Forderungen_lte=0&bilanz.ForderungenLieferungen_gte=0&bilanz.ForderungenLieferungen_lte=0&bilanz.Gewinnruecklagen_gte=0&bilanz.Gewinnruecklagen_lte=0&bilanz.ImmaterielleVermoegensgegenstaende_gte=0&bilanz.ImmaterielleVermoegensgegenstaende_lte=0&bilanz.Kapitalruecklagen_gte=0&bilanz.Kapitalruecklagen_lte=0&bilanz.KurzfristigeForderungen_gte=0&bilanz.KurzfristigeForderungen_lte=0&bilanz.KurzfristigeVerbindlichkeiten_gte=0&bilanz.KurzfristigeVerbindlichkeiten_lte=0&bilanz.LangfristigeForderungen_gte=0&bilanz.LangfristigeForderungen_lte=0&bilanz.LangfristigeVerbindlichkeiten_gte=0&bilanz.LangfristigeVerbindlichkeiten_lte=0&bilanz.LiquidesVermoegen_gte=0&bilanz.LiquidesVermoegen_lte=0&bilanz.PassiveRechnungsabgrenzungen_gte=0&bilanz.PassiveRechnungsabgrenzungen_lte=0&bilanz.Rechnungsabgrenzungen_gte=0&bilanz.Rechnungsabgrenzungen_lte=0&bilanz.Rueckstellungen_gte=0&bilanz.Rueckstellungen_lte=0&bilanz.Sachanlagen_gte=0&bilanz.Sachanlagen_lte=0&bilanz.Umlaufvermoegen_gte=0&bilanz.Umlaufvermoegen_lte=0&bilanz.Verbindlichkeiten_gte=0&bilanz.Verbindlichkeiten_lte=0&bilanz.VerbindlichkeitenLieferungen_gte=0&bilanz.VerbindlichkeitenLieferungen_lte=0&bilanz.Vorraete_gte=0&bilanz.Vorraete_lte=0&bilanz.Vortrag_gte=0&bilanz.Vortrag_lte=0&bilanz.Wertpapiere_gte=0&bilanz.Wertpapiere_lte=0&employees_gte=0&employees_lte=0&guv.Abschreibungen_gte=0&guv.Abschreibungen_lte=0&guv.AufloesungGewinnruecklagen_gte=0&guv.AufloesungGewinnruecklagen_lte=0&guv.AufwendungenAusFinanzanlagen_gte=0&guv.AufwendungenAusFinanzanlagen_lte=0&guv.Bestandsveraenderung_gte=0&guv.Bestandsveraenderung_lte=0&guv.BetriebsErfolg_gte=0&guv.BetriebsErfolg_lte=0&guv.ErgebnisVorSteuern_gte=0&guv.ErgebnisVorSteuern_lte=0&guv.ErtraegeAusBeteiligungen_gte=0&guv.ErtraegeAusBeteiligungen_lte=0&guv.ErtraegeAusWertpapieren_gte=0&guv.ErtraegeAusWertpapieren_lte=0&guv.Finanzerfolg_gte=0&guv.Finanzerfolg_lte=0&guv.Jahresueberschuss_gte=0&guv.Jahresueberschuss_lte=0&guv.Personalaufwand_gte=0&guv.Personalaufwand_lte=0&guv.SonstigeBetrieblicheAufwendungen_gte=0&guv.SonstigeBetrieblicheAufwendungen_lte=0&guv.SonstigeBetrieblicheErtraege_gte=0&guv.SonstigeBetrieblicheErtraege_lte=0&guv.SonstigeZinsenUndAehnlicheErtraege_gte=0&guv.SonstigeZinsenUndAehnlicheErtraege_lte=0&guv.SozialeAufwendungen_gte=0&guv.SozialeAufwendungen_lte=0&guv.Steueraufwand_gte=0&guv.Steueraufwand_lte=0&guv.Umsatzerloese_gte=0&guv.Umsatzerloese_lte=0&guv.WarenUndMaterialeinkauf_gte=0&guv.WarenUndMaterialeinkauf_lte=0&guv.ZinsenUndAehnlicheAufwendungen_gte=0&guv.ZinsenUndAehnlicheAufwendungen_lte=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/businesses/{fnr}/similar": {
      "get": {
        "tags": [
          "Businesses"
        ],
        "summary": "Similar companies",
        "description": "Active businesses similar to the given one (same OeNACE branch, same region preferred).",
        "parameters": [
          {
            "name": "fnr",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BusinessListResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BusinessListResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BusinessListResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1BusinessesSimilarList('string');"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/businesses/string/similar' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/businesses/{fnr}": {
      "get": {
        "tags": [
          "Businesses"
        ],
        "summary": "Company Firmenakte",
        "description": "Returns the whole Firmenakte of one company: master data, addresses, people, GISA licences, Edikte, documents and the parsed annual accounts. fnr is matched exactly against the stored, normalised Firmenbuchnummer — lower case, no spaces, no leading zeros and no \"FN\" prefix, e.g. 34853f. Nothing is normalised on the way in, so \"FN 34853 f\" answers 404 rather than the company. 404 also means the company is not in the dataset yet.",
        "parameters": [
          {
            "name": "fnr",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessDetailResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessDetailResponse"
                },
                "example": {
                  "fnr": "477012p",
                  "euid": "ATFN477012p",
                  "name": "Alpenquell Getränkehandel GmbH",
                  "purpose": "Großhandel mit Getränken sowie Import und Vertrieb von Mineralwasser",
                  "legalForm": {
                    "code": "GMBH",
                    "createdAt": "2021-02-11T09:00:00.000Z",
                    "updatedAt": "2021-02-11T09:00:00.000Z",
                    "text": "Gesellschaft mit beschränkter Haftung"
                  },
                  "court": {
                    "code": "90001",
                    "createdAt": "2021-02-11T09:00:00.000Z",
                    "updatedAt": "2021-02-11T09:00:00.000Z",
                    "text": "Wien"
                  },
                  "lastCrawledAt": "2026-06-18T03:12:44.118Z",
                  "createdAt": "2023-02-09T21:40:11.502Z",
                  "updatedAt": "2026-06-18T03:12:44.118Z",
                  "isActive": true,
                  "isScheinunternehmen": false,
                  "scheinunternehmenKundmachungen": [],
                  "addresses": [
                    {
                      "id": 811204,
                      "fnr": "477012p",
                      "createdAt": "2023-02-09T21:40:11.502Z",
                      "updatedAt": "2026-06-18T03:12:44.118Z",
                      "street": "Sonnwendgasse",
                      "houseNumber": "14/3",
                      "zipCode": "1100",
                      "city": "Wien",
                      "country": "Österreich",
                      "hash": "6E3E9862A6B530C94BA88D6D3648041F758A522AE6FEB0AEADC0179973BE6696",
                      "latitude": 48.17934,
                      "longitude": 16.38217
                    }
                  ],
                  "edikte": [],
                  "assignments": [
                    {
                      "fnr": "477012p",
                      "vnr": "14",
                      "pnr": "1",
                      "personId": "martina-hofbauer-1978-03-14",
                      "functionCode": "GF",
                      "capitalAmount": null,
                      "currency": null,
                      "person": {
                        "id": "martina-hofbauer-1978-03-14",
                        "firstName": "Martina",
                        "lastName": "Hofbauer",
                        "birthDate": "14.03.1978",
                        "titlePrefix": "Mag.",
                        "titleSuffix": null
                      }
                    },
                    {
                      "fnr": "477012p",
                      "vnr": "14",
                      "pnr": "2",
                      "personId": "bernhard-ostermann-1969-08-22",
                      "functionCode": "GF",
                      "capitalAmount": null,
                      "currency": null,
                      "person": {
                        "id": "bernhard-ostermann-1969-08-22",
                        "firstName": "Bernhard",
                        "lastName": "Ostermann",
                        "birthDate": "22.08.1969",
                        "titlePrefix": null,
                        "titleSuffix": null
                      }
                    },
                    {
                      "fnr": "477012p",
                      "vnr": "9",
                      "pnr": "3",
                      "personId": "gerald-steinmetz-1965-11-02",
                      "functionCode": "GS",
                      "capitalAmount": 35000,
                      "currency": "EUR",
                      "person": {
                        "id": "gerald-steinmetz-1965-11-02",
                        "firstName": "Gerald",
                        "lastName": "Steinmetz",
                        "birthDate": "02.11.1965",
                        "titlePrefix": null,
                        "titleSuffix": "MBA"
                      }
                    }
                  ],
                  "gisaLicenses": [
                    {
                      "gisaZahl": 31284915,
                      "fnr": "477012p",
                      "createdAt": "2023-02-09T21:41:03.884Z",
                      "updatedAt": "2026-04-27T02:33:19.640Z",
                      "licenseKey": 21422,
                      "trade": {
                        "licenseKey": 21422,
                        "createdAt": "2021-02-11T09:00:00.000Z",
                        "updatedAt": "2021-02-11T09:00:00.000Z",
                        "description": "Handelsgewerbe und Handelsagent",
                        "isHistorical": false
                      },
                      "description": "Handelsgewerbe und Handelsagent",
                      "isActive": true,
                      "addressId": 811204,
                      "personId": null
                    }
                  ],
                  "legalRecords": [
                    {
                      "fnr": "477012p",
                      "vnr": "14",
                      "executionDate": "2025-11-04T00:00:00.000Z",
                      "caseNumber": "12 Fr 4711/25 z",
                      "applicationText": "Geschäftsführer: Ostermann Bernhard, geb. 22.08.1969; vertritt seit 04.11.2025 selbständig",
                      "changeType": null,
                      "changes": [
                        {
                          "type": "Assignments",
                          "value": [
                            {
                              "fnr": "477012p",
                              "vnr": "14",
                              "pnr": "2",
                              "personId": "bernhard-ostermann-1969-08-22",
                              "functionCode": "GF",
                              "capitalAmount": null,
                              "currency": null,
                              "person": {
                                "id": "bernhard-ostermann-1969-08-22",
                                "firstName": "Bernhard",
                                "lastName": "Ostermann",
                                "birthDate": "22.08.1969",
                                "titlePrefix": null,
                                "titleSuffix": null
                              }
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "fnr": "477012p",
                      "vnr": "1",
                      "executionDate": "2011-06-15T00:00:00.000Z",
                      "caseNumber": "12 Fr 2093/11 h",
                      "applicationText": "Neueintragung",
                      "changeType": null,
                      "changes": [
                        {
                          "type": "Name",
                          "value": "Alpenquell Getränkehandel GmbH"
                        },
                        {
                          "type": "LegalForm",
                          "value": {
                            "code": "GMBH",
                            "createdAt": "2021-02-11T09:00:00.000Z",
                            "updatedAt": "2021-02-11T09:00:00.000Z",
                            "text": "Gesellschaft mit beschränkter Haftung"
                          }
                        }
                      ]
                    }
                  ],
                  "documents": [
                    {
                      "documentKey": "47701200000000000000000000000042",
                      "fnr": "477012p",
                      "createdAt": "2025-09-30T01:18:55.207Z",
                      "updatedAt": "2025-09-30T01:18:55.207Z",
                      "documentTypeCode": "JA",
                      "documentDate": "2025-09-26T00:00:00.000Z",
                      "fileExtension": "pdf"
                    }
                  ],
                  "parsedJahresabschluesse": [
                    {
                      "documentKey": "47701200000000000000000000000042",
                      "documentDate": "2025-09-26T00:00:00.000Z",
                      "employees": 24,
                      "bilanz": {
                        "bilanzSumme": 4218736.42,
                        "anlageVermoegen": 1642310,
                        "immaterielleVermoegensgegenstaende": 48920,
                        "sachanlagen": 1368390,
                        "finanzanlagen": 225000,
                        "umlaufvermoegen": 2561426.42,
                        "vorraete": 874512.1,
                        "forderungen": 1205338.22,
                        "forderungenLieferungen": 1118744.03,
                        "liquidesVermoegen": 481576.1,
                        "rechnungsabgrenzungen": 15000,
                        "eigenkapital": 1462903.18,
                        "eingefordertesStammkapital": 35000,
                        "kapitalruecklagen": 120000,
                        "gewinnruecklagen": 240000,
                        "bilanzgewinn": 1067903.18,
                        "rueckstellungen": 312480,
                        "verbindlichkeiten": 2398353.24,
                        "langfristigeVerbindlichkeiten": 940000,
                        "kurzfristigeVerbindlichkeiten": 1458353.24,
                        "verbindlichkeitenLieferungen": 1012887.66,
                        "passiveRechnungsabgrenzungen": 45000,
                        "wertpapiere": null
                      },
                      "guv": {
                        "umsatzerloese": 9847112.55,
                        "warenUndMaterialeinkauf": 6912004.31,
                        "personalaufwand": 1584220.77,
                        "sozialeAufwendungen": 371904.12,
                        "abschreibungen": 246118.4,
                        "sonstigeBetrieblicheErtraege": 88431.05,
                        "sonstigeBetrieblicheAufwendungen": 781443.66,
                        "betriebsErfolg": 411756.46,
                        "zinsenUndAehnlicheAufwendungen": 34220.18,
                        "finanzerfolg": 28114.32,
                        "ergebnisVorSteuern": 439870.78,
                        "steueraufwand": 121428.08,
                        "jahresueberschuss": 318442.7,
                        "bestandsveraenderung": null
                      }
                    }
                  ],
                  "latestKeyFigures": {
                    "fnr": "477012p",
                    "documentKey": "47701200000000000000000000000042",
                    "documentDate": "2025-09-26T00:00:00.000Z",
                    "employees": 24,
                    "bilanzSumme": 4218736.42,
                    "anlageVermoegen": 1642310,
                    "immaterielleVermoegensgegenstaende": 48920,
                    "sachanlagen": 1368390,
                    "finanzanlagen": 225000,
                    "umlaufvermoegen": 2561426.42,
                    "vorraete": 874512.1,
                    "forderungen": 1205338.22,
                    "forderungenLieferungen": 1118744.03,
                    "liquidesVermoegen": 481576.1,
                    "rechnungsabgrenzungen": 15000,
                    "eigenkapital": 1462903.18,
                    "eingefordertesStammkapital": 35000,
                    "kapitalruecklagen": 120000,
                    "gewinnruecklagen": 240000,
                    "bilanzgewinn": 1067903.18,
                    "rueckstellungen": 312480,
                    "verbindlichkeiten": 2398353.24,
                    "langfristigeVerbindlichkeiten": 940000,
                    "kurzfristigeVerbindlichkeiten": 1458353.24,
                    "verbindlichkeitenLieferungen": 1012887.66,
                    "passiveRechnungsabgrenzungen": 45000,
                    "wertpapiere": null,
                    "umsatzerloese": 9847112.55,
                    "warenUndMaterialeinkauf": 6912004.31,
                    "personalaufwand": 1584220.77,
                    "sozialeAufwendungen": 371904.12,
                    "abschreibungen": 246118.4,
                    "sonstigeBetrieblicheErtraege": 88431.05,
                    "sonstigeBetrieblicheAufwendungen": 781443.66,
                    "betriebsErfolg": 411756.46,
                    "zinsenUndAehnlicheAufwendungen": 34220.18,
                    "finanzerfolg": 28114.32,
                    "ergebnisVorSteuern": 439870.78,
                    "steueraufwand": 121428.08,
                    "jahresueberschuss": 318442.7,
                    "bestandsveraenderung": null
                  },
                  "oenaces": [
                    {
                      "kurztitel": "GH m. Nahrungsmitteln",
                      "titel": "Großhandel mit sonstigen Nahrungsmitteln, Getränken und Tabakwaren",
                      "code": "G 46.34-9",
                      "numericCode": "46349"
                    }
                  ]
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1BusinessesDetail('string');"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/businesses/string' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/businesses/changes/{id}": {
      "get": {
        "tags": [
          "Businesses"
        ],
        "summary": "Firmenbuch change by id",
        "description": "Returns one Firmenbuch change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not \"business\" answers 404 here.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessChange"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessChange"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessChange"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "No resource matches the identifier. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1BusinessesChangesDetail(0);"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/businesses/changes/0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/businesses/changes": {
      "get": {
        "tags": [
          "Businesses"
        ],
        "summary": "Firmenbuch change feed",
        "description": "Feed of Firmenbuch changes — one entry per new legal record (Eintragung). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate — so a back-dated entry is not missed — and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means \"at least this many\" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Use GET /globalchanges for the same feed across all four registers.",
        "parameters": [
          {
            "name": "fnr",
            "in": "query",
            "description": "Only changes for this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "since",
            "in": "query",
            "description": "Only changes we recorded at or after this instant — inclusive, and ANDed with sinceId when both are sent. A timestamp is not a cursor: poll on sinceId.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "sinceId",
            "in": "query",
            "description": "Only changes with a higher id than this — exclusive, so pass back the highest id you have stored. This is the cursor to poll the feed on.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted. Walk it upwards within one poll, holding sinceId fixed, until a page comes back with fewer than pageSize rows.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfBusinessChange"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfBusinessChange"
                },
                "example": {
                  "data": [
                    {
                      "id": 4821337,
                      "fnr": "477012p",
                      "vnr": "14",
                      "changedDate": "2026-07-14T00:00:00.000Z"
                    },
                    {
                      "id": 4821338,
                      "fnr": "398201s",
                      "vnr": "7",
                      "changedDate": "2026-07-14T00:00:00.000Z"
                    },
                    {
                      "id": 4821341,
                      "fnr": "214785k",
                      "vnr": "22",
                      "changedDate": null
                    }
                  ],
                  "pageNumber": 1,
                  "pageSize": 100,
                  "totalRecords": 3,
                  "totalPages": 1
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfBusinessChange"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1BusinessesChangesList({ fnr: 'string', since: '2024-01-01T00:00:00.000Z', sinceId: 0, page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/businesses/changes?fnr=string&since=2024-01-01T00%3A00%3A00.000Z&sinceId=0&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/assignmentfunctions": {
      "get": {
        "tags": [
          "AssignmentFunctions"
        ],
        "summary": "Assignment function catalog",
        "description": "Returns all assignment functions (code/text lookup) for display. Cached 24h.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssignmentFunctionItemResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssignmentFunctionItemResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssignmentFunctionItemResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1AssignmentfunctionsList();"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/assignmentfunctions' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/addresses/locations": {
      "get": {
        "tags": [
          "Addresses"
        ],
        "summary": "City and ZIP combinations",
        "description": "Returns unique City+ZipCode combinations from addresses with pagination and optional search.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfAddressLocationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfAddressLocationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfAddressLocationResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1AddressesLocationsList({ search: 'string', page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/addresses/locations?search=string&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/addresses/cities": {
      "get": {
        "tags": [
          "Addresses"
        ],
        "summary": "Cities",
        "description": "Returns unique cities from addresses with pagination and optional search.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfCityResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfCityResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfCityResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1AddressesCitiesList({ search: 'string', page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/addresses/cities?search=string&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/addresses/suggest": {
      "get": {
        "tags": [
          "Addresses"
        ],
        "summary": "Location autocomplete",
        "description": "Ranks cities and City+ZipCode combinations against one term and answers the best few of both, as one ranking split into two lists — what a location filter's type-ahead needs, where /addresses/locations and /addresses/cities are the paged catalogues behind it. Ordered by where the term sits in the label, then by the shorter label, then by company count, so \"wien\" answers Wien before Wiener Neustadt and before every 1xxx ZIP that carries it. A term shorter than two characters is ignored and the biggest groups come back instead. top caps both lists together, not each.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "description": "The term to rank against. Shorter than two characters it is ignored entirely and the biggest groups come back instead.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "How many suggestions to answer, across both lists; defaults to 10 when omitted.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LocationSuggestionsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationSuggestionsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationSuggestionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1AddressesSuggestList({ search: 'string', top: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/addresses/suggest?search=string&top=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    },
    "/api/v1/addresses/zipcodes": {
      "get": {
        "tags": [
          "Addresses"
        ],
        "summary": "ZIP codes",
        "description": "Returns unique zip codes from addresses with pagination and optional search.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "1-based page number; defaults to 1 when omitted.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page; defaults to 10 when omitted.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfZipCodeResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfZipCodeResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfZipCodeResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was rejected: a malformed or out-of-range parameter, or a filter value the endpoint does not accept. Model validation failures list the offending fields in errors. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "The x-api-key header is missing, unknown or no longer active — or, on the routes that belong to one account (lists, queries), the key names no account and no session cookie was sent. Does not count against the monthly quota.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Either the plan's monthly request quota is exhausted, or too many requests were sent in a short burst. Retry-After tells the two apart: the seconds until the quota resets, or the burst window. See \"Quotas & rate limits\" in the introduction.",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error. Quote traceId when reporting it. Counts against the monthly quota.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "typescript",
            "label": "TypeScript",
            "source": "import { createApiClient } from '@firmenakte/api-client';\n\nconst api = createApiClient({\n  apiKey: 'YOUR_API_KEY',\n});\n\nconst result = await api.v1AddressesZipcodesList({ search: 'string', page: 0, pageSize: 0 });"
          },
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl -X GET 'https://api.firmenakte.at/api/v1/addresses/zipcodes?search=string&page=0&pageSize=0' \\\n  -H 'x-api-key: YOUR_API_KEY' \\\n  -H 'Accept: application/json'"
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ApiError": {
        "required": [
          "error"
        ],
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "Human-readable description of what was rejected."
          }
        },
        "description": "Error body of the responses written before the request reaches an endpoint (401, 429)."
      },
      "Address": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "fnr": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "street": {
            "type": "string",
            "nullable": true
          },
          "houseNumber": {
            "type": "string",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "hash": {
            "type": "string",
            "description": "Stable content hash (see ToHash), stamped on save. Used to key geocoding across recrawls.",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "description": "Geocoded coordinates, stitched in from address_geocodes by hash when serving responses. Not persisted on the address row.",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        }
      },
      "AddressLocationResponse": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string"
          },
          "zipCode": {
            "type": "string"
          },
          "businessCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AggregatedChangesResponse": {
        "type": "object",
        "properties": {
          "businessChanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessChange"
            }
          },
          "documentChanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentChange"
            }
          },
          "ediktChanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EdiktChange"
            }
          },
          "globalChanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GlobalChange"
            }
          }
        },
        "description": "Response for the aggregated changes endpoint. Contains all four change types for the requested FNRs."
      },
      "AssignmentFunctionItemResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        }
      },
      "Bilanz": {
        "type": "object",
        "properties": {
          "documentKey": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "bilanzSumme": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "anlageVermoegen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "immaterielleVermoegensgegenstaende": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "aktivierteEigenleistungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sachanlagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "finanzanlagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "umlaufvermoegen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vorraete": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "forderungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "forderungenLieferungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "wertpapiere": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "liquidesVermoegen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "rechnungsabgrenzungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "eigenkapital": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "eingefordertesStammkapital": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "kapitalruecklagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "gewinnruecklagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "bilanzgewinn": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vortrag": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "rueckstellungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "verbindlichkeiten": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "langfristigeVerbindlichkeiten": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "kurzfristigeVerbindlichkeiten": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "verbindlichkeitenLieferungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "langfristigeForderungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "kurzfristigeForderungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "passiveRechnungsabgrenzungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        }
      },
      "BilanzDto": {
        "type": "object",
        "properties": {
          "bilanzSumme": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "anlageVermoegen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "immaterielleVermoegensgegenstaende": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "aktivierteEigenleistungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sachanlagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "finanzanlagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "umlaufvermoegen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vorraete": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "forderungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "forderungenLieferungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "wertpapiere": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "liquidesVermoegen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "rechnungsabgrenzungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "eigenkapital": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "eingefordertesStammkapital": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "kapitalruecklagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "gewinnruecklagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "bilanzgewinn": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vortrag": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "rueckstellungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "verbindlichkeiten": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "langfristigeVerbindlichkeiten": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "kurzfristigeVerbindlichkeiten": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "verbindlichkeitenLieferungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "langfristigeForderungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "kurzfristigeForderungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "passiveRechnungsabgrenzungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "description": "The balance-sheet (Bilanz) positions of one filed Jahresabschluss, in EUR. Every figure is nullable and null means the position was not reported in that filing — abridged accounts leave most of them out — never that it is zero. The filing the figures belong to is the documentDate of the enclosing parsedJahresabschluss."
      },
      "BusinessAggregateBucket": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string",
            "description": "Catalogue text for the key — ÖNACE Kurztitel, legal form or court name. Null for city and zipCode.",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BusinessAggregateResponse": {
        "type": "object",
        "properties": {
          "groupBy": {
            "type": "string",
            "description": "The dimension that was grouped by, echoed back."
          },
          "totalRecords": {
            "type": "integer",
            "description": "Businesses matching the filter. Equals TotalRecords of /businesses?countOnly=true with the same filter.",
            "format": "int32"
          },
          "ungroupedRecords": {
            "type": "integer",
            "description": "Businesses in the filter set with no value for the dimension — no ÖNACE row, no legal-form/court version, or no address carrying a city/zip. They are in TotalRecords but in no bucket.",
            "format": "int32"
          },
          "buckets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessAggregateBucket"
            },
            "description": "Buckets, largest first, capped by top. Sums are below TotalRecords by UngroupedRecords for the single-valued dimensions (oenaceCode, legalFormCode, courtCode: one code per business — the ÖNACE assignment is keyed by Fnr, the legal form and court are the latest version by Vnr, the same rule the list row displays). For city and zipCode a business counts once per *distinct* value across its addresses, so those sums can exceed TotalRecords. minCount also removes counted businesses from the sum."
          }
        }
      },
      "BusinessAssignment": {
        "type": "object",
        "properties": {
          "fnr": {
            "type": "string"
          },
          "vnr": {
            "type": "string"
          },
          "pnr": {
            "type": "string"
          },
          "personId": {
            "type": "string"
          },
          "functionCode": {
            "type": "string"
          },
          "functionText": {
            "type": "string",
            "nullable": true
          },
          "capitalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "personFnr": {
            "type": "string",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BusinessAssignmentDetailResponse": {
        "type": "object",
        "properties": {
          "fnr": {
            "type": "string"
          },
          "vnr": {
            "type": "string"
          },
          "pnr": {
            "type": "string"
          },
          "personId": {
            "type": "string"
          },
          "functionCode": {
            "type": "string",
            "nullable": true
          },
          "capitalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "person": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PersonResponse"
              }
            ],
            "nullable": true
          }
        }
      },
      "BusinessChange": {
        "required": [
          "vnr"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Change id, shared with GET /globalchanges. Ascending, and the cursor the changes feeds page on: pass the largest you have seen as sinceId.",
            "format": "int64"
          },
          "fnr": {
            "type": "string",
            "description": "Firmenbuchnummer of the company that changed, normalised. Null only if the source row carried none.",
            "nullable": true
          },
          "vnr": {
            "type": "string",
            "description": "Vollzugsnummer of the legal record this change reports. Unique per company, so (fnr, vnr) identifies the entry."
          },
          "changedDate": {
            "type": "string",
            "description": "Date the Firmenbuch itself carries for the change. Null when the source gives none — filter and page on id, not on this.",
            "format": "date-time",
            "nullable": true
          },
          "changeType": {
            "$ref": "#/components/schemas/ChangeType"
          }
        },
        "description": "One Firmenbuch change: a new legal record (Eintragung) was filed for a company."
      },
      "BusinessDetailResponse": {
        "type": "object",
        "properties": {
          "fnr": {
            "type": "string",
            "description": "Firmenbuchnummer in normalised form: lower case, no spaces, no leading zeros and no \"FN\" prefix, e.g. \"34853f\"."
          },
          "euid": {
            "type": "string",
            "description": "European Unique Identifier — the EU-wide id for a company registered in a member state's business register. Null when the Firmenbuch extract carries none.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Current company name as registered in the Firmenbuch, including the legal-form suffix."
          },
          "purpose": {
            "type": "string",
            "description": "Business purpose (Geschäftszweig) as filed with the Firmenbuch, free text. Null when none is on file.",
            "nullable": true
          },
          "legalForm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LegalForm"
              }
            ],
            "description": "A company's legal form (Rechtsform), as the Firmenbuch's code and its German label. Filter by it with legalFormCode on /businesses; the full catalogue is GET /legalforms.",
            "nullable": true
          },
          "court": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Court"
              }
            ],
            "description": "The Firmenbuch court (Sitzgericht) a company is registered at. Filter by it with courtCode on /businesses; the full catalogue is GET /courts.",
            "nullable": true
          },
          "lastCrawledAt": {
            "type": "string",
            "description": "When we last fetched this company from the Firmenbuch. Null if it has never been crawled.",
            "format": "date-time",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "When this company was first stored by us. Not a founding date and not a Firmenbuch date; registeredSince on the list response is the registration date.",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "When we last wrote to this company's record.",
            "format": "date-time"
          },
          "isActive": {
            "type": "boolean",
            "description": "False once the Firmenbuch carries a deletion entry (Antrag auf Löschung) for the company."
          },
          "isScheinunternehmen": {
            "type": "boolean",
            "description": "True when the company is on the BMF's list of Scheinunternehmen (bogus companies)."
          },
          "scheinunternehmenKundmachungen": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheinunternehmenKundmachungDto"
            },
            "description": "The BMF publications behind isScheinunternehmen, newest first. Empty when the company is not on the list."
          },
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Address"
            },
            "description": "Registered addresses, the Geschäftsanschrift first. Empty when no address has been imported yet."
          },
          "edikte": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Edikt"
            },
            "description": "Ediktsdatei notices published about the company — insolvency proceedings and other court publications. Empty means none is on file, which is the normal case."
          },
          "assignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessAssignmentDetailResponse"
            },
            "description": "People holding a function in the company (Geschäftsführer, Prokurist, shareholder …), current and historic. Each carries the personId to pass to /people/{personId}."
          },
          "gisaLicenses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GisaLicense"
            },
            "description": "The company's GISA trade licences (Gewerbeberechtigungen), one entry per gisaZahl."
          },
          "legalRecords": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegalRecordDetailDto"
            },
            "description": "Firmenbuch legal records (Eintragungen) for the company, newest execution date first. Each is identified by its vnr."
          },
          "documents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentMetadata"
            },
            "description": "The five most recent Jahresabschluss PDFs filed for the company. Download one with GET /documents/download/{documentKey}."
          },
          "parsedJahresabschluesse": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ParsedJahresabschlussDto"
            },
            "description": "Parsed Jahresabschluesse, at most one per calendar year for the last five filing years, newest first. Each carries the documentDate of the filing it was read from."
          },
          "latestKeyFigures": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessLatestKeyFiguresDto"
              }
            ],
            "description": "Balance-sheet and P&L figures read from the company's most recent filed Jahresabschluss — the ones keyFigureFilters, orderBy and the map dot size all read. They come from one filing, the one named by documentKey and dated documentDate, so two companies here are only comparable if their documentDate is comparable. Every figure is nullable and null means the same thing throughout: that position was not reported in that filing (small companies file abridged accounts). Null is never a zero, and never \"the company has none\" — do not sum or average it as 0. Amounts are EUR; employees is a headcount. The full per-year history is parsedJahresabschluesse on the detail response.",
            "nullable": true
          },
          "oenaces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OenaceDto"
            },
            "description": "OENACE 2008 industry classifications assigned to the company. Filter by oenaceCode on /businesses; the catalogue is GET /oenace."
          }
        },
        "description": "The complete Firmenakte of one company: Firmenbuch master data, addresses, officers, GISA licences, Ediktsdatei notices, filed documents and the parsed annual accounts."
      },
      "BusinessExportColumns": {
        "type": "object",
        "properties": {
          "firmenname": {
            "type": "boolean",
            "description": "Company name as registered."
          },
          "fnr": {
            "type": "boolean",
            "description": "Firmenbuchnummer."
          },
          "aktiv": {
            "type": "boolean",
            "description": "Whether the company is still active."
          },
          "adresse": {
            "type": "boolean",
            "description": "First registered address as one line."
          },
          "rechtsform": {
            "type": "boolean",
            "description": "Legal form, spelled out."
          },
          "oenace": {
            "type": "boolean",
            "description": "Primary OENACE 2008 classification as its numeric code."
          },
          "bilanzsumme": {
            "type": "boolean",
            "description": "Latest balance-sheet total."
          },
          "edikt": {
            "type": "boolean",
            "description": "Whether an Ediktsdatei notice is on file."
          },
          "scheinunternehmen": {
            "type": "boolean",
            "description": "Whether the company is on the BMF's Scheinunternehmen list."
          },
          "none": {
            "type": "boolean",
            "description": "True when the export would have no columns at all, which is not a file."
          }
        },
        "description": "The nine columns an export can carry, each on or off. Every one of them is served by the company search, so an export is a projection of rows rather than a detail request per company."
      },
      "BusinessExportFormat": {
        "enum": [
          "Csv",
          "Xlsx"
        ],
        "description": "The two files an export can produce. Same columns, same rows — only the serialiser differs."
      },
      "BusinessFacetGroup": {
        "type": "object",
        "properties": {
          "group": {
            "type": "string",
            "description": "The group name, echoed back."
          },
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessFacetValue"
            },
            "description": "The largest top values of the group, largest count first, followed by any currently selected value that did not make that cut — so a chip the caller filters on is always there, with count 0 when nothing in the rest of the filter set carries it."
          }
        }
      },
      "BusinessFacetsResponse": {
        "type": "object",
        "properties": {
          "totalRecords": {
            "type": "integer",
            "description": "Businesses matching the filter as sent. Equals TotalRecords of /businesses?countOnly=true with the same filter.",
            "format": "int32"
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessFacetGroup"
            },
            "description": "The requested groups, in the order the groups parameter documents them."
          }
        }
      },
      "BusinessFacetValue": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "What to send back as this group's filter value: a city, a PLZ, a legal-form/court/ÖNACE code, a GISA licence key, \"true\"/\"false\" for a status group, or a Kennzahl preset id."
          },
          "label": {
            "type": "string",
            "description": "Chip text: catalogue name, trade Wortlaut, or the status/Kennzahl wording. Null for city and zipCode, where the key is the label.",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "description": "Businesses left if this value were the group's filter, with every other filter still applied.",
            "format": "int32"
          },
          "selected": {
            "type": "boolean",
            "description": "True when the request already filters this group on this value."
          }
        }
      },
      "BusinessLatestKeyFiguresDto": {
        "type": "object",
        "properties": {
          "fnr": {
            "type": "string",
            "description": "Firmenbuchnummer of the company these figures belong to."
          },
          "documentKey": {
            "type": "string",
            "description": "Key of the filed document the figures were parsed from. Download it with GET /documents/download/{documentKey}.",
            "nullable": true
          },
          "documentDate": {
            "type": "string",
            "description": "Date of that filing — the Firmenbuch's date for the document, not the balance-sheet date. It is what \"latest\" is decided on, and the only indication of which year the figures below describe.",
            "format": "date-time",
            "nullable": true
          },
          "employees": {
            "type": "number",
            "description": "Reported headcount for that filing. Null when the filing does not report it.",
            "format": "double",
            "nullable": true
          },
          "bilanzSumme": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "anlageVermoegen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "immaterielleVermoegensgegenstaende": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "aktivierteEigenleistungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sachanlagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "finanzanlagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "umlaufvermoegen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vorraete": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "forderungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "forderungenLieferungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "wertpapiere": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "liquidesVermoegen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "rechnungsabgrenzungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "eigenkapital": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "eingefordertesStammkapital": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "kapitalruecklagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "gewinnruecklagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "bilanzgewinn": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vortrag": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "rueckstellungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "verbindlichkeiten": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "langfristigeVerbindlichkeiten": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "kurzfristigeVerbindlichkeiten": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "verbindlichkeitenLieferungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "langfristigeForderungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "kurzfristigeForderungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "passiveRechnungsabgrenzungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "betriebsErfolg": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "umsatzerloese": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "warenUndMaterialeinkauf": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "jahresueberschuss": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "bestandsveraenderung": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "personalaufwand": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "steueraufwand": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ergebnisVorSteuern": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "zinsenUndAehnlicheAufwendungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "abschreibungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sonstigeBetrieblicheErtraege": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sozialeAufwendungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sonstigeBetrieblicheAufwendungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ertraegeAusBeteiligungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ertraegeAusWertpapieren": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sonstigeZinsenUndAehnlicheErtraege": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "aufwendungenAusFinanzanlagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "finanzerfolg": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "aufloesungGewinnruecklagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "description": "Balance-sheet and P&L figures read from the company's most recent filed Jahresabschluss — the ones keyFigureFilters, orderBy and the map dot size all read. They come from one filing, the one named by documentKey and dated documentDate, so two companies here are only comparable if their documentDate is comparable. Every figure is nullable and null means the same thing throughout: that position was not reported in that filing (small companies file abridged accounts). Null is never a zero, and never \"the company has none\" — do not sum or average it as 0. Amounts are EUR; employees is a headcount. The full per-year history is parsedJahresabschluesse on the detail response."
      },
      "BusinessListResponse": {
        "type": "object",
        "properties": {
          "fnr": {
            "type": "string",
            "description": "Firmenbuchnummer in normalised form: lower case, no spaces, no leading zeros and no \"FN\" prefix, e.g. \"34853f\". This is the id every other endpoint takes."
          },
          "name": {
            "type": "string",
            "description": "Current company name as registered in the Firmenbuch, including the legal-form suffix."
          },
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Address"
            },
            "description": "Registered addresses. The Geschäftsanschrift first; a company can have more than one, and a company whose address has never been imported has none."
          },
          "legalForm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LegalForm"
              }
            ],
            "description": "A company's legal form (Rechtsform), as the Firmenbuch's code and its German label. Filter by it with legalFormCode on /businesses; the full catalogue is GET /legalforms.",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "description": "False once the Firmenbuch carries a deletion entry (Antrag auf Löschung) for the company. Inactive companies stay in the dataset and are returned unless you filter them out with active=true."
          },
          "isScheinunternehmen": {
            "type": "boolean",
            "description": "True when the company is on the BMF's list of Scheinunternehmen (bogus companies). Also see scheinunternehmenKundmachungen on the detail response for the publications behind it."
          },
          "hasEdikt": {
            "type": "boolean",
            "description": "True when at least one Ediktsdatei notice — an insolvency or other court publication — is on file for the company itself."
          },
          "oenaceNumericCode": {
            "type": "string",
            "description": "Primary OENACE 2008 industry classification as its numeric code, e.g. \"46649\". Null when the company has not been classified.",
            "nullable": true
          },
          "bilanzSumme": {
            "type": "number",
            "description": "Latest balance-sheet total, for map dot sizing and list display. Null if no key figures.",
            "format": "double",
            "nullable": true
          },
          "registeredSince": {
            "type": "string",
            "description": "Date the company was entered in the Firmenbuch (\"Eingetragen seit\"), derived as the earliest executionDate over its legal records. The Firmenbuch was digitised in 1991/92, so no value predates that however old the company actually is — this is not a founding date and must not be published as company age. Null if the registration date has not been derived yet.",
            "format": "date-time",
            "nullable": true
          },
          "signerCount": {
            "type": "integer",
            "description": "Number of distinct people with signing authority: those holding one of the representation functions GF, GD, GL, HB, IN, IV, KP, PR, SV, VM, VO. The insolvency and liquidation functions (AB, AW, IW, MW, VW, ZW) are deliberately excluded. Counts only currently held functions, since the Firmenbuch extract behind it is the current one. Null if the count has not been derived yet.",
            "format": "int32",
            "nullable": true
          }
        },
        "description": "One company as it appears in a list or on the map — the subset of the Firmenakte that a screening result needs. Fetch the rest with GET /businesses/{fnr}."
      },
      "BusinessMapTopItem": {
        "type": "object",
        "properties": {
          "groupLabel": {
            "type": "string",
            "description": "The place this company is the largest of, and the card's heading: a Bundesland (\"Tirol\") or a city (\"Innsbruck\"), depending on the request's groupBy."
          },
          "fnr": {
            "type": "string",
            "description": "Normalised Firmenbuchnummer, as GET /businesses/{fnr} takes it."
          },
          "name": {
            "type": "string",
            "description": "Company name."
          },
          "lat": {
            "type": "number",
            "description": "Latitude of the pin: the company's first geocoded address inside the viewport.",
            "format": "double"
          },
          "lng": {
            "type": "number",
            "description": "Longitude of the pin, from the same address as Lat.",
            "format": "double"
          },
          "metricValue": {
            "type": "number",
            "description": "The requested metric's value for this company — view count, Bilanzsumme or Mitarbeiter.",
            "format": "double"
          },
          "legalFormCode": {
            "type": "string",
            "description": "Rechtsform code of the latest Firmenbuch version, e.g. \"GES\". Null when the company carries none.",
            "nullable": true
          },
          "oenaceNumericCode": {
            "type": "string",
            "description": "ÖNACE code (OenaceZuord / NumericCode), e.g. \"6201\". Null when the company carries no assignment.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "City of the pin's address.",
            "nullable": true
          }
        },
        "description": "One map pin: the largest company of one place, with everything its popover card shows, so rendering a viewport costs one call and no per-pin detail fetch."
      },
      "BusinessNameItem": {
        "type": "object",
        "properties": {
          "fnr": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "BusinessSummaryDto": {
        "type": "object",
        "properties": {
          "fnr": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "ChangeDetailResponse": {
        "type": "object",
        "properties": {
          "changeType": {
            "type": "string",
            "description": "Discriminator: \"business\", \"document\", \"edikt\", \"gisa\", \"scheinunternehmen\", or \"unknown\". Read it before data."
          },
          "data": {
            "description": "The resolved payload: a BusinessChange, DocumentChange, EdiktChange, GisaChange or ScheinunternehmenChange, according to changeType."
          }
        },
        "description": "Envelope for GET /api/v1/globalchanges/{id}. Exposes the resolved change type and the typed payload."
      },
      "ChangeType": {
        "enum": [
          "business",
          "edikt",
          "document",
          "gisa",
          "scheinunternehmen",
          "unknown"
        ],
        "description": "Which register a change came from, and therefore which typed feed and payload it belongs to: \"business\" the Firmenbuch, \"document\" a newly filed document, \"edikt\" the Ediktsdatei, \"gisa\" the trade register, \"scheinunternehmen\" the BMF list. \"unknown\" is a change we could not classify."
      },
      "CityResponse": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string"
          },
          "businessCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "Court": {
        "required": [
          "text"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Court code, e.g. \"90001\". The value courtCode takes."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "text": {
            "type": "string",
            "description": "German name of the court, e.g. \"Wien\"."
          }
        },
        "description": "The Firmenbuch court (Sitzgericht) a company is registered at. Filter by it with courtCode on /businesses; the full catalogue is GET /courts."
      },
      "CourtCatalogItemResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "businessCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CreateListRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Display name. Blank or missing becomes \"Neue Liste\".",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "description": "Icon key, or null for none.",
            "nullable": true
          },
          "fnrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Companies to start the Liste with, in the order they should appear.",
            "nullable": true
          }
        },
        "description": "A new Liste. Everything but the name is optional."
      },
      "DocumentChange": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "fnr": {
            "type": "string",
            "nullable": true
          },
          "documentKey": {
            "type": "string"
          },
          "changedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "document": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentMetadata"
              }
            ],
            "nullable": true
          },
          "changeType": {
            "$ref": "#/components/schemas/ChangeType"
          }
        }
      },
      "DocumentMetadata": {
        "type": "object",
        "properties": {
          "documentKey": {
            "type": "string"
          },
          "fnr": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "documentTypeCode": {
            "type": "string",
            "nullable": true
          },
          "documentDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fileExtension": {
            "type": "string",
            "nullable": true
          },
          "parsedJahresabschluss": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ParsedJahresabschluss"
              }
            ],
            "nullable": true
          }
        }
      },
      "Edikt": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "ediktArt": {
            "type": "integer",
            "format": "int32"
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "hinweis": {
            "type": "string",
            "nullable": true
          },
          "ergaenzung": {
            "type": "string",
            "nullable": true
          },
          "beschreibung": {
            "type": "string",
            "nullable": true
          },
          "kategorie": {
            "type": "string",
            "nullable": true
          },
          "transaktion": {
            "type": "string",
            "nullable": true
          },
          "adresse": {
            "type": "string",
            "nullable": true
          },
          "bekanntmachungsDatum": {
            "type": "string",
            "format": "date"
          },
          "loeschDatum": {
            "type": "string",
            "format": "date"
          },
          "aenderungsZeitstempel": {
            "type": "string",
            "format": "date-time"
          },
          "caseNumber": {
            "type": "string"
          },
          "caseDepartment": {
            "type": "string",
            "nullable": true
          },
          "caseYear": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "personId": {
            "type": "string",
            "nullable": true
          },
          "fnr": {
            "type": "string",
            "nullable": true
          },
          "courtCode": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "EdiktChange": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "fnr": {
            "type": "string",
            "nullable": true
          },
          "ediktArt": {
            "type": "integer",
            "format": "int32"
          },
          "ediktId": {
            "type": "integer",
            "format": "int64"
          },
          "changedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "edikt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Edikt"
              }
            ],
            "nullable": true
          },
          "changeType": {
            "$ref": "#/components/schemas/ChangeType"
          }
        }
      },
      "EntityTagHeaderValue": {
        "type": "object",
        "properties": {
          "tag": {
            "$ref": "#/components/schemas/StringSegment"
          },
          "isWeak": {
            "type": "boolean"
          }
        }
      },
      "ExportBusinessesRequest": {
        "type": "object",
        "properties": {
          "fnrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The companies to export, in the order the file should list them. At most 1000; more is refused rather than cut short.",
            "nullable": true
          },
          "listId": {
            "type": "string",
            "description": "A Liste of the calling account: its companies, in the order it holds them. Same 1000-company cap as an explicit set, over the FNRs the Liste stores.",
            "nullable": true
          },
          "queryId": {
            "type": "string",
            "description": "A saved Abfrage of the calling account: the companies its filters match right now, ordered the way the search orders them. Capped at 1000 rows.",
            "nullable": true
          },
          "format": {
            "$ref": "#/components/schemas/BusinessExportFormat"
          },
          "columns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessExportColumns"
              }
            ],
            "description": "The nine columns an export can carry, each on or off. Every one of them is served by the company search, so an export is a projection of rows rather than a detail request per company.",
            "nullable": true
          }
        },
        "description": "Which companies to export and in which shape. Exactly one source is read, in the order below: an explicit set of companies, a Liste, or a saved Abfrage."
      },
      "FileResult": {
        "type": "object",
        "properties": {
          "contentType": {
            "type": "string",
            "nullable": true
          },
          "fileDownloadName": {
            "type": "string",
            "nullable": true
          },
          "lastModified": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "entityTag": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EntityTagHeaderValue"
              }
            ],
            "nullable": true
          },
          "enableRangeProcessing": {
            "type": "boolean"
          }
        }
      },
      "GisaChange": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "fnr": {
            "type": "string",
            "nullable": true
          },
          "gisaZahl": {
            "type": "integer",
            "format": "int64"
          },
          "stateHash": {
            "type": "string"
          },
          "changedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "changeType": {
            "$ref": "#/components/schemas/ChangeType"
          }
        }
      },
      "GisaLicense": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "gisaZahl": {
            "type": "integer",
            "format": "int64"
          },
          "fnr": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "licenseKey": {
            "type": "integer",
            "format": "int32"
          },
          "trade": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GisaTrade"
              }
            ],
            "nullable": true
          },
          "description": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "addressId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "personId": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GisaLicenseItemDto": {
        "type": "object",
        "properties": {
          "gisaZahl": {
            "type": "integer",
            "format": "int64"
          },
          "fnr": {
            "type": "string"
          },
          "licenseKey": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "trade": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GisaTradeSummaryDto"
              }
            ],
            "nullable": true
          }
        }
      },
      "GisaTrade": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "licenseKey": {
            "type": "integer",
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "type": "string"
          },
          "isHistorical": {
            "type": "boolean"
          }
        }
      },
      "GisaTradeSummaryDto": {
        "type": "object",
        "properties": {
          "licenseKey": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "GlobalChange": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "changeType": {
            "$ref": "#/components/schemas/ChangeType"
          },
          "fnr": {
            "type": "string",
            "nullable": true
          },
          "changedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "Reference row for each change. Specific change types live in separate tables with shared PK (Id)."
      },
      "GraphEdgeDto": {
        "type": "object",
        "properties": {
          "source": {
            "type": "string"
          },
          "target": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether the connection still holds today. An \"assignment\" edge is active while at least one of the person's functions at that company has no end date or ends in the future; a function that ended in the past makes it false. The other two kinds are always true, for two different reasons: an \"ownership\" edge whose holding has ended is not drawn at all, and an \"address\" carries no validity date, so a shared address cannot be dated."
          },
          "relationshipType": {
            "type": "string",
            "description": "\"assignment\" (a person holds a function in a company), \"ownership\" (a company holds shares in another — source is the shareholder, target the company it holds) or \"address\"."
          },
          "capitalAmount": {
            "type": "number",
            "description": "The shareholder's übernommene Stammeinlage. Null on any edge but \"ownership\", and on an ownership edge whose Firmenbuch entry carries no KAPITAL.",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "description": "The currency of CapitalAmount — ATS occurs in this data, not only EUR.",
            "nullable": true
          },
          "sharePercent": {
            "type": "number",
            "description": "The stake as a percentage, 0–100. Only where it is a real ownership share: a GmbH or Flexible Kapitalgesellschaft whose Gesellschafter all carry an amount in the same currency and the same Firmenbuch version. Null everywhere else, including on every non-ownership edge.",
            "format": "double",
            "nullable": true
          }
        }
      },
      "GraphNodeDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "isCentralNode": {
            "type": "boolean"
          },
          "hasMore": {
            "type": "boolean",
            "description": "True when this node has more connections beyond the 2-hop boundary that were not included in the graph."
          }
        }
      },
      "GraphResponse": {
        "type": "object",
        "properties": {
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GraphNodeDto"
            }
          },
          "edges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GraphEdgeDto"
            }
          }
        }
      },
      "Guv": {
        "type": "object",
        "properties": {
          "documentKey": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "betriebsErfolg": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "umsatzerloese": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "warenUndMaterialeinkauf": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "jahresueberschuss": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "bestandsveraenderung": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "personalaufwand": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "steueraufwand": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ergebnisVorSteuern": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "zinsenUndAehnlicheAufwendungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "abschreibungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sonstigeBetrieblicheErtraege": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sozialeAufwendungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sonstigeBetrieblicheAufwendungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ertraegeAusBeteiligungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ertraegeAusWertpapieren": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sonstigeZinsenUndAehnlicheErtraege": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "aufwendungenAusFinanzanlagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "finanzerfolg": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "aufloesungGewinnruecklagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        }
      },
      "GuvDto": {
        "type": "object",
        "properties": {
          "betriebsErfolg": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "umsatzerloese": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "warenUndMaterialeinkauf": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "jahresueberschuss": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "bestandsveraenderung": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "personalaufwand": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "steueraufwand": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ergebnisVorSteuern": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "zinsenUndAehnlicheAufwendungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "abschreibungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sonstigeBetrieblicheErtraege": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sozialeAufwendungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sonstigeBetrieblicheAufwendungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ertraegeAusBeteiligungen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ertraegeAusWertpapieren": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sonstigeZinsenUndAehnlicheErtraege": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "aufwendungenAusFinanzanlagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "finanzerfolg": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "aufloesungGewinnruecklagen": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "description": "The profit-and-loss (GuV) positions of one filed Jahresabschluss, in EUR. Every figure is nullable and null means the position was not reported in that filing — abridged accounts leave most of them out, and a company that files no GuV at all has none here — never that it is zero. The filing the figures belong to is the documentDate of the enclosing parsedJahresabschluss."
      },
      "JsonDocument": {},
      "LegalForm": {
        "required": [
          "text"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Firmenbuch legal-form code, e.g. \"AG\" or \"GMBH\". The value legalFormCode takes."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "text": {
            "type": "string",
            "description": "German label of the legal form, e.g. \"Aktiengesellschaft\"."
          }
        },
        "description": "A company's legal form (Rechtsform), as the Firmenbuch's code and its German label. Filter by it with legalFormCode on /businesses; the full catalogue is GET /legalforms."
      },
      "LegalFormCatalogItemResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "businessCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "LegalRecordChangeDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Discriminator: use LegalRecordChangeType constants. Client switches on this to cast Value."
          },
          "value": {
            "description": "Payload; shape depends on Type (string, LegalForm, Court, Address, or list of assignments)."
          }
        },
        "description": "A single change triggered by a legal record. Client uses Type to interpret Value."
      },
      "LegalRecordDetailDto": {
        "type": "object",
        "properties": {
          "fnr": {
            "type": "string"
          },
          "vnr": {
            "type": "string"
          },
          "executionDate": {
            "type": "string",
            "format": "date-time"
          },
          "caseNumber": {
            "type": "string",
            "nullable": true
          },
          "applicationText": {
            "type": "string",
            "nullable": true
          },
          "changeType": {
            "type": "string",
            "nullable": true
          },
          "changes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegalRecordChangeDto"
            }
          }
        }
      },
      "ListMembersRequest": {
        "type": "object",
        "properties": {
          "fnrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Company numbers. An empty array is accepted and changes nothing.",
            "nullable": true
          }
        },
        "description": "The companies to add to, or take off, a Liste."
      },
      "ListResponse": {
        "required": [
          "id",
          "name",
          "fnrs",
          "removedFnrs",
          "settings"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable id of the Liste."
          },
          "name": {
            "type": "string",
            "description": "What the account called it."
          },
          "icon": {
            "type": "string",
            "description": "Icon key for the Liste, or null where it has none.",
            "nullable": true
          },
          "fnrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The companies on the Liste, in the order they were added."
          },
          "removedFnrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Companies that were taken off again; re-adding one lifts it back out of here."
          },
          "settings": {
            "$ref": "#/components/schemas/JsonDocument"
          }
        },
        "description": "A Liste: the companies one account watches, as the FNRs it holds."
      },
      "LocationSuggestionsResponse": {
        "type": "object",
        "properties": {
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddressLocationResponse"
            },
            "description": "ZIP+city suggestions, best first."
          },
          "cities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CityResponse"
            },
            "description": "Whole-city suggestions, best first."
          }
        },
        "description": "The ranked suggestions of one term, split back into the two lists the filter renders. The two together are one ranking, not two: top caps their combined length."
      },
      "OenaceCatalogItemResponse": {
        "type": "object",
        "properties": {
          "edvCode": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "titel": {
            "type": "string"
          },
          "kurztitel": {
            "type": "string"
          },
          "ebene": {
            "type": "integer",
            "format": "int32"
          },
          "numericCode": {
            "type": "string",
            "nullable": true
          },
          "companyCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "OenaceDto": {
        "type": "object",
        "properties": {
          "kurztitel": {
            "type": "string",
            "nullable": true
          },
          "titel": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "numericCode": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PagedResponseOfAddressLocationResponse": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddressLocationResponse"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfBusinessChange": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessChange"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfBusinessListResponse": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessListResponse"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfCityResponse": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CityResponse"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfCourtCatalogItemResponse": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CourtCatalogItemResponse"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfDocumentChange": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentChange"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfEdiktChange": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EdiktChange"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfGisaChange": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GisaChange"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfGisaLicense": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GisaLicense"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfGlobalChange": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GlobalChange"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfLegalFormCatalogItemResponse": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegalFormCatalogItemResponse"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfOenaceCatalogItemResponse": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OenaceCatalogItemResponse"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfPerson": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Person"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfTradeCatalogItemResponse": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TradeCatalogItemResponse"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "PagedResponseOfZipCodeResponse": {
        "required": [
          "data",
          "pageNumber",
          "pageSize",
          "totalRecords"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ZipCodeResponse"
            },
            "description": "The rows on this page. Empty when the page is past the end, or when countOnly was requested."
          },
          "pageNumber": {
            "type": "integer",
            "description": "The 1-based page this response is, echoing the page parameter.",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "The page size this response was built with, echoing the pageSize parameter.",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "description": "Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means \"at least this many\".",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.",
            "format": "int32"
          }
        },
        "description": "One page of a list endpoint's result, plus the counters needed to fetch the rest."
      },
      "ParsedJahresabschluss": {
        "type": "object",
        "properties": {
          "documentKey": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "employees": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "bilanz": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Bilanz"
              }
            ],
            "nullable": true
          },
          "guv": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Guv"
              }
            ],
            "nullable": true
          }
        }
      },
      "ParsedJahresabschlussDto": {
        "type": "object",
        "properties": {
          "documentKey": {
            "type": "string",
            "description": "Key of the filed document these figures were parsed from. Download it with GET /documents/download/{documentKey}."
          },
          "documentDate": {
            "type": "string",
            "description": "Date of the filing — the Firmenbuch's date for the document, and what identifies which year this statement covers.",
            "format": "date-time",
            "nullable": true
          },
          "employees": {
            "type": "number",
            "description": "Reported headcount for this filing. Null when the filing does not report it.",
            "format": "double",
            "nullable": true
          },
          "bilanz": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BilanzDto"
              }
            ],
            "description": "The balance-sheet (Bilanz) positions of one filed Jahresabschluss, in EUR. Every figure is nullable and null means the position was not reported in that filing — abridged accounts leave most of them out — never that it is zero. The filing the figures belong to is the documentDate of the enclosing parsedJahresabschluss.",
            "nullable": true
          },
          "guv": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GuvDto"
              }
            ],
            "description": "The profit-and-loss (GuV) positions of one filed Jahresabschluss, in EUR. Every figure is nullable and null means the position was not reported in that filing — abridged accounts leave most of them out, and a company that files no GuV at all has none here — never that it is zero. The filing the figures belong to is the documentDate of the enclosing parsedJahresabschluss.",
            "nullable": true
          }
        },
        "description": "One filed Jahresabschluss (annual financial statement), parsed into its Bilanz and GuV. Every figure inside is nullable and null means that position was not reported in this filing — never zero, and never \"the company has none\". Amounts are EUR."
      },
      "Person": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "firstName": {
            "maxLength": 200,
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "maxLength": 200,
            "type": "string",
            "nullable": true
          },
          "birthDate": {
            "type": "string",
            "nullable": true
          },
          "titlePrefix": {
            "type": "string",
            "nullable": true
          },
          "titleSuffix": {
            "type": "string",
            "nullable": true
          },
          "assignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessAssignment"
            }
          },
          "gisaLicenses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GisaLicense"
            }
          },
          "edikte": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Edikt"
            }
          },
          "scheinunternehmenKundmachungen": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheinunternehmenKundmachung"
            }
          }
        }
      },
      "PersonAssignmentItemDto": {
        "type": "object",
        "properties": {
          "fnr": {
            "type": "string"
          },
          "vnr": {
            "type": "string"
          },
          "pnr": {
            "type": "string"
          },
          "personId": {
            "type": "string"
          },
          "functionCode": {
            "type": "string"
          },
          "capitalAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "business": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessSummaryDto"
              }
            ],
            "nullable": true
          },
          "businessEdikte": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Edikt"
            }
          }
        }
      },
      "PersonDetailResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "birthDate": {
            "type": "string",
            "nullable": true
          },
          "titlePrefix": {
            "type": "string",
            "nullable": true
          },
          "titleSuffix": {
            "type": "string",
            "nullable": true
          },
          "assignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonAssignmentItemDto"
            }
          },
          "gisaLicenses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GisaLicenseItemDto"
            }
          },
          "edikte": {
            "type": "array",
            "items": {}
          }
        }
      },
      "PersonNameItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "PersonResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "birthDate": {
            "type": "string",
            "nullable": true
          },
          "titlePrefix": {
            "type": "string",
            "nullable": true
          },
          "titleSuffix": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "Identifier of the request that failed; quote it in a support request.",
            "nullable": true
          },
          "correlationId": {
            "type": "string",
            "description": "The x-correlation-id of the request, when one was sent or generated.",
            "nullable": true
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Validation failures per field; present only on a model validation 400.",
            "nullable": true
          }
        },
        "description": "RFC 7807 problem detail, written by the global exception handler and by [ApiController] model validation."
      },
      "QueryResponse": {
        "required": [
          "id",
          "query",
          "updatedAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Stable id of the Abfrage."
          },
          "icon": {
            "type": "string",
            "description": "Icon key for the Abfrage, or null where it has none.",
            "nullable": true
          },
          "query": {
            "$ref": "#/components/schemas/JsonDocument"
          },
          "resultCount": {
            "type": "integer",
            "description": "How many companies matched when the Abfrage was last saved. A snapshot: it is not recomputed on read and may have drifted.",
            "format": "int32",
            "nullable": true
          },
          "updatedAt": {
            "type": "string",
            "description": "When the Abfrage was last written, UTC. The Suchverlauf sorts on it.",
            "format": "date-time"
          }
        },
        "description": "A saved Abfrage: one filter set an account kept, to run again later."
      },
      "ResolveBusinessNamesRequest": {
        "type": "object",
        "properties": {
          "names": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Company names to resolve (trimmed, distinct, max 500). Order is preserved in the response.",
            "nullable": true
          }
        },
        "description": "Request to resolve company names to FNRs by exact match (1:1). Used for CSV import."
      },
      "ResolveBusinessNamesResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResolveBusinessNamesResultItem"
            }
          }
        },
        "description": "Response for resolve-names: 1:1 mapping in same order as request."
      },
      "ResolveBusinessNamesResultItem": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "fnr": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "One entry in the resolve-names result: input name and resolved FNR (or null if not found)."
      },
      "SaveQueryRequest": {
        "type": "object",
        "properties": {
          "query": {
            "allOf": [
              {
                "$ref": "#/components/schemas/JsonDocument"
              }
            ],
            "nullable": true
          },
          "resultCount": {
            "type": "integer",
            "description": "How many companies the filters matched. Omit it where the count could not be determined — a missing count leaves the one the Abfrage already carries alone rather than erasing it.",
            "format": "int32",
            "nullable": true
          },
          "updateId": {
            "type": "string",
            "description": "The Abfrage being edited. Sending it pins the row that is written, so an edit that changes the filters into another Abfrage's still updates this one instead of merging into that. Without it, a save that filters for the same companies as an existing Abfrage updates that one, which is what keeps throwaway searches out of the Suchverlauf.",
            "nullable": true
          }
        },
        "description": "An Abfrage to keep: the filters, and what they matched when they ran."
      },
      "ScheinunternehmenKundmachung": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "guid": {
            "type": "string",
            "description": "Unique identifier from RSS <guid>."
          },
          "uid": {
            "type": "string",
            "description": "Unternehmens-Identifikationsnummer (e.g. ATU12345678) from RSS; present for both companies and natural persons.",
            "nullable": true
          },
          "fnr": {
            "type": "string",
            "description": "Firmenbuch number for company entries; null for natural persons.",
            "nullable": true
          },
          "personId": {
            "type": "string",
            "description": "Person ID for natural-person entries; null for companies.",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "publicationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "addressText": {
            "type": "string",
            "nullable": true
          },
          "rechtskraftBescheid": {
            "type": "string",
            "nullable": true
          },
          "zeitpunktAlsScheinunternehmen": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "description": "One entry from the BMF LSU (Scheinunternehmen) RSS feed. Company entries have Fnr; natural-person entries have PersonId."
      },
      "ScheinunternehmenKundmachungDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "guid": {
            "type": "string"
          },
          "uid": {
            "type": "string",
            "nullable": true
          },
          "fnr": {
            "type": "string",
            "nullable": true
          },
          "personId": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "publicationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "addressText": {
            "type": "string",
            "nullable": true
          },
          "rechtskraftBescheid": {
            "type": "string",
            "nullable": true
          },
          "zeitpunktAlsScheinunternehmen": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "description": "One entry from the BMF LSU (Scheinunternehmen) RSS feed for API responses."
      },
      "SearchItemResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "\"business\" or \"person\"."
          },
          "business": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessListResponse"
              }
            ],
            "description": "One company as it appears in a list or on the map — the subset of the Firmenakte that a screening result needs. Fetch the rest with GET /businesses/{fnr}.",
            "nullable": true
          },
          "person": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Person"
              }
            ],
            "nullable": true
          }
        },
        "description": "One suggestion: a company or a person, whichever type names. The other property is null."
      },
      "SearchResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchItemResponse"
            },
            "description": "The suggestions, best first."
          }
        },
        "description": "Companies and people for one term, ranked into a single list."
      },
      "StringSegment": {
        "type": "object",
        "properties": {
          "buffer": {
            "type": "string",
            "nullable": true
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "length": {
            "type": "integer",
            "format": "int32"
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "hasValue": {
            "type": "boolean"
          }
        }
      },
      "TradeCatalogItemResponse": {
        "type": "object",
        "properties": {
          "licenseKey": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string"
          },
          "companyCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "UpdateListRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "New display name.",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "description": "New icon key, or null to clear it.",
            "nullable": true
          },
          "fnrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The companies on the Liste, replacing the current set.",
            "nullable": true
          },
          "removedFnrs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The companies taken off the Liste, replacing the current set.",
            "nullable": true
          },
          "settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/JsonDocument"
              }
            ],
            "nullable": true
          }
        },
        "description": "A partial update of a Liste: every field is optional and only the ones sent are written. \"Sent\" is the property being present in the body, which is not the same as it being non-null — {\"icon\": null} clears the icon while an omitted icon leaves it alone. System.Text.Json calls a setter only for a property the body carries, so each setter records that it was called; a nullable property alone could not tell the two apart."
      },
      "ZipCodeResponse": {
        "type": "object",
        "properties": {
          "zipCode": {
            "type": "string"
          },
          "businessCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "description": "Enter your API Key",
        "name": "x-api-key",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "ApiKey": []
    }
  ],
  "tags": [
    {
      "name": "Queries"
    },
    {
      "name": "Lists"
    },
    {
      "name": "Exports"
    },
    {
      "name": "Trades"
    },
    {
      "name": "Search"
    },
    {
      "name": "People"
    },
    {
      "name": "Oenace"
    },
    {
      "name": "LegalForms"
    },
    {
      "name": "Graph"
    },
    {
      "name": "GlobalChanges"
    },
    {
      "name": "Edikte"
    },
    {
      "name": "Documents"
    },
    {
      "name": "Courts"
    },
    {
      "name": "Businesses"
    },
    {
      "name": "AssignmentFunctions"
    },
    {
      "name": "Addresses"
    }
  ]
}