beta Nu, pe bune ...

Dorim ca OpenAPI.ro

Cine folosește openapi.ro

Între aplicațiile în productie care folosesc openapi.ro se află:

Contactează-ne dacă vrei să adăugăm și aplicația ta în lista de mai sus.

Structură generală

Servicii disponibile

Informații firme

Returnează informații despre contribuabili români după codul de identificare fiscală (CIF).

Surse utilizate: URL-uri:
  • http://openapi.ro/api/companies/cod-cif.format

Exemple:

  1. În cazul în care s-au găsit informații despre contribuabil, răspunsul vine în formatul trimis in URL. curl -g -s 'http://openapi.ro/api/companies/13548146.json' {"cif":"13548146","authorization_number":"","name":"CUBUS ARTS S.R.L.","city":"SIBIU","updated_at":"2013-02-26T04:02:46+00:00","registration_id":"J32 /508 /2000","vat":"1","created_at":"2011-03-16T12:54:36+00:00","zip":"550350","address":"BLD. MIHAI VITEAZU Nr. 7,Ap. 18","state":"Sibiu","phone":"0269232192","fax":""}
  2. Implementare client REST cu ActiveSupport (we ♥ Rails)
    require 'active_resource'
    class Company < ActiveResource::Base
      self.site = 'http://openapi.ro/api/'
    end
    
    Company.find(13548146).name
    => Cubus Arts S.R.L.
  3. PHP 5
    $result = simplexml_load_file('http://openapi.ro/api/companies/13548146.xml');
    print($result->name);
  4. Python 2.x:
    import simplejson, urllib
    result = simplejson.load(urllib.urlopen('http://openapi.ro/api/companies/13548146.json'))
    print result['name']
    Python 3.x:
    import json, urllib.request
    result = json.loads(urllib.request.urlopen('http://openapi.ro/api/companies/13548146.json').read().decode('utf8'))
    print(result['name'])
  5. Perl
    use JSON;
    use LWP::Simple;
    $result = decode_json(get('http://openapi.ro/api/companies/13548146.json'));
    print $result->{name};
  6. CIF invalid sau nu se află în baza de date, corpul răspunsului va fi gol iar status-ul va fi 404 curl -s --head http://openapi.ro/api/companies/123.json | head -n 1 HTTP/1.1 404 Not Found
  7. Javascript: Request JSONP, folosind jQuery
    $.ajax({
      type: 'get',
      url: 'http://openapi.ro/api/companies/13548146.json',
      dataType: 'jsonp',
      success: function(data) {
        console.log(data["state"]);
      }
    })
    => Sibiu
  8. Exemplu generic de Request JSONP curl -g -s 'http://openapi.ro/api/companies/13548146.json?callback=my_function' my_function({"cif":"13548146","authorization_number":"","name":"CUBUS ARTS S.R.L.","city":"SIBIU","updated_at":"2013-02-26T04:02:46+00:00","registration_id":"J32 /508 /2000","vat":"1","created_at":"2011-03-16T12:54:36+00:00","zip":"550350","address":"BLD. MIHAI VITEAZU Nr. 7,Ap. 18","state":"Sibiu","phone":"0269232192","fax":""})

Geolocare IP

Returnează țara sau locația asociată IP-ului dat. Adresa IP se așteaptă în notația dot-decimal, de exemplu 8.8.8.8 Codul țării în răspunsuri este conform ISO 3166 1 alpha 2

Surse utilizate: URL-uri:
  • http://openapi.ro/api/(country sau location)/ip
Exemple:
  1. Geolocare țară curl -g -s 'http://openapi.ro/api/geoip/country/8.8.8.8.json' {"country_code":"US","ip":"8.8.8.8"}
  2. Geolocare locație (oraș etc) curl -g -s 'http://openapi.ro/api/geoip/location/8.8.8.8.json' {"city":"Mountain View","latitude":"37.4192","region":"CA","metro_code":"807","ip":"8.8.8.8","country":"US","area_code":"650","longitude":"-122.0574"}

Validare CIF / CNP / IBAN / BIC

Validarea IBAN-ului se face după algoritmul descris aici: http://www.bnr.ro/files/d/Legislatie/EN/Reg_IBAN.pdf

URL-uri:
  • http://openapi.ro/api/validate/tip_validare/input
Exemple:
  1. Validare IBAN curl -g -s 'http://openapi.ro/api/validate/iban/RO69TREZ04621220230XXXXX.json' {"valid":true}

Curs valutar

Data se pasează ca parametru opțional la request. Implicit se va returna cursul din data curentă.
Surse utilizate:
Exemplu:
  1. Toate cursurile disponibile pentru data de 5 ianuarie 2012: curl -g -s 'http://openapi.ro/api/exchange/all.json?date=2012-01-5' {"date":"2012-01-05","rate":{"BRL":"1.8444","CAD":"3.3165","USD":"3.3796","HUF":"0.013449","MXN":"0.2459","RSD":"0.0412","MDL":"0.2867","CZK":"0.1672","NOK":"0.5646","KRW":"0.002925","RUB":"0.1057","PLN":"0.9596","CNY":"0.5363","UAH":"0.4194","XDR":"5.1605","TRY":"1.7911","DKK":"0.5837","INR":"0.0638","NZD":"2.6406","CHF":"3.5629","XAU":"175.2918","AED":"0.9201","ZAR":"0.4114","GBP":"5.2549","BGN":"2.2189","AUD":"3.4648","EGP":"0.5601","JPY":"0.043985","SEK":"0.4898","EUR":"4.3398"}}
  2. Cursul RON/EUR la data de 28 ianuarie 2011: curl -g -s 'http://openapi.ro/api/exchange/eur.json?date=2011-01-28' {"date":"2011-01-28","rate":"4,2571"}
  3. Cursul RON/USD într-o zi de sâmbătă (va returna cursul de vineri): curl -g -s 'http://openapi.ro/api/exchange/usd.json?date=2011-02-05' {"date":"2011-02-04","rate":"3,1285"}
  4. Cursul RON/EUR de Crăciun în 2009 (vineri; va returna cursul de joi 24.12.2009) curl -g -s 'http://openapi.ro/api/exchange/eur.json?date=2009-12-25' {"date":"2009-12-24","rate":"4,2028"}
  5. Cursul RON/EUR în 2. ian. 2008 (vineri; va returna cursul din 28 dec. 2007) curl -g -s 'http://openapi.ro/api/exchange/eur.json?date=2008-01-02' {"date":"2007-12-28","rate":"3,6102"}

Cod poștal

nu avem baza de date, dacă poți ajuta contactează-ne

Mulțumim celor care ne-au ajutat cu baza de date a codurilor poștale: (kleampa, necenzurat). Am folosit-o pe cea trimisă de kleampa.

URL-uri:
  • http://openapi.ro/api/zip.format/query
unde query este de forma field=value[&other_field=other_value&...], câmpurile posibile fiind:
  • description (cel mai important câmp, căutarea se face cu fulltext, conține numele și numerele aferente codului poștal)
  • zip (cod poștal)
  • county (județ)
  • location (oraș, localitate)
  • street_type (tipul de stradă, exemple: Bulevard, Strada, Piata etc.)
Exemple
  1. Toate adresele cu denumirea "Michael Weiss" curl -g -s 'http://openapi.ro/api/addresses.json?description=Michael%20Weiss' [{"county":"Brasov","zip":"500031","description":"Weiss Michael nr. 1-27; 2-24","street_type":"Strada","sector":"","location":"Brasov"},{"county":"Brasov","zip":"500024","description":"Weiss Michael nr. 29-35","street_type":"Strada","sector":"","location":"Brasov"},{"county":"Brasov","zip":"500019","description":"Weiss Michael nr. 37-T; 26-T","street_type":"Strada","sector":"","location":"Brasov"},{"county":"Sibiu","zip":"551005","description":"Weiss Michael","street_type":"Strada","sector":"","location":"Medias"}]
  2. Toate adresele cu denumirea "Weiss Michael" din județul Sibiu curl -g -s 'http://openapi.ro/api/addresses.json?description=Michael%20Weiss&county=Sibiu' [{"county":"Sibiu","zip":"551005","description":"Weiss Michael","street_type":"Strada","sector":"","location":"Medias"}]
  3. Toate adresele cu codul poștal 550350 curl -g -s 'http://openapi.ro/api/addresses.json?zip=550350' [{"county":"Sibiu","zip":"550350","description":"Mihai Viteazu bl. 1, 3, 5, 5A, 7-19","street_type":"Bulevard","sector":"","location":"Sibiu"}]
  4. Implementare client REST cu ActiveSupport (we ♥ Rails)
    require 'active_resource'
    class Address < ActiveResource::Base
      self.site = 'http://openapi.ro/api/'
    end
    
    a = Address.first(:params => {:zip => 550350})
    puts [a.county, a.location, a.description].join("; ")
    => Sibiu; Sibiu; Mihai Viteazu bl. 1, 3, 5, 5A, 7-19
    

Observații:

Pluralul sau singularul cuvintelor româneşti

Surse utilizate: URL-uri:
  • http://openapi.ro/api/inflections/word.format
Exemple
  1. "dinozaur" curl -g -s 'http://openapi.ro/api/inflections/dinozaur.json' {"singular":"dinozaur","plural":"dinozauri"}
  2. "minotauri" curl -g -s 'http://openapi.ro/api/inflections/minotauri.json' {"singular":"minotaur","plural":"minotauri"}
  3. Dacă folosiţi cuvinte cu diacritice, trebuie să sanitizaţi URL-ul întâi, de ex. (CGI.escape(şorţ) == "%C5%9For%C5%A3"). curl -g -s 'http://openapi.ro/api/inflections/%25C5%259For%25C5%25A3.xml' <?xml version="1.0" encoding="UTF-8"?> <hash> <singular>&#537;or&#539;</singular> <plural>&#537;&#243;r&#539;uri</plural> </hash>
  4. Implementare client REST cu ActiveSupport (we ♥ Rails)
    require 'active_resource'
    class Inflection < ActiveResource::Base
      self.site = 'http://openapi.ro/api/'
    end
    
    Inflection.find('ţăran').attributes
    => {"singular"=>"țăran", "plural"=>"țărani"}
  5. Javascript: Request JSONP, folosind jQuery
    $.ajax({
      type: 'get',
      url: 'http://openapi.ro/api/inflections/curcan.json',
      dataType: 'jsonp',
      success: function(data) {
        console.log(data["plural"]);
      }
    })
    => curcani
  6. Exemplu generic de Request JSONP curl -g -s 'http://openapi.ro/api/inflections/balaur.json?callback=my_function' my_function({"singular":"balaur","plural":"balauri"})

Logo OpenAPI.ro

Dacă folosești OpenAPI.ro, poți pune următorul banner pe site, inclusiv backlink-ul:

OpenAPI.ro - servicii web pentru România

<a href='http://openapi.ro'><img src='oa-logo.png' width='82' height='38' alt='OpenAPI.ro - servicii web pentru România'/></a>

Alte servicii

Așteptăm sugestii pentru alte servicii utile

Limitări

Requesturi/oră/IP 1000

Requesturi/zi/IP 10000

Dacă aceste limite sunt insuficiente pentru tine, vom implementa în curând limite mai mari și chei API.

Beta

Deocamdată serviciu este în beta până testăm una alta. S-ar putea să existe buguri, să raspundă aiurea, să dea timeout-uri, să fie picat sau să-ți mânânce pisica. Ai fost avertizat.