Trwa przebudowa platformy — logowanie i rejestracja są chwilowo niedostępne. Napisz do nas
API danych firmy
https://api.entiway.com
· Uwierzytelnianie tokenem Bearer · jeden portfel · płatność za wywołanie. ·
Zobacz cennik →
Przegląd i uwierzytelnianie
Każde żądanie uwierzytelniasz tokenem Bearer – nie ma anonimowych wywołań danych. Master Token (sk_live_) ma pełny dostęp, łącznie z zarządzaniem tokenami; tokeny API o zawężonym zakresie (sk_api_) sięgają wyłącznie endpointów danych. Operacje na koncie, tokenach i portfelu są bezpłatne; operacje na danych odejmują kredyty z portfela.
sk_live_…
Pełny dostęp – zarządzanie tokenami, portfelem i wszystkimi danymi. Pokazywany raz, przy inicjalizacji.
sk_api_…
Zawężony do endpointów danych. Tworzony z Master Tokena. Pokazywany raz.
400 – Nieprawidłowy JSON
Zwracany gdy body z nagłówkiem Content-Type: application/json nie jest poprawnym JSON-em (np. brakujący przecinek albo cudzysłów). Zapytanie nie jest wykonywane – popraw składnię i wyślij ponownie.
{
"message": "Invalid JSON body.",
"errors": {
"body": ["Malformed JSON: Syntax error"]
}
}
401 – Brak autoryzacji
Zwracany gdy brakuje tokena lub nieprawidłowy.
{
"error": "Missing API token",
"code": "UNAUTHORIZED"
}
{
"error": "Malformed token format",
"code": "UNAUTHORIZED"
}
404 – Nie znaleziono
Zwracany gdy route lub zasób nie istnieje.
{
"message": "The route api/v1/companies/unknown could not be found."
}
422 – Błąd walidacji
Zwracany gdy ciało zapytania nie przechodzi walidacji. Obiekt errors zawiera komunikaty na poziomie pól – zawsze sprawdzaj każdy klucz osobno.
{
"message": "The email field must be a valid email address. (and 1 more error)",
"errors": {
"email": [
"The email field must be a valid email address."
],
"name": [
"The name field is required."
]
}
}
429 – Zbyt wiele zapytań
Zwracany gdy przekroczysz limit zapytań. Endpointy API z tokenem pozwalają na 180 zapytań na minutę; endpointy rejestracji i odzyskiwania dostępu mają niższe limity. Odczekaj chwilę i spróbuj ponownie.
{
"message": "Too Many Attempts."
}
500 – Błąd serwera
Coś poszło nie tak po naszej stronie. Jeśli problem się powtarza, skontaktuj się z [email protected].
{
"message": "Server Error"
}
Uwierzytelnianie
Dwuetapowa konfiguracja konta. Zarejestruj się podając email, nazwę i hasło – otrzymasz jednorazowy token na skrzynkę. Wymień go na Master Token używając /auth/init. Master Token daje pełny dostęp do wszystkich endpointów i jest wyświetlany tylko raz – przechowaj go bezpiecznie od razu.
Rejestracja
Tworzy nowe konto. Po rejestracji jednorazowy token inicjalizacyjny zostaje wysłany na podany adres email. Token wygasa po 24 godzinach – użyj go z /auth/init aby wygenerować Master Token. Zwrócony user_ref to Twój unikalny identyfikator konta.
Ograniczenia adresów email
Tymczasowe adresy email od znanych dostawców jednorazowych skrzynek oraz znanych globalnych providerów email są zablokowane i zostaną odrzucone błędem 422. Użyj stałego adresu firmowego lub prywatnego.
| Nazwa | Typ | Opis |
|---|---|---|
| email* | string | Twój adres email. Musi być stałym adresem – tymczasowe i jednorazowe skrzynki są zablokowane. |
| name* | string | Nazwa lub etykieta konta – używana wyłącznie do celów identyfikacyjnych. 3–255 znaków. |
| password* | string | Hasło do konta. Min. 8 znaków. |
| password_confirmation* | string | Musi być identyczne z polem password. |
POST /api/v1/auth/register curl -X POST https://api.entiway.com/api/v1/auth/register \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "email": "[email protected]", "name": "my-integration", "password": "YourPassword123", "password_confirmation": "YourPassword123" }'
{
"user_ref": "3XPT7SS5VG3B",
"email": "[email protected]",
"message": "Registration successful. Check your email to initialize your account.",
"expires_at": "2026-03-18T10:48:59+00:00"
}
Inicjalizacja konta
Wymienia jednorazowy token otrzymany emailem na Master Token. Master Token ma pełny dostęp do wszystkich endpointów i jest używany jako nagłówek Authorization: Bearer w każdym kolejnym zapytaniu. Musi być wywołany w ciągu 24 godzin od rejestracji. Ten endpoint jest mocno ograniczony throttlingiem.
⚠ Master Token jest zwracany tylko raz i nie można go odzyskać ponownie. Przechowaj go bezpiecznie od razu – jeśli go utracisz, użyj /auth/recover.
🎁 Każde nowe konto otrzymuje 200 kredytów bonusowych przy inicjalizacji – naliczane automatycznie do portfela, bez żadnych dodatkowych kroków.
| Nazwa | Typ | Opis |
|---|---|---|
| token* | string | Jednorazowy token inicjalizacyjny otrzymany emailem po rejestracji. |
POST /api/v1/auth/init curl -X POST https://api.entiway.com/api/v1/auth/init \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "token": "6d6c675fcebf98fdbeed11055f98fada..." }'
{
"user_ref": "3XPT7SS5VG3B",
"email": "[email protected]",
"master_token": "sk_live_5a4a9438c8b8d46836b2dd70bc95d0ee...",
"token_ref": "O752ABABBLBE",
"message": "Account initialized successfully. Save your Master Token securely - you will not see it again!"
}
Odzyskiwanie konta
Inicjuje odzyskiwanie konta. Podaj swój zarejestrowany adres email oraz nowe hasło które chcesz ustawić. Jeśli konto istnieje, na adres email zostanie wysłany link odzyskiwania ważny przez 24 godziny. Po kliknięciu linku wszystkie istniejące tokeny są unieważniane a nowy Master Token jest generowany i wyświetlany raz.
⚠ Odzyskiwanie unieważnia wszystkie istniejące tokeny – wszystkie aktywne integracje przestaną działać natychmiast.
| Nazwa | Typ | Opis |
|---|---|---|
| email* | string | Adres email powiązany z Twoim kontem. |
| password* | string | Nowe hasło do ustawienia dla konta. Min. 8 znaków. |
POST /api/v1/auth/recover curl -X POST https://api.entiway.com/api/v1/auth/recover \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "email": "[email protected]", "password": "YourPassword123" }'
{
"message": "If an account with this email exists, a recovery email has been sent.",
"expires_at": "2026-03-27T09:15:20+00:00"
}
{
"message": "Recovery confirmation failed",
"errors": { "email": ["The email field is required."] }
}
Tokeny
Tokeny API (sk_api_*) to poświadczenia używane do uwierzytelniania wszystkich zapytań o dane. Tworzone są z Master Tokenu i mogą być niezależnie unieważniane lub rotowane. Token ma dostęp do wszystkich endpointów danych – Wyszukiwarki firm, Monitoringu firm, Zdarzeń i Portfela – ale nie może zarządzać innymi tokenami. Zarządzanie tokenami wymaga Master Tokenu (sk_live_*).
⚠ Podobnie jak Master Token, jawna wartość nowego tokenu API jest wyświetlana tylko raz w momencie tworzenia. Przechowaj go natychmiast.
Utwórz token
Tworzy nowy token API. Wymaga Master Tokenu (sk_live_*) w nagłówku Authorization. Jawna wartość tokenu jest zwracana tylko raz – przechowaj go natychmiast. Opcjonalnie ustaw czas wygaśnięcia w dniach. Jeśli pominięty, token nigdy nie wygasa.
| Nazwa | Typ | Opis |
|---|---|---|
| name* | string | Etykieta tokenu – tylko do Twojej informacji. 3–255 znaków. |
| expires_in_days | integer | Opcjonalnie. Czas życia tokenu w dniach. 1–365. Jeśli pominięty, token nigdy nie wygasa. |
POST /api/v1/tokens curl -X POST https://api.entiway.com/api/v1/tokens \ -H "Authorization: Bearer sk_live_xxxx" \ -H "Content-Type: application/json" \ -d '{ "name": "my-integration", "expires_in_days": 90 }'
{
"success": true,
"data": {
"token_ref": "NAHZ4GW2C26H",
"name": "my-integration",
"expires_at": "2026-06-24T11:10:57+00:00",
"is_active": true,
"plaintext": "sk_api_4b06f7ebafdd3b3cde52712e12de4a5d...",
"warning": "Save this token now - it will never be shown again!"
},
"meta": {
"timestamp": "2026-03-24T11:10:57+00:00"
}
}
Lista tokenów
Zwraca Twój Master Token i tokeny API, także unieważnione. Jawne wartości tokenów nigdy nie są tu zwracane – tylko metadane. Wymaga Master Tokenu.
GET /api/v1/tokens curl https://api.entiway.com/api/v1/tokens \ -H "Authorization: Bearer sk_live_xxxx" \ -H "Accept: application/json"
{
"success": true,
"data": [
{
"token_ref": "NAHZ4GW2C26H",
"name": "my-integration",
"expires_at": "2026-06-24T11:10:57+00:00",
"last_used_at": "2026-03-27T12:18:29+00:00",
"last_used_ip": "192.168.1.1",
"usage_count": 1,
"is_active": true,
"revoked_at": null,
"created_at": "2026-03-27T11:51:21+00:00"
}
],
"meta": {
"total": 1,
"timestamp": "2026-03-29T10:16:33+00:00"
}
}
Pobierz token
Zwraca metadane konkretnego tokenu. token_ref jest zwracany przy tworzeniu i na liście tokenów. Wymaga Master Tokenu.
| Nazwa | Typ | Opis |
|---|---|---|
| token_ref* | string | Identyfikator referencyjny tokenu zwrócony przy tworzeniu. Np. NAHZ4GW2C26H |
GET /api/v1/tokens/{token_ref} curl https://api.entiway.com/api/v1/tokens/{token_ref} \ -H "Authorization: Bearer sk_live_xxxx" \ -H "Accept: application/json"
{
"success": true,
"data": {
"token_ref": "NAHZ4GW2C26H",
"name": "my-integration",
"expires_at": "2026-06-24T11:10:57+00:00",
"last_used_at": "2026-03-27T12:18:29+00:00",
"last_used_ip": "192.168.1.1",
"usage_count": 1,
"is_active": true,
"revoked_at": null,
"created_at": "2026-03-27T11:51:21+00:00"
},
"meta": {
"timestamp": "2026-03-29T10:35:33+00:00"
}
}
Zaktualizuj token
Aktualizuje etykietę istniejącego tokenu. Wymaga Master Tokenu.
| Nazwa | Typ | Opis |
|---|---|---|
| name* | string | Nowa etykieta tokenu. 3–255 znaków. |
PUT /api/v1/tokens/{token_ref} curl -X PUT https://api.entiway.com/api/v1/tokens/{token_ref} \ -H "Authorization: Bearer sk_live_xxxx" \ -H "Content-Type: application/json" \ -d '{ "name": "production-name-change" }'
{
"success": true,
"data": {
"token_ref": "NAHZ4GW2C26H",
"name": "production-name-change",
"expires_at": "2026-06-24T11:10:57+00:00",
"last_used_at": null,
"last_used_ip": null,
"usage_count": 0,
"is_active": true,
"revoked_at": null,
"created_at": "2026-03-27T11:51:21+00:00"
},
"meta": {
"timestamp": "2026-03-29T10:41:29+00:00"
}
}
Unieważnij token
Trwale unieważnia token API. Token staje się natychmiast nieaktywny – każde zapytanie używające go zwróci 401 Unauthorized. Tej operacji nie można cofnąć. Wymaga Master Tokenu. Samego Master Tokenu nie można tu unieważnić (422 MASTER_TOKEN_IMMUTABLE) – wymienia go wyłącznie odzyskiwanie dostępu.
DELETE /api/v1/tokens/{token_ref} curl -X DELETE https://api.entiway.com/api/v1/tokens/{token_ref} \ -H "Authorization: Bearer sk_live_xxxx" \ -H "Accept: application/json"
{
"success": true,
"message": "Token revoked successfully",
"meta": {
"revoked_at": "2026-03-29T10:44:55+00:00"
}
}
{
"success": false,
"error": {
"code": "MASTER_TOKEN_IMMUTABLE",
"message": "Master token can only be replaced via account recovery"
}
}
Zweryfikuj token
Sprawdza czy token w nagłówku Authorization jest ważny i aktywny. Przydatne do testowania integracji. Działa zarówno z Master Tokenem jak i tokenami API.
POST /api/v1/tokens/verify curl -X POST https://api.entiway.com/api/v1/tokens/verify \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Accept: application/json"
{
"success": true,
"data": {
"valid": true,
"token_ref": "NAHZ4GW2C26H",
"token_name": "my-integration",
"user_ref": "3XPT7SS5VG3B",
"user_name": "my-integration",
"expires_at": "2026-06-27T10:48:53+00:00",
"is_active": true,
"last_used_at": null
},
"meta": {
"timestamp": "2026-03-29T10:49:21+00:00"
}
}
Rotuj token
Unieważnia bieżący token API i generuje nowy – nazwa dostaje dopisek (rotated), data wygaśnięcia pozostaje taka jak w starym tokenie. Użyj tego do rotacji poświadczeń bez ręcznej rekonfiguracji integracji. Wymaga Master Tokenu. Samego Master Tokenu nie można rotować (422 MASTER_TOKEN_IMMUTABLE) – wymienia go wyłącznie odzyskiwanie dostępu.
⚠ Jawna wartość tokenu jest zwracana tylko raz. Przechowaj go natychmiast. Stary token jest unieważniany od razu.
POST /api/v1/tokens/{token_ref}/rotate curl -X POST https://api.entiway.com/api/v1/tokens/{token_ref}/rotate \ -H "Authorization: Bearer sk_live_xxxx" \ -H "Accept: application/json"
{
"success": true,
"data": {
"old_token": {
"token_ref": "NAHZ4GW2C26H",
"name": "my-integration",
"revoked_at": "2026-03-29T10:53:26+00:00",
"is_active": false
},
"new_token": {
"token_ref": "5BCSA3AZ7INF",
"name": "my-integration (rotated)",
"expires_at": "2026-06-27T10:48:53+00:00",
"is_active": true,
"plaintext": "sk_api_xxxx...",
"warning": "Save this token now - it will never be shown again!"
}
},
"meta": {
"timestamp": "2026-03-29T10:53:26+00:00"
}
}
{
"success": false,
"error": {
"code": "MASTER_TOKEN_IMMUTABLE",
"message": "Master token can only be replaced via account recovery"
}
}
Portfel
Rozliczenia kredytowe. Każda operacja API odejmuje kredyty z salda portfela. Doładuj portfel przez Paddle – API zwraca URL płatności który otwierasz w przeglądarce. Kredyty są dodawane automatycznie po potwierdzeniu płatności.
Pobierz stan portfela
Zwraca aktualne saldo kredytów i łączną liczbę zakupionych kredytów. Działa zarówno z Master Tokenem jak i tokenami API.
GET /api/v1/wallet curl https://api.entiway.com/api/v1/wallet \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Content-Type: application/json" \ -H "Accept: application/json"
{
"status": "success",
"data": {
"balance": 99845,
"total_purchased": 100000
}
}
Doładuj
Inicjuje doładowanie portfela. Przekaż slug pakietu kredytów który chcesz zakupić. Odpowiedź zawiera checkout_url – otwórz go w przeglądarce aby dokończyć płatność przez Paddle. Kredyty są dodawane automatycznie po potwierdzeniu.
| Nazwa | Typ | Opis |
|---|---|---|
| package_slug* | string | Identyfikator pakietu kredytów. Dostępne pakiety znajdziesz na stronie cennika. |
POST /api/v1/wallet/topup curl -X POST https://api.entiway.com/api/v1/wallet/topup \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "package_slug": "pack_10k" }'
{
"status": "success",
"data": {
"checkout_url": "https://app.entiway.com/checkout-pay?_ptxn=txn_01kkxrrc...",
"package": "pack_10k",
"credits": 10000
}
}
Historia transakcji
Zwraca paginowaną listę transakcji portfela – zarówno doładowania jak i zużycie kredytów przez API. Każdy wpis zawiera opis operacji, kwotę i saldo po transakcji.
| Nazwa | Typ | Opis |
|---|---|---|
| page | integer | Numer strony. Domyślnie: 1. |
GET /api/v1/wallet/transactions?page=1 curl "https://api.entiway.com/api/v1/wallet/transactions?page=1" \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Accept: application/json"
{
"status": "success",
"data": [
{
"type": "deposit",
"amount": "10000.00",
"balance_after": "10200.00",
"description": "Wallet top-up (Paddle)",
"created_at": "2026-03-30T08:40:05.000000Z"
},
{
"type": "start",
"amount": "200.00",
"balance_after": "200.00",
"description": "Welcome bonus credits",
"created_at": "2026-03-30T06:55:25.000000Z"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 20,
"total": 2,
"next_page": null,
"prev_page": null
}
}
Firmy
Wyszukiwanie i inspekcja firm z rejestru. Wyszukiwanie zwraca lekki zestaw wyników – identyfikatory, nazwę, lokalizację, główną działalność, status i kontakty. Profil firmy zwraca pełny profil podmiotu zawierający wszystkie adresy, jednostki, działalności, daty i osoby.
Wyszukaj firmy
Przeszukuj rejestr z dynamicznymi filtrami. Wymagany jest co najmniej jeden filtr (bez filtra → 422, bez opłaty); filtry można łączyć. Zwraca 20 wyników na stronę - każdy wynik zawiera identyfikatory, nazwę, lokalizację, główny kod działalności, status oraz dane kontaktowe, jeśli są dostępne w rejestrze. total to pełna liczba trafień; przeglądać można pierwsze 100 000 wyników (last_page najwyżej 5000) – dalej zawęź filtry.
| Nazwa | Typ | Opis |
|---|---|---|
| activity_code | string | Dokładny kod działalności. Bez kropek. Np. 6201Z |
| activity_prefix | string | Dział działalności – dwie pierwsze cyfry kodu; dopasowuje wszystkie kody z tego działu. Np. 62 |
| activity_start_from | date | Filtruj według daty rozpoczęcia działalności – od. Format: Y-m-d. |
| activity_start_to | date | Filtruj według daty rozpoczęcia działalności – do. Format: Y-m-d. |
| voivodeship | string | Filtruj według nazwy województwa. Np. mazowieckie |
| city | string | Filtruj według nazwy miasta. Maks. 150 znaków. |
| postal_code | string | Filtruj według kodu pocztowego. Maks. 20 znaków. |
| status | enum | Kod statusu, np. ACTIVE, SUSPENDED, DELETED, IN_LIQUIDATION. Bez filtra – wszystkie statusy. |
| legal_form | string | Slug formy prawnej ze słownika rejestru który znajdziesz tutaj →. |
| page | integer | Numer strony (20 wyników na stronę). Domyślnie: 1, maks. 5000. |
GET /api/v1/companies/search curl "https://api.entiway.com/api/v1/companies/search?activity_start_from=2026-02-01&activity_start_to=2026-03-01" \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Accept: application/json"
{
"status": "success",
"data": {
"total": 25483,
"per_page": 20,
"current_page": 1,
"last_page": 1275,
"results": [
{
"identifiers": [
{ "type": "NIP", "value": "9876540016" },
{ "type": "REGON9", "value": "987600000" }
],
"name": "MALOWANIE I SZKLENIE JAN PRZYKŁADOWY",
"city": "Nowy Sącz",
"voivodeship": "małopolskie",
"activity_start": "2026-02-14",
"activity_main": "4334Z",
"status": "ACTIVE",
"contacts": [
{ "type": "phone", "value": "123456789" }
]
}
]
}
}
Profil firmy
Zwraca pełny aktualny profil firmy na podstawie identyfikatora. Jeden podmiot może mieć wiele profili – np. osoba fizyczna zarejestrowana zarówno jako praktyka medyczna jak i inna działalność gospodarcza. Odpowiedź zawiera wszystkie identyfikatory, profile, adresy, jednostki lokalne, kody działalności, daty, kontakty, strony internetowe i osoby powiązane z podmiotem. Wartości słownikowe (status, forma prawna, typ podmiotu, typ kontaktu, typ daty, rola osoby) są zwracane jako kody – te same co w filtrach i wynikach wyszukiwania. Jednostki lokalne i osoby – tylko aktualne (bez zamkniętych jednostek i osób, które przestały pełnić funkcję). Imiona i nazwiska osób z KRS są zamaskowane u źródła (rejestr KRS udostępnia je w tej postaci).
| Nazwa | Typ | Opis |
|---|---|---|
| country_code | string | Opcjonalny. Kod kraju rejestru (ISO 3166-1 alpha-2), np. PL. Bez niego kraj wynika z typu identyfikatora (NIP, REGON9, KRS → PL); wymagany tylko, gdy typ występuje w kilku krajach. Typ spoza listy dla kraju → 422. |
| identifier_type* | enum | Typ identyfikatora: NIP, REGON9, KRS. Inny typ → 422. |
| identifier_value* | string | Wartość identyfikatora. Maks. 50 znaków. |
| include | string[] | Opcjonalnie. Sekcje z KRS: capital, shareholders, proceedings, filings, predecessors. W cenie snapshotu. Nieznana sekcja → 422. |
POST /api/v1/companies/snapshot curl -X POST https://api.entiway.com/api/v1/companies/snapshot \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "identifier_type": "REGON9", "identifier_value": "123400000" }'
{
"status": "success",
"data": {
"identity": {
"identifiers": [
{ "type": "NIP", "value": "1234560007" },
{ "type": "REGON9", "value": "123400000" }
],
"company_type": "physical_person",
"country_code": "PL"
},
"profiles": [
{
"name": "Gabinet Fizjoterapii Anna Przykładowa",
"status": "ACTIVE",
"legal_form": "jdg",
"address": {
"street": "ul. Słoneczna",
"building": "5",
"apartment": "2",
"city": "Wrocław",
"postal_code": "50-001",
"voivodeship": "dolnośląskie",
"county": "m. Wrocław",
"commune": "Wrocław",
"country_code": "PL"
},
"units": [
{
"identifier": "12340000000017",
"name": "Gabinet Fizjoterapii Anna Przykładowa – Filia",
"address": { /* same structure as above */ },
"dates": [
{ "type": "establishment", "date": "2024-03-01" },
{ "type": "activity_start", "date": "2024-03-01" }
]
}
],
"contacts": [
{ "type": "phone", "value": "123456789" }
],
"activities": [
{ "code": "8690A", "name": "DZIAŁALNOŚĆ FIZJOTERAPEUTYCZNA", "is_primary": true }
],
"dates": [
{ "type": "establishment", "date": "2020-01-02" },
{ "type": "activity_start", "date": "2020-01-02" },
{ "type": "data_of_entry_in_the_REGON_register", "date": "2020-01-02" }
],
"websites": []
}
],
"persons": [
{ "full_name": "ANNA MARIA PRZYKŁADOWA", "role": "owner" }
]
},
"meta": {
"fetched_at": "2026-10-25T12:00:00+00:00"
}
}
Sekcje z KRS (include). Dla spółek i innych podmiotów z KRS możesz dołączyć blok data.krs – wyłącznie stan aktualny: capital (kapitał zakładowy / akcyjny), shareholders (aktualni wspólnicy – osoby zamaskowane u źródła, firmy jawnie), proceedings (trwające postępowania: likwidacja, upadłość, restrukturyzacja, zaległości, egzekucja, kurator), filings (ostatnie złożenie dla każdego typu dokumentu sprawozdawczego) i predecessors (z czego podmiot powstał: przekształcenie, połączenie, podział – poprzednika wskazuje regon; krs tylko, gdy KRS wpisał numer poprzednika, inaczej null). Pusta sekcja ([]) oznacza „sprawdzone w KRS, brak”. Dla podmiotu spoza KRS: "krs": null i meta.include_not_applicable: true.
POST /api/v1/companies/snapshot -d '{ "identifier_type": "KRS", "identifier_value": "0000000003", "include": ["capital", "shareholders", "proceedings", "filings", "predecessors"] }'
{
"status": "success",
"data": {
"identity": { /* core as above */ },
"profiles": [ /* core as above */ ],
"persons": [ /* core as above */ ],
"krs": {
"capital": { "type": "share_capital", "amount": "50000.00", "currency": "PLN" },
"shareholders": [
{ "holder_type": "company", "name": "PRZYKŁAD HOLDING SP. Z O.O.", "krs": "0000000001", "regon": "987600000",
"shares_count": 80, "shares_value": "40000.00", "currency": "PLN", "holds_all_shares": false, "since": "2021-03-01" },
{ "holder_type": "person", "name": "J** P*********", "krs": null, "regon": null,
"shares_count": 20, "shares_value": "10000.00", "currency": "PLN", "holds_all_shares": false, "since": "2019-06-12" }
],
"proceedings": [
{ "type": "TAX_ARREARS", "since": "2025-11-04", "organ": null, "signature": null, "amount": "12500.00", "currency": "PLN" }
],
"filings": [
{ "type": "annual_financial_statement", "consolidated": false, "period_from": "2025-01-01", "period_to": "2025-12-31", "filing_date": "2026-06-28" },
{ "type": "approval_resolution", "consolidated": false, "period_from": "2025-01-01", "period_to": "2025-12-31", "filing_date": null }
],
"predecessors": []
}
},
"meta": {
"fetched_at": "2026-10-25T12:00:00+00:00",
"include": ["capital", "shareholders", "proceedings", "filings", "predecessors"],
"include_not_applicable": false
}
}
Monitoring firm
Monitoruj firmy które mają dla Ciebie znaczenie. Dodaj podmioty do Monitoringu firm przez identyfikator – system sprawdza zmiany codziennie i generuje typowane zdarzenia dla każdej wykrytej różnicy. Możesz dodać do 100 identyfikatorów w jednym zapytaniu. Dodawanie jest asynchroniczne – otrzymasz natychmiastowe potwierdzenie i powiadomienie emailem gdy podmioty będą gotowe do monitorowania.
Dodaj do monitora
Zgłasza jedną lub więcej firm do monitoringu firm. Akceptuje do 100 identyfikatorów na zapytanie. Zapytanie zwraca natychmiast Accepted for processing – podmioty są kolejkowane i przetwarzane asynchronicznie.
Jeśli podmiot już istnieje w bazie rejestru jest dodawany natychmiast. Jeśli nie – najpierw przechodzi przez pełny pipeline importu. W obu przypadkach otrzymasz potwierdzenie emailem gdy wszystkie zgłoszone podmioty będą dostępne na monitoringu i gotowe do odbierania zdarzeń.
| Nazwa | Typ | Opis |
|---|---|---|
| country_code | string | Opcjonalny. Kod kraju rejestru (ISO 3166-1 alpha-2), np. PL. Bez niego kraj wynika z typu identyfikatora (NIP, REGON9, KRS → PL); wymagany tylko, gdy typ występuje w kilku krajach. Typ spoza listy dla kraju → 422. |
| identifier_type* | enum | Typ identyfikatora: NIP, REGON9, KRS |
| identifier_value* | string[] | Tablica wartości identyfikatorów. Maks. 100 pozycji na zapytanie. |
POST /api/v1/companies/add curl -X POST https://api.entiway.com/api/v1/companies/add \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "country_code": "PL", "identifier_type": "REGON9", "identifier_value": ["123400000", "987600000", "123400017"] }'
{
"success": true,
"message": "Accepted for processing."
}
Lista monitorowanych firm
Zwraca paginowaną listę wszystkich firm na liście monitorowania. Każdy wpis zawiera główny identyfikator, nazwę firmy, datę dodania, datę ostatniego wykrytego zdarzenia i łączną liczbę zdarzeń. Ten endpoint jest bezpłatny – kredyty nie są odejmowane.
| Nazwa | Typ | Opis |
|---|---|---|
| page | integer | Numer strony (20 firm na stronę). Domyślnie: 1. |
GET /api/v1/companies/watched curl "https://api.entiway.com/api/v1/companies/watched?page=1" \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Accept: application/json"
{
"success": true,
"data": [
{
"primary_identifier": "123400000",
"name": "Gabinet Fizjoterapii Anna Przykładowa",
"watched_since": "2026-03-24",
"last_event_at": null,
"watched_events": 0
},
{
"primary_identifier": "987600000",
"name": "MALOWANIE I SZKLENIE JAN PRZYKŁADOWY",
"watched_since": "2026-03-18",
"last_event_at": "2026-04-02",
"watched_events": 6
}
],
"meta": {
"total": 38,
"per_page": 20,
"current_page": 1,
"last_page": 2
}
}
Usuń z Monitoringu firm
Usuwa jedną lub więcej firm z listy monitoringu firm. Używa tego samego formatu identyfikatorów co /companies/add. Odpowiedź zawiera szczegóły które identyfikatory zostały usunięte, które nie zostały znalezione w rejestrze i które nie były na liście monitorowania. Codzienne monitorowanie zatrzymuje się natychmiast dla usuniętych podmiotów.
| Nazwa | Typ | Opis |
|---|---|---|
| country_code | string | Opcjonalny. Kod kraju rejestru (ISO 3166-1 alpha-2), np. PL. Bez niego kraj wynika z typu identyfikatora (NIP, REGON9, KRS → PL); wymagany tylko, gdy typ występuje w kilku krajach. Typ spoza listy dla kraju → 422. |
| identifier_type* | enum | Typ identyfikatora: NIP, REGON9, KRS |
| identifier_value* | string[] | Tablica wartości identyfikatorów. Maks. 100 pozycji na zapytanie. |
DELETE /api/v1/companies/watched curl -X DELETE https://api.entiway.com/api/v1/companies/watched \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "country_code": "PL", "identifier_type": "REGON9", "identifier_value": ["123400000"] }'
{
"success": true,
"data": {
"removed": ["123400000"],
"not_found": [],
"not_watched": []
},
"meta": {
"total": 1,
"removed": 1,
"not_found": 0,
"not_watched": 0,
"removed_at": "2026-03-24T15:18:25+00:00"
}
}
Zdarzenia firmy
Zwraca zdarzenia jednej firmy z Twojej listy monitorowania, identyfikowanej przez NIP, REGON9 lub KRS – od dnia dodania jej do monitoringu. Firma spoza listy → 404. W przeciwieństwie do /watchlist/events, który zwraca strumień dla całej listy monitorowania, ten endpoint skupia się na jednym podmiocie.
| Nazwa | Typ | Opis |
|---|---|---|
| country_code | string | Opcjonalny. Kod kraju rejestru (ISO 3166-1 alpha-2), np. PL. Bez niego kraj wynika z typu identyfikatora (NIP, REGON9, KRS → PL); wymagany tylko, gdy typ występuje w kilku krajach. Typ spoza listy dla kraju → 422. |
| identifier_type* | enum | Wymagany. Typ identyfikatora: NIP, REGON9, KRS |
| identifier_value* | string | Wartość identyfikatora firmy. |
| page | integer | Numer strony (20 zdarzeń na stronę). Domyślnie: 1. |
GET /api/v1/companies/events curl "https://api.entiway.com/api/v1/companies/events?identifier_type=NIP&identifier_value=1234560007" \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Accept: application/json"
{
"status": "success",
"data": {
"events": [
{
"event_type": "COMPANY_NAME_CHANGED",
"old_value": "Jan Przykładowy",
"new_value": "Jan Przykładowy wspólnik spółki cywilnej PRZYKŁAD S.C.",
"event_date": "2025-10-06",
"severity": "info"
},
{
"event_type": "COMPANY_CLOSED_DATE",
"old_value": null,
"new_value": "2026-02-28",
"event_date": "2025-10-06",
"severity": "critical"
}
]
},
"meta": {
"total": 8,
"per_page": 20,
"current_page": 1,
"last_page": 1,
"fetched_at": "2026-03-24T15:20:44+00:00"
}
}
Strumień zdarzeń monitora
Zwraca paginowany strumień wszystkich zdarzeń wykrytych na całej liście monitoringu firm. W przeciwieństwie do /companies/events który skupia się na jednym podmiocie, ten endpoint agreguje zmiany ze wszystkich monitorowanych firm. Filtruj według typu zdarzenia, zakresu dat. Zwraca 20 zdarzeń na stronę.
| Nazwa | Typ | Opis |
|---|---|---|
| event_type | string | Filtruj według typu zdarzenia. Np. COMPANY_NAME_CHANGED. |
| from_date | date | Data początkowa. Format: Y-m-d. |
| to_date | date | Data końcowa. Format: Y-m-d. |
| page | integer | Numer strony (20 zdarzeń na stronę). Domyślnie: 1. |
GET /api/v1/watchlist/events curl "https://api.entiway.com/api/v1/watchlist/events?from_date=2026-03-01&to_date=2026-03-24" \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Accept: application/json"
{
"status": "success",
"data": [
{
"primary_identifier": "987600000",
"name": "MALOWANIE I SZKLENIE JAN PRZYKŁADOWY",
"event_type": "COMPANY_START_DATE_CHANGE",
"old_value": "2026-02-25",
"new_value": "2026-03-02",
"event_date": "2026-03-02",
"severity": "notice"
}
],
"meta": {
"total": 170,
"per_page": 20,
"current_page": 1,
"last_page": 9,
"fetched_at": "2026-03-24T15:55:25+00:00"
}
}
Odczyt ustawień alertów
Zwraca ustawienia alertów obowiązujące teraz – bez identyfikatora profil globalny, z identifier_type i identifier_value ustawienia wskazanej firmy z Twojej listy (własne albo odziedziczone z globalnych). Pole source: global albo company_override. Firma spoza listy → 404.
| Nazwa | Typ | Opis |
|---|---|---|
| country_code | string | Opcjonalny. Kod kraju rejestru (ISO 3166-1 alpha-2), np. PL. Bez niego kraj wynika z typu identyfikatora (NIP, REGON9, KRS → PL); wymagany tylko, gdy typ występuje w kilku krajach. Typ spoza listy dla kraju → 422. |
| identifier_type | enum | Typ identyfikatora przy targetowaniu per firma: NIP, REGON9, KRS. Wymagany razem z identifier_value. |
| identifier_value | string | Wartość identyfikatora docelowej firmy. Wymagana razem z identifier_type. Maks. 50 znaków. |
GET /api/v1/watchlist/alerts # global curl "https://api.entiway.com/api/v1/watchlist/alerts" \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Accept: application/json" # per company curl "https://api.entiway.com/api/v1/watchlist/alerts?identifier_type=NIP&identifier_value=1234560007" \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Accept: application/json"
{
"success": true,
"data": {
"updated": 0,
"settings": {
"source": "global",
"alerts_enabled": true,
"alert_min_severity": "warning",
"alert_event_classes": null,
"alert_categories": null,
"notify_via_email": true
}
}
}
Ustawienia alertów
Konfiguruje preferencje alertów dla monitoringu firm. Określa które zdarzenia wyzwalają powiadomienia, minimalny próg ważności i kanał powiadomień. Ustawienia można stosować globalnie – dla wszystkich monitorowanych firm – lub per firma z użyciem jej identyfikatora. Ustawienia per firma mają pierwszeństwo nad globalnymi.
| Tryb | Opis |
|---|---|
| Global | Pomiń identifier_type i identifier_value – dotyczy wszystkich firm bez indywidualnych ustawień. |
| Global + force | Przekaż force: true aby nadpisać również indywidualne ustawienia. Resetuje też has_custom_settings do false dla wszystkich wpisów. |
| Per company | Przekaż identifier_type i identifier_value aby celować w konkretną firmę. Ustawia has_custom_settings: true dla tego wpisu. |
| Nazwa | Typ | Opis |
|---|---|---|
| alert_min_severity | enum | Minimalny poziom ważności zdarzenia, które wyzwala alert. Zdarzenia poniżej tego progu są ignorowane. Dostępne wartości: info, notice, warning, high, error, critical. |
| alerts_enabled | boolean | Włącz lub wyłącz alerty. Gdy pole zostanie pominięte, aktualna wartość jest zachowana. Powiadomienia są domyślnie wyłączone – musisz explicite przekazać true żeby je aktywować. Włączenie bez notify_via_email włącza też e-mail – jedyny kanał dostarczania. |
| notify_via_email | boolean | Kanał dostarczania alertów – e-mail. Domyślnie wyłączony. Pominięty przy alerts_enabled: true – włącza się automatycznie. Jawne false przy włączonych alertach → 422, bez zapisu (włączone alerty wymagają kanału). |
| alert_event_classes | array | Filtruj alerty po klasie zdarzenia. Gdy ustawione, tylko zdarzenia pasujące do tych klas wyzwalają powiadomienie. Dostępne wartości: initialization, change, growth, risk, anomaly, recovery. Pomiń aby otrzymywać wszystkie klasy. |
| alert_categories | array | Filtruj alerty po kategorii danych. Dostępne wartości: status, identity, location, ownership, activities, contacts, web_presence, finance. Pomiń aby otrzymywać wszystkie kategorie. |
| force | boolean | Gdy true, nadpisuje ustawienia per firma i resetuje has_custom_settings do false dla wszystkich wpisów. Użyj do wymuszenia jednolitej konfiguracji globalnej. Ignorowane w trybie per firma. |
| use_global_settings | boolean | Gdy true razem z identyfikatorem firmy, usuwa jej indywidualne ustawienia – firma wraca do globalnych (source: global). Bez identyfikatora → 422. |
| country_code | string | Opcjonalny. Kod kraju rejestru (ISO 3166-1 alpha-2), np. PL. Bez niego kraj wynika z typu identyfikatora (NIP, REGON9, KRS → PL); wymagany tylko, gdy typ występuje w kilku krajach. Typ spoza listy dla kraju → 422. |
| identifier_type | enum | Typ identyfikatora przy targetowaniu per firma: NIP, REGON9, KRS. Wymagany razem z identifier_value. |
| identifier_value | string | Wartość identyfikatora docelowej firmy. Wymagana razem z identifier_type. Maks. 50 znaków. |
PATCH /api/v1/watchlist/alerts curl -X PATCH "https://api.entiway.com/api/v1/watchlist/alerts" \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Content-Type: application/json" \ -d '{ "alert_min_severity": "warning", "alerts_enabled": true, "notify_via_email": true }'
PATCH /api/v1/watchlist/alerts curl -X PATCH "https://api.entiway.com/api/v1/watchlist/alerts" \ -H "Authorization: Bearer sk_api_xxxx" \ -H "Content-Type: application/json" \ -d '{ "alert_min_severity": "high", "alerts_enabled": true, "notify_via_email": true, "alert_event_classes": ["risk", "anomaly"], "identifier_type": "NIP", "identifier_value": "1234560007" }'
{
"success": true,
"data": {
"updated": 1,
"settings": {
"source": "company_override",
"alerts_enabled": true,
"alert_min_severity": "high",
"alert_event_classes": ["risk", "anomaly"],
"alert_categories": null,
"notify_via_email": true
}
}
}
{
"success": false,
"message": "Company not found on your watchlist."
}