Stabilan, verzionisan pristup crnogorskim poslovnim, tender i državnim podacima uz javni OpenAPI ugovor.
Javni GET endpointi dostupni su pod /v1. Promjene koje lome klijente dobijaju novu glavnu verziju; OpenAPI dokument je mašinski izvor ugovora.
Katalog opisuje izvor, kadencu, ključeve, metodologiju i ograničenja. Odgovori zadržavaju izvorne URL-ove i datume gdje ih izvor objavljuje.
Razumno javno čitanje je dostupno bez ključa. Veći obim, webhookovi, SLA, snimci i komercijalna redistribucija ugovaraju se posebno.
Agenti koji podržavaju MCP (Model Context Protocol) mogu direktno pretraživati podatke o kompanijama, tenderima i javnim plaćanjima u Crnoj Gori. Besplatno je i samo za čitanje, bez naloga i ključa.
https://api.bizstats.me/mcpAplikacije sa prilagođenim konektorima mogu direktno koristiti ovaj URL.
claude mcp add --transport http bizstats https://api.bizstats.me/mcp{
"mcpServers": {
"bizstats": {
"url": "https://api.bizstats.me/mcp"
}
}
}search_companiesget_companyrank_companiessearch_tendersget_tendersearch_public_paymentsget_recent_changesfind_personget_personget_dataset_statusNajviše 60 zahtjeva u minutu po klijentu. Svaki rezultat sadrži link ka izvornoj stranici i licenci za podatke, kako bi agenti mogli da ih citiraju. Dugačke liste su skraćene; za masovno korišćenje i komercijalnu redistribuciju potreban je poseban dogovor. Pročitajte licencu za podatke
Svaki dokumentovani poziv verzije 1.1.0, sa parametrima, oblikom odgovora i primjerom koji radi. Opisi polja su na engleskom, kao u OpenAPI dokumentu.
/v1Ulazna tačka API-jaBez parametara
application/json · ApiIndexResponse
| Polje | Tip | Opis |
|---|---|---|
| name | string | |
| version | string | |
| documentation | string | |
| openapi | string | |
| catalog | string | |
| mcp | string |
/v1/datasets/catalogSpisak javnih skupova podatakaSource, cadence, coverage, methodology, limitations and endpoints for every dataset.
Bez parametara
application/json · DatasetCatalogResponse
| Polje | Tip | Opis |
|---|---|---|
| schemaVersion | string | |
| generatedAt | string | ISO 8601 date (YYYY-MM-DD) or timestamp |
| license | string | |
| methodology | string | |
| datasets | array<DatasetDefinition> |
/v1/datasets/catalog/{id}Opis jednog skupa podataka| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| id*obavezno | putanja | "companies" | "company-registry" | "company-ownership" | "persons" | "procurement-notices" | "procurement-awards" | "public-payments" | "blocked-accounts" | "tax-debtors" | "economic-indicators" | "municipality-statistics" | "development-projects" | "court-hearings" | "court-decisions" | "property-ownership" | — |
application/json · DatasetResponse
| Polje | Tip | Opis |
|---|---|---|
| schemaVersion | string | |
| dataset | DatasetDefinition |
/v1/datasets/statusSvježina izvora i stanje uvozaFor each source: when BizStats last fetched it, the newest date its records cover, and a freshness tier.
Bez parametara
application/json · DatasetStatusResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| generatedAt | string | ISO 8601 date (YYYY-MM-DD) or timestamp |
| datasets | array<object> | |
| readModels | array<object> |
/v1/companiesSpisak, filteri i rangiranje kompanija za godinu| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| year | upit | string^[0-9]{4}$ | — | Filing year; defaults to the latest year with filings (unknown years fall back to it) |
| sort | upit | "name" | "totalIncome" | "profit" | "employeeCount" | "averagePay" | "incomePerEmployee" | "margin" | "revenueChange" | "totalIncome" | margin ranks companies with at least 100,000 EUR revenue first; revenueChange (vs year − 1) ranks bases of at least 1M EUR revenue and 5 employees first. Rows without a value sort last. |
| dir | upit | "asc" | "desc" | "desc" | |
| q | upit | string | — |
/v1/changesOtkrivene blokade, poreske liste i dobijeni tenderiSame-day contracts of one supplier on one tender are one row (contractCount). Rows are ordered by detection day, then event date and amount, unless sort says otherwise.
| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| type | upit | "blockade_started" | "blockade_cleared" | "tax_debtor_listed" | "tender_won" | "registry_notice" | — | |
| pib | upit | string^[0-9]{8}$ | — | 8-digit tax identification number (PIB) |
| buyer | upit | string | — | Substring of the tender buyer (tender wins only) |
| municipality | upit | string |
/v1/procurements/searchPretraga CEJN poziva za javne nabavke| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| q | upit | string | — | Keywords; a comma or semicolon separates alternatives (any of them) |
| buyer | upit | string | — | Buyer name substring |
| municipality | upit | string | — | Buyer municipality |
| status | upit | "active" | "expired" | "completed" | "canceled" | "suspended" | — | |
| procedureType | upit | string | — |
/v1/public-payments/searchPretraga plaćanja Državnog trezora| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| q | upit | string | — | Payee, account, ledger account, expense item, funding source, document number or source title |
| sort | upit | "date" | "amount" | "date" | |
| dir | upit | "asc" | "desc" | "desc" | |
| page | upit | integer≥ 1 | 1 | 1-based page; past the last page serves the last |
| pageSize | upit | integer≥ 1, ≤ 100 |
Polja svake sheme na koju upućuju odgovori iznad.
ApiIndexResponse| Polje | Tip | Opis |
|---|---|---|
| name | string | |
| version | string | |
| documentation | string | |
| openapi | string | |
| catalog | string | |
| mcp | string |
BlockedAccountsResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| snapshotDate | string | null | |
| snapshots |
| Substring of name, PIB, activity or municipality |
| sector | upit | string | — | Exact sector name |
| municipality | upit | string | — |
| category | upit | string | — | Activity title |
| activityCode | upit | string | — | KD 2010 code |
| minRevenue | upit | number≥ 0 | — |
| maxRevenue | upit | number≥ 0 | — |
| minEmployees | upit | number≥ 0 | — |
| maxEmployees | upit | number≥ 0 | — |
| plausibleProfit | upit | "1" | — | 1 = exclude filings with an implausible profit |
| page | upit | integer≥ 1 | 1 | 1-based page; past the last page serves the last |
| pageSize | upit | integer≥ 1, ≤ 200 | 50 | Rows per page (max 200; larger values are capped) |
application/json · CompanyListResponse
| Polje | Tip | Opis |
|---|---|---|
| year | string | |
| page | integer | |
| pageSize | integer | |
| total | integer | |
| previousYear | object | null | The comparison year of each row's `previous` filing; null when year − 1 has no filings. |
| companies | array<CompanyListRow> |
/v1/companies/{pib}Istorija izvještaja kompanije i povezani javni zapisiReturns a JSON array with one row per filing year, oldest first. The last (latest-year) row also carries identity, ownership, risk, procurement, payment, court and property records.
| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| pib*obavezno | putanja | string^[0-9]{8}$ | — | 8-digit tax identification number (PIB) |
| includeEnrichment | upit | "0" | "1" | "1" | 0 = filing rows only, without the linked public records |
application/json · CompanyHistoryResponse · niz
| Polje | Tip | Opis |
|---|---|---|
| id | integer | |
| name | string | |
| pib | string | |
| reportId | string | null | |
| legalStatus | string | null | |
| municipality | string | null | |
| activityCode | string | null | KD 2010 activity code |
| activityName | string | null | |
| sector | string | |
| parseStatus | string | null | |
| totalIncome | number | null | Total income, EUR |
| profit | number | null | Profit or loss for the year, EUR |
| employeeCount | number | null | |
| grossPayCosts | number | null | Gross wage costs for the year, EUR (IRMS AOP 012, or AOP 210 'troškovi zarada' when 012 is missing). |
| netPayCostszastarjelo | number | null | Deprecated alias of grossPayCosts. Despite the name the value is GROSS pay costs; it stays in v1 for compatibility. |
| averagePay | number | null | Average monthly gross pay, EUR; null when not computable or the filing is flagged suspicious. |
| incomePerEmployee | number | null | |
| yearId | integer | |
| yearValue | integer | |
| year | string | |
| updatedAt | string | null | |
| officialFilingUrl | string | null | |
| logoUrl | string | null | |
| logoSourceUrl | string | null | |
| logoDomain | string | null | |
| logoConfidence | number | null | |
| identity | object | null | CRPS registry identity (latest row only) |
| companyWebsite | object | null | The company's own website and the emails, phones and social profiles it publishes (latest row only) |
| ownership | object | CRPS owners and owned companies (latest row only) |
| risk | object | null | Blocked accounts, tax-debtor lists, filing gaps and registry status (latest row only) |
| procurements | object | |
| payments | object | |
| developmentProjects | object | |
| courtActivity | object | |
| accounts | object | |
| properties | object | |
| filingPersons | object | |
| registryNotices | object | |
| verdict | object |
/v1/companies/{pib}/export.csvIstorija izvještaja kompanije kao CSV| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| pib*obavezno | putanja | string^[0-9]{8}$ | — | 8-digit tax identification number (PIB) |
text/csv
/v1/export.csvPrvih 100 kompanija koje odgovaraju filterima kao CSVSame filters as /v1/companies, no paging. A free preview: the first 100 rows in the requested order (X-Export-Row-Count, X-Export-Row-Limit, and X-Export-Truncated: true when more companies match). Full lists with website, email and phone columns are part of BizStats Business.
| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| year | upit | string^[0-9]{4}$ | — | Filing year; defaults to the latest year with filings (unknown years fall back to it) |
| sort | upit | "name" | "totalIncome" | "profit" | "employeeCount" | "averagePay" | "incomePerEmployee" | "margin" | "revenueChange" | "totalIncome" | margin ranks companies with at least 100,000 EUR revenue first; revenueChange (vs year − 1) ranks bases of at least 1M EUR revenue and 5 employees first. Rows without a value sort last. |
| dir | upit | "asc" | "desc" | "desc" | |
| q | upit | string | — | Substring of name, PIB, activity or municipality |
| sector | upit | string | — | Exact sector name |
| municipality | upit | string | — | |
| category | upit | string | — | Activity title |
| activityCode | upit | string | — | KD 2010 code |
| minRevenue | upit | number≥ 0 | — | |
| maxRevenue | upit | number≥ 0 | — | |
| minEmployees | upit | number≥ 0 | — | |
| maxEmployees | upit | number≥ 0 | — | |
| plausibleProfit | upit | "1" | — | 1 = exclude filings with an implausible profit |
text/csv
/v1/searchPretraga kompanija po nazivu, PIB-u, djelatnosti ili vlasniku| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| q*obavezno | upit | string | — | |
| mode | upit | "typeahead" | "full" | "typeahead" | |
| limit | upit | integer≥ 1, ≤ 50 | — | Default 8 (typeahead) or 40 (full); max 50 |
application/json · SearchResponse
| Polje | Tip | Opis |
|---|---|---|
| query | string | |
| results | array<object> | |
| companyTotal | integer | |
| sectors | array<object> | |
| municipalities | array<object> | |
| tenders | array<object> |
/v1/regionsZbirni podaci kompanija po opštinama| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| year | upit | string^[0-9]{4}$ | — | Filing year; defaults to the latest year with filings (unknown years fall back to it) |
application/json · RegionsResponse
| Polje | Tip | Opis |
|---|---|---|
| year | string | |
| coverage | object | null | |
| national | object | |
| municipalities | array<object> | |
| unassigned | object | null |
/v1/sectorsZbirni podaci kompanija po sektorima| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| year | upit | string^[0-9]{4}$ | — | Filing year; defaults to the latest year with filings (unknown years fall back to it) |
application/json · SectorsResponse
| Polje | Tip | Opis |
|---|---|---|
| year | string | |
| coverage | object | null | |
| national | object | |
| sectors | array<object> |
/v1/moversNajveće promjene u odnosu na prethodnu godinu| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| metric | upit | "revenue" | "profit" | "employees" | "pay" | "revenue" | |
| limit | upit | integer≥ 1, ≤ 50 | 12 | |
| year | upit | string^[0-9]{4}$ | — | Filing year; defaults to the latest year with filings (unknown years fall back to it) |
| sector | upit | string | — | |
| municipality | upit | string | — |
application/json · MoversResponse
| Polje | Tip | Opis |
|---|---|---|
| metric | "revenue" | "profit" | "employees" | "pay" | |
| year | string | |
| prevYear | string | null | |
| tracked | integer | |
| stats | object | |
| gainers | array<object> | |
| losers | array<object> | |
| turnarounds | object | Loss to profit between the two years, by the profit swing, whatever the metric; with the counts both ways. |
/v1/persons/{slug}Javne uloge u registru grupisane pod jednim imenom| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| slug*obavezno | putanja | string^[a-z0-9-]+$ | — |
application/json · PersonResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| person | object | |
| roles | array<object> | |
| aggregates | object | |
| sourceFetchedAt | string | null | |
| indexable | boolean |
| — |
| Company municipality (latest filing) |
| sector | upit | string | — |
| minAmount | upit | number≥ 0 | — |
| sort | upit | "recent" | "eventDate" | "amount" | "recent" |
| page | upit | integer≥ 1 | 1 | 1-based page; past the last page serves the last |
| pageSize | upit | integer≥ 1, ≤ 100 | 50 | Rows per page (max 100; larger values are capped) |
application/json · ChangesResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| type | string | null | |
| pib | string | null | |
| sort | "recent" | "eventDate" | "amount" | |
| filters | object | |
| page | integer | Page served (clamped to the last page) |
| pageSize | integer | |
| total | integer | |
| totalPages | integer | |
| requestedPage | integer | |
| typeCounts | array<object> | |
| weeklyCounts | array<object> | |
| filterOptions | object | |
| events | array<object> |
/v1/changes/export.csvFiltrirane promjene kao CSV| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| type | upit | "blockade_started" | "blockade_cleared" | "tax_debtor_listed" | "tender_won" | "registry_notice" | — | |
| pib | upit | string^[0-9]{8}$ | — | 8-digit tax identification number (PIB) |
| buyer | upit | string | — | Substring of the tender buyer (tender wins only) |
| municipality | upit | string | — | Company municipality (latest filing) |
| sector | upit | string | — | |
| minAmount | upit | number≥ 0 | — | |
| sort | upit | "recent" | "eventDate" | "amount" | "recent" |
text/csv
/v1/blocked-accountsKompanije sa blokiranim računom (CBCG presjek)| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| snapshotDate | upit | string^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | — | CBCG snapshot (YYYY-MM-DD); default the latest |
| pib | upit | string^[0-9]{8}$ | — | 8-digit tax identification number (PIB) |
| q | upit | string | — | Name substring |
| minAmount | upit | number≥ 0 | — | |
| sort | upit | "amount" | "days" | "name" | "amount" | |
| dir | upit | "asc" | "desc" | — | Default desc (asc for name) |
| page | upit | integer≥ 1 | 1 | 1-based page; past the last page serves the last |
| pageSize | upit | integer≥ 1, ≤ 200 | 50 | Rows per page (max 200; larger values are capped) |
application/json · BlockedAccountsResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| snapshotDate | string | null | |
| snapshots | array<string> | |
| page | integer | Page served (clamped to the last page) |
| pageSize | integer | |
| total | integer | |
| totalPages | integer | |
| excluded | object | |
| results | array<object> |
/v1/tax-debtorsUnosi sa objavljenih lista poreskih dužnika| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| list | upit | "top_200" | "bankruptcy_100" | "salary_taxes_50" | "tax_white_list" | — | Published list; legacy 2024 names (tax_debt_black_list_200, …) are accepted |
| snapshotDate | upit | string^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | — | Edition date; default each list's latest edition |
| pib | upit | string^[0-9]{8}$ | — | 8-digit tax identification number (PIB) |
| q | upit | string | — | |
| minAmount | upit | number≥ 0 | — | |
| sort | upit | "amount" | "name" | "amount" | |
| dir | upit | "asc" | "desc" | — | |
| page | upit | integer≥ 1 | 1 | 1-based page; past the last page serves the last |
| pageSize | upit | integer≥ 1, ≤ 200 | 50 | Rows per page (max 200; larger values are capped) |
application/json · TaxDebtorsResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| list | string | null | |
| snapshotDate | string | null | |
| editions | array<object> | |
| page | integer | Page served (clamped to the last page) |
| pageSize | integer | |
| total | integer | |
| totalPages | integer | |
| results | array<object> |
| noticeType | upit | string | — |
| cpv | upit | string^\d{2}(\d{6})?$ | — | CPV division (2 digits) or a code in it |
| dateFrom | upit | string^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | — | Publication date from |
| dateTo | upit | string^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | — | Publication date to |
| minValue | upit | number≥ 0 | — | Minimum estimated value, EUR |
| maxValue | upit | number≥ 0 | — |
| sort | upit | "publicationDate" | "deadline" | "estimatedValue" | "publicationDate" |
| dir | upit | "asc" | "desc" | "desc" |
| page | upit | integer≥ 1 | 1 | 1-based page; past the last page serves the last |
| pageSize | upit | integer≥ 1, ≤ 100 | 25 | Rows per page (max 100; larger values are capped) |
application/json · ProcurementSearchResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| query | string | |
| page | integer | Page served (clamped to the last page) |
| pageSize | integer | |
| total | integer | |
| totalPages | integer | |
| valuedTotal | integer | |
| facets | object | |
| results | array<ProcurementRow> |
/v1/procurements/{id}Javna nabavka sa lotovima, događajima i ugovorima| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| id*obavezno | putanja | string | — | procurement_id (me_cejn:tender:121357) or numeric CEJN id |
application/json · ProcurementDetailResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| procurement | object | |
| parties | array<object> | |
| lots | array<object> | |
| statusEvents | array<object> | |
| awards | array<object> | |
| matchedPayments | object |
/v1/procurements/buyers/{buyer}Profil naručioca| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| buyer*obavezno | putanja | string | — | Buyer name (URL-encoded) |
application/json · BuyerProfileResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| buyerName | string | |
| summary | object | null | |
| topSuppliers | array<object> | |
| byYear | array<object> | |
| tenders | array<ProcurementRow> |
/v1/procurements/suppliers/{pib}Dodijeljeni ugovori dobavljača| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| pib*obavezno | putanja | string^[0-9]{8}$ | — | 8-digit tax identification number (PIB) |
application/json · SupplierProfileResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| pib | string | |
| supplierName | string | null | |
| company | object | null | |
| summary | object | null | |
| awardsByYear | array<object> | |
| topBuyers | array<object> | |
| recentAwards | array<object> |
| 25 |
| Rows per page (max 100; larger values are capped) |
| cursor | upit | string | — | nextCursor of the previous page (keyset paging; newest-first order only) |
| includeTotal | upit | "0" | "1" | "1" |
application/json · PublicPaymentSearchResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| query | string | |
| page | integer | |
| pageSize | integer | |
| total | integer | |
| totalPages | integer | |
| totalAmount | number | null | Sum of every matching payment, EUR (with the total) |
| nextCursor | string | null | |
| results | array<object> |
/v1/public-payments/export.csvSva plaćanja Državnog trezora iz pretrage kao CSVSame q and sort as /v1/public-payments/search, no paging. Up to 50,000 rows (X-Export-Row-Count, X-Export-Row-Limit headers); larger exports return 422.
| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| q | upit | string | — | |
| sort | upit | "date" | "amount" | "date" | |
| dir | upit | "asc" | "desc" | "desc" |
text/csv
/v1/development-projects/searchPretraga objavljenih razvojnih projekata| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| q | upit | string | — | |
| municipality | upit | string | — | |
| status | upit | string | — | |
| investor | upit | string | — | |
| investorPib | upit | string^[0-9]{8}$ | — | 8-digit tax identification number (PIB) |
| year | upit | string | — | 2000–2100, or 'undated' |
| includeIndividuals | upit | "0" | "1" | "0" | |
| page | upit | integer≥ 1 | 1 | 1-based page; past the last page serves the last |
| pageSize | upit | integer≥ 1, ≤ 100 | 25 | Rows per page (max 100; larger values are capped) |
application/json · DevelopmentProjectSearchResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| page | integer | Page served (clamped to the last page) |
| pageSize | integer | |
| total | integer | |
| totalPages | integer | |
| undatedExcluded | integer | |
| results | array<object> |
/v1/government/summaryZbirni pregled izvora otvorenih podataka državeBez parametara
application/json · GovernmentSummaryResponse
/v1/regional-context/summaryDostupna opštinska statistika po kategorijamaBez parametara
application/json · RegionalContextSummaryResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| total | integer | |
| categories | array<object> |
/v1/government/indicatorsIzabrani ekonomski indikatoriBez parametara
application/json · IndicatorListResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| indicators | array<object> |
/v1/government/indicators/{slug}Godišnja serija ekonomskog indikatora| Naziv | Mjesto | Tip | Podrazumijevano | Opis |
|---|---|---|---|---|
| slug*obavezno | putanja | "gdp-current-prices" | "gdp-per-capita" | "gdp-real-growth" | "unemployment-rate" | "employees" | "average-gross-wage" | — |
application/json · IndicatorSeriesResponse
| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| slug | string | |
| topic | string | |
| metricName | string | |
| unit | "eur" | "eur_thousand" | "percent" | "index" | "persons" | |
| aggregation | "annual_average" | "annual_latest" | "annual_sum" | "annual_sum_yoy" | |
| sourceFrequency | "annual" | "quarterly" | "monthly" | "mixed" | "unknown" | |
| series | array<object> | |
| partialLatest | object | null | |
| source | object |
| array<string> |
| page | integer | Page served (clamped to the last page) |
| pageSize | integer |
| total | integer |
| totalPages | integer |
| excluded | object |
| results | array<object> |
BuyerProfileResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| buyerName | string | |
| summary | object | null | |
| topSuppliers | array<object> | |
| byYear | array<object> | |
| tenders | array<ProcurementRow> |
ChangesResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| type | string | null | |
| pib | string | null | |
| sort | "recent" | "eventDate" | "amount" | |
| filters | object | |
| page | integer | Page served (clamped to the last page) |
| pageSize | integer | |
| total | integer | |
| totalPages | integer | |
| requestedPage | integer | |
| typeCounts | array<object> | |
| weeklyCounts | array<object> | |
| filterOptions | object | |
| events | array<object> |
CompanyHistoryResponse| Polje | Tip | Opis |
|---|---|---|
| id | integer | |
| name | string | |
| pib | string | |
| reportId | string | null | |
| legalStatus | string | null | |
| municipality | string | null | |
| activityCode | string | null | KD 2010 activity code |
| activityName | string | null | |
| sector | string | |
| parseStatus | string | null | |
| totalIncome | number | null | Total income, EUR |
| profit | number | null | Profit or loss for the year, EUR |
| employeeCount | number | null | |
| grossPayCosts | number | null | Gross wage costs for the year, EUR (IRMS AOP 012, or AOP 210 'troškovi zarada' when 012 is missing). |
| netPayCostszastarjelo | number | null | Deprecated alias of grossPayCosts. Despite the name the value is GROSS pay costs; it stays in v1 for compatibility. |
| averagePay | number | null | Average monthly gross pay, EUR; null when not computable or the filing is flagged suspicious. |
| incomePerEmployee | number | null | |
| yearId | integer | |
| yearValue | integer | |
| year | string | |
| updatedAt | string | null | |
| officialFilingUrl | string | null | |
| logoUrl | string | null | |
| logoSourceUrl | string | null | |
| logoDomain | string | null | |
| logoConfidence | number | null | |
| identity | object | null | CRPS registry identity (latest row only) |
| companyWebsite | object | null | The company's own website and the emails, phones and social profiles it publishes (latest row only) |
| ownership | object | CRPS owners and owned companies (latest row only) |
| risk | object | null | Blocked accounts, tax-debtor lists, filing gaps and registry status (latest row only) |
| procurements | object | |
| payments | object | |
| developmentProjects | object | |
| courtActivity | object | |
| accounts | object | |
| properties | object | |
| filingPersons | object | |
| registryNotices | object | |
| verdict | object |
CompanyListResponse| Polje | Tip | Opis |
|---|---|---|
| year | string | |
| page | integer | |
| pageSize | integer | |
| total | integer | |
| previousYear | object | null | The comparison year of each row's `previous` filing; null when year − 1 has no filings. |
| companies | array<CompanyListRow> |
CompanyListRow| Polje | Tip | Opis |
|---|---|---|
| id | integer | |
| name | string | |
| pib | string | |
| reportId | string | null | |
| legalStatus | string | null | |
| municipality | string | null | |
| activityCode | string | null | KD 2010 activity code |
| activityName | string | null | |
| sector | string | |
| parseStatus | string | null | |
| totalIncome | number | null | Total income, EUR |
| profit | number | null | Profit or loss for the year, EUR |
| employeeCount | number | null | |
| grossPayCosts | number | null | Gross wage costs for the year, EUR (IRMS AOP 012, or AOP 210 'troškovi zarada' when 012 is missing). |
| netPayCostszastarjelo | number | null | Deprecated alias of grossPayCosts. Despite the name the value is GROSS pay costs; it stays in v1 for compatibility. |
| averagePay | number | null | Average monthly gross pay, EUR; null when not computable or the filing is flagged suspicious. |
| incomePerEmployee | number | null | |
| yearId | integer | |
| yearValue | integer | |
| year | string | |
| updatedAt | string | null | |
| officialFilingUrl | string | null | |
| logoUrl | string | null | |
| logoSourceUrl | string | null | |
| logoDomain | string | null | |
| logoConfidence | number | null | |
| previous | PreviousYearFiling | null | The filing for year − 1, or null when there is none (first filing, gap or placeholder) or no comparison year. |
CompanyRow| Polje | Tip | Opis |
|---|---|---|
| id | integer | |
| name | string | |
| pib | string | |
| reportId | string | null | |
| legalStatus | string | null | |
| municipality | string | null | |
| activityCode | string | null | KD 2010 activity code |
| activityName | string | null | |
| sector | string | |
| parseStatus | string | null | |
| totalIncome | number | null | Total income, EUR |
| profit | number | null | Profit or loss for the year, EUR |
| employeeCount | number | null | |
| grossPayCosts | number | null | Gross wage costs for the year, EUR (IRMS AOP 012, or AOP 210 'troškovi zarada' when 012 is missing). |
| netPayCostszastarjelo | number | null | Deprecated alias of grossPayCosts. Despite the name the value is GROSS pay costs; it stays in v1 for compatibility. |
| averagePay | number | null | Average monthly gross pay, EUR; null when not computable or the filing is flagged suspicious. |
| incomePerEmployee | number | null | |
| yearId | integer | |
| yearValue | integer | |
| year | string | |
| updatedAt | string | null | |
| officialFilingUrl | string | null | |
| logoUrl | string | null | |
| logoSourceUrl | string | null | |
| logoDomain | string | null | |
| logoConfidence | number | null |
CompanyYear| Polje | Tip | Opis |
|---|---|---|
| id | integer | |
| name | string | |
| pib | string | |
| reportId | string | null | |
| legalStatus | string | null | |
| municipality | string | null | |
| activityCode | string | null | KD 2010 activity code |
| activityName | string | null | |
| sector | string | |
| parseStatus | string | null | |
| totalIncome | number | null | Total income, EUR |
| profit | number | null | Profit or loss for the year, EUR |
| employeeCount | number | null | |
| grossPayCosts | number | null | Gross wage costs for the year, EUR (IRMS AOP 012, or AOP 210 'troškovi zarada' when 012 is missing). |
| netPayCostszastarjelo | number | null | Deprecated alias of grossPayCosts. Despite the name the value is GROSS pay costs; it stays in v1 for compatibility. |
| averagePay | number | null | Average monthly gross pay, EUR; null when not computable or the filing is flagged suspicious. |
| incomePerEmployee | number | null | |
| yearId | integer | |
| yearValue | integer | |
| year | string | |
| updatedAt | string | null | |
| officialFilingUrl | string | null | |
| logoUrl | string | null | |
| logoSourceUrl | string | null | |
| logoDomain | string | null | |
| logoConfidence | number | null | |
| identity | object | null | CRPS registry identity (latest row only) |
| companyWebsite | object | null | The company's own website and the emails, phones and social profiles it publishes (latest row only) |
| ownership | object | CRPS owners and owned companies (latest row only) |
| risk | object | null | Blocked accounts, tax-debtor lists, filing gaps and registry status (latest row only) |
| procurements | object | |
| payments | object | |
| developmentProjects | object | |
| courtActivity | object | |
| accounts | object | |
| properties | object | |
| filingPersons | object | |
| registryNotices | object | |
| verdict | object |
DatasetCatalogResponse| Polje | Tip | Opis |
|---|---|---|
| schemaVersion | string | |
| generatedAt | string | ISO 8601 date (YYYY-MM-DD) or timestamp |
| license | string | |
| methodology | string | |
| datasets | array<DatasetDefinition> |
DatasetDefinition| Polje | Tip | Opis |
|---|---|---|
| id | string | |
| title | string | |
| description | string | |
| sourceName | string | |
| sourceUrl | string | |
| cadence | string | |
| geographicCoverage | "Montenegro" | |
| temporalCoverage | string | |
| entityKeys | array<string> | |
| apiPath | string | Main endpoint (may be a URI template such as {pib}) |
| webPath | string | |
| formats | array<"json" | "csv" | "rss"> | |
| endpoints | array<object> | |
| methodology | string | |
| limitations | string | |
| commercialAccess | boolean |
DatasetResponse| Polje | Tip | Opis |
|---|---|---|
| schemaVersion | string | |
| dataset | DatasetDefinition |
DatasetStatusResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| generatedAt | string | ISO 8601 date (YYYY-MM-DD) or timestamp |
| datasets | array<object> | |
| readModels | array<object> |
DevelopmentProjectSearchResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| page | integer | Page served (clamped to the last page) |
| pageSize | integer | |
| total | integer | |
| totalPages | integer | |
| undatedExcluded | integer | |
| results | array<object> |
ErrorResponse| Polje | Tip | Opis |
|---|---|---|
| error | string | |
| message | string |
GovernmentSummaryResponseOtvoren objekat; polja zavise od izvora.
IndicatorListResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| indicators | array<object> |
IndicatorSeriesResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| slug | string | |
| topic | string | |
| metricName | string | |
| unit | "eur" | "eur_thousand" | "percent" | "index" | "persons" | |
| aggregation | "annual_average" | "annual_latest" | "annual_sum" | "annual_sum_yoy" | |
| sourceFrequency | "annual" | "quarterly" | "monthly" | "mixed" | "unknown" | |
| series | array<object> | |
| partialLatest | object | null | |
| source | object |
MoversResponse| Polje | Tip | Opis |
|---|---|---|
| metric | "revenue" | "profit" | "employees" | "pay" | |
| year | string | |
| prevYear | string | null | |
| tracked | integer | |
| stats | object | |
| gainers | array<object> | |
| losers | array<object> | |
| turnarounds | object | Loss to profit between the two years, by the profit swing, whatever the metric; with the counts both ways. |
PersonResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| person | object | |
| roles | array<object> | |
| aggregates | object | |
| sourceFetchedAt | string | null | |
| indexable | boolean |
PreviousYearFiling| Polje | Tip | Opis |
|---|---|---|
| year | string | |
| totalIncome | number | null | |
| profit | number | null | |
| employeeCount | number | null | |
| netPayCosts | number | null | |
| averagePay | number | null | |
| incomePerEmployee | number | null | |
| parseStatus | string | null |
ProcurementDetailResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| procurement | object | |
| parties | array<object> | |
| lots | array<object> | |
| statusEvents | array<object> | |
| awards | array<object> | |
| matchedPayments | object |
ProcurementRow| Polje | Tip | Opis |
|---|---|---|
| procurementId | string | |
| cejnId | integer | null | |
| title | string | |
| buyerName | string | null | |
| procedureType | string | null | |
| noticeType | string | null | |
| status | string | null | |
| lifecycleState | string | null | |
| publicationDate | string | null | |
| deadlineDate | string | null | |
| estimatedValue | number | null | |
| awardValue | number | null | |
| awardDate | string | null | |
| cpvCodes | array<string> | CEJN CPV codes (8 digits) |
| supplierNames | array<string> | |
| contractCount | integer | |
| currency | string | null | |
| sourceUrl | string | null |
ProcurementSearchResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| query | string | |
| page | integer | Page served (clamped to the last page) |
| pageSize | integer | |
| total | integer | |
| totalPages | integer | |
| valuedTotal | integer | |
| facets | object | |
| results | array<ProcurementRow> |
PublicPaymentSearchResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| query | string | |
| page | integer | |
| pageSize | integer | |
| total | integer | |
| totalPages | integer | |
| totalAmount | number | null | Sum of every matching payment, EUR (with the total) |
| nextCursor | string | null | |
| results | array<object> |
RegionalContextSummaryResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| total | integer | |
| categories | array<object> |
RegionsResponse| Polje | Tip | Opis |
|---|---|---|
| year | string | |
| coverage | object | null | |
| national | object | |
| municipalities | array<object> | |
| unassigned | object | null |
SearchResponse| Polje | Tip | Opis |
|---|---|---|
| query | string | |
| results | array<object> | |
| companyTotal | integer | |
| sectors | array<object> | |
| municipalities | array<object> | |
| tenders | array<object> |
SectorsResponse| Polje | Tip | Opis |
|---|---|---|
| year | string | |
| coverage | object | null | |
| national | object | |
| sectors | array<object> |
SupplierProfileResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| pib | string | |
| supplierName | string | null | |
| company | object | null | |
| summary | object | null | |
| awardsByYear | array<object> | |
| topBuyers | array<object> | |
| recentAwards | array<object> |
TaxDebtorsResponse| Polje | Tip | Opis |
|---|---|---|
| sourceAvailable | boolean | |
| list | string | null | |
| snapshotDate | string | null | |
| editions | array<object> | |
| page | integer | Page served (clamped to the last page) |
| pageSize | integer | |
| total | integer | |
| totalPages | integer | |
| results | array<object> |