Monitorul Oficial APImonitoruloficial.ro ↗
Retrieve Romanian Official Gazette issues by date, parse PDF act content, search professional announcements, and browse the legislative archive via 9 endpoints.
What is the Monitorul Oficial API?
The Monitorul Oficial API gives developers structured access to Romania's Official Gazette through 9 endpoints covering issue discovery, full-text PDF extraction, and professional announcements. Use get_issues_by_date to retrieve all gazette parts and issue URLs published on a given date, or get_act_full_text to extract the complete body text of every act within a specific issue PDF — including laws, government decisions, and orders.
curl -X GET 'https://api.parse.bot/scraper/f1b442b7-eed8-42bf-8685-13a6c4c3c8e5/get_issues_by_date?date=2026-09-30' \ -H 'X-API-Key: $PARSE_API_KEY'
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. Supplementary 'bis' issues of Partea I are listed inside the Partea I part with a 'Bis' suffix on issue_number (e.g. '771Bis') and their own URL, so they are covered without a separate part. 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 (string, e.g. '771' or '771Bis') and url)"
},
"sample": {
"data": {
"date": "2026-07-09",
"parts": [
{
"issues": [
{
"url": "https://monitoruloficial.ro/Monitorul-Oficial--PI--564--2026.html",
"issue_number": "564"
}
],
"part_name": "Partea I"
}
]
},
"status": "success"
}
}About the Monitorul Oficial API
Gazette Issue Discovery
The get_issues_by_date endpoint accepts a date parameter in YYYY-MM-DD format and returns a parts array covering all gazette sections published that day: Partea I, II, III, IV, VI, VII, and the Hungarian-language edition (Maghiară). Each part object contains an issues array with issue_number and url fields. Dates with no publications return an empty parts array. To scan an entire month, get_emonitor_calendar takes year and month integers and returns a published_dates array showing which dates had publications and which part names appeared — useful for building publication calendars without fetching each issue individually.
Date Range and PDF Content
get_legislative_modifications_range retrieves all issues within a date window specified by start_date and end_date. The range is capped at 31 days; any end_date beyond that limit is silently truncated, and the actual end_date used is echoed back in the response alongside the publications array. Once you have an issue URL from these endpoints, pass it to get_issue_content to get the table of contents (SUMAR) — returning acts with act_number, title, category, and page numbers — or to get_act_full_text to receive the complete full_text of each act parsed from the PDF. get_issue_pdf_url resolves the direct PDF download URL along with file_name, size_bytes, content_type, and the download_headers (Referer) required to fetch it.
Announcements and Bookstore
get_announcements searches Partea a IV-a professional announcements by cui (company ID) or nr (Monitorul Oficial registration number), returning up to 10 recent results including NR_INR_MO, CUI, NR_MO, and DATA_MO fields. The get_products endpoint browses the official bookstore via WooCommerce, returning up to 24 products per page with title, price in RON, url, and image; a category slug parameter (e.g. juridice, constitutii) filters by product category. search_site runs a keyword query across both products and articles site-wide, returning paginated results with type, title, price (for products), url, and snippet.
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 legislative output by polling
get_issues_by_dateand alerting on new parts published for a given date - Extract full text of government ordinances and laws from gazette PDFs using
get_act_full_textfor legal research pipelines - Build a monthly legislative calendar by scanning
get_emonitor_calendarfor dates with at least one published gazette part - Verify a company's official announcements by querying
get_announcementswith a CUI and retrieving recent Partea IV entries - Archive a rolling 31-day window of gazette issues using
get_legislative_modifications_rangefor compliance auditing - Resolve and download gazette PDFs programmatically via
get_issue_pdf_url, which returns the direct URL, file size, and required headers - Search for Romanian legal publications and bookstore titles together using
search_sitewith keyword queries
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Monitorul Oficial provide an official developer API?+
What does `get_issue_content` return compared to `get_act_full_text`?+
get_issue_content returns the table of contents (SUMAR) from the first page of a gazette PDF — each act's act_number, title, category, and page range — without the body text. get_act_full_text goes further and returns the complete full_text string for each act parsed across all pages. Use get_issue_content when you only need to know what acts appear in an issue; use get_act_full_text when you need the actual legislative text for search or analysis.Is the date range for `get_legislative_modifications_range` truly unlimited?+
end_date you supply is more than 31 days after start_date, it is silently truncated to start_date plus 31 days. The response echoes the actual end_date used so you can detect truncation and paginate with a new start_date.Does the API expose the full text of gazette issues older than the current year?+
get_issues_by_date will return issue URLs for dates that have published parts. However, PDF parsing via get_act_full_text and get_issue_content depends on the PDF being accessible at the URL returned — older issues may not always be available. The API does not expose a dedicated historical archive search endpoint. You can fork it on Parse and revise to add an endpoint targeting the gazette's historical search interface.Can I filter `get_announcements` results by date or announcement type?+
get_announcements accepts only cui (company ID) or nr (registration number) as filters and returns the 10 most recent matching entries. Filtering by date range or announcement category is not supported. You can fork the API on Parse and revise it to add date or type filtering to the announcements endpoint.