Gob APIcomunidad.comprasdominicana.gob.do ↗
Search and retrieve Dominican Republic public procurement notices via 2 endpoints. Access contracting authority, budget, scheduling, and procurement phase data.
What is the Gob API?
This API provides access to contract notices published on the Dominican Republic's Electronic Government Procurement System (SECP) through 2 endpoints. The search_contract_notices endpoint returns paginated lists of up to 100 notices per page, each including reference codes, contracting authority, current phase, and a notice_uid that feeds directly into get_contract_notice_detail for full budget, scheduling, and procurement object information.
curl -X GET 'https://api.parse.bot/scraper/0e945d73-710d-4896-8f3c-9748ffc14cbb/search_contract_notices?query=medicamentos&status=3' \ -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 comunidad-comprasdominicana-gob-do-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: Dominican Republic procurement — search notices, drill into details."""
from parse_apis.comunidad_comprasdominicana_gob_do_api import (
DominicanProcurement,
NoticeStatus,
NoticeNotFound,
)
client = DominicanProcurement()
# Search published contract notices for medical supplies, cap at 5 results.
for summary in client.contract_notice_summaries.search(
query="medicamentos", status=NoticeStatus.PUBLISHED, limit=5
):
print(summary.reference, summary.description, summary.base_price)
# Drill into the first published notice for full scheduling and budget.
first = client.contract_notice_summaries.search(
query="medicamentos", status=NoticeStatus.PUBLISHED, limit=1
).first()
if first is not None:
detail = first.details()
print(detail.request_name, detail.procedure_type, detail.state)
print("public:", detail.is_public)
print("budget:", detail.budget.total_value, detail.budget.source_of_funds)
for milestone, date in detail.scheduling.items():
print(f" {milestone}: {date}")
# Point lookup by a uid discovered from the search above.
if first is not None:
try:
notice = client.contract_notices.get(notice_uid=first.notice_uid)
print(notice.notice_uid, notice.type_of_contract, notice.place_of_works)
except NoticeNotFound:
print("notice no longer available")
print("exercised: contract_notice_summaries.search / details / contract_notices.get")
Search and list public contract notices from the Dominican Republic government procurement portal. Returns up to 100 notices per page, ordered by official publish date descending. Each result includes a notice_uid that can be passed to get_contract_notice_detail for full information. When called without a query, returns all recent contract notices.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. Each page returns up to 100 results. Check has_more in the response to determine if more pages are available. |
| query | string | Keyword search terms to filter contract notices (e.g. 'medicamentos', 'combustible'). Omitting returns all recent notices. |
| status | string | Filter by contract notice status. The value is the numeric status code. Omitting returns all statuses. |
| procedure | string | Filter by procurement procedure type. Omitting returns all procedure types. |
{
"type": "object",
"fields": {
"page": "current page number",
"count": "number of notices returned on this page",
"notices": "array of contract notice summaries, each containing notice_uid, contracting_authority, reference, description, current_phase, official_publish_date, replies_deadline, base_price, status, and country",
"has_more": "whether additional pages of results are available"
},
"sample": {
"data": {
"page": 1,
"count": 200,
"notices": [
{
"status": "ClosedForReplies",
"country": "REPÚBLICA DOMINICANA",
"reference": "HPPEM-DAF-CD-2026-0154",
"base_price": "150,000 Dominican Pesos",
"notice_uid": "DO1.NTC.1763623",
"description": "ADQUISICION DE MEDICAMENTOS PARA USO EN ESTE CENTRO HOSPITALARIO",
"current_phase": "Fase del Pliego de Condiciones Específicas",
"replies_deadline": "01/09/2026 14:18",
"contracting_authority": "Hospital Provincial Dr. Pedro E. Marchena",
"official_publish_date": "01/09/2026 14:15"
}
],
"has_more": true
},
"status": "success"
}
}About the Gob API
What the API Returns
The search_contract_notices endpoint queries the SECP portal for active and historical procurement notices. Each result in the notices array includes a notice_uid, contracting_authority, reference, description, and current_phase. The has_more flag tells you whether to paginate with the page parameter. You can narrow results by keyword using the query parameter (e.g., 'medicamentos' or 'combustible'), by numeric status code, or by procedure type.
Detail Records
get_contract_notice_detail accepts a notice_uid (e.g., DO1.NTC.1763729) and returns the full notice record. This includes a budget object covering expenditure objective, source of funds, and monetary values; a scheduling object mapping milestone names to DD/MM/YYYY HH:MM:SS timestamps; the base_price with currency; state (e.g., Published, ClosedForReplies, Awarded); and is_public flag. The request_name and description fields give the human-readable procurement title and scope.
Coverage and Scope
All notices originate from comunidad.comprasdominicana.gob.do, the official Dominican Republic government procurement portal. Results span multiple procedure types and contracting authorities across Dominican public institutions. Notices are ordered by official publish date descending, so the most recently published records appear first on page 1.
The Gob API is a managed, monitored endpoint for comunidad.comprasdominicana.gob.do — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when comunidad.comprasdominicana.gob.do 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 comunidad.comprasdominicana.gob.do 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 newly published Dominican Republic government tenders by polling search_contract_notices ordered by publish date.
- Filter procurement notices by keyword (e.g., 'construcción') to track contracts relevant to a specific sector.
- Pull full budget values and source-of-funds data from get_contract_notice_detail to analyze government spending by institution.
- Extract scheduling milestones from the scheduling object to build deadline alerts for bid submission windows.
- Aggregate contracting_authority fields across pages to map procurement activity by Dominican public institution.
- Track notices by state (Published, ClosedForReplies, Awarded) to follow the lifecycle of a specific procurement.
- Compile reference codes and base prices across procedure types for supplier market intelligence in the Dominican Republic.
| 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 comprasdominicana.gob.do have an official developer API?+
What does the status filter in search_contract_notices actually accept?+
status parameter takes a numeric status code as a string. The endpoint does not return an enumerated list of valid codes, so you may need to observe codes from existing notices to know which values are in use. Omitting the parameter returns notices across all statuses.Does the detail endpoint return awarded supplier or vendor information?+
get_contract_notice_detail returns budget details, scheduling milestones, base price, procurement phase, and state — but does not expose awarded vendor names or contract award amounts. You can fork this API on Parse and revise it to add an endpoint targeting award notice records.Is there a limit to how many notices search_contract_notices returns per page?+
page integer parameter to step through results and check the has_more boolean in each response to determine whether further pages exist.