POST /api/riigihanked/tenders
Price: 10 credits
Get one procurement from the Estonian public procurement register by its id, register URL or reference number: name and description, state, procedure, contract type, sector, buyer and co-procurers with registry codes, CPV codes, estimated, contracted and actual value, key dates, every part with value, duration, CPV and place of performance, published notices with TED numbers, contracts with contractor, value, period and offer counts, and offer statistics.
Pass the id of a riigihanked/tenders/search row as tender, or the six-digit reference number as reference_number, never both. suppliers lists the contractors of the procurement's contracts.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)tender string nullable — Procurement id or register URL (examples: "10845404", "https://riigihanked.riik.ee/rhr-web/#/procurement/10845404/general-info")reference_number string nullable — Procurement reference number (examples: "315814")@type string (default: "RiigihankedTender")id string requiredreference_number string nullabledescription string nullablestatus string nullablestage string nullablecontract_type string nullableprocedure_type string nullablebuyer object nullable@type string (default: "RiigihankedOrganisation")name string requiredregistry_code string nullablecountry string nullablerole string nullablecpv_name string nullabledates object nullable@type string (default: "RiigihankedTenderDates")published_at integer nullabledeadline_at integer nullableopening_at integer nullablenotices_count integer nullablecontracts_count integer nullabledisputes_count integer nullableis_e_procurement boolean nullableis_multi_stage boolean nullableis_green boolean nullableis_suspended boolean nullablehas_parts boolean nullablestart_basis string nullablecountry string (default: "EE")url string requiredbuyer_id string nullableorganisers array (default: [])@type string (default: "RiigihankedOrganisation")name string requiredregistry_code string nullablecountry string nullablerole string nullablesuppliers array (default: [])@type string (default: "RiigihankedOrganisation")name string requiredregistry_code string nullablecountry string nullablerole string nullablesector string nullablecpv array (default: [])@type string (default: "RiigihankedCpv")code string requiredname string nullablevalue object nullable@type string (default: "RiigihankedValue")amount number nullablecurrency string nullablecontracted_value object nullable@type string (default: "RiigihankedValue")amount number nullablecurrency string nullableactual_value object nullable@type string (default: "RiigihankedValue")amount number nullablecurrency string nullabledescription_en string nullableresponsible_person string nullableorganization_reason string nullableprocedure_justification string nullableending_code string nullableadditional_info string nullableadditional_info_en string nullableadditional_languages array (default: [])prior_procurement_id string nullableprior_procurement_reference_number string nullableprior_procurement_title string nullableprocurement_plan_references array (default: [])duration_type string nullableduration_months integer nullableduration_days integer nullableis_divided_into_parts boolean nullablenot_divided_reason string nullableno_electronic_offer_reason string nullableparts_count integer nullableparts_per_offer_max integer nullablemax_contracts_per_tenderer integer nullablecentral_procurer_role string nullablecentral_purchasing_type string nullableis_dynamic_purchasing_system boolean nullableis_linked_to_dps boolean nullableis_linked_procurement boolean nullableis_without_notice boolean nullableis_classified boolean nullableis_electronic_ordering boolean nullableis_contract_signed_by_related_authority boolean nullableis_over_threshold boolean nullableis_eu_notice boolean nullableis_wto boolean nullableis_joint_procurement boolean nullableis_central_purchasing boolean nullableis_framework_single boolean nullableis_framework_multiple boolean nullableis_electronic_offer boolean nullableis_electronic_invoicing boolean nullableis_repeated boolean nullabledocuments_url string nullableuuid string nullableversion_id string nullableparts array (default: [])@type string (default: "RiigihankedPart")number integer nullabledescription string nullableinfo string nullablestatus string nullablevalue object nullable@type string (default: "RiigihankedValue")amount number nullablecurrency string nullableduration_months integer nullableduration_days integer nullableending_code string nullablecpv array (default: [])@type string (default: "RiigihankedCpv")code string requiredname string nullableplaces array (default: [])@type string (default: "RiigihankedPlace")nuts string nullablenuts_level3 array (default: [])region string nullabledescription string nullablelocation string nullablecriterion_method string nullableframework_agreement string nullableframework_part_id string nullableframework_part_number integer nullableframework_part_title string nullableparticipants_max_count integer nullablequestions_count integer nullablerenewal_description string nullablerenewal_limit integer nullableenvironmental_approach string nullablegreen_description string nullableaccessibility_justification string nullableis_eu_funded boolean nullableis_green boolean nullablehas_social_aspects boolean nullablehas_innovative_aspects boolean nullableis_auction boolean nullableis_electronic_catalogue boolean nullableaccepts_alternatives boolean nullableis_renewable boolean nullablehas_options boolean nullableaccessibility string nullablenotices array (default: [])@type string (default: "RiigihankedNotice")id string requirednotice_type string nullablecategory string nullablestate string nullablesubmitted_at integer nullableaccepted_at integer nullablepublished_at integer nullableted_number string nullableted_state string nullableted_sent_at integer nullableted_published_date string nullableted_url string nullableprevious_notice_id string nullableprevious_notice_category string nullablecontracts array (default: [])@type string (default: "RiigihankedContract")id string requirednumber string nullableorder_number integer nullablepart_numbers string nullablecontract_ref string nullablestatus string nullablestatus_code string nullablebuyer object nullable@type string (default: "RiigihankedOrganisation")name string requiredregistry_code string nullablecountry string nullablerole string nullablesupplier object nullable@type string (default: "RiigihankedOrganisation")name string requiredregistry_code string nullablecountry string nullablerole string nullablevalue object nullable@type string (default: "RiigihankedValue")amount number nullablecurrency string nullableactual_value object nullable@type string (default: "RiigihankedValue")amount number nullablecurrency string nullablestart_date string nullableend_date string nullableactual_end_date string nullableis_time_limited boolean nullableis_framework boolean nullableis_modified boolean nullableframework_contract_id string nullablecall_off_number string nullableoffer_statistics object nullable@type string (default: "RiigihankedOfferStatistics")part_number integer nullableoffers_count integer nullableelectronic_offers_count integer nullablesme_offers_count integer nullableeu_offers_count integer nullablenon_eu_offers_count integer nullablenotice_ids array (default: [])offer_statistics array (default: [])@type string (default: "RiigihankedOfferStatistics")part_number integer nullableoffers_count integer nullableelectronic_offers_count integer nullablesme_offers_count integer nullableeu_offers_count integer nullablenon_eu_offers_count integer nullable422 — 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 — No procurement with this identifier in the Estonian procurement register 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.