{"openapi":"3.1.0","info":{"title":"Innovadata Company Data API","description":"Programmatic access to official registry company data for seven European countries: EE, LV, LT, FI, SE, NO, PL.\n\n**Authentication** — create an API key in your dashboard, click **Authorize**, and send it as `Authorization: Bearer <key>`. Search and detail are metered (credits per returned row, priced per country); `/countries`, `/filters`, `/activities`, `/locations` and `/count` are free. Admin and unlimited-plan keys are never charged; a per-country subscription (€300/month per country) waives metering for its countries only.\n\n**Parameter names** — since 2026-08-02 every Estonian-named query parameter has an English alias (`company_name`, `registration_code`, `industry_codes`, `legal_form`, `status`, `share_capital_min/max`, `registered_from/to`). Both spellings keep working; prefer the English ones in new code.","version":"1.1.0"},"paths":{"/api/v1/data/countries":{"get":{"tags":["Company Data API"],"summary":"List available countries","description":"Countries you can query.","operationId":"countries_api_v1_data_countries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountriesResponse"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded — slow down and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/data/filters":{"get":{"tags":["Company Data API"],"summary":"Filters available for a country","description":"The filter set for a country (same as the main-site modal). Each filter\nnames the `/companies` query param(s) and, for tree filters, an options URL.","operationId":"filters_api_v1_data_filters_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Country","description":"Country to describe filters for."},"description":"Country to describe filters for."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiltersResponse"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded — slow down and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/activities":{"get":{"tags":["Company Data API"],"summary":"Industry/activity code tree","description":"Activity-code tree for a country (EMTAK for EE, NACE/PKD/etc. otherwise).\nUse the leaf codes as `emtak_codes` on /companies.","operationId":"activities_api_v1_data_activities_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Country"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TreeNode"},"title":"Response 200 Activities Api V1 Data Activities Get"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded — slow down and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Data backend temporarily unavailable — safe to retry; nothing was charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/locations":{"get":{"tags":["Company Data API"],"summary":"Location tree (countries that support it)","description":"Location tree for EE/LV/LT/FI/PL. NO/SE use the free-text `location`\nfilter instead. EE/LV/FI/PL nodes carry `kood`, `label` and `codes` (the\nnode plus ALL descendants) — send a node's `codes` as `ehak_kood`; a bare\nparent kood matches only exact tags. LT nodes carry `locations` (name\nvariants) — send a node's `locations` as `lt_locations`. The full trees are\nlarge; use `query` or `max_depth` to keep responses small.","operationId":"locations_api_v1_data_locations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Country"}},{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":2,"maxLength":80},{"type":"null"}],"description":"Case-insensitive name search: returns the matching nodes (flat, max 100) instead of the full tree.","title":"Query"},"description":"Case-insensitive name search: returns the matching nodes (flat, max 100) instead of the full tree."},{"name":"max_depth","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4,"minimum":1},{"type":"null"}],"description":"Prune the tree below this depth (1 = top level only). Full trees run to ~800 KB for EE.","title":"Max Depth"},"description":"Prune the tree below this depth (1 = top level only). Full trees run to ~800 KB for EE."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TreeNode"},"title":"Response 200 Locations Api V1 Data Locations Get"}}}},"400":{"description":"The country has no location tree — use the free-text `location` filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded — slow down and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Data backend temporarily unavailable — safe to retry; nothing was charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/count":{"get":{"tags":["Company Data API"],"summary":"Count matching companies (free)","description":"Exact count of companies matching the filters — size a query before pulling\nrows. Free: 0 credits, rate-limited only.","operationId":"count_api_v1_data_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Country","description":"Country to query (one of EE, LV, LT, NO, FI, PL, SE)."},"description":"Country to query (one of EE, LV, LT, NO, FI, PL, SE)."},{"name":"company_name","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Company name(s) to match (partial).","title":"Company Name"},"description":"Company name(s) to match (partial)."},{"name":"registration_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact registration code.","title":"Registration Code"},"description":"Exact registration code."},{"name":"industry_codes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Activity codes (EMTAK for EE, NACE/EVRK/PKD/SNI for others). Get them from /activities.","title":"Industry Codes"},"description":"Activity codes (EMTAK for EE, NACE/EVRK/PKD/SNI for others). Get them from /activities."},{"name":"legal_form","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Legal form code(s). Get the values from /filters.","title":"Legal Form"},"description":"Legal form code(s). Get the values from /filters."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Company status. Omit for active-only (default); send `__all__` for every status.","title":"Status"},"description":"Company status. Omit for active-only (default); send `__all__` for every status."},{"name":"share_capital_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Min share capital (NO: NOK, PL: PLN).","title":"Share Capital Min"},"description":"Min share capital (NO: NOK, PL: PLN)."},{"name":"share_capital_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Max share capital.","title":"Share Capital Max"},"description":"Max share capital."},{"name":"registered_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Registered on/after (YYYY-MM-DD).","title":"Registered From"},"description":"Registered on/after (YYYY-MM-DD)."},{"name":"registered_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Registered on/before (YYYY-MM-DD).","title":"Registered To"},"description":"Registered on/before (YYYY-MM-DD)."},{"name":"arinimi","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Deprecated spelling of `company_name` (still supported).","deprecated":true,"title":"Arinimi"},"description":"Deprecated spelling of `company_name` (still supported).","deprecated":true},{"name":"registrikood","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Deprecated spelling of `registration_code` (still supported).","deprecated":true,"title":"Registrikood"},"description":"Deprecated spelling of `registration_code` (still supported).","deprecated":true},{"name":"emtak_codes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Deprecated spelling of `industry_codes` (still supported).","deprecated":true,"title":"Emtak Codes"},"description":"Deprecated spelling of `industry_codes` (still supported).","deprecated":true},{"name":"oiguslik_vorm","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Deprecated spelling of `legal_form` (still supported).","deprecated":true,"title":"Oiguslik Vorm"},"description":"Deprecated spelling of `legal_form` (still supported).","deprecated":true},{"name":"staatus","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Deprecated spelling of `status` (still supported).","deprecated":true,"title":"Staatus"},"description":"Deprecated spelling of `status` (still supported).","deprecated":true},{"name":"location","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Free-text location / region filter.","title":"Location"},"description":"Free-text location / region filter."},{"name":"ehak_kood","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Location codes from /locations (EE/LV/FI/PL trees). Send a node's `codes` array — it already includes all descendants; a parent code alone matches only rows tagged with exactly that code. Repeat the parameter for several codes.","title":"Ehak Kood"},"description":"Location codes from /locations (EE/LV/FI/PL trees). Send a node's `codes` array — it already includes all descendants; a parent code alone matches only rows tagged with exactly that code. Repeat the parameter for several codes."},{"name":"lt_locations","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Lithuanian location NAMES — send a node's `locations` array from /locations?country=LT (the node's kood does not work).","title":"Lt Locations"},"description":"Lithuanian location NAMES — send a node's `locations` array from /locations?country=LT (the node's kood does not work)."},{"name":"vat_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only VAT-registered companies when true.","title":"Vat Active"},"description":"Only VAT-registered companies when true."},{"name":"has_email","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only companies with an email when true.","title":"Has Email"},"description":"Only companies with an email when true."},{"name":"has_website","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only companies with a website when true.","title":"Has Website"},"description":"Only companies with a website when true."},{"name":"has_domain","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only companies with a registered domain when true (registry-sourced domain registered to the company, separate from website).","title":"Has Domain"},"description":"Only companies with a registered domain when true (registry-sourced domain registered to the company, separate from website)."},{"name":"has_phone","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only companies with a phone when true.","title":"Has Phone"},"description":"Only companies with a phone when true."},{"name":"has_contact","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only companies with any contact when true.","title":"Has Contact"},"description":"Only companies with any contact when true."},{"name":"has_tax_debt","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"EE only: true = has disclosed tax debt, false = no tax debt.","title":"Has Tax Debt"},"description":"EE only: true = has disclosed tax debt, false = no tax debt."},{"name":"exclude_marketing_optout","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Drop companies that registered a postal direct-marketing block at the source registry (SE: SCB reklamspärr).","title":"Exclude Marketing Optout"},"description":"Drop companies that registered a postal direct-marketing block at the source registry (SE: SCB reklamspärr)."},{"name":"exclude_phone_optout","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Drop companies that registered a TELEPHONE marketing block (SE: telemarketing block or NIX-Telefon). Use this whenever the phone numbers will be called.","title":"Exclude Phone Optout"},"description":"Drop companies that registered a TELEPHONE marketing block (SE: telemarketing block or NIX-Telefon). Use this whenever the phone numbers will be called."},{"name":"employees_band","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"SE only: employee size-band codes (SCB Storleksklass 1..16). Bands, not exact counts. Code 0 means the size is unknown and is never treated as zero.","title":"Employees Band"},"description":"SE only: employee size-band codes (SCB Storleksklass 1..16). Bands, not exact counts. Code 0 means the size is unknown and is never treated as zero."},{"name":"turnover_band","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"SE only: turnover size-band codes (SCB Omsättningsklass grov). Bands in thousands of SEK, not euros, and not exact figures.","title":"Turnover Band"},"description":"SE only: turnover size-band codes (SCB Omsättningsklass grov). Bands in thousands of SEK, not euros, and not exact figures."},{"name":"annual_revenue_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: min annual-report revenue (reporting currency: EUR for EE, NOK for NO).","title":"Annual Revenue Min"},"description":"EE/NO/LV: min annual-report revenue (reporting currency: EUR for EE, NOK for NO)."},{"name":"annual_revenue_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: max annual-report revenue.","title":"Annual Revenue Max"},"description":"EE/NO/LV: max annual-report revenue."},{"name":"annual_net_profit_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: min annual net profit (negative = loss; 0 = profitable only).","title":"Annual Net Profit Min"},"description":"EE/NO/LV: min annual net profit (negative = loss; 0 = profitable only)."},{"name":"annual_net_profit_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: max annual net profit.","title":"Annual Net Profit Max"},"description":"EE/NO/LV: max annual net profit."},{"name":"annual_equity_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: min equity.","title":"Annual Equity Min"},"description":"EE/NO/LV: min equity."},{"name":"annual_equity_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: max equity.","title":"Annual Equity Max"},"description":"EE/NO/LV: max equity."},{"name":"annual_total_assets_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: min total assets.","title":"Annual Total Assets Min"},"description":"EE/NO/LV: min total assets."},{"name":"annual_total_assets_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: max total assets.","title":"Annual Total Assets Max"},"description":"EE/NO/LV: max total assets."},{"name":"last_quarter_turnover_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Min last-quarter turnover (EUR).","title":"Last Quarter Turnover Min"},"description":"Min last-quarter turnover (EUR)."},{"name":"last_quarter_turnover_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Max last-quarter turnover (EUR).","title":"Last Quarter Turnover Max"},"description":"Max last-quarter turnover (EUR)."},{"name":"last_4_quarters_turnover_sum_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Min trailing 4-quarter turnover sum (EUR).","title":"Last 4 Quarters Turnover Sum Min"},"description":"Min trailing 4-quarter turnover sum (EUR)."},{"name":"last_4_quarters_turnover_sum_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Max trailing 4-quarter turnover sum (EUR).","title":"Last 4 Quarters Turnover Sum Max"},"description":"Max trailing 4-quarter turnover sum (EUR)."},{"name":"last_quarter_employees_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Min employees (last quarter).","title":"Last Quarter Employees Min"},"description":"Min employees (last quarter)."},{"name":"last_quarter_employees_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Max employees (last quarter).","title":"Last Quarter Employees Max"},"description":"Max employees (last quarter)."},{"name":"kapital_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Deprecated spelling of `share_capital_min` (still supported).","deprecated":true,"title":"Kapital Min"},"description":"Deprecated spelling of `share_capital_min` (still supported).","deprecated":true},{"name":"kapital_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Deprecated spelling of `share_capital_max` (still supported).","deprecated":true,"title":"Kapital Max"},"description":"Deprecated spelling of `share_capital_max` (still supported).","deprecated":true},{"name":"esmaregistreerimise_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Deprecated spelling of `registered_from` (still supported).","deprecated":true,"title":"Esmaregistreerimise From"},"description":"Deprecated spelling of `registered_from` (still supported).","deprecated":true},{"name":"esmaregistreerimise_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Deprecated spelling of `registered_to` (still supported).","deprecated":true,"title":"Esmaregistreerimise To"},"description":"Deprecated spelling of `registered_to` (still supported).","deprecated":true},{"name":"person_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Companies linked to a person by name (board member / owner), partial match. E.g. 'Pavel Hmeljov'.","title":"Person Name"},"description":"Companies linked to a person by name (board member / owner), partial match. E.g. 'Pavel Hmeljov'."},{"name":"last_quarter_turnover_growth_pct_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Min quarter-over-quarter turnover growth %, e.g. 20 = grew 20%+ (EE/LV/LT).","title":"Last Quarter Turnover Growth Pct Min"},"description":"Min quarter-over-quarter turnover growth %, e.g. 20 = grew 20%+ (EE/LV/LT)."},{"name":"last_quarter_turnover_growth_pct_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Max quarter-over-quarter turnover growth %.","title":"Last Quarter Turnover Growth Pct Max"},"description":"Max quarter-over-quarter turnover growth %."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountResponse"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded — slow down and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Data backend temporarily unavailable — safe to retry; nothing was charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/companies":{"get":{"tags":["Company Data API"],"summary":"Search companies (metered)","description":"Search company data. Reserves `page_size × per-country price`, refunded\ndown to the rows actually returned. **Admin keys are unlimited.**","operationId":"companies_api_v1_data_companies_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-based).","default":1,"title":"Page"},"description":"Page number (1-based)."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Rows per page (max 500).","default":50,"title":"Page Size"},"description":"Rows per page (max 500)."},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","description":"Sort field. `registration_code` and `company_name` are accepted as aliases.","default":"registrikood","title":"Sort By"},"description":"Sort field. `registration_code` and `company_name` are accepted as aliases."},{"name":"sort_dir","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","description":"Sort direction.","default":"asc","title":"Sort Dir"},"description":"Sort direction."},{"name":"country","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Country","description":"Country to query (one of EE, LV, LT, NO, FI, PL, SE)."},"description":"Country to query (one of EE, LV, LT, NO, FI, PL, SE)."},{"name":"company_name","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Company name(s) to match (partial).","title":"Company Name"},"description":"Company name(s) to match (partial)."},{"name":"registration_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact registration code.","title":"Registration Code"},"description":"Exact registration code."},{"name":"industry_codes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Activity codes (EMTAK for EE, NACE/EVRK/PKD/SNI for others). Get them from /activities.","title":"Industry Codes"},"description":"Activity codes (EMTAK for EE, NACE/EVRK/PKD/SNI for others). Get them from /activities."},{"name":"legal_form","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Legal form code(s). Get the values from /filters.","title":"Legal Form"},"description":"Legal form code(s). Get the values from /filters."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Company status. Omit for active-only (default); send `__all__` for every status.","title":"Status"},"description":"Company status. Omit for active-only (default); send `__all__` for every status."},{"name":"share_capital_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Min share capital (NO: NOK, PL: PLN).","title":"Share Capital Min"},"description":"Min share capital (NO: NOK, PL: PLN)."},{"name":"share_capital_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Max share capital.","title":"Share Capital Max"},"description":"Max share capital."},{"name":"registered_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Registered on/after (YYYY-MM-DD).","title":"Registered From"},"description":"Registered on/after (YYYY-MM-DD)."},{"name":"registered_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Registered on/before (YYYY-MM-DD).","title":"Registered To"},"description":"Registered on/before (YYYY-MM-DD)."},{"name":"arinimi","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Deprecated spelling of `company_name` (still supported).","deprecated":true,"title":"Arinimi"},"description":"Deprecated spelling of `company_name` (still supported).","deprecated":true},{"name":"registrikood","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Deprecated spelling of `registration_code` (still supported).","deprecated":true,"title":"Registrikood"},"description":"Deprecated spelling of `registration_code` (still supported).","deprecated":true},{"name":"emtak_codes","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Deprecated spelling of `industry_codes` (still supported).","deprecated":true,"title":"Emtak Codes"},"description":"Deprecated spelling of `industry_codes` (still supported).","deprecated":true},{"name":"oiguslik_vorm","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Deprecated spelling of `legal_form` (still supported).","deprecated":true,"title":"Oiguslik Vorm"},"description":"Deprecated spelling of `legal_form` (still supported).","deprecated":true},{"name":"staatus","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Deprecated spelling of `status` (still supported).","deprecated":true,"title":"Staatus"},"description":"Deprecated spelling of `status` (still supported).","deprecated":true},{"name":"location","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Free-text location / region filter.","title":"Location"},"description":"Free-text location / region filter."},{"name":"ehak_kood","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Location codes from /locations (EE/LV/FI/PL trees). Send a node's `codes` array — it already includes all descendants; a parent code alone matches only rows tagged with exactly that code. Repeat the parameter for several codes.","title":"Ehak Kood"},"description":"Location codes from /locations (EE/LV/FI/PL trees). Send a node's `codes` array — it already includes all descendants; a parent code alone matches only rows tagged with exactly that code. Repeat the parameter for several codes."},{"name":"lt_locations","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Lithuanian location NAMES — send a node's `locations` array from /locations?country=LT (the node's kood does not work).","title":"Lt Locations"},"description":"Lithuanian location NAMES — send a node's `locations` array from /locations?country=LT (the node's kood does not work)."},{"name":"vat_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only VAT-registered companies when true.","title":"Vat Active"},"description":"Only VAT-registered companies when true."},{"name":"has_email","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only companies with an email when true.","title":"Has Email"},"description":"Only companies with an email when true."},{"name":"has_website","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only companies with a website when true.","title":"Has Website"},"description":"Only companies with a website when true."},{"name":"has_domain","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only companies with a registered domain when true (registry-sourced domain registered to the company, separate from website).","title":"Has Domain"},"description":"Only companies with a registered domain when true (registry-sourced domain registered to the company, separate from website)."},{"name":"has_phone","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only companies with a phone when true.","title":"Has Phone"},"description":"Only companies with a phone when true."},{"name":"has_contact","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Only companies with any contact when true.","title":"Has Contact"},"description":"Only companies with any contact when true."},{"name":"has_tax_debt","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"EE only: true = has disclosed tax debt, false = no tax debt.","title":"Has Tax Debt"},"description":"EE only: true = has disclosed tax debt, false = no tax debt."},{"name":"exclude_marketing_optout","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Drop companies that registered a postal direct-marketing block at the source registry (SE: SCB reklamspärr).","title":"Exclude Marketing Optout"},"description":"Drop companies that registered a postal direct-marketing block at the source registry (SE: SCB reklamspärr)."},{"name":"exclude_phone_optout","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Drop companies that registered a TELEPHONE marketing block (SE: telemarketing block or NIX-Telefon). Use this whenever the phone numbers will be called.","title":"Exclude Phone Optout"},"description":"Drop companies that registered a TELEPHONE marketing block (SE: telemarketing block or NIX-Telefon). Use this whenever the phone numbers will be called."},{"name":"employees_band","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"SE only: employee size-band codes (SCB Storleksklass 1..16). Bands, not exact counts. Code 0 means the size is unknown and is never treated as zero.","title":"Employees Band"},"description":"SE only: employee size-band codes (SCB Storleksklass 1..16). Bands, not exact counts. Code 0 means the size is unknown and is never treated as zero."},{"name":"turnover_band","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"SE only: turnover size-band codes (SCB Omsättningsklass grov). Bands in thousands of SEK, not euros, and not exact figures.","title":"Turnover Band"},"description":"SE only: turnover size-band codes (SCB Omsättningsklass grov). Bands in thousands of SEK, not euros, and not exact figures."},{"name":"annual_revenue_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: min annual-report revenue (reporting currency: EUR for EE, NOK for NO).","title":"Annual Revenue Min"},"description":"EE/NO/LV: min annual-report revenue (reporting currency: EUR for EE, NOK for NO)."},{"name":"annual_revenue_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: max annual-report revenue.","title":"Annual Revenue Max"},"description":"EE/NO/LV: max annual-report revenue."},{"name":"annual_net_profit_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: min annual net profit (negative = loss; 0 = profitable only).","title":"Annual Net Profit Min"},"description":"EE/NO/LV: min annual net profit (negative = loss; 0 = profitable only)."},{"name":"annual_net_profit_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: max annual net profit.","title":"Annual Net Profit Max"},"description":"EE/NO/LV: max annual net profit."},{"name":"annual_equity_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: min equity.","title":"Annual Equity Min"},"description":"EE/NO/LV: min equity."},{"name":"annual_equity_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: max equity.","title":"Annual Equity Max"},"description":"EE/NO/LV: max equity."},{"name":"annual_total_assets_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: min total assets.","title":"Annual Total Assets Min"},"description":"EE/NO/LV: min total assets."},{"name":"annual_total_assets_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"EE/NO/LV: max total assets.","title":"Annual Total Assets Max"},"description":"EE/NO/LV: max total assets."},{"name":"last_quarter_turnover_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Min last-quarter turnover (EUR).","title":"Last Quarter Turnover Min"},"description":"Min last-quarter turnover (EUR)."},{"name":"last_quarter_turnover_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Max last-quarter turnover (EUR).","title":"Last Quarter Turnover Max"},"description":"Max last-quarter turnover (EUR)."},{"name":"last_4_quarters_turnover_sum_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Min trailing 4-quarter turnover sum (EUR).","title":"Last 4 Quarters Turnover Sum Min"},"description":"Min trailing 4-quarter turnover sum (EUR)."},{"name":"last_4_quarters_turnover_sum_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Max trailing 4-quarter turnover sum (EUR).","title":"Last 4 Quarters Turnover Sum Max"},"description":"Max trailing 4-quarter turnover sum (EUR)."},{"name":"last_quarter_employees_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Min employees (last quarter).","title":"Last Quarter Employees Min"},"description":"Min employees (last quarter)."},{"name":"last_quarter_employees_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Max employees (last quarter).","title":"Last Quarter Employees Max"},"description":"Max employees (last quarter)."},{"name":"kapital_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Deprecated spelling of `share_capital_min` (still supported).","deprecated":true,"title":"Kapital Min"},"description":"Deprecated spelling of `share_capital_min` (still supported).","deprecated":true},{"name":"kapital_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Deprecated spelling of `share_capital_max` (still supported).","deprecated":true,"title":"Kapital Max"},"description":"Deprecated spelling of `share_capital_max` (still supported).","deprecated":true},{"name":"esmaregistreerimise_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Deprecated spelling of `registered_from` (still supported).","deprecated":true,"title":"Esmaregistreerimise From"},"description":"Deprecated spelling of `registered_from` (still supported).","deprecated":true},{"name":"esmaregistreerimise_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Deprecated spelling of `registered_to` (still supported).","deprecated":true,"title":"Esmaregistreerimise To"},"description":"Deprecated spelling of `registered_to` (still supported).","deprecated":true},{"name":"person_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Companies linked to a person by name (board member / owner), partial match. E.g. 'Pavel Hmeljov'.","title":"Person Name"},"description":"Companies linked to a person by name (board member / owner), partial match. E.g. 'Pavel Hmeljov'."},{"name":"last_quarter_turnover_growth_pct_min","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Min quarter-over-quarter turnover growth %, e.g. 20 = grew 20%+ (EE/LV/LT).","title":"Last Quarter Turnover Growth Pct Min"},"description":"Min quarter-over-quarter turnover growth %, e.g. 20 = grew 20%+ (EE/LV/LT)."},{"name":"last_quarter_turnover_growth_pct_max","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Max quarter-over-quarter turnover growth %.","title":"Last Quarter Turnover Growth Pct Max"},"description":"Max quarter-over-quarter turnover growth %."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanySearchResponse"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Insufficient credits — top up in the dashboard or reduce page_size.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded — slow down and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Data backend temporarily unavailable — safe to retry; nothing was charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/companies/{registrikood}":{"get":{"tags":["Company Data API"],"summary":"Get one company (metered)","description":"Full detail for a single company (contacts, activities, people). The path\nparameter is the company registration code. Costs one row's per-country\nprice. **Admin + subscriber keys are unlimited.**","operationId":"company_detail_api_v1_data_companies__registrikood__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"registrikood","in":"path","required":true,"schema":{"type":"string","title":"Registrikood"}},{"name":"country","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Country","description":"Country the registration code belongs to."},"description":"Country the registration code belongs to."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyDetailEnvelope"}}}},"400":{"description":"Malformed registration code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Insufficient credits — top up in the dashboard or reduce page_size.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No company with that code in the country — nothing was charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded — slow down and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Data backend temporarily unavailable — safe to retry; nothing was charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data/companies/{registrikood}/history":{"get":{"tags":["Company Data API"],"summary":"Historical metrics of one company (metered)","description":"Time series of turnover and employee counts for one company, straight\nfrom the official registers, chronological, each row labelled with its own\ngranularity. Coverage: **EE** quarterly since 2025 (incl. state/labour tax\ntotals), **LV** annual report figures since 2006, **LT** monthly employee\ncounts for 2021-2023 and 2025 (2024 missing at the source, pending\nbackfill) plus annual tax/turnover totals (dense 2021+, sparse 2015-2020),\n**NO** a single snapshot; FI/PL/SE publish no series. Costs one row's\nper-country price; **free when the company has no history** (the reserve is\nrefunded). Admin + subscriber keys are unlimited.","operationId":"company_history_api_v1_data_companies__registrikood__history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"registrikood","in":"path","required":true,"schema":{"type":"string","title":"Registrikood"}},{"name":"country","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Country","description":"Country the registration code belongs to."},"description":"Country the registration code belongs to."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyHistoryEnvelope"}}}},"400":{"description":"Malformed registration code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Insufficient credits — top up in the dashboard or reduce page_size.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"No company with that code in the country — nothing was charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Rate limit exceeded — slow down and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Data backend temporarily unavailable — safe to retry; nothing was charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"CompanyDetailData":{"properties":{"registrikood":{"type":"string","title":"Registrikood","examples":["17267954"]},"arinimi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Arinimi","examples":["Innovadata OÜ"]},"oiguslik_vorm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Oiguslik Vorm"},"oigusliku_vormi_alaliik":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Oigusliku Vormi Alaliik","description":"Legal-form sub-type, where the registry has one."},"staatus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Staatus"},"staatus_tekstina":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Staatus Tekstina","description":"Status as human-readable text."},"esmaregistreerimise_kpv":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Esmaregistreerimise Kpv"},"ehak_kood":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ehak Kood"},"ehak_nimetus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ehak Nimetus"},"aadress_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aadress Text","description":"Full address text."},"kmkr_nr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kmkr Nr"},"vat_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Vat Active"},"vat_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vat Number"},"kapital":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kapital"},"contacts":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Contacts","description":"Contact rows: {liik: WWW|EMAIL|TEL|MOB|DOMAIN, sisu: value}."},"registered_domains":{"items":{"type":"string"},"type":"array","title":"Registered Domains","description":"Registry-sourced domains registered to the entity (EE/FI), separate from websites."},"emtak":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Emtak","description":"Activity codes with labels."},"people":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"People","description":"Publicly registered people (board members / representatives) where the source registry publishes them. Lithuania and Sweden publish none. Personal ID codes are never included."},"latest_metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Latest Metrics","description":"Latest turnover/employee metrics, where available."}},"additionalProperties":true,"type":"object","required":["registrikood"],"title":"CompanyDetailData","description":"Full record for one company. Same core as CompanyRow plus contact,\nactivity and people lists."},"CompanyDetailEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/CompanyDetailData"},"meta":{"$ref":"#/components/schemas/UsageMeta"}},"type":"object","required":["data","meta"],"title":"CompanyDetailEnvelope"},"CompanyHistoryData":{"properties":{"registrikood":{"type":"string","title":"Registrikood","examples":["17267954"]},"arinimi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Arinimi","examples":["Innovadata OÜ"]},"country":{"type":"string","title":"Country"},"granularity":{"type":"string","title":"Granularity","description":"quarterly | monthly | snapshot | none"},"periods":{"items":{"$ref":"#/components/schemas/HistoryPeriod"},"type":"array","title":"Periods"}},"type":"object","required":["registrikood","country","granularity"],"title":"CompanyHistoryData","description":"Historical turnover / employee series for one company.\n\nCoverage: EE quarterly incl. tax totals (2025→); LV annual report figures\n(2006→); LT monthly employee counts (2021-2023, 2025; 2024 pending\nbackfill) plus annual tax/turnover totals (dense 2021+, sparse 2015-2020)\n— a mixed series, each row labelled; NO a single snapshot.\nFI, PL and SE registries publish no historical series."},"CompanyHistoryEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/CompanyHistoryData"},"meta":{"$ref":"#/components/schemas/UsageMeta"}},"type":"object","required":["data","meta"],"title":"CompanyHistoryEnvelope"},"CompanyRow":{"properties":{"registrikood":{"type":"string","title":"Registrikood","description":"Registration code (empty string for Swedish sole traders, whose only code is a personal ID and is suppressed).","examples":["17267954"]},"arinimi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Arinimi","description":"Company name.","examples":["Innovadata OÜ"]},"oiguslik_vorm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Oiguslik Vorm","description":"Legal form code.","examples":["OÜ"]},"staatus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Staatus","description":"Registry status code; 'R' = registered/active.","examples":["R"]},"esmaregistreerimise_kpv":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Esmaregistreerimise Kpv","description":"First registration date."},"ehak_kood":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ehak Kood","description":"Location code (EHAK/ATVK/…)."},"ehak_nimetus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ehak Nimetus","description":"Location name."},"asukoht":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asukoht","description":"Address / location text."},"last_quarter_turnover":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Last Quarter Turnover","description":"Last-quarter turnover, EUR (EE/LV; monthly for LT)."},"last_quarter_employees_number":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Last Quarter Employees Number","description":"Employees, latest period (EE/LV/LT)."},"last_4_quarters_turnover_sum":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Last 4 Quarters Turnover Sum","description":"Trailing 4-quarter turnover sum, EUR."},"kmkr_nr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kmkr Nr","description":"VAT number (blank when the number would identify a private person)."},"vat_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Vat Active","description":"VAT-registered at the source registry."},"vat_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vat Number","description":"VAT number where published separately."},"kapital":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kapital","description":"Share capital (NO: NOK, PL: PLN)."},"annual_revenue":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Annual Revenue","description":"Annual-report revenue (EE/NO/LV; NOK for NO)."},"annual_net_profit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Annual Net Profit","description":"Annual-report net profit; negative = loss."},"annual_equity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Annual Equity","description":"Annual-report equity."},"annual_total_assets":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Annual Total Assets","description":"Annual-report total assets."},"has_tax_debt":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Tax Debt","description":"EE only: on the public EMTA tax-debtor list."}},"additionalProperties":true,"type":"object","required":["registrikood"],"title":"CompanyRow","description":"One company in a search result. The stable core is documented here;\ncountries add fields (e.g. Swedish size bands) — extras are allowed."},"CompanySearchData":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CompanyRow"},"type":"array","title":"Items"},"page":{"type":"integer","title":"Page","examples":[1]},"page_size":{"type":"integer","title":"Page Size","examples":[50]},"total":{"type":"integer","title":"Total","description":"Total companies matching the filters.","examples":[1543]},"sort_by":{"type":"string","title":"Sort By","examples":["registrikood"]},"sort_dir":{"type":"string","title":"Sort Dir","examples":["asc"]}},"additionalProperties":true,"type":"object","required":["items","page","page_size","total","sort_by","sort_dir"],"title":"CompanySearchData"},"CompanySearchResponse":{"properties":{"data":{"$ref":"#/components/schemas/CompanySearchData"},"meta":{"$ref":"#/components/schemas/UsageMeta"}},"type":"object","required":["data","meta"],"title":"CompanySearchResponse"},"CountResponse":{"properties":{"country":{"type":"string","title":"Country","examples":["EE"]},"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count","description":"Companies matching the filters.","examples":[1543]},"count_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Count Mode","description":"\"exact\" when the count is a real COUNT(*); anything else means the number is an estimate.","examples":["exact"]}},"type":"object","required":["country"],"title":"CountResponse"},"CountriesResponse":{"properties":{"countries":{"items":{"$ref":"#/components/schemas/CountryItem"},"type":"array","title":"Countries"}},"type":"object","required":["countries"],"title":"CountriesResponse","examples":[{"countries":[{"code":"EE","name":"Estonia"},{"code":"SE","name":"Sweden"}]}]},"Country":{"type":"string","enum":["EE","LV","LT","NO","FI","PL","SE"],"title":"Country"},"CountryItem":{"properties":{"code":{"type":"string","title":"Code","description":"ISO 3166-1 alpha-2 country code.","examples":["EE"]},"name":{"type":"string","title":"Name","description":"Country name in English.","examples":["Estonia"]}},"type":"object","required":["code","name"],"title":"CountryItem"},"ErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail","examples":["insufficient credits: have 12.4, need 20.0"]}},"type":"object","required":["detail"],"title":"ErrorResponse","description":"Every error is `{\"detail\": \"<human-readable reason>\"}`."},"FilterSpec":{"properties":{"param":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Param","description":"Query parameter for single-value filters."},"param_min":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Param Min","description":"Query parameter for the lower bound of a range filter."},"param_max":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Param Max","description":"Query parameter for the upper bound of a range filter."},"param_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Param From","description":"Query parameter for the start of a date-range filter."},"param_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Param To","description":"Query parameter for the end of a date-range filter."},"type":{"type":"string","title":"Type","description":"Widget type: text | select | multi_select | boolean | number_range | date_range | tree."},"label":{"type":"string","title":"Label","description":"Human-readable filter name."},"multi":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Multi","description":"True when several values may be sent (repeat the parameter)."},"options":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Options","description":"Fixed choice list for select filters."},"options_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Options Url","description":"Endpoint returning the option tree for tree filters."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"Country-specific caveat worth reading before use."}},"additionalProperties":true,"type":"object","required":["type","label"],"title":"FilterSpec","description":"One filter offered for a country. Exactly one of `param`,\n`param_min`+`param_max`, or `param_from`+`param_to` is set — it names the\n/companies and /count query parameter(s) to send."},"FiltersResponse":{"properties":{"country":{"type":"string","title":"Country","examples":["SE"]},"industry_system":{"type":"string","title":"Industry System","description":"Activity-code system for the country: EMTAK, NACE, EVRK, PKD or SNI."},"filters":{"items":{"$ref":"#/components/schemas/FilterSpec"},"type":"array","title":"Filters"}},"type":"object","required":["country","industry_system","filters"],"title":"FiltersResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HistoryPeriod":{"properties":{"period":{"type":"string","title":"Period","description":"Period label: 2025-Q1 (quarterly), 2021-03 (monthly) or a bare year (annual total / snapshot).","examples":["2025-Q1"]},"granularity":{"type":"string","title":"Granularity","description":"This row's granularity: monthly | quarterly | annual | snapshot. Countries can mix (LT: monthly employees + annual tax totals)."},"year":{"type":"integer","title":"Year"},"quarter":{"type":"integer","title":"Quarter","description":"1-4 for quarterly series, 0 otherwise."},"month":{"type":"integer","title":"Month","description":"1-12 for monthly series (LT), 0 otherwise."},"turnover":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Turnover","description":"Turnover for the period, EUR."},"employees":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Employees","description":"Employee count reported for the period."},"state_taxes":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"State Taxes","description":"State taxes paid, EUR (EE quarterly; LT annual totals)."},"labour_taxes":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Labour Taxes","description":"Labour taxes paid (EE), EUR."},"as_of":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"As Of","description":"Registry data-as-of date for the row."}},"type":"object","required":["period","granularity","year","quarter","month"],"title":"HistoryPeriod","description":"One reporting period of the official registry series (chronological)."},"TreeNode":{"properties":{"kood":{"type":"string","title":"Kood","description":"Code — use as `industry_codes` / `emtak_codes` (activities) or `ehak_kood` / `lt_locations` (locations).","examples":["62"]},"label":{"type":"string","title":"Label","description":"Human-readable name.","examples":["Computer programming, consultancy and related activities"]},"children":{"items":{"$ref":"#/components/schemas/TreeNode"},"type":"array","title":"Children"}},"additionalProperties":true,"type":"object","required":["kood","label"],"title":"TreeNode","description":"Node of an activity or location tree. Trees are returned as a bare JSON\narray of root nodes; leaves have an empty `children` list."},"UsageMeta":{"properties":{"rows_returned":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rows Returned","examples":[50]},"credits_charged":{"type":"number","title":"Credits Charged","description":"Credits actually charged (0 on unlimited keys).","examples":[2.0]},"credits_reserved":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Credits Reserved","description":"Credits reserved up front (page_size × row price); the unused part was refunded.","examples":[2.0]},"credit_balance":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Credit Balance","description":"Balance after the call.","examples":[28.0]},"unlimited":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Unlimited","description":"True when the key is admin or on the unlimited plan/trial — nothing was charged."}},"additionalProperties":true,"type":"object","required":["credits_charged"],"title":"UsageMeta","description":"Billing outcome of the call. 1 credit = €1; rows are priced per country."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","description":"Your Innovadata API key (ik_live_…)","scheme":"bearer"}}},"tags":[{"name":"Company Data API"}]}