Trwa przebudowa platformy — logowanie i rejestracja są chwilowo niedostępne. Napisz do nas

Jak to działa Dla kogo Monitoring firm Wyszukiwarka firm Profil firmy Cennik Przewodniki API Reference Changelog Aktywność rejestru

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.

Master Token sk_live_…

Pełny dostęp – zarządzanie tokenami, portfelem i wszystkimi danymi. Pokazywany raz, przy inicjalizacji.

Token API sk_api_…

Zawężony do endpointów danych. Tworzony z Master Tokena. Pokazywany raz.

Błędy – dokumentacja
Wszystkie błędy API zwracają JSON. W zależności od typu błędu struktura odpowiedzi nieznacznie się różni – sprawdź każdy kod statusu poniżej aby zobaczyć dokładny format.

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.

Invalid JSON body
{
  "message": "Invalid JSON body.",
  "errors": {
    "body": ["Malformed JSON: Syntax error"]
  }
}

401 – Brak autoryzacji

Zwracany gdy brakuje tokena lub nieprawidłowy.

Missing token
{
  "error": "Missing API token",
  "code":  "UNAUTHORIZED"
}
Malformed token
{
  "error": "Malformed token format",
  "code":  "UNAUTHORIZED"
}

404 – Nie znaleziono

Zwracany gdy route lub zasób nie istnieje.

Route not found
{
  "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.

Validation failed
{
  "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.

Rate limit exceeded
{
  "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].

Internal server error
{
  "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.

POST /api/v1/auth/register bezpłatnie

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.
Parametry ciała żądania
NazwaTypOpis
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.
Request
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"
  }'
Response · 201 Created
{
  "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"
}
POST /api/v1/auth/init bezpłatnie

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.

Parametry ciała żądania
NazwaTypOpis
token* string Jednorazowy token inicjalizacyjny otrzymany emailem po rejestracji.
Request
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..."
  }'
Response · 200 OK
{
  "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!"
}
POST /api/v1/auth/recover bezpłatnie

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.

Parametry ciała żądania
NazwaTypOpis
email* string Adres email powiązany z Twoim kontem.
password* string Nowe hasło do ustawienia dla konta. Min. 8 znaków.
Request
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"
  }'
Response · 200 OK
{
  "message":    "If an account with this email exists, a recovery email has been sent.",
  "expires_at": "2026-03-27T09:15:20+00:00"
}
Response · 422 Unprocessable
{
  "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.

POST /api/v1/tokens bezpłatnie

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.

Parametry ciała żądania
NazwaTypOpis
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.
Request
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
  }'
Response · 201 Created
{
  "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"
  }
}
GET /api/v1/tokens bezpłatnie

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.

Request
GET /api/v1/tokens

curl https://api.entiway.com/api/v1/tokens \
  -H "Authorization: Bearer sk_live_xxxx" \
  -H "Accept: application/json"
Response · 200 OK
{
  "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"
  }
}
GET /api/v1/tokens/{token_ref} bezpłatnie

Pobierz token

Zwraca metadane konkretnego tokenu. token_ref jest zwracany przy tworzeniu i na liście tokenów. Wymaga Master Tokenu.

Parametry URL
NazwaTypOpis
token_ref* string Identyfikator referencyjny tokenu zwrócony przy tworzeniu. Np. NAHZ4GW2C26H
Request
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"
Response · 200 OK
{
  "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"
  }
}
PUT /api/v1/tokens/{token_ref} bezpłatnie

Zaktualizuj token

Aktualizuje etykietę istniejącego tokenu. Wymaga Master Tokenu.

Parametry ciała żądania
NazwaTypOpis
name* string Nowa etykieta tokenu. 3–255 znaków.
Request
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" }'
Response · 200 OK
{
  "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"
  }
}
DELETE /api/v1/tokens/{token_ref} bezpłatnie

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.

Request
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"
Response · 200 OK
{
  "success":  true,
  "message":  "Token revoked successfully",
  "meta": {
    "revoked_at": "2026-03-29T10:44:55+00:00"
  }
}
Response · 422 Unprocessable
{
  "success": false,
  "error": {
    "code":    "MASTER_TOKEN_IMMUTABLE",
    "message": "Master token can only be replaced via account recovery"
  }
}
POST /api/v1/tokens/verify bezpłatnie

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.

Request
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"
Response · 200 OK
{
  "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"
  }
}
POST /api/v1/tokens/{token_ref}/rotate bezpłatnie

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.

Request
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"
Response · 201 Created
{
  "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"
  }
}
Response · 422 Unprocessable
{
  "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.

GET /api/v1/wallet bezpłatnie

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.

Request
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"
Response · 200 OK
{
  "status": "success",
  "data": {
    "balance":         99845,
    "total_purchased": 100000
  }
}
POST /api/v1/wallet/topup bezpłatnie

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.

Parametry ciała żądania
NazwaTypOpis
package_slug* string Identyfikator pakietu kredytów. Dostępne pakiety znajdziesz na stronie cennika.
Request
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" }'
Response · 200 OK
{
  "status": "success",
  "data": {
    "checkout_url": "https://app.entiway.com/checkout-pay?_ptxn=txn_01kkxrrc...",
    "package":      "pack_10k",
    "credits":      10000
  }
}
GET /api/v1/wallet/transactions bezpłatnie

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.

Parametry zapytania
NazwaTypOpis
page integer Numer strony. Domyślnie: 1.
Request
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"
Response · 200 OK
{
  "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.

POST /api/v1/companies/snapshot 5 kredytów

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).

PL
Parametry ciała żądania
NazwaTypOpis
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.
Request
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"
  }'
Response · 200 OK
{
  "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.

Request – include
POST /api/v1/companies/snapshot

  -d '{
    "identifier_type":  "KRS",
    "identifier_value": "0000000003",
    "include": ["capital", "shareholders", "proceedings", "filings", "predecessors"]
  }'
Response · 200 OK – include
{
  "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.

POST /api/v1/companies/add bezpłatnie

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ń.

PL
FR In progress
Parametry ciała żądania
NazwaTypOpis
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.
Request
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"]
  }'
Response · 202 Accepted
{
  "success": true,
  "message": "Accepted for processing."
}
GET /api/v1/companies/watched bezpłatnie

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.

PL
FR In progress
Parametry zapytania
NazwaTypOpis
page integer Numer strony (20 firm na stronę). Domyślnie: 1.
Request
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"
Response · 200 OK
{
  "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
  }
}
DELETE /api/v1/companies/watched bezpłatnie

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.

PL
FR In progress
Parametry ciała żądania
NazwaTypOpis
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.
Request
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"]
  }'
Response · 200 OK
{
  "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"
  }
}
GET /api/v1/companies/events bezpłatnie

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.

PL
FR In progress
Parametry zapytania
NazwaTypOpis
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.
Request
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"
Response · 200 OK
{
  "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"
  }
}
GET /api/v1/watchlist/events bezpłatnie

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ę.

PL
FR In progress
Parametry zapytania
NazwaTypOpis
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.
Request
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"
Response · 200 OK
{
  "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"
  }
}
GET /api/v1/watchlist/alerts bezpłatnie

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.

Parametry zapytania
NazwaTypOpis
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.
Request
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"
Response · 200 OK
{
  "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
    }
  }
}
PATCH /api/v1/watchlist/alerts bezpłatnie

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.

Tryby
TrybOpis
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.
Parametry ciała żądania
NazwaTypOpis
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.
Request – global
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
  }'
Request – per company
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"
  }'
Response · 200 OK
{
  "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
    }
  }
}
Response · 404 – per company only
{
  "success": false,
  "message": "Company not found on your watchlist."
}