How to pull Slovenian tender data from enarocanje.si
What is enarocanje.si?
Portal javnih naročil, which lives at enarocanje.si, is the Slovenian public procurement portal where public buyers publish their tender notices. Contract notices, planning notices, and award results all land there, which makes it the one place to watch if Slovenia is your market.
Two things make it worth pulling directly. It carries notices below the EU thresholds that never reach TED, and national notices show up there before they are forwarded onward.

Is there an official API?
No. There is no developer portal, no documentation, no API key, and nothing to register for. What exists instead is a single-page app that talks to its own JSON backend, and those calls answer anonymous clients.
That is the honest starting point for any integration here. The endpoints below are internal and undocumented. They were built for the portal’s own frontend, not for you, so paths, parameters, and response shapes can change without a version bump, a deprecation notice, or anyone to ask. Treat anything you build on them as best-effort, and expect to fix it occasionally.
The endpoints the portal uses
Everything sits under https://www.enarocanje.si.
| Endpoint | Returns |
|---|---|
POST /api/obrazec/objava/obrazecGetGrid | A page of notices, filtered by publication date |
GET /api/obrazec/objava/obrazecGet?id={idObrazec} | One notice in full |
GET /api/sifObrazec/sifCpvGetList?aktivnost=true | The CPV codelist, as a tree |
GET /api/sifObrazec/sifNarociloVrstaGetList?aktivnost=true | The contract nature codelist (works, supplies, services) |
GET /api/sifObrazec/sifValutaGetList?aktivnost=true | The currency codelist |
Every notice also has a human-readable page on the portal at /#/pregled-objav/{idObrazec}.
The grid is the list endpoint. Its JSON body is the request the portal’s own data grid sends: a row window (startRow and endRow), a publication date range (objavaDejanskaDatumOd and objavaDejanskaDatumDo), optional CPV and procedure-phase filters, and a sort model. Results come back under data, and the field that matters on each row is idObrazec, the key you hand to the detail endpoint.
Detail is where the substance is. One call returns the title, short description, buyer, CPV codes, estimated value, submission deadline, lots, and, on a result notice, the winners.

What makes it awkward
- Everything is in Slovenian, field names included.
naslovis the title,narocnikthe buyer,sklopa lot,oddajaan award. There is no English layer and no translation, so comparing across countries means translating on your side. - Codelists, not values. CPV, contract nature, and currency arrive as internal numeric IDs that mean nothing outside the portal’s own database. The three codelist endpoints are what turn them back into codes. If you do not know which CPV code covers your sector, look it up with our CPV code search.
- Values are net of VAT and frequently missing entirely. Deadlines are missing too on planning and award notices, so read both defensively.
- One list call is not one request. The grid hands you identifiers, not notices, so a page of rows is that many more calls before you have anything usable.
How this compares with TED
Slovenian notices above the EU thresholds are forwarded to TED, so those you can get from either source, and TED is the better source for them, with a documented API, English titles, and 26 other countries in the same query.
What TED does not have is everything below threshold, which is the larger share of Slovenian procurement by notice count, plus the planning notices that arrive before a procedure formally opens. Those exist only on enarocanje.si. If Slovenia is your market, the two sources complement each other well: TED for breadth and stability, enarocanje.si for the local depth and the early signal.
That is the shape of it: ask the grid for a date window, collect the identifiers, and call detail for each one. The data is public and the endpoints answer without a key. The work is in the mapping.