3.000 requesturi gratuite pe lună · fără card

Date publice care, în sfârșit, se leagă între ele.

Importăm seturile din sursă, le normalizăm, le legăm și le servim ca API REST versionat. Tu faci un request și primești JSON validat, fără scrapere, fără CSV-uri urmărite și fără nomenclatoare de întreținut.

Anatomia oricărui răspuns
GET /{modul}/v1/{resursă}?pagina=1
Authorization: Bearer ••••••••

{
  "data":  [ … ],   // singurul lucru care diferă
  "meta":  { paginare, actualizat },
  "links": { next }
}
200 OKapplication/jsoncache HIT
If-None-Match"a3f9c1e0"
304

Not Modified · 0 din cotă

x-ratelimit-remaining59 / 60

Limita e în fiecare răspuns, nu o afli când o depășești.

Un singur token pentru tot catalogul
Același envelope erori și paginare comune
ETag pe tot 304 fără consum din cotă
OpenAPI per modul client generat în limbajul tău
Găzduit în UE importat, nu intermediat
01 De ce existăm

Sursele nu se leagă între ele. De aceea existăm.

Fiecare registru public a fost construit ca și cum ar fi singurul: alt format, alt ritm, nicio cheie comună. Noi facem reconcilierea o singură dată și o ținem stabilă, în timp ce sursele se schimbă sub noi.

Registru național CSV · lunar
Serviciu web oficial API · 1 req/s
Portal de date deschise XLSX · anual
Buletin periodic PDF · săptămânal
Bază statistică tabele · variabil
Listă publicată manual HTML · „când se poate”
Pipeline oneapiorice set
A
Consolidăm Fișiere separate devin un obiect cu schemă documentată.
B
Normalizăm Convențiile locale devin reguli explicite, aplicate peste tot.
C
Legăm Reconstruim cheile care lipsesc. Mai bine gol decât inventat.
D
Completăm Doar ce se poate deriva. Niciodată estimat.
verificare→ publicare→ changelog
Un singur contract

Același răspuns, oricare ar fi sursa.

  • un singur token
  • același format de eroare
  • aceeași paginare
  • limite în headere
  • versionare per modul
Formă, ritm și chei diferite Aceleași patru operații Stabil în timp
02 Ce rezolvi

Șase lucruri pe care le face orice set de date în produsul tău.

Oricât de diferit ar fi conținutul, ajunge să confirme, să sugereze, să completeze, să calculeze, să grupeze sau să spună cum era înainte. Fiecare, și în masă, într-un singur apel.

A Validare

Confirmi că o valoare introdusă există cu adevărat în setul oficial, când corectarea costă un clic.

B Sugestie

Câmpul propune rezultate din setul oficial în timp ce utilizatorul tastează. În baza ta ajunge o valoare aleasă, nu text liber.

C Completare

Un singur identificator introdus aduce restul informațiilor. Datele intră scrise corect de la început.

D Calcul

Uneori ai nevoie de rezultat, nu de înregistrare. Vine deja calculat, cu regulile aplicate corect și ținute la zi.

E Grupare

Rapoartele se construiesc pe coduri stabile, nu pe denumiri scrise de mână. Trei variante de scriere ajung în același rând.

F Interogare în timp

Nu doar cum e acum, ci cum era la o dată anume. Pentru orice decizie care trebuie justificată ulterior.

03 Catalog

Catalogul crește. Integrarea ta rămâne aceeași.

Module independente, fiecare cu pagina, documentația și versiunea lui. Alegi doar ce-ți trebuie; un modul nou nu înseamnă cod nou de conectare.

Vezi toate modulele
un tokenoneapi
Financiar Firme Administrativ Conformitate fiscală Mediu Energie Carburanți Identificatori Telecom Utilitare
04 Pentru developeri

Un token și clientul HTTP pe care îl ai deja.

Nu instalezi nimic. Envelope-ul, erorile și paginarea sunt identice peste tot, iar din specificația OpenAPI îți generezi clientul în limbajul tău.

# orice modul, aceeași formă
curl "https://oneapi.ro/api/{modul}/v1/{resursă}" \
  -H "Authorization: Bearer $ONEAPI_TOKEN" \
  -H "Accept: application/json"

# a doua oară, fără consum din cotă
curl "https://oneapi.ro/api/{modul}/v1/{resursă}" \
  -H "Authorization: Bearer $ONEAPI_TOKEN" \
  -H 'If-None-Match: "a3f9c1e0"'
# → 304 Not Modified
// un singur client, refolosit pentru toate modulele
$oneapi = Http::baseUrl('https://oneapi.ro/api')
    ->withToken(config('services.oneapi.token'))
    ->acceptJson()
    ->retry(2, 200);

$rezultat = $oneapi
    ->get("/{$modul}/v1/{$resursa}", ['pagina' => 1])
    ->throw()
    ->json('data');
const oneapi = async (path) => {
  const res = await fetch(`https://oneapi.ro/api${path}`, {
    headers: { Authorization: `Bearer ${process.env.ONEAPI_TOKEN}` },
  });
  // aceeași tratare a limitei, oricare ar fi modulul
  if (res.status === 429) {
    await sleep(Number(res.headers.get('Retry-After')) * 1000);
    return oneapi(path);
  }
  return res.json();
};
client = httpx.Client(
    base_url="https://oneapi.ro/api",
    headers={"Authorization": f"Bearer {os.environ['ONEAPI_TOKEN']}"},
    timeout=5.0,
)

# aceeași funcție, orice modul
def ia(modul: str, resursa: str, **params) -> list:
    r = client.get(f"/{modul}/v1/{resursa}", params=params)
    r.raise_for_status()
    return r.json()["data"]
CacheETag · If-None-Match
200prima cerere−1 din cotă
304datele nu s-au schimbat0 din cotă
Versiuniper modul
v1 activ anunț v2 ≥ 12 luni în paralel
05 Stabilitate

Ce construiești azi trebuie să meargă și peste doi ani.

90zile

Preaviz la schimbări incompatibile

Anunțate public înainte să se întâmple ceva.

12luni

Versiunea veche rămâne activă

Minimum, de la anunț. Nu stricăm producția cuiva într-o marți dimineața.

0refolosiri

Identificatori permanenți

Un cod atribuit rămâne al aceleiași înregistrări pentru totdeauna.

1câmp

Vechimea datelor, vizibilă

Fiecare răspuns spune de când datează setul. Nu trebuie să presupui.

07 Pe scurt

Ce este o platformă de API-uri de date

Un API de date livrează informație structurată la cerere, printr-un request HTTP, în locul unui fișier descărcat manual sau al unui scraper scris de tine. În loc să întreții un import lunar dintr-un CSV care își schimbă coloanele, interoghezi un endpoint versionat și primești JSON validat.

oneapi grupează mai multe seturi de date sub același contract tehnic: aceeași structură de răspuns, aceleași coduri de eroare, aceeași paginare și aceeași autentificare prin token. Adăugarea unui modul nou nu cere rescrierea integrării existente.

Din fișiere care se schimbă, într-un endpoint care nu se schimbă.
Pentru cine e util

Pentru echipe care construiesc formulare cu autocomplete de adrese, fluxuri de facturare care validează un cod fiscal la checkout, aplicații care au nevoie de nomenclatoare oficiale, sau orice produs care depinde de date menținute de altcineva. Catalogul acoperă seturi locale și internaționale și crește după cererile primite.

Integrare

Autentificarea se face cu un Bearer token generat din dashboard, cu acces limitat la modulele pe care le bifezi. Nu există SDK obligatoriu: orice client HTTP funcționează, iar din specificația OpenAPI îți generezi clientul în limbajul tău.

Performanță și disponibilitate

Majoritatea requesturilor sunt servite din cache, cu ETag și Cache-Control pe fiecare răspuns, astfel încât un client bine scris consumă din cotă doar când datele s-au schimbat efectiv. Infrastructura e găzduită în Uniunea Europeană.

Prețuri transparente

Planul gratuit include acces la toate modulele, fără card și fără perioadă de probă limitată. Planurile plătite cresc volumul și limita pe secundă, nu numărul de utilizatori.

Vezi comparația completă →
Documentație

Fiecare modul are referință generată din cod, exemple în cinci limbaje și o consolă în care poți încerca cu propriul token.

Deschide documentația →
Surse declarate

Fiecare set își spune public proveniența și licența. Datele provin din surse publice oficiale, iar vechimea setului e vizibilă în fiecare răspuns.

Surse și licențe →

De la cont nou la primul răspuns, în câteva minute.

3.000 de requesturi pe lună, tot catalogul, fără card.