POST /api/ifixit/devices
Price: 5 credits
Get one iFixit device page with its guides, specs, part categories and repairability score
The hub page for one device model or one device family: what iFixit knows about it and every guide written for it, so reach for this when the question is about a device rather than about a single procedure. The device name is the identifier — spaces and underscores are interchangeable, and a device page URL works too. Names are exact catalogue entries, not free text, so resolve an uncertain name through a search first. Broad names such as iPhone are family pages whose children are the individual models; specific models carry the guides. repairability_score is stated only for the models iFixit has scored.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)device string required — Device name as iFixit writes it, or the URL of a device page (examples: "iPhone 13", "iPhone_13", "https://www.ifixit.com/Device/iPhone_13"; minLength: 1)language string nullable — Return the translation written in this language instead of the original (one of: "en", "de", "es", "fr", "it", "jp", "ko", "nl", "pt", "ru", "tr", "zh")@type string (default: "IfixitDevice")id string requiredname string requireddisplay_name string nullablepage_name string nullableurl string nullabledescription string nullablecontents string nullablecontents_html string nullablenamespace string nullablelanguage string nullableavailable_languages array (default: [])is_troubleshooting boolean nullableis_machine_translated boolean nullablerepairability_score integer nullablecreated_at integer nullablemodified_at integer nullablerevision_id string nullableimage string nullableanswers_url string nullableparts_url string nullableauthor_id string nullabletags array (default: [])authors array (default: [])@type string (default: "IfixitAuthor")id string requiredname string nullablealias string nullableurl string nullableimage string nullablereputation integer nullablejoined_at integer nullablecontribution_percent number nullableteam_ids array (default: [])ancestors array (default: [])@type string (default: "IfixitWikiPreview")id string requiredname string nullabledisplay_name string nullableurl string nullablesummary string nullablenamespace string nullablelocale string nullableimage string nullablemodified_at integer nullablechildren array (default: [])@type string (default: "IfixitWikiPreview")id string requiredname string nullabledisplay_name string nullableurl string nullablesummary string nullablenamespace string nullablelocale string nullableimage string nullablemodified_at integer nullablerelated_devices array (default: [])@type string (default: "IfixitWikiPreview")id string requiredname string nullabledisplay_name string nullableurl string nullablesummary string nullablenamespace string nullablelocale string nullableimage string nullablemodified_at integer nullablelinked_devices array (default: [])@type string (default: "IfixitWikiPreview")id string requiredname string nullabledisplay_name string nullableurl string nullablesummary string nullablenamespace string nullablelocale string nullableimage string nullablemodified_at integer nullableguides array (default: [])@type string (default: "IfixitGuidePreview")id string requiredname string nullableurl string nullablesummary string nullablesubject string nullablecategory string nullableguide_type string nullabledifficulty string nullabletime_required_max integer nullablelocale string nullableis_public boolean nullableimage string nullableflags array (default: [])author_id string nullableauthor_name string nullablemodified_at integer nullablerevision_id string nullablefeatured_guides array (default: [])@type string (default: "IfixitGuidePreview")id string requiredname string nullableurl string nullablesummary string nullablesubject string nullablecategory string nullableguide_type string nullabledifficulty string nullabletime_required_max integer nullablelocale string nullableis_public boolean nullableimage string nullableflags array (default: [])author_id string nullableauthor_name string nullablemodified_at integer nullablerevision_id string nullabledocuments array (default: [])@type string (default: "IfixitDocument")id string requiredname string nullablefilename string nullableurl string nullabledownload_url string nullableextension string nullablepage_count integer nullablesize integer nullablecreated_at integer nullableimage string nullabletools array (default: [])@type string (default: "IfixitDeviceTool")name string requiredurl string nullableimage string nullableitem_code string nullablepart_categories array (default: [])@type string (default: "IfixitPartCategory")name string requiredurl string nullableproduct_count integer nullablediagrams array (default: [])@type string (default: "IfixitDiagram")id string requiredname string nullableimage string nullablethumbnail string nullablewidth integer nullableheight integer nullablespecs array (default: [])@type string (default: "IfixitAttribute")name string requiredvalue string nullableinherited_from string nullablecategory_specs array (default: [])@type string (default: "IfixitAttribute")name string requiredvalue string nullableinherited_from string nullablemaintenance_tasks array (default: [])@type string (default: "IfixitMaintenanceTask")id string requiredtask string nullablestatus string nullableguide_id string nullableparts array (default: [])triggers array (default: [])@type string (default: "IfixitMaintenanceTrigger")trigger_type string nullablemetric string nullablecomparator string nullablethreshold integer nullableunit string nullablefirst_interval integer nullablerepeat_interval integer nullableflags array (default: [])@type string (default: "IfixitFlag")code string requiredname string nullabletext 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 — No device page exists under that name. 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.