API KRS — REST API do weryfikacji polskich firm
Jeden zunifikowany endpoint dla wszystkich polskich rejestrów państwowych: KRS, NIP (biała lista MF), REGON (GUS), CRBR, GPW, TED Europa. Pełna dokumentacja OpenAPI 3.1, SDK dla Node.js / Python / PHP, sandbox bezpłatnie. Idealny dla zespołów budujących systemy KYB, fintech, e-commerce, ERP, księgowość, compliance.
Co weryfikujemy
Dane prosto z państwowych rejestrów. Bez scrapingu, bez pośredników, z pełną ścieżką pochodzenia (provenance).
GET /v1/verify
Weryfikacja po nazwie, NIP, KRS lub REGON. Auto-disambiguacja, confidence score, cross-walidacja.
GET /v1/verify/nip
Walidacja NIP w białej liście MF. Status VAT, rachunki bankowe, audit_id dla STIR.
GET /v1/ubo
Pobranie rzeczywistych beneficjentów z CRBR. Rekursywne rozwiązanie hierarchii własności.
POST /v1/batch
Batch weryfikacja do 100 firm w jednym requeście. Async dla wolumenów >1000 (webhook na ready).
GET /v1/entity/{id}
Pełen profil firmy ze wszystkimi rejestrami. Cache 24h, force_refresh możliwy.
GET /v1/changes
Polling lub webhook na zmiany w obserwowanych firmach (zmiana zarządu, statusu, beneficjenta).
POST /v1/import/csv
Upload CSV z firmami, asynchroniczna walidacja, download wzbogaconego CSV-a.
GET /v1/companies/search
Wyszukiwanie pełnotekstowe po nazwie, branży, lokalizacji. Paginacja, filtry, sortowanie.
Dlaczego warto
Praktyczne zastosowania dla zespołów compliance, sprzedaży B2B, due diligence i procurement.
Jeden API zamiast pięciu
KRS, MF, GUS, CRBR, GPW — wszystkie w jednym REST endpoint zamiast pięciu różnych integracji z różnymi formatami i wymogami autoryzacji.
OpenAPI 3.1 + typed SDK
Pełna specyfikacja OpenAPI. Wygeneruj typescript / Python / PHP / Go / Ruby z jednej komendy. Type safety, IntelliSense, dokumentacja w IDE.
Sandbox bezpłatnie
50 wywołań/miesiąc na bezpłatnym tier. Realne dane (135 000+ firm), bez fake-mocków. Pełna funkcjonalność do prototypowania.
Webhook + polling
Real-time alerty na zmiany. Slack, email, custom HTTPS endpoint. Lub klasyczny polling dla prostszych integracji.
Rate limiting fair-use
1 000 / 10 000 / 100 000 req/min w zależności od planu. Burst possible. Brak ukrytych limitów na większości endpointów.
GDPR / SOC 2
Pełna zgodność z RODO. Infrastruktura na Supabase (SOC 2 Type II). DPA, polityka prywatności, retencja danych jasno udokumentowana.
Jak to działa
Trzy kroki od zapytania do zweryfikowanego rekordu firmy.
Zarejestruj się
Konto w 30 sekund, klucz API od razu w panelu. 50 bezpłatnych zapytań/miesiąc, bez karty kredytowej.
Zainstaluj SDK
npm install @salesdots/sdk lub pip install salesdots. Lub bezpośrednio REST przez curl/Postman.
Wywołaj endpoint
Jedno wywołanie i masz pełen profil firmy. Pełna dokumentacja, code samples, Postman collection w panelu.
Wywołaj jednym requestem
// Node.js / TypeScript
import { SalesDots } from "@salesdots/sdk";
const client = new SalesDots({ apiKey: process.env.SALESDOTS_API_KEY });
// Weryfikacja po nazwie
const result = await client.verify({
name: "PKN Orlen",
country: "PL",
});
console.log(result.entity.krs); // "0000028860"
console.log(result.entity.nip); // "7740001454"
console.log(result.confidence); // 99
// Pobranie UBO
const ubo = await client.ubo.get({ krs: "0000028860" });
// Webhook na zmiany
await client.subscriptions.create({
entityIds: ["pkn-orlen", "kgh-polska-miedz"],
events: ["status_change", "ubo_change", "leadership_change"],
webhookUrl: "https://app.example.com/salesdots/hook",
});Najczęściej zadawane pytania
W jakim języku zwraca API?
+
Domyślnie JSON. Wszystkie pola w angielskiej notacji (camelCase). Wartości tekstowe (np. nazwa firmy, adres) w oryginalnym języku — polskim dla polskich firm. Możesz wymusić odpowiedź XML parametrem format=xml.
Jakie są limity rate-limit?
+
Free: 50 req/mc, 5 req/min. Starter: 5 000 req/mc, 100 req/min. Professional: 10 000 req/mc, 500 req/min. Team: 15 000 req/mc, 1 000 req/min. Enterprise: nieograniczone, dedykowany SLA.
Co jeśli MF / KRS / GUS są niedostępne?
+
SalesDots EAM Gateway ma cache + circuit breaker. Jeśli źródło padło — zwracamy ostatnie znane dane z timestamp (i flagą `stale: true`). Dla pól krytycznych (status VAT) używamy fallback przez VIES jeśli MF jest down.
Jak długo dane są przechowywane w cache?
+
Konfigurowalne per pole. Domyślnie: dane KRS — 24h, status VAT — 1h, CRBR — 12h, GPW — 4h. Force-refresh przez parametr fresh=true (kosztuje 2x tokens).
Czy macie SDK dla PHP / Laravel?
+
Tak. SDK dostępne dla: Node.js / TypeScript, Python, PHP (composer), Go, Ruby. Dla innych języków — pełna spec OpenAPI 3.1, możesz wygenerować klienta automatycznie.
Jak płacę za API?
+
Subscription monthly lub yearly (20% zniżki). Dodatkowe paczki tokenów do dokupienia w panelu. Wszystkie płatności przez Stripe. Faktura VAT na życzenie (Enterprise — domyślnie).
Czy mogę przetestować przed zakupem?
+
Tak. Bezpłatny tier zawiera 50 zapytań/miesiąc na realnych danych, bez ograniczeń funkcjonalnych. Możesz w nim zbudować pełne PoC. Sandbox z dodatkowymi 1 000 zapytań — kontakt /contact.
Powiązane produkty i strony
Gotowy zweryfikować pierwszą firmę?
Wypróbuj SalesDots EntityLock™ na realnym przypadku użycia. Bezpłatne demo, bez karty kredytowej.