Przewodnik krok po kroku

Jak pobrać dane firmy z GUS po NIP?

Kompletny przewodnik: od rejestracji, przez uzyskanie klucza API, aż po pierwsze zapytanie. Z praktycznymi przykładami w różnych językach programowania.

Chcesz pobrać dane firm z GUS (Głównego Urzędu Statystycznego) w formacie JSON? DataPort.pl udostępnia proste REST API, które umożliwia szybkie pobieranie aktualnych danych firm po numerze NIP. W tym przewodniku pokażemy Ci, jak to zrobić krok po kroku.

Krok 1: Utwórz konto i uzyskaj klucz API

Aby korzystać z API DataPort.pl, musisz najpierw utworzyć konto i wygenerować klucz API. Dzięki darmowemu planowi możesz wykonać do 20 zapytań dziennie - to wystarczy do testowania i mniejszych projektów.

Darmowy plan:

  • 20 zapytań dziennie
  • Dane z oficjalnego rejestru GUS BIR 1.1
  • Inteligentny cache dla szybkich odpowiedzi
  • 1 klucz API

1.1. Zaloguj się lub zarejestruj

Jeśli nie masz jeszcze konta, przejdź do strony logowania i utwórz nowe konto. Proces rejestracji jest prosty i zajmuje tylko chwilę.

1.2. Wygeneruj klucz API

Po zalogowaniu przejdź do panelu użytkownika (Dashboard) i wybierz sekcję "Klucze API". Następnie kliknij przycisk "Utwórz nowy klucz". Klucz zostanie wygenerowany automatycznie - zapisz go w bezpiecznym miejscu, ponieważ pokazujemy go tylko raz!

Utwórz konto

Ważne

Klucz API działa jak hasło - nie udostępniaj go publicznie i nie commituj do repozytoriów Git. Użyj zmiennych środowiskowych lub menedżerów sekretów.

Krok 2: Zrozum endpoint API

API DataPort.pl udostępnia prosty endpoint do pobierania danych firmy po NIP:

Endpoint
GET https://dataport.pl/api/v1/company/{nip}

Gdzie {nip} to 10-cyfrowy numer NIP firmy, którą chcesz sprawdzić.

2.1. Parametry zapytania (opcjonalne)

Możesz dodać parametr format do kontrolowania formatu odpowiedzi:

format=simple - uproszczony format z podstawowymi danymi (domyślny)
format=full - pełny format z wszystkimi dostępnymi danymi

Krok 3: Autentykacja

Wszystkie zapytania do API wymagają autentykacji poprzez klucz API. Klucz należy przesłać w nagłówku HTTP:

Header autentykacyjny
X-API-Key: your_api_key_here

Krok 4: Przykłady użycia w różnych językach

Poniżej znajdziesz praktyczne przykłady użycia API w najpopularniejszych językach programowania.

4.1. cURL (Bash/Terminal)

Najprostszy sposób na przetestowanie API z linii poleceń:

Bash
curl -X GET "https://dataport.pl/api/v1/company/1234567890?format=simple" \
  -H "X-API-Key: your_api_key_here" \
  -H "Accept: application/json"

4.2. PHP / Guzzle

Przykład użycia w PHP z biblioteką Guzzle HTTP:

Guzzle HTTP Client
{{ '<' }}?php
use GuzzleHttp\Client;

$client = new Client();
$nip = '1234567890';
$apiKey = 'your_api_key_here';

try {
    $response = $client->get("https://dataport.pl/api/v1/company/{$nip}", [
        'query' => ['format' => 'simple'],
        'headers' => [
            'X-API-Key' => $apiKey,
            'Accept' => 'application/json',
        ]
    ]);

    $data = json_decode($response->getBody(), true);

    if ($data['success']) {
        echo "Nazwa firmy: " . $data['nazwa'] . "\n";
        echo "REGON: " . $data['regon'] . "\n";
        echo "Adres: " . $data['adres'] . "\n";
    }
} catch (\Exception $e) {
    echo "Błąd: " . $e->getMessage() . "\n";
}
?>

4.3. JavaScript (Fetch API)

Przykład użycia z Fetch API (działa zarówno w Node.js jak i przeglądarce):

Node.js / Browser
const apiKey = 'your_api_key_here';
const nip = '1234567890';

async function getCompanyData(nip, apiKey) {
    try {
        const response = await fetch(
            `https://dataport.pl/api/v1/company/${nip}?format=simple`,
            {
                method: 'GET',
                headers: {
                    'X-API-Key': apiKey,
                    'Accept': 'application/json'
                }
            }
        );

        const data = await response.json();

        if (data.success) {
            console.log('Nazwa firmy:', data.nazwa);
            console.log('REGON:', data.regon);
            console.log('Adres:', data.adres);
            return data;
        } else {
            console.error('Błąd:', data.message);
        }
    } catch (error) {
        console.error('Błąd sieci:', error);
    }
}

// Użycie
getCompanyData(nip, apiKey);

4.4. Python

Przykład użycia w Pythonie z biblioteką requests:

Requests library
import requests

api_key = 'your_api_key_here'
nip = '1234567890'

url = f'https://dataport.pl/api/v1/company/{nip}'
headers = {
    'X-API-Key': api_key,
    'Accept': 'application/json'
}
params = {
    'format': 'simple'
}

try:
    response = requests.get(url, headers=headers, params=params)
    response.raise_for_status()  # Rzuca wyjątek dla kodów błędów HTTP

    data = response.json()

    if data.get('success'):
        print(f"Nazwa firmy: {data['nazwa']}")
        print(f"REGON: {data['regon']}")
        print(f"Adres: {data['adres']}")
    else:
        print(f"Błąd: {data.get('message', 'Nieznany błąd')}")

except requests.exceptions.RequestException as e:
    print(f"Błąd sieci: {e}")

4.5. POST request (alternatywa)

Możesz także użyć metody POST do wyszukania firmy:

POST Request - cURL
curl -X POST "https://dataport.pl/api/v1/company?format=full" \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"nip":"1234567890"}'

Format odpowiedzi

Przy użyciu parametru format=simple otrzymasz uproszczoną odpowiedź:

Response (format=simple)
{
  "success": true,
  "nip": "1234567890",
  "regon": "123456789",
  "nazwa": "PRZYKŁADOWA FIRMA SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ",
  "adres": "ul. Testowa 123/45, 00-001 Warszawa"
}

Przy użyciu format=full otrzymasz pełne dane:

Response (format=full)
{
  "success": true,
  "nip": "1234567890",
  "regon": "123456789",
  "nazwa": "PRZYKŁADOWA FIRMA SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ",
  "ulica": "ul. Testowa",
  "numer_budynku": "123",
  "numer_lokalu": "45",
  "kod_pocztowy": "00-001",
  "miasto": "Warszawa"
}

Obsługa błędów

API zwraca standardowe kody HTTP oraz informacje o błędzie w formacie JSON:

Firma nie istnieje (404)

{
  "success": false,
  "message": "Firma nie istnieje"
}

Nieprawidłowy klucz API (401)

{
  "success": false,
  "message": "Nieprawidłowy klucz API",
  "error": "INVALID_API_KEY"
}

Przekroczony limit (429)

{
  "success": false,
  "message": "Przekroczono dzienny limit zapytań dla Twojego konta",
  "error": "RATE_LIMIT_EXCEEDED",
  "limit": 100,
  "used": 101
}

Inteligentny cache - jak to działa?

API DataPort.pl wykorzystuje inteligentny system cache, który zapewnia szybkie odpowiedzi przy zachowaniu aktualności danych:

Dane < 24h:

Zwracane z cache natychmiastowo (średnio < 100ms)

Dane 24h - 7 dni:

Zwracane z cache + aktualizacja w tle z GUS

Dane > 7 dni:

Pobierane świeżo z GUS (może potrwać 1-2 sekundy)

Korzyści:

  • Szybkie odpowiedzi dzięki cache'owaniu
  • Aktualne dane dzięki automatycznej aktualizacji
  • Mniejsze obciążenie serwerów GUS

Podsumowanie

Pobieranie danych firm z GUS po NIP jest bardzo proste z API DataPort.pl:

1

Utwórz konto i wygeneruj klucz API

2

Wykonaj zapytanie GET do /api/v1/company/{nip}

3

Dodaj klucz API w nagłówku X-API-Key

Otrzymaj dane w formacie JSON

Chcesz przetestować API bez kodowania?

Użyj naszego API Playground, gdzie możesz wykonać zapytania bezpośrednio w przeglądarce.

Gotowy na start?

Utwórz konto już dziś i zacznij korzystać z API DataPort.pl. Darmowy plan wystarczy do większości projektów!