Firmastat Firmy API
The Firmy API from Firmastat — 1 operation(s) for firmy.
The Firmy API from Firmastat — 1 operation(s) for firmy.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/firmastat-cz:firmastat-cz-firmy-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Firmastat Firmy API
version: 1.0.0
description: 'Veřejné API nad daty o českých firmách (ARES, obchodní rejstřík, Sbírka listin). Bez přihlášení platí denní limit 30 dotazů na IP (kalendářní den, Europe/Prague). S účtem platí měsíční kvóta tarifu (Free 500/měs, zdarma) a žádný denní strop; autentizovat se dá API klíčem (Authorization: Bearer fs_…), OAuth 2.1 pro MCP klienty, nebo session cookie z webu. Při vyčerpání přijde 429.'
servers:
- url: https://firmastat.cz
security:
- {}
- apiKey: []
tags:
- name: Firmy
paths:
/api/v1/firmy/dph:
post:
summary: Dávkový stav DPH (až 100 IČO)
description: 'Čte se JEN z už ověřených dat — IČO, ke kterým stav nemáme, se vrátí v `neovereno` s `dph: null` a zařadí se na dohledání. Účtuje se objemem: 1 jednotka kvóty za každé (deduplikované) IČO.'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- ico
properties:
ico:
type: array
minItems: 1
maxItems: 100
items:
type: string
pattern: ^\d{8}$
responses:
'200':
description: Stav DPH pro poslaná IČO
headers:
X-RateLimit-Limit:
schema:
type: integer
description: 'Strop: 30/den bez přihlášení, jinak měsíční kvóta tarifu.'
X-RateLimit-Remaining:
schema:
type: integer
description: Kolik dotazů ještě zbývá.
X-RateLimit-Reset:
schema:
type: integer
description: 'Sekund do obnovení: do pražské půlnoci u denního limitu, do začátku dalšího měsíce u kvóty účtu.'
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
data:
type: object
properties:
pocet:
type: integer
neovereno:
type: array
items:
type: string
firmy:
type: array
items:
type: object
properties:
ico:
type: string
dph:
type: object
nullable: true
description: Stav DPH složený z ARES (registrace, DIČ) a CRPDPH MFČR (typ, nespolehlivost). `null` = NEOVĚŘENO — nikdy to neznamená „není plátce".
properties:
dic:
type: string
nullable: true
description: DIČ včetně prefixu. Neodvozuje se z IČO (u FO je z rodného čísla). `null` i po zániku registrace — mrtvé DIČ na faktuře je horší než žádné.
example: CZ27082440
registraceAktivni:
type: boolean
description: Běží registrace k DPH právě teď.
stav:
type: string
nullable: true
enum:
- platce
- nespolehlivyPlatce
- identifikovanaOsoba
- neplatce
nespolehlivyOd:
type: string
format: date
nullable: true
overenoK:
type: string
format: date-time
description: Stáří snapshotu, o který se odpověď opírá (starší z obou zdrojů).
cisloFu:
type: string
nullable: true
zverejneneUcty:
type: array
items:
type: string
description: Zveřejněné bankovní účty (§109 — platba jinam nese stejné riziko jako nespolehlivý plátce).
'400':
description: Chybí IČO, neplatné IČO, nebo víc než 100
headers:
X-RateLimit-Limit:
schema:
type: integer
description: 'Strop: 30/den bez přihlášení, jinak měsíční kvóta tarifu.'
X-RateLimit-Remaining:
schema:
type: integer
description: Kolik dotazů ještě zbývá.
X-RateLimit-Reset:
schema:
type: integer
description: 'Sekund do obnovení: do pražské půlnoci u denního limitu, do začátku dalšího měsíce u kvóty účtu.'
'401':
description: Neplatný nebo zneplatněný API klíč.
'413':
description: Tělo požadavku nad 16 kB
'429':
description: 'Vyčerpaný limit: bez přihlášení 30 dotazů/den na IP, s účtem měsíční kvóta tarifu (Free 500/měs).'
headers:
X-RateLimit-Limit:
schema:
type: integer
description: 'Strop: 30/den bez přihlášení, jinak měsíční kvóta tarifu.'
X-RateLimit-Remaining:
schema:
type: integer
description: Kolik dotazů ještě zbývá.
X-RateLimit-Reset:
schema:
type: integer
description: 'Sekund do obnovení: do pražské půlnoci u denního limitu, do začátku dalšího měsíce u kvóty účtu.'
Retry-After:
schema:
type: integer
description: Za kolik sekund má smysl to zkusit znovu.
tags:
- Firmy
operationId: postApiV1FirmyDph
x-operation-id-source: derived
components:
securitySchemes:
apiKey:
type: http
scheme: bearer
bearerFormat: fs_<token>
description: API klíč vydaný v účtu na /ucet. Platí pro REST i MCP a čerpá jednu společnou měsíční kvótu účtu. Klíč posílej jen ze serveru.