POST /api/ezamowienia/notices/search
Price: 20 credits
Search the Polish Public Procurement Bulletin (BZP) on e-Zamówienia — contract notices, result notices, contract updates, contract-performance reports, small-contract notices, procurement plans and the above-threshold notices published on TED — by keyword, title, notice type, notice number, EU-threshold flag, contract type, procedure and buyer type, CPV code, procedure outcome, buyer and contractor name, tax id, city, province and country, publication date and submission deadline, with the buyer, winners, CPV codes, deadline and procedure id of each notice.
A query returns at most its first 3,000 hits, 2,000 with a deadline sort, so narrow a wide search with published_from/published_to or notice_type to reach the tail. Result notices list their winners in contractors. Pass the id of a row to ezamowienia/notices for the full notice text with prices, and its tender_id to ezamowienia/tenders for the procedure with lots, deadlines and documents.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)count integer required — Max number of results, at most 2,000 with a deadline sort (min: 1; max: 3000)keyword string nullable — Full-text keyword (examples: "remont"; minLength: 1)notice_type string nullable — National notice type (one of: "ContractNotice", "AgreementIntentionNotice", "TenderResultNotice", "CompetitionNotice", "CompetitionResultNotice", "NoticeUpdateNotice", "ConcessionNotice", "ConcessionAgreementNotice", "ConcessionUpdateAgreementNotice", "NoticeUpdateConcession", "AgreementUpdateNotice", "ContractPerformingNotice", "CircumstancesFulfillmentNotice", "SmallContractNotice", "TenderPlanNotice")eforms_subtype string nullable — eForms notice subtype of a notice published on TED (examples: "16", "29", "E4")notice_number string nullable — BZP notice number (examples: "2026/BZP 00453287")below_eu_threshold boolean nullable — Procurement value below the EU thresholdorder_type string nullable — Contract type (one of: "works", "services", "supplies")tender_type string nullable — Procedure type code (examples: "1.1.1")client_type string nullable — Buyer type code (examples: "1.1.2")cpv string nullable — CPV code (examples: "45000000-7", "45000000")procedure_result string nullable — Outcome of a result notice (one of: "contract_concluded", "cancelled")buyer_name string nullable — Buyer name (examples: "Gmina Chodzież"; minLength: 1)buyer_nip string nullable — Buyer tax id (NIP) (examples: "6070016311")buyer_city string nullable — Buyer city (examples: "Bydgoszcz"; minLength: 1)buyer_province string nullable — Buyer province code (examples: "PL30")buyer_country string nullable — Buyer country code (examples: "PL")contractor_name string nullable — Contractor name (examples: "STEK"; minLength: 1)contractor_nip string nullable — Contractor tax id (NIP) (examples: "8762462772")contractor_city string nullable — Contractor city (examples: "Grudziądz"; minLength: 1)contractor_province string nullable — Contractor province code (examples: "PL22")contractor_country string nullable — Contractor country code (examples: "DE")published_from string nullable — Earliest publication date, inclusive (examples: "2026-09-01")published_to string nullable — Latest publication date, inclusive (examples: "2026-09-10")deadline_from string nullable — Earliest submission deadline date, inclusive (examples: "2026-10-01")deadline_to string nullable — Latest submission deadline date, inclusive (examples: "2026-10-10")sort string — Result order (default: "newest"; one of: "newest", "oldest", "deadline_earliest", "deadline_latest")@type string (default: "EzamowieniaNoticeSummary")id string requirednotice_number string nullablebzp_number string nullablenotice_type string nullableted_notice_type string nullableorder_type string nullabletender_type string nullableclient_type string nullableis_below_eu_threshold boolean nullablecpv array (default: [])@type string (default: "EzamowieniaCode")code string requiredname string nullablepublished_at integer nullablesubmission_deadline_at integer nullableprocedure_results array (default: [])buyer object nullable@type string (default: "EzamowieniaBuyer")id string nullablename string nullablenational_id string nullablenip string nullableregon string nullablecity string nullableprovince string nullablecountry string nullablecontractors array (default: [])@type string (default: "EzamowieniaContractor")name string nullablenational_id string nullablenip string nullableregon string nullablecity string nullableprovince string nullablecountry string nullabletender_id string nullableform_id string nullablebase_notice_form_id string nullabletechnical_notice_form_id string nullabletender_plan_number string nullableis_manually_linked_with_tender boolean nullableis_outdated boolean nullableted_pdf_url string nullablecountry string (default: "PL")url string required422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — The entity was not found, or a precondition failed Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.