Monitorul Oficial APImonitoruloficial.ro ↗
Retrieve Romanian Official Gazette issues by date, browse legislative modifications, check publication calendars, search company announcements, and access the bookstore.
What is the Monitorul Oficial API?
This API provides structured access to monitoruloficial.ro across 6 endpoints, covering gazette issue retrieval, publication calendars, date-range legislative modifications, professional announcements, and an online bookstore. The get_issues_by_date endpoint returns gazette parts (Partea I through VI) with their issue numbers and URLs for any given date, making it straightforward to track daily Romanian official publications.
curl -X GET 'https://api.parse.bot/scraper/f1b442b7-eed8-42bf-8685-13a6c4c3c8e5/get_issues_by_date?date=2026-07-06' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace monitoruloficial-ro-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: MonitorulOficial SDK — bounded, re-runnable; every call capped."""
from parse_apis.monitorul_oficial_api import (
MonitorulOficial, SearchResultType, AnnouncementSearchRequired
)
client = MonitorulOficial()
# Browse legal bookstore products — limit caps total items fetched.
for product in client.products.list(category="juridice", limit=3):
print(product.title, product.price)
# Search the site for fiscal code publications.
result = client.searchresults.search(query="Codul Fiscal", limit=1).first()
if result:
print(result.title, result.type, result.url)
# Fetch gazette issues for a specific date via the constructible GazetteDaySummary.
summary = client.gazettedaysummary(date="2026-04-23")
day = summary.details()
for part in day.parts:
print(part.part_name, len(part.issues))
# List gazette days in a date range.
for gazette_day in client.gazettedays.list_range(
start_date="2026-04-21", end_date="2026-04-23", limit=3
):
print(gazette_day.date, len(gazette_day.parts))
# Search professional announcements by company CUI with typed error handling.
try:
ann = client.announcements.search(cui="14942091", limit=1).first()
if ann:
print(ann.nr_inr_mo, ann.cui, ann.data_mo)
except AnnouncementSearchRequired as exc:
print(f"input error: {exc}")
print("exercised: products.list / searchresults.search / gazettedaysummary.details / gazettedays.list_range / announcements.search")
Retrieve gazette issues for a specific date. Returns parts (Partea I, II, III, IV, VI, VII, Maghiară) and their issue numbers with URLs. Each part contains zero or more individually-numbered issues. Dates without publications return an empty parts array. The date defaults to today (UTC) when omitted.
| Param | Type | Description |
|---|---|---|
| date | string | Publication date in YYYY-MM-DD format. Defaults to today's date (UTC) if omitted. |
{
"type": "object",
"fields": {
"date": "string in YYYY-MM-DD format",
"parts": "array of objects containing part_name (string) and issues (array of objects with issue_number and url)"
},
"sample": {
"data": {
"date": "2026-04-23",
"parts": [
{
"issues": [
{
"url": "https://monitoruloficial.ro/Monitorul-Oficial--PI--321--2026.html",
"issue_number": "321"
}
],
"part_name": "Partea I"
},
{
"issues": [
{
"url": "https://monitoruloficial.ro/Monitorul-Oficial--PIM--16--2026.html",
"issue_number": "16"
}
],
"part_name": "Partea I Maghiară"
}
]
},
"status": "success"
}
}About the Monitorul Oficial API
Gazette Issues and Legislative Modifications
The get_issues_by_date endpoint accepts a date parameter in YYYY-MM-DD format (defaulting to today) and returns a parts array whose objects include part_name (e.g., "Partea I", "Partea a IV-a") and nested issues with issue_number and url. Dates with no publications return an empty parts array. For bulk retrieval, get_legislative_modifications_range accepts start_date and end_date and returns all publications grouped under a publications array — each entry contains a date and the same part/issue structure. The range is hard-capped at 31 days; if the supplied end_date exceeds that, it is silently adjusted and reflected in the response's end_date field alongside a note.
Publication Calendar
get_emonitor_calendar accepts a year and month (1–12) and scans every day in that month, returning a published_dates array of objects with date (YYYY-MM-DD) and parts (an array of part name strings). This is useful for building monthly calendars of gazette activity or detecting publication gaps. Be aware that response time scales with days scanned — a full 31-day month takes several seconds.
Announcements and Site Search
get_announcements searches Partea a IV-a professional announcements by either cui (company tax ID) or nr (Monitorul Oficial registration number). It returns up to 10 recent matches, each with fields including NR_INR_MO, CUI, NR_MO, and DATA_MO. At least one of the two query parameters must be provided. The search_site endpoint runs a keyword query across the full portal and returns paginated results mixing product and article types, each with title, type, price (or null), url, and snippet.
Bookstore
get_products exposes the WooCommerce-backed online bookstore, returning up to 24 products per page. Results include title, price (in RON), url, and image. An optional category slug parameter filters by topic — documented examples include juridice, colectii-de-arta, and constitutii. Omitting the category returns all available products.
The Monitorul Oficial API is a managed, monitored endpoint for monitoruloficial.ro — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when monitoruloficial.ro changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official monitoruloficial.ro API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor daily Romanian legislative activity by polling
get_issues_by_datefor newly published gazette parts. - Build a monthly publication calendar by calling
get_emonitor_calendarwith a given year and month. - Audit a company's official announcements by querying
get_announcementswith its CUI. - Retrieve all gazette issues within a rolling 31-day window using
get_legislative_modifications_rangefor compliance reporting. - Search the official bookstore for legal or constitutional publications using
get_productswith a category slug likejuridice. - Cross-reference gazette articles and bookstore products in a single query using
search_sitewith relevant keywords. - Track which gazette parts (Partea I–VI) were published on a specific date for legal research pipelines.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does monitoruloficial.ro have an official developer API?+
What does `get_announcements` return, and what parameters does it require?+
get_announcements returns up to 10 recent Partea a IV-a professional announcements matching a company. Each result includes NR_INR_MO (registration number), CUI (company tax ID), NR_MO (gazette issue number), and DATA_MO (publication date). You must supply at least one of cui or nr; omitting both will not return results.What is the maximum date range for `get_legislative_modifications_range`?+
end_date is more than 31 days after start_date, the API automatically adjusts end_date to start_date + 31 days and reflects the actual dates used in the response fields alongside a note string.Does the API expose the full text or PDF content of individual gazette issues?+
part_name, issue_number, and url — rather than parsed document text or PDF binaries. The url field links to the source document on monitoruloficial.ro. You can fork this API on Parse and revise it to add an endpoint that fetches and parses the content at those URLs.