Dokumentacja API v1.0

API GUS - Dokumentacja REST API

API GUS - dostęp programistyczny do aktualnych danych firm z GUS BIR1.1. Inteligentny cache, aktualizacja w tle, rate limiting.

Dlaczego nasze API GUS?

Szybkie API GUS

Inteligentny cache zapewnia odpowiedzi <100ms dla danych <24h

Aktualne dane GUS

Automatyczna synchronizacja z oficjalnym rejestrem GUS BIR1.1

Proste API GUS

REST API z JSON, dokumentacja i przykłady kodu

Quick Start

1

Uzyskaj klucz API

API GUS DataPort.pl umożliwia szybki dostęp do danych firm z rejestru GUS BIR1.1. Zaloguj się i wygeneruj klucz API w dashboardzie. Darmowy plan: 50 zapytań/dzień.

Zaloguj się
2

Wykonaj pierwsze zapytanie

Dodaj klucz w headerze X-API-Key i wykonaj zapytanie do API.

Przykład request
curl -X GET "https://dataport.pl/api/v1/company/1234567890" \
  -H "X-API-Key: your_api_key_here" \
  -H "Accept: application/json"

Otrzymaj dane firmy

API zwraca dane w formacie JSON. Pierwszy raz może potrwać 1-2 sekundy (pobieranie z GUS), kolejne zapytania są natychmiastowe (cache).

Inteligentny cache: Dane <24h z cache, >7 dni świeże z GUS

Autentykacja

Nasze API GUS używa kluczy API przesyłanych w headerze X-API-Key. Klucz API jest wymagany dla wszystkich zapytań do API GUS.

Header autentykacyjny

X-API-Key: your_api_key_here

Bezpieczeństwo

  • Przechowuj klucz bezpiecznie
  • Nie udostępniaj publicznie
  • Używaj HTTPS

Rate Limiting

Limity na całe konto

Dzienny limit zapytań dotyczy wszystkich Twoich kluczy API łącznie, nie każdego osobno.

20
Free20
zapytań/dzień
~600/miesiąc
1 klucz API
50
Basic
zapytań/dzień
~1,500/miesiąc
1 klucz API
300
Pro
zapytań/dzień
~9,000/miesiąc
3 klucze API
1,000
Enterprise
zapytań/dzień
~30,000/miesiąc
5 kluczy API

Resetowanie limitów

Licznik zapytań do API GUS resetuje się codziennie o północy (UTC). Gdy przekroczysz limit, API GUS zwróci błąd 429.

{
  "success": false,
  "message": "Przekroczono dzienny limit zapytań dla Twojego konta",
  "error": "RATE_LIMIT_EXCEEDED",
  "limit": 20,
  "used": 21,
  "info": "Limit dotyczy wszystkich Twoich kluczy API łącznie"
}

Endpointy

GET /api/v1/company/{nip}

Pobierz dane firmy po NIP używając naszego API GUS. Jeśli firma nie istnieje w bazie, zostanie automatycznie pobrana z GUS BIR1.1.

Inteligentny cache

Dane <24h - z cache. Dane 24h-7dni - z cache + aktualizacja w tle. Dane >7dni - świeże z GUS.

Path Parameters

nip 10-cyfrowy NIP (wymagane)

Query Parameters

format simple lub full (domyślnie: simple)
Przykład request
curl -X GET "https://dataport.pl/api/v1/company/1234567890?format=simple" \
  -H "X-API-Key: your_api_key_here" \
  -H "Accept: application/json"
Przykład 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"
}
Przykład 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"
}
POST /api/v1/company

Wyszukaj firmę po NIP (alternatywa dla GET). Zwraca te same dane.

Request Body

{
  "nip": "1234567890"
}

Query Parameters

format simple lub full (domyślnie: simple)
Przykład request
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"}'

Błąd: Firma nie istnieje

Jeśli firma nie istnieje w GUS, API zwróci błąd 404.

Przykład response (404)
{
  "success": false,
  "message": "Firma nie istnieje"
}

Przykłady użycia

cURL

Bash
curl -X GET "https://dataport.pl/api/v1/company/{nip}?format=simple" \
  -H "X-API-Key: {your_api_key}" \
  -H "Accept: application/json"
PHP (curl)

$nip = 'nip';
$apiKey = 'your_api_key';

$ch = curl_init('https://dataport.pl/api/v1/company/{$nip}?format=simple');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-Key: ' . $apiKey,
    'Accept: application/json',
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
                        

PHP / Guzzle

Guzzle HTTP Client
use GuzzleHttp\Client;

$client = new Client();
$response = $client->get('https://dataport.pl/api/v1/company/1234567890', [
    'query' => ['format' => 'simple'],
    'headers' => [
        'X-API-Key' => 'your_api_key_here',
        'Accept' => 'application/json',
    ]
]);

$data = json_decode($response->getBody(), true);
echo $data['nazwa']; // PRZYKŁADOWA FIRMA SP. Z O.O.

JavaScript (Fetch API)

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

fetch(`https://dataport.pl/api/v1/company/${nip}?format=simple`, {
  method: 'GET',
  headers: {
    'X-API-Key': apiKey,
    'Accept': 'application/json'
  }
})
.then(response => response.json())
.then(data => {
  console.log(data.nazwa); // PRZYKŁADOWA FIRMA SP. Z O.O.
})
.catch(error => console.error('Error:', error));

Python

Requests library
import requests

api_key = 'your_api_key_here'
nip = '1234567890'

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

data = response.json()
print(data['nazwa'])  # PRZYKŁADOWA FIRMA SP. Z O.O.

Kody Błędów

200 OK

Zapytanie wykonane pomyślnie

400 Bad Request

Nieprawidłowe parametry (np. błędny NIP)

401 Unauthorized

Brak lub nieprawidłowy klucz API

Przykład błędu
{
  "success": false,
  "message": "Nieprawidłowy klucz API",
  "error": "INVALID_API_KEY"
}
404 Not Found

Firma nie istnieje w GUS

429 Too Many Requests

Przekroczono dzienny limit zapytań

Przykład błędu
{
  "success": false,
  "message": "Przekroczono dzienny limit...",
  "error": "RATE_LIMIT_EXCEEDED",
  "limit": 100,
  "used": 101
}
500 Server Error

Błąd serwera (np. problem z GUS)

Najczęściej zadawane pytania

Jak długo dane są cache'owane?

Dane świeższe niż 24h są zwracane z cache. Dane między 24h a 7 dni są zwracane z cache + aktualizujemy je w tle z GUS. Dane starsze niż 7 dni są pobierane świeżo z GUS.

Co się dzieje gdy przekroczę dzienny limit?

API zwróci błąd 429 (Too Many Requests). Limit resetuje się każdej doby o północy (UTC). Możesz sprawdzić swoje statystyki użycia w panelu kluczy API.

Czy limity dotyczą wszystkich kluczy?

Tak, dzienny limit zapytań dotyczy całego Twojego konta, nie każdego klucza osobno. Jeśli masz kilka kluczy API, to dzienny limit dotyczy wszystkich kluczy łącznie, nie każdego osobno.

Czym jest API GUS?

API GUS to REST API udostępniane przez DataPort.pl, które umożliwia programistyczny dostęp do danych firm z oficjalnego rejestru GUS BIR1.1. Nasze API GUS oferuje inteligentny cache, automatyczną aktualizację danych i prosty interfejs REST. Wszystkie dane pochodzą z oficjalnego API GUS BIR1.1 (Główny Urząd Statystyczny) i są na bieżąco aktualizowane i synchronizowane z rejestrem REGON.

Skąd pochodzą dane?

Wszystkie dane pochodzą z oficjalnego API GUS BIR1.1 (Główny Urząd Statystyczny). Dane są na bieżąco aktualizowane i synchronizowane z rejestrem REGON.

Czy mogę używać API w aplikacji komercyjnej?

Tak, możesz używać API w aplikacjach komercyjnych. Upewnij się tylko, że zachowujesz bezpieczeństwo swojego klucza API i nie przekraczasz limitów swojego planu.

Co zrobić gdy firma nie istnieje w GUS?

Jeśli firma nie istnieje w rejestrze GUS, API zwróci błąd 404 z komunikatem "Firma nie istnieje". Upewnij się, że NIP jest poprawny i że firma jest zarejestrowana.

Potrzebujesz pomocy?

Masz pytania dotyczące API? Napotkałeś problem? Skontaktuj się z naszym zespołem wsparcia.