POST /api/iosys/products/search
Price: 5 credits
Search the Iosys (イオシス) catalogue of second-hand and unused phones, tablets, feature phones, mobile routers, wearables, audio, accessories and computers by keyword, narrowed by catalogue path, condition rank, manufacturer, genre, model series, price, storage capacity, operating system, computer traits and release month, in five orderings. Each result is one physical batch of one model in one condition grade, which is what the shop lists.
Search iosys.co.jp. Every filter is optional, so an empty payload with count walks the whole live catalogue. Narrow with keyword (matched against the listing name and its specification sheet, so a search for iPhone also returns accessories whose compatibility line names it) and exclude_keyword (matched against the name only), category (a catalogue path such as 'smartphone', 'smartphone/iphone13/simfree' or 'pc/notepc/macbook', the category_path of any product), condition (used covers rank_a, rank_b and rank_c together), brand (the manufacturer exactly as a product reports it, such as Apple or SHARP) and genre (the genre_slug a product reports, such as simfree or docomo), series, price_min/price_max in JPY, capacity_gb for the exact storage the phone facet lists or capacity_min_gb/capacity_max_gb for a range, os and pc_features (both only narrow computers, everything else keeps its full result set), and release_year_min/release_month_min/release_year_max/release_month_max. There is no RAM filter and no display-size filter: the shop's own parameters for both return listings outside the bound they promise, so a 30-inch minimum still comes back full of 1.3-inch smartwatches and asking for at least 16 GB of RAM yields 8 GB machines. Filter on RAM with pc_features memory_8gb_plus, and read memory and screen size from spec on the returned records. Order with sort. Every result carries id, usable with the products endpoint, and category_path, usable as the category filter here. The shop only lists what it physically holds, so a sold-out batch leaves the catalogue entirely. Prices are tax-included JPY.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)keyword string nullable — Free-text query over the listing name and its specification sheet (examples: "iPhone", "MacBook Pro"; minLength: 1)exclude_keyword string nullable — Drop listings whose name matches this word (examples: "Pro"; minLength: 1)category string nullable — Catalogue path to search inside (category_path of any product) (examples: "smartphone", "smartphone/iphone13/simfree", "pc/notepc/macbook")count integer required — Max number of results to return (min: 1)condition array nullable — Keep only listings in these condition ranks (one of: "new", "rank_a", "rank_b", "rank_c", "used")brand string nullable — Manufacturer, as a product reports it in brand (examples: "Apple", "SHARP"; minLength: 1)genre string nullable — Genre slug of the listing, as a product reports it in genre_slug (examples: "simfree", "docomo"; minLength: 1)series string nullable — Model series name (examples: "Xperia", "iPad"; minLength: 1)price_min integer nullable — Minimum price in JPY (min: 0)price_max integer nullable — Maximum price in JPY (min: 0)capacity_gb integer nullable — Exact storage capacity in GB, as the phone and tablet facet lists it (min: 1)capacity_min_gb integer nullable — Minimum storage capacity in GB (min: 1)capacity_max_gb integer nullable — Maximum storage capacity in GB (min: 1)os array nullable — Keep only computers running these operating systems (one of: "windows_11", "windows_10", "windows_8", "windows_7", "mac", "chrome", "other")pc_features array nullable — Keep only computers carrying these traits (one of: "windows_10", "mac_os", "standard_laptop", "mobile_laptop", "desktop", "telework", "core_i3", "core_i5", "core_i7", "memory_8gb_plus", "geforce", "ssd", "numeric_keypad", "high_resolution", "blu_ray", "large_storage")release_year_min integer nullable — Earliest release year (min: 1990; max: 2100)release_month_min integer nullable — Earliest release month (min: 1; max: 12)release_year_max integer nullable — Latest release year (min: 1990; max: 2100)release_month_max integer nullable — Latest release month (min: 1; max: 12)sort string — Result ordering (default: "listed"; one of: "listed", "stock_desc", "stock_asc", "price_asc", "price_desc")@type string (default: "IosysProduct")id string requiredurl string requiredname string nullableimage string nullablethumbnail string nullableprice number nullablecurrency string (default: "JPY")stock integer nullablecondition string nullablecondition_id string nullablewarranty string nullablewarranty_id string nullableaccessories string nullablenote string nullablespec_text string nullablespec object (default: {})* stringstorage_gb integer nullablesim_size string nullablecolor string nullablerelease_date string nullablemodel_id string nullablemodel_name string nullablecategory_path string nullablecategory string nullablecategory_id string nullablegenre string nullablegenre_id string nullablegenre_slug string nullablebrand string nullablebrand_id string nullabledepartment string nullabledepartment_id string nullablesection string nullablesection_id string nullable422 — Malformed category (an Iosys catalogue path, e.g. 'smartphone/iphone13/simfree') 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.