| Endpoint | What it returns | Updated |
|---|---|---|
| /api/v1/releases | OCDS releases: plan, tender, award, contract, implementation | continuously |
| /api/v1/record/{ocid} | The whole life of one procurement in one object | continuously |
| /api/v1/parties | Buyers and suppliers with their registry identifiers | nightly |
| /api/v1/blacklist | Firms blacklisted under Act 2063 s.63, with dates | on change |
| /bulk/releases-YYYYMMDD.jsonl.gz | Everything published that day | daily, 02:00 NST |
| /bulk/contracts-FY.csv | One row per contract, flattened for spreadsheets | daily |
One connection, the topics you choose, pushed as they happen. Filter on the query string by category, sub-category, domain, district, buyer or value band.
wss://bolpatra.gov.np/api/v1/stream
No key, no connection to keep open — point a reader, a bot or a newsroom pipeline at a feed. Every list on this site has one.
https://bolpatra.gov.np/feeds/…
We post the same messages to your URL, signed with HMAC-SHA256 in X-Bolpatra-Signature, and retry for 24 hours on failure.
Register an endpoint with your key
| Topic | Fires when | Typical delay |
|---|---|---|
| tender.published | A tender becomes public | under a second |
| tender.addendum | An addendum, corrigendum or deadline change is issued | under a second |
| tender.cancelled | A tender is cancelled, with the ground | under a second |
| bid.opened | Bids are opened and the amounts read out are published | at the opening hour |
| award.published | A letter of intent or award notice is published | under a second |
| contract.signed | A contract is signed | under a second |
| contract.amended | A variation or time extension is approved | under a second |
| payment.recorded | A running bill is paid against a contract | nightly |
| blacklist.changed | A firm is blacklisted, or a listing ends | under a second |
wscat -c "wss://bolpatra.gov.np/api/v1/stream?key=…&topics=tender.published,award.published"
< {
"topic": "tender.published",
"at": "2026-01-22T15:55:33+05:45",
"ocid": "ocds-np-00413551",
"buyer": { "name": "Bharatpur Metropolitan City", "id": "np-pe-01188" },
"title": "Bharatpur water supply, phase 2",
"category": "works", "subCategory": "water-supply",
"district": "chitwan", "method": "ncb",
"value": { "amount": 180000000, "currency": "NPR" },
"closes": "2082-07-21T12:00:00+05:45",
"url": "https://bolpatra.gov.np/process/ocds-np-00413551"
}| Feed | What it carries | Format |
|---|---|---|
| /feeds/tenders.xml | Every tender as it is published | RSS 2.0 and Atom |
| /feeds/tenders/bagmati.xml | One province — swap the name for any of the seven | RSS 2.0 |
| /feeds/tenders/kathmandu.xml | One district — any of the 77 | RSS 2.0 |
| /feeds/tenders/works.xml | One category, or …/works/roads-and-bridges.xml for a sub-category | RSS 2.0 |
| /feeds/buyer/np-pe-00214.xml | Everything one public entity does | RSS 2.0 |
| /feeds/supplier/np-sup-07714.xml | Every award and contract to one supplier | RSS 2.0 |
| /feeds/awards.xml | Awards and letters of intent | RSS 2.0 |
| /feeds/notices.xml | Addenda, corrigenda, cancellations and PPMO notices | RSS 2.0 |
| /feeds/search/{id}.xml | Any saved search, as its own feed | RSS 2.0 |
Nothing arrives early. A tender appears on the stream at the same moment it appears on this site; bid amounts appear at the opening hour and not a second before. There is no feed that carries an unopened bid, for anyone, at any price.
You cannot miss a message. Reconnect with ?since=<cursor> and everything from that point is replayed. Cursors are good for 30 days.
Limits. Five concurrent connections and 50 topics per key; feeds are cached for 60 seconds and carry the last 200 items. Ask if you need more — this is public data and we would rather you streamed it than scraped it.
GET /api/v1/releases?dateFrom=2082-07-01&buyer=DoR
Accept: application/json
{
"uri": "https://bolpatra.gov.np/api/v1/releases?...",
"publishedDate": "2026-01-22T15:55:33+05:45",
"releases": [{
"ocid": "ocds-np-00412987",
"date": "2082-08-03",
"tag": ["award"],
"buyer": { "name": "Department of Roads", "id": "np-pe-00214" },
"tender": { "status": "complete", "value": { "amount": 240000000, "currency": "NPR" } },
"awards": [{ "suppliers": [{ "name": "Siddhi Construction Pvt. Ltd." }],
"value": { "amount": 225000000, "currency": "NPR" } }]
}]
}Public data needs no key. A key raises the rate limit from 60 to 3,000 requests an hour and lets you subscribe to changes.
Personal data is never in the API: no citizenship numbers, no individual bidders’ addresses, no staff contact details.
Unopened bids are not data. Nothing about a bid exists in the API before the opening hour.
Licence: open, attribution to PPMO. Identifiers are stable; an ocid never changes or is reused.
• Daily snapshot of the whole dataset
• The flag definitions, as code
• Uptime and incident history
• A changelog for every schema change, 90 days ahead