POST /api/korea_customs/commodities/search
Price: 20 credits
Search the Korean HSK tariff nomenclature by commodity name or list every code at one digit level, with the Korean and English names and the parent code
Resolve a product into the HSK codes the trades endpoint filters on, and resolve a code the trades endpoint returned into a name — trades rows carry no commodity name at the 10-digit level and drop it on some 6-digit rows. The keyword mode matches Korean and English names and returns codes at mixed depths, and a code from it is only usable as `hs_codes` when it is 2, 4, 6 or 10 digits long: the 5, 7, 8 and 9 digit levels exist in the nomenclature but are not accepted as filter values. The digits mode walks the tree instead — ask for one level and narrow with parent_code. An unknown keyword returns nothing rather than the whole tariff.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)keyword string nullable — Text to match against the Korean and English commodity names; a digit string matches codes as well. Cannot be combined with digits (examples: "coffee", "커피", "0901"; minLength: 1)digits integer nullable — List every code of this length instead of searching by text. Accepted lengths are 2, 4, 5, 6 and 10 (examples: 2, 4)parent_code string nullable — With digits, keep only the codes that start with this shorter code (examples: "09"; minLength: 1)valid_on string nullable — With keyword, return the tariff as it stood on this date (YYYY-MM-DD). Defaults to today (examples: "2024-06-01"; minLength: 10; maxLength: 10)count integer required — Max number of commodity codes to return (min: 1)@type string (default: "KoreaCustomsCommodity")code string requiredname_ko string nullablename_en string nullableparent_code string nullablesection string nullabledigits integer requiredvalid_from string 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 — 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.