Korean Public Procurement Tenders (KONEPS) — English
Pricing
from $3.00 / 1,000 bid notice records
Korean Public Procurement Tenders (KONEPS) — English
Korean government tenders from KONEPS (나라장터): bid notices with deadlines and prices, award winners, and bid-opening results, filtered by keyword, agency, region or price, as English-labeled JSON. Bring your free data.go.kr key; pay per record.
Pricing
from $3.00 / 1,000 bid notice records
Rating
0.0
(0)
Developer
Stepzu
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Korean Public Procurement Tenders (KONEPS / 나라장터) — English
South Korea buys well over 200 trillion won of goods, construction and services a year through KONEPS (나라장터), the national e-procurement system run by the Public Procurement Service. Every tender is published there — and only in Korean, behind field names like bidNtceNo and presmptPrce, spread across two APIs with 48 operations that each cover one procurement category.
This Actor turns that into clean JSON that a supplier, a bid-intelligence platform or an AI agent can use directly: English-labeled fields, ISO timestamps in Korean time, amounts as numbers, attached documents as {name, url} pairs, and a rule-based English gloss of every title alongside the Korean original. No API key is needed; pay only for the records you receive.
What you can pull
- Bid notices — title, announcing and end-user agency, contract method, estimated price and budget, qualification / bid / opening deadlines, region and industry restrictions, product classification, quantities, delivery terms, attached specification documents, contact person, and a link to the notice. Category-specific fields include construction site / PQ / main-work details, service classifications, and foreign-procurement product sequence numbers.
- Awards — winning company (name, business number, address, phone), award amount and rate, number of bidders, opening date.
- Bid-opening results — the first-ranked bidder (name, business number, bid amount, bid rate), number of participants, progress status and reserve-price availability.
All three cover the four procurement categories: goods (물품), construction works (공사), services (용역) and foreign procurement (외자).
No API key needed
Leave data.go.kr service key empty to fetch live data with the Actor's built-in shared key. Fair use is capped at 200 API requests per run; add your own key only when you need a larger run. If no dates or notice numbers are supplied, the Actor fetches the latest seven KST calendar days. Set useSampleData: true to return bundled, contact-free sample records without an API call or record charge.
Why a Korean proxy
data.go.kr rejects connections from outside South Korea, so live Apify runs default to an Apify Residential proxy in Korea while local runs remain direct. The service key stays inside the end-to-end TLS connection to apis.data.go.kr, so the proxy cannot read it.
Tutorial
- Choose What to fetch and the categories. Leave the dates empty for the latest seven days, or set a date range (split into windows of at most 31 days automatically).
- Add filters — a Korean keyword such as
드론orCCTV, an agency name, a region, a price band, orinternationalfor tenders open to foreign bidders. - Or skip the date range and list specific notice numbers to look up known tenders.
- Run. Results land in the dataset with
notices,awards, andopening_resultstable views; download as JSON, CSV or Excel, or call the Actor from an AI agent through the Apify MCP server.
A cheap first test: mode bid_notices, categories goods, last seven days, keyword 소프트웨어, max results 20, and API request budget 1. That is at most one request from your quota.
Optional: use your own key (Korean residents)
data.go.kr account registration requires Korean identity verification. Eligible users can apply for 조달청_나라장터 입찰공고정보서비스 and 조달청_나라장터 낙찰정보서비스, then paste either the Encoding or Decoding key into serviceKey. An input key takes priority over the built-in shared key and removes the 200-request per-run fair-use cap; the upstream daily quota still applies.
Use from Claude, ChatGPT or any MCP agent
Add this Actor to an AI agent through the Apify MCP server — no code needed:
https://mcp.apify.com?tools=elpalaiso/koneps-korea-tenders
In Claude Desktop: Settings → Connectors → Add custom connector → paste the URL and approve the Apify login. Then ask, for example:
- "Find Korean government tenders for drones (드론) posted this month that are still open, with deadlines and estimated prices."
- "Who won public CCTV tenders in Korea in August, and at what award rate?"
- "List service tenders over 500 million KRW from Seoul city agencies opening next week."
No API key is needed: the agent uses the built-in shared key for live data, subject to the 200-request per-run fair-use cap. Korean residents may optionally provide serviceKey; it is stored encrypted in the run input and only sent to apis.data.go.kr. To inspect the output shape without a live API call or record charge, set useSampleData: true.
Pricing
You pay per record delivered:
- Bid notice (
bid-notice) - Award (
award) - Bid-opening result (
opening-result)
Empty windows cost nothing. Set a maximum total charge on the run to cap spend; the Actor stops cleanly when it is reached and reports how many records were saved. Each page of up to 999 rows is one request against the data.go.kr quota. Set requestBudget to cap all HTTP attempts, including retries. With your own key, 0 means unlimited; with the built-in shared key, 0 applies the 200-request fair-use cap. When the budget is reached, the Actor exits normally and keeps partial results.
Input and output examples
Input for international-open goods and service tenders posted in July 2025:
{"mode": "bid_notices","categories": ["goods", "service"],"startDate": "2025-07-01","endDate": "2025-07-31","international": "international"}
includeContacts defaults to true. Set it to false to omit notice contact names, phones and emails, plus award-winner CEO names and phones. pageSize is capped at 999 because the upstream API silently resets larger values to 10; maxWindowDays is capped at 31 because longer API windows are rejected. requestBudget is a non-negative integer: a positive value stops before the next request once that many API attempts have been made. 0 is unlimited only with your own key; it becomes 200 with the shared key.
One output record (abridged):
{"record_type": "bid_notice","category": "goods","notice_id": "R25BK00940072-000","title_ko": "스키장 고객용 전자 물품보관함 구매","title_en_gloss": "ski resort for customers electronic locker purchase","title_en_quality": "full","agency_ko": "조달청 강원지방조달청","demand_agency_ko": "(주)강원랜드","contract_method_ko": "제한경쟁","posted_at": "2025-07-04T11:12:46+09:00","bid_close_at": "2025-07-15T14:00:00+09:00","opening_at": "2025-07-15T15:00:00+09:00","estimated_price_krw": 205550000,"budget_krw": 227930550,"is_international": false,"documents": [{ "name": "사양서 등.zip", "url": "https://www.g2b.go.kr/pn/pnp/pnpe/UntyAtchFile/downloadFile.do?..." }],"notice_url": "https://www.g2b.go.kr/link/PNPE027_01/simple?bidPbancNo=R25BK00940072&bidPbancOrd=000"}
Award records carry winner_name_ko, winner_business_no, award_amount_krw, award_rate_pct, participants_count and opened_at. Opening-result records carry a bidders array of { name_ko, business_no, ceo_ko, bid_amount_krw, bid_rate_pct } — the live API returns only the first-ranked bidder in opengCorpInfo, so the array has at most one entry; participants_count gives the total number of bidders.
Construction notices add construction_site_region_ko, pq_evaluation_required, main_construction_type_ko and main_construction_estimated_price_krw; service notices add service_division_ko and public-procurement classification fields; foreign notices add product_sequence_no.
Recommendations
title_en_glossis a vocabulary gloss, not a translation. Use it to triage and route; usetitle_ko(and the attached documents) for anything you act on.title_en_qualityreports how much of the Korean title was glossed:fullmeans at least 70% of Hangul characters were mapped (what remains is typically a proper name — school, agency, place),partialmeans 40–69%, andnonemeans less than 40% (no gloss text is emitted).- Search filters (keyword, agency, region, price band, international) use the KONEPS search operations, whose date range is the posting date or the opening date.
registeredandchangeddate types use the basic operations and cannot be combined with filters. - Keep windows to what you need. A busy month has tens of thousands of goods notices; filter by keyword or agency, or set
maxItemswhile exploring. - The shared and user-supplied keys have upstream daily quotas. If the gateway reports code 22, the run status identifies which key source and service reached its quota and reports how many records were already saved. The shared quota resets at 00:00 KST. Transient HTTP 429 responses are retried after the server's
Retry-Afterdelay. - Times are Korea Standard Time (
+09:00). Deadlines matter:bid_close_atis when bids stop being accepted,opening_atwhen they are opened. - Winner and contact details are the same public data shown on the KONEPS website; handle them under your own data-protection obligations, or set
includeContacts: falseto omit the contact fields described above.
FAQ
Is this legal? Yes. The data comes from official data.go.kr APIs published by the Public Procurement Service with an unrestricted licence (이용허락범위: 제한 없음). The Actor uses its protected shared key or your optional key only to access those official APIs.
Why do I get "No data" for a window? Nothing matched — common for foreign in short windows or narrow keywords. Widen the range or drop a filter.
Why does my key fail with gateway error 30? The key is wrong, or it was pasted in a form the portal does not accept. Paste the Decoding key from your data.go.kr application page; the Actor also accepts the Encoding form.
Can I get the full tender documents? The Actor returns the attachment names and download URLs (documents), which you can fetch directly. Change histories, licence limits, and price-formula details are available from further KONEPS operations and can be added on request.
Can an AI agent use this? Yes. Add the Actor to the Apify MCP server and Claude, Cursor or any MCP client can query Korean tenders in plain language.