{"openapi":"3.1.0","info":{"title":"iFixit API","version":"2.0","description":"Our API provides programmatic access to iFixit, enabling anyone to write innovative\napplications and utilities on top of our rich repair database.\n\n**What can I do with the API?**\n\nAnything you want! The sky is the limit for awesome applications built using our database\nof repair guides. We can't wait to see what you come up with.\n\nOur API is provided under a non-commercial BY-NC-SA license. If you'd like to use it for\ncommercial purposes, reach out to our [API team](mailto:api@ifixit.com) for pricing.\nTraining Large Language Models on iFixit content is prohibited by our\n[Terms of Service](https://www.ifixit.com/Info/Terms_of_Use).\n\nThe API provides access to our repair guides (step-by-step guides and namespace pages),\ncategories, users, teams, and our reputation badges.\n\nIf you build on our API, we will support you by maintaining future compatibility. Make sure\nto version your API calls with `2.0`. When we introduce changes that may break existing apps,\nwe will increment the version number.\n\n## Using the API\n\n### Getting Started\n\nThe best way to get started is to just dive right in! You don't need an app ID for most\nrequests, so you can start writing your app right now. Here's an example API call:\n\n```\ncurl https://www.ifixit.com/api/2.0/guides/1220\n```\n\nIf you want to build an offline tool, an archived collection of oManual files is also available.\n\n### Authentication\n\nMost public endpoints do not require authentication. A few endpoints require an App ID,\nwhich you can request from our [API team](mailto:api@ifixit.com). This is usually only required for complex integrations.\n\nTo authenticate, first obtain a token with your email and password:\n\n```\ncurl -X POST https://www.ifixit.com/api/2.0/user/token \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\":\"you@example.com\",\"password\":\"yourpassword\"}'\n```\n\nThe response includes an `authToken` field. Use it in subsequent requests:\n\n```\ncurl https://www.ifixit.com/api/2.0/user \\\n  -H \"Authorization: api YOUR_AUTH_TOKEN\"\n```\n\nNote: the `Authorization` header uses the `api` scheme, not `Bearer`.\n\n### Response Format\n\nAll endpoints return JSON by default. Append `?pretty` to any request URL for\nhuman-readable formatted output. Some endpoints additionally support XML via the\n`Accept: application/xml` request header.\n\n### Error Responses\n\nErrors are returned as a JSON object with a consistent shape:\n\n```json\n{\n  \"error\": true,\n  \"message\": \"Human-readable description of the error\"\n}\n```\n\nCommon status codes:\n\n| Code | Meaning |\n|------|---------|\n| 400 | Bad request — invalid parameters |\n| 401 | Authentication required |\n| 403 | Forbidden — insufficient privileges |\n| 404 | Resource not found |\n| 429 | Rate limit exceeded |\n\n### Pagination\n\nList endpoints accept `offset` and `limit` query parameters. `limit` defaults to 20\nand has a maximum of 200. Responses are plain arrays — iterate by incrementing `offset`\nby `limit` until you receive fewer items than requested.\n\n```\nGET /api/2.0/guides?offset=0&limit=50\nGET /api/2.0/guides?offset=50&limit=50\n```\n\n### Rate Limiting\n\nAPI requests are rate limited. When limits are exceeded, the API returns a `429` status code.\n\n### Versioning\n\nThis is version 2.0 of the iFixit API. The version is included in the URL path: `/api/2.0/`.\n","contact":{"name":"iFixit Developer Support","url":"https://www.ifixit.com/api/2.0/doc"},"license":{"name":"Creative Commons BY-NC-SA 3.0","url":"https://creativecommons.org/licenses/by-nc-sa/3.0/"}},"servers":[{"url":"https://www.ifixit.com/api/2.0","description":"iFixit Production API"}],"security":[{"apiToken":[]},{"appId":[]},{}],"tags":[{"name":"Authentication","description":"User authentication and token management"},{"name":"Categories","description":"Browse the content hierarchy"},{"name":"Comments","description":"Comment operations on guides, steps, wikis, and other content"},{"name":"Guides","description":"Create, edit, delete and list guides and guide steps"},{"name":"Media","description":"Image and video information"},{"name":"Search","description":"Search and suggest functionality"},{"name":"Stories","description":"Repair stories about guides and products"},{"name":"Tags","description":"Tag management for guides and wikis"},{"name":"Teams","description":"Team management and membership"},{"name":"Troubleshooting","description":"Parsed troubleshooting pages and per-device problem lists"},{"name":"Users","description":"User profiles, badges, favorites, and media management"},{"name":"Wikis","description":"Create, edit, delete and list wiki pages"}],"paths":{"/user/token":{"post":{"operationId":"login","summary":"User login","description":"Creates an authorization token for an existing user account. A successful login creates a session and returns the user record with `authToken` set to the session id; the token is passed in the Authorization header on authenticated requests. A valid `X-App-Id` header is required; invalid credentials return 401. Active sessions per user are capped, so tokens issued by earlier logins can stop working after a new login.","tags":["Authentication"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","password"],"properties":{"email":{"type":"string","format":"email"},"password":{"type":"string","format":"password"}}}}}},"responses":{"201":{"description":"Login successful","content":{"application/json":{"schema":{"type":"object","description":"Full user profile with authentication details. The `url` field inherited from UserSummary is not emitted by responses that use this schema. Viewer-only fields such as `links` and `unread_notification_count` are present only when the represented user is the authenticated viewer.","allOf":[{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},{"type":"object","properties":{"certification_count":{"type":"integer","description":"Number of certifications earned","example":0},"badge_counts":{"type":"object","description":"Count of badges by level","properties":{"bronze":{"type":"integer"},"silver":{"type":"integer"},"gold":{"type":"integer"},"total":{"type":"integer"}}},"summary":{"type":["string","null"],"description":"User's about text (plain text summary)","example":"I fix things!"},"about_raw":{"oneOf":[{"type":"string"},{"type":"boolean"}],"description":"User's about content in wiki markup; `false` when empty"},"about_rendered":{"oneOf":[{"type":"string"},{"type":"boolean"}],"description":"User's about content rendered as HTML; `false` when empty"},"partner":{"type":["object","null"],"description":"Partner organization information; may be `null`","additionalProperties":true},"greatest_privilege":{"type":"string","description":"Highest privilege level of the user (e.g. `User`, `Moderator`, `Admin`)"},"langid":{"type":"string","description":"User's preferred language code","example":"en"},"preferredStoreDomain":{"type":"string","description":"User's preferred store domain (e.g. `ifixit-us`)"},"preferredStoreLocale":{"type":"string","description":"User's preferred store locale (e.g. `en-us`)"},"authToken":{"type":"string","description":"Authentication token for API requests, sent as `Authorization: api AUTH_TOKEN`. Present in login, registration, and impersonation responses; absent from other user responses. The token is a server-side session id, invalidated by logout or session expiry.","example":"0123456789abcdef0123456789abcdef"},"links":{"type":"object","description":"Related links. Present only when the represented user is the authenticated viewer; `manage` is included only for viewers permitted to access the management interface.","properties":{"manage":{"type":"string","description":"URL to user management page"}},"additionalProperties":{"type":"string"}}}}]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]}}}}}},"delete":{"operationId":"logout","summary":"User logout","description":"Logs out the authenticated user by deleting the authorization token.","tags":["Authentication"],"security":[{"apiToken":[]}],"responses":{"204":{"description":"Success with no content returned"},"401":{"description":"Unauthorized - Authentication required or token invalid","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Authentication required"}}}}}}},"/users/reset_password":{"post":{"operationId":"resetPassword","summary":"Request password reset","description":"Sends a password reset email to the given email address. A malformed email address or one with no associated account returns 422. Requests are rate limited per email address and per client IP; exceeding either limit returns 429.","tags":["Authentication"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"}}}}}},"responses":{"200":{"description":"Password reset email sent","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Success: You've been emailed a link to set a new password."}}}}}},"422":{"description":"Email is malformed or has no associated account","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"message":"There is no account associated with the specified email"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Rate limit exceeded. Please try again later."}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Number of seconds to wait before retrying"}}}}}},"/user":{"get":{"operationId":"getCurrentUser","summary":"Get current user","description":"Returns the authenticated user's information, including a `links` object and viewer-only fields such as `unread_notification_count`. Unauthenticated requests return 401 unless a valid `sessionSyncId` query parameter is supplied, in which case the response is `{\"sessionSync\": true, \"image\": ...}` instead of a User object. `authToken` is only returned by the login and registration endpoints, not by this endpoint.","tags":["Users"],"security":[{"apiToken":[]}],"responses":{"200":{"description":"Current user info","content":{"application/json":{"schema":{"type":"object","description":"Full user profile with authentication details. The `url` field inherited from UserSummary is not emitted by responses that use this schema. Viewer-only fields such as `links` and `unread_notification_count` are present only when the represented user is the authenticated viewer.","allOf":[{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},{"type":"object","properties":{"certification_count":{"type":"integer","description":"Number of certifications earned","example":0},"badge_counts":{"type":"object","description":"Count of badges by level","properties":{"bronze":{"type":"integer"},"silver":{"type":"integer"},"gold":{"type":"integer"},"total":{"type":"integer"}}},"summary":{"type":["string","null"],"description":"User's about text (plain text summary)","example":"I fix things!"},"about_raw":{"oneOf":[{"type":"string"},{"type":"boolean"}],"description":"User's about content in wiki markup; `false` when empty"},"about_rendered":{"oneOf":[{"type":"string"},{"type":"boolean"}],"description":"User's about content rendered as HTML; `false` when empty"},"partner":{"type":["object","null"],"description":"Partner organization information; may be `null`","additionalProperties":true},"greatest_privilege":{"type":"string","description":"Highest privilege level of the user (e.g. `User`, `Moderator`, `Admin`)"},"langid":{"type":"string","description":"User's preferred language code","example":"en"},"preferredStoreDomain":{"type":"string","description":"User's preferred store domain (e.g. `ifixit-us`)"},"preferredStoreLocale":{"type":"string","description":"User's preferred store locale (e.g. `en-us`)"},"authToken":{"type":"string","description":"Authentication token for API requests, sent as `Authorization: api AUTH_TOKEN`. Present in login, registration, and impersonation responses; absent from other user responses. The token is a server-side session id, invalidated by logout or session expiry.","example":"0123456789abcdef0123456789abcdef"},"links":{"type":"object","description":"Related links. Present only when the represented user is the authenticated viewer; `manage` is included only for viewers permitted to access the management interface.","properties":{"manage":{"type":"string","description":"URL to user management page"}},"additionalProperties":{"type":"string"}}}}]}}}},"401":{"description":"Unauthorized - Authentication required or token invalid","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Authentication required"}}}}}}},"/users":{"get":{"operationId":"listUsers","summary":"List registered users","description":"Lists registered users sorted by `userid`; only active accounts are returned. `offset` is capped at 1000; larger values return 422. A `limit` above 200 is clamped to 200. `joinedSince` filters by the account's join date while results remain sorted by `userid`. Each item is a public profile summary; `privileges` is not included.","tags":["Users"],"security":[],"parameters":[{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}},{"name":"order","in":"query","description":"Sort order (ascending or descending).","schema":{"type":"string","enum":["ASC","DESC"],"default":"ASC"}},{"name":"joinedSince","in":"query","description":"Earliest UNIX timestamp for users' join date","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"List of users","content":{"application/json":{"schema":{"type":"array","description":"List of user summaries","items":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]}}}}},"422":{"description":"offset exceeds the maximum of 1000","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"message":"Offset must be <= 1000"}}}}}},"post":{"operationId":"registerUser","summary":"Register user","description":"Registers a new user account. The request must include a valid `X-App-Id` header. Registration failures — a malformed email, a password shorter than 10 characters, a duplicate email, or an invalid `unique_username` — return 401 with a message. An invalid `username` does not cause an error; the account is created with a username derived from the email address instead. Successful registration creates a logged-in session for the new user and the 201 response includes its `authToken`.","tags":["Users"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","username","unique_username","password"],"properties":{"email":{"type":"string","format":"email","description":"User's email address (must be unique)"},"username":{"type":"string","description":"Display name"},"unique_username":{"type":"string","description":"Unique @-mentionable username"},"password":{"type":"string","format":"password"}}}}}},"responses":{"201":{"description":"User registered and logged in; the response includes `authToken`","content":{"application/json":{"schema":{"type":"object","description":"Full user profile with authentication details. The `url` field inherited from UserSummary is not emitted by responses that use this schema. Viewer-only fields such as `links` and `unread_notification_count` are present only when the represented user is the authenticated viewer.","allOf":[{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},{"type":"object","properties":{"certification_count":{"type":"integer","description":"Number of certifications earned","example":0},"badge_counts":{"type":"object","description":"Count of badges by level","properties":{"bronze":{"type":"integer"},"silver":{"type":"integer"},"gold":{"type":"integer"},"total":{"type":"integer"}}},"summary":{"type":["string","null"],"description":"User's about text (plain text summary)","example":"I fix things!"},"about_raw":{"oneOf":[{"type":"string"},{"type":"boolean"}],"description":"User's about content in wiki markup; `false` when empty"},"about_rendered":{"oneOf":[{"type":"string"},{"type":"boolean"}],"description":"User's about content rendered as HTML; `false` when empty"},"partner":{"type":["object","null"],"description":"Partner organization information; may be `null`","additionalProperties":true},"greatest_privilege":{"type":"string","description":"Highest privilege level of the user (e.g. `User`, `Moderator`, `Admin`)"},"langid":{"type":"string","description":"User's preferred language code","example":"en"},"preferredStoreDomain":{"type":"string","description":"User's preferred store domain (e.g. `ifixit-us`)"},"preferredStoreLocale":{"type":"string","description":"User's preferred store locale (e.g. `en-us`)"},"authToken":{"type":"string","description":"Authentication token for API requests, sent as `Authorization: api AUTH_TOKEN`. Present in login, registration, and impersonation responses; absent from other user responses. The token is a server-side session id, invalidated by logout or session expiry.","example":"0123456789abcdef0123456789abcdef"},"links":{"type":"object","description":"Related links. Present only when the represented user is the authenticated viewer; `manage` is included only for viewers permitted to access the management interface.","properties":{"manage":{"type":"string","description":"URL to user management page"}},"additionalProperties":{"type":"string"}}}}]}}}},"400":{"description":"Missing or invalid X-App-Id header","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"message":"Invalid app id"}}}},"401":{"description":"Registration failed (malformed email, password too short, email already taken, or invalid `unique_username`)","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]}}}},"422":{"description":"Missing required field or unrecognized field in request body","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]}}}}}}},"/users/{userid}":{"get":{"operationId":"getUser","summary":"Get user details","description":"Returns a user's profile information. A nonexistent `userid` returns 404. When the requested `userid` is the authenticated caller, the response additionally includes the same viewer-only fields as `getCurrentUser`.","tags":["Users"],"security":[],"parameters":[{"name":"userid","in":"path","required":true,"description":"Unique identifier of the user.","schema":{"type":"integer"}}],"responses":{"200":{"description":"User details","content":{"application/json":{"schema":{"type":"object","description":"Public user profile information. The `url` field inherited from UserSummary is not emitted in this representation. When the request is authenticated as the user being returned, the response includes additional viewer-only fields such as `links` and `unread_notification_count`.","allOf":[{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},{"type":"object","properties":{"certification_count":{"type":"integer"},"badge_counts":{"type":"object","properties":{"bronze":{"type":"integer"},"silver":{"type":"integer"},"gold":{"type":"integer"},"total":{"type":"integer"}}},"summary":{"type":["string","null"],"description":"User's about text (plain text summary)"},"about_raw":{"oneOf":[{"type":"string"},{"type":"boolean"}],"description":"User's about content in wiki markup; `false` when empty"},"about_rendered":{"oneOf":[{"type":"string"},{"type":"boolean"}],"description":"User's about content rendered as HTML; `false` when empty"},"partner":{"type":["object","null"],"description":"Partner organization information; may be `null`","additionalProperties":true},"greatest_privilege":{"type":"string","description":"Highest privilege level of the user"},"langid":{"type":"string","description":"User's preferred language code"},"preferredStoreDomain":{"type":"string","description":"User's preferred store domain"},"preferredStoreLocale":{"type":"string","description":"User's preferred store locale"}}}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}}},"/users/{userid}/badges":{"get":{"operationId":"getUserBadges","summary":"Get user badges","description":"Lists all enabled badges with the specified user's earned status. Earned badges are ordered most recently earned first, followed by unearned badges in `badgeid` order. A nonexistent `userid` returns 404.","tags":["Users"],"security":[],"parameters":[{"name":"userid","in":"path","required":true,"description":"Unique identifier of the user.","schema":{"type":"integer"}},{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["badgeGuide","badgeAnswers","badgeGeneral","badgeWorkbench"]},"description":"Filter badges by category. Omit to return all badges."}],"responses":{"200":{"description":"List of all badges with earned status","content":{"application/json":{"schema":{"type":"array","description":"Array of UserBadge objects, each pairing a badge definition with the user's earned status.","items":{"type":"object","description":"A badge with the user's earned status","properties":{"earned":{"type":"boolean","description":"Whether the user has earned this badge"},"times_earned":{"type":"integer","description":"Number of times the user has earned this badge"},"date":{"type":["integer","null"],"format":"int64","description":"UNIX timestamp of the most recent time the badge was earned; `null` when the badge has not been earned."},"badge":{"type":"object","description":"Badge definition","properties":{"badgeid":{"type":"integer"},"name":{"type":"string"},"type":{"type":"string","enum":["bronze","silver","gold"]},"category":{"type":"string"},"description":{"type":"string"},"multiple":{"type":"boolean"},"num_users":{"type":"integer","description":"Total number of times this badge has been awarded across all users; for repeatable badges this can exceed the number of distinct users."},"icon":{"type":["string","null"],"description":"Font Awesome icon class for this badge"},"image":{"type":"string","description":"Badge image URL; an empty string when the badge has no image."},"secondary_color":{"type":"string","description":"Secondary color name for badge display (e.g. `camelot`, `steel-blue`)"}}}}}}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}}},"/user/badges":{"get":{"operationId":"getCurrentUserBadges","summary":"Get current user badges","description":"Lists all enabled badges with the authenticated user's earned status. Earned badges are ordered most recently earned first, followed by unearned badges in `badgeid` order.","tags":["Users"],"security":[{"apiToken":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["badgeGuide","badgeAnswers","badgeGeneral","badgeWorkbench"]},"description":"Filter badges by category. Omit to return all badges."}],"responses":{"200":{"description":"List of all badges with earned status","content":{"application/json":{"schema":{"type":"array","description":"Array of UserBadge objects, each pairing a badge definition with the user's earned status.","items":{"type":"object","description":"A badge with the user's earned status","properties":{"earned":{"type":"boolean","description":"Whether the user has earned this badge"},"times_earned":{"type":"integer","description":"Number of times the user has earned this badge"},"date":{"type":["integer","null"],"format":"int64","description":"UNIX timestamp of the most recent time the badge was earned; `null` when the badge has not been earned."},"badge":{"type":"object","description":"Badge definition","properties":{"badgeid":{"type":"integer"},"name":{"type":"string"},"type":{"type":"string","enum":["bronze","silver","gold"]},"category":{"type":"string"},"description":{"type":"string"},"multiple":{"type":"boolean"},"num_users":{"type":"integer","description":"Total number of times this badge has been awarded across all users; for repeatable badges this can exceed the number of distinct users."},"icon":{"type":["string","null"],"description":"Font Awesome icon class for this badge"},"image":{"type":"string","description":"Badge image URL; an empty string when the badge has no image."},"secondary_color":{"type":"string","description":"Secondary color name for badge display (e.g. `camelot`, `steel-blue`)"}}}}}}}}}}}},"/users/{userid}/favorites/guides":{"get":{"operationId":"getUserFavoriteGuides","summary":"Get user's favorite guides","description":"Lists guides the user has favorited, ordered most recently favorited first. A nonexistent `userid` returns 404. Private and prerequisite-only guides are excluded, so the list can be shorter than the user's favorite count. Guide data is returned in the site's default language regardless of request locale, and favorited guides with no translation in that language are excluded.","tags":["Users"],"security":[],"parameters":[{"name":"userid","in":"path","required":true,"description":"Unique identifier of the user.","schema":{"type":"integer"}}],"responses":{"200":{"description":"List of favorited guides","content":{"application/json":{"schema":{"type":"array","description":"List of favorited guide entries","items":{"type":"object","description":"A favorited guide entry.","properties":{"date":{"type":"integer","format":"int64","description":"UNIX timestamp when the user favorited the guide"},"guide":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}}}}}}},"/user/favorites/guides":{"get":{"operationId":"getCurrentUserFavoriteGuides","summary":"Get current user's favorite guides","description":"Lists guides the authenticated user has favorited, ordered most recently favorited first. Private and prerequisite-only guides are included, unlike `getUserFavoriteGuides`. Guide data is returned in the site's default language regardless of request locale, and favorited guides with no translation in that language are excluded.","tags":["Users"],"security":[{"apiToken":[]}],"responses":{"200":{"description":"List of favorited guides","content":{"application/json":{"schema":{"type":"array","description":"List of favorited guide entries","items":{"type":"object","description":"A favorited guide entry.","properties":{"date":{"type":"integer","format":"int64","description":"UNIX timestamp when the user favorited the guide"},"guide":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}}}}}}},"/user/favorites/guides/{guideid}":{"put":{"operationId":"favoriteGuide","summary":"Favorite a guide","description":"Adds a guide to the authenticated user's favorites. The optional `langid` defaults to the guide's source language; the request returns 404 if the guide has no translation in the resolved language. A user favorites a guide at most once: repeated requests return 204 and leave the stored `langid` and favorite date unchanged.","tags":["Users"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"langid":{"type":"string","description":"Language to record the favorite in. Defaults to the guide's source language. Must be a language the guide has a translation in; otherwise the request returns 404."}}}}}},"responses":{"204":{"description":"Success with no content returned"}}},"delete":{"operationId":"unfavoriteGuide","summary":"Unfavorite a guide","description":"Removes the guide from the authenticated user's favorites. The favorite is removed for every language of the guide. Returns 204 even if the guide was not favorited; returns 404 if the guide does not exist.","tags":["Users"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}}],"responses":{"204":{"description":"Success with no content returned"}}}},"/users/{userid}/guides":{"get":{"operationId":"getUserGuides","summary":"Get user's authored guides","description":"Lists guides the user has contributed to through accepted revisions or authorship. Returns one entry per guide language contributed to, so the same `guideid` can appear multiple times with different `locale` values, ordered by `guideid` (ties by `locale`). Visibility filtering happens after pagination, so a page can contain fewer than `limit` entries while later offsets still return results. Private and prerequisite-only guides are excluded for every viewer; `getCurrentUserGuides` includes them for the authenticated user.","tags":["Users"],"security":[],"parameters":[{"name":"userid","in":"path","required":true,"description":"Unique identifier of the user.","schema":{"type":"integer"}},{"name":"order","in":"query","description":"Sort order (ascending or descending).","schema":{"type":"string","enum":["ASC","DESC"],"default":"ASC"}},{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}}],"responses":{"200":{"description":"List of authored guides","content":{"application/json":{"schema":{"type":"array","description":"List of guide summaries","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}}}}},"/user/guides":{"get":{"operationId":"getCurrentUserGuides","summary":"Get current user's guides","description":"Lists guides the authenticated user has contributed to through accepted revisions or authorship, including private and prerequisite-only guides. Returns one entry per guide language contributed to, so the same `guideid` can appear multiple times with different `locale` values. Results are ordered by `guideid` (ties by `locale`), not by recency. Filtering happens after pagination, so a page can contain fewer than `limit` entries while later offsets still return results.","tags":["Users"],"security":[{"apiToken":[]}],"parameters":[{"name":"order","in":"query","description":"Sort order (ascending or descending).","schema":{"type":"string","enum":["ASC","DESC"],"default":"ASC"}},{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}}],"responses":{"200":{"description":"List of authored guides","content":{"application/json":{"schema":{"type":"array","description":"List of guide summaries","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}}}}},"/users/{userid}/completions":{"get":{"operationId":"getUserCompletions","summary":"Get user's completed guides","description":"Lists guides the user has completed. The response is a flat array of guide summaries ordered by `guideid` ascending; completion dates are not returned. A nonexistent `userid` returns 404. `offset` and `limit` are applied before visibility filtering, so a page may contain fewer than `limit` items while higher offsets still return results. Private and prerequisite-only completions are excluded for every viewer, including the profile owner; `getCurrentUserCompletions` includes them for the authenticated user.","tags":["Users"],"security":[],"parameters":[{"name":"userid","in":"path","required":true,"description":"Unique identifier of the user.","schema":{"type":"integer"}},{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}}],"responses":{"200":{"description":"List of completed guides","content":{"application/json":{"schema":{"type":"array","description":"List of guide summaries","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}},"404":{"description":"User not found"}}}},"/user/completions":{"get":{"operationId":"getCurrentUserCompletions","summary":"Get current user's completed guides","description":"Lists guides the authenticated user has completed, including private and prerequisite-only guides. The response is a flat array of guide summaries ordered by `guideid` ascending; completion dates are not returned. `offset` and `limit` are applied before language filtering, so a page may contain fewer than `limit` items while higher offsets still return results.","tags":["Users"],"security":[{"apiToken":[]}],"parameters":[{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}}],"responses":{"200":{"description":"List of completed guides","content":{"application/json":{"schema":{"type":"array","description":"List of guide summaries","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}}}}},"/user/flags":{"get":{"operationId":"getUserFlags","summary":"Get modifiable flags","description":"Lists the guide flags the authenticated user can add to or remove from guides. The response contains a single `guide` key holding an object keyed by `flagid`. Flags with a required privilege are included only when the authenticated user holds that privilege.","tags":["Users"],"security":[{"apiToken":[]}],"responses":{"200":{"description":"List of flags","content":{"application/json":{"schema":{"type":"object","properties":{"guide":{"type":"object","description":"Map of `flagid` to flag definition","additionalProperties":{"type":"object","properties":{"flagid":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"image":{"type":"string","format":"uri"},"isFontAwesome":{"type":"boolean"}}}}}}}}}}}},"/user/media/images":{"get":{"operationId":"getUserImages","summary":"Get user's images","description":"Lists images in the authenticated user's media manager, including derivative images created by cropping or annotation; a derivative's `srcid` references its source image. `minWidth` and `minHeight` filter to images whose width and height are both at least the given values. Omitting `ratio` or passing `ratio=ALL` disables ratio filtering.","tags":["Users"],"security":[{"apiToken":[]}],"parameters":[{"name":"ratio","in":"query","schema":{"type":"string","enum":["ALL","ONE_ONE","FOUR_THREE","VARIABLE"],"default":"ALL"}},{"name":"minHeight","in":"query","schema":{"type":"integer"}},{"name":"minWidth","in":"query","schema":{"type":"integer"}},{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}}],"responses":{"200":{"description":"List of images","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","description":"An Image plus its dimensions, aspect ratio, markup, and EXIF metadata.","properties":{"image":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},"srcid":{"type":["integer","null"],"description":"`id` of the source image when this image is a crop or derivative; `null` otherwise."},"width":{"type":"integer","description":"Image width in pixels","example":2420},"height":{"type":"integer","description":"Image height in pixels","example":1815},"ratio":{"type":"string","description":"Aspect ratio classification","enum":["ONE_ONE","FOUR_THREE","VARIABLE"],"example":"FOUR_THREE"},"markup":{"type":["string","null"],"description":"Image annotation markup; `null` when the image has none."},"exif":{"description":"EXIF metadata from the original image; an empty array when there is no EXIF data.","oneOf":[{"type":"object","additionalProperties":true},{"type":"array","maxItems":0}]}}}}}}}}},"post":{"operationId":"uploadImage","summary":"Upload an image","description":"Uploads an image to the authenticated user's media manager. The request body is the raw image file; the `file` query parameter supplies the filename, whose extension determines the file type (JPEG, GIF, PNG, BMP, TIFF, HEIC, WEBP, AVIF). The maximum file size is 80 MB and the minimum dimensions are 50x50 pixels. The response returns once the image is stored but before all resized variants have been generated. When `cropToRatio` is set, a cropped copy is created and replaces the original upload in the media manager.","tags":["Users"],"security":[{"apiToken":[]}],"parameters":[{"name":"file","in":"query","required":true,"description":"Filename of the image","schema":{"type":"string"}},{"name":"cropToRatio","in":"query","schema":{"type":"string","enum":["ONE_ONE","FOUR_THREE"]}}],"requestBody":{"required":true,"content":{"image/*":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Image uploaded","content":{"application/json":{"schema":{"type":"object","description":"An Image plus its dimensions, aspect ratio, markup, and EXIF metadata.","properties":{"image":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},"srcid":{"type":["integer","null"],"description":"`id` of the source image when this image is a crop or derivative; `null` otherwise."},"width":{"type":"integer","description":"Image width in pixels","example":2420},"height":{"type":"integer","description":"Image height in pixels","example":1815},"ratio":{"type":"string","description":"Aspect ratio classification","enum":["ONE_ONE","FOUR_THREE","VARIABLE"],"example":"FOUR_THREE"},"markup":{"type":["string","null"],"description":"Image annotation markup; `null` when the image has none."},"exif":{"description":"EXIF metadata from the original image; an empty array when there is no EXIF data.","oneOf":[{"type":"object","additionalProperties":true},{"type":"array","maxItems":0}]}}}}}}}}},"/user/media/images/{image}":{"delete":{"operationId":"deleteImages","summary":"Delete images","description":"Removes images from the authenticated user's media manager. Only the media-manager association is deleted; uses of the images in guides or wikis are unaffected. A maximum of 1000 ids is accepted per request. Ids that do not exist or belong to a different user are skipped; the response is 204 regardless of how many entries were removed.","tags":["Users"],"security":[{"apiToken":[]}],"parameters":[{"name":"image","in":"path","required":true,"description":"One or more comma-separated image ids to delete","schema":{"type":"string"}}],"responses":{"204":{"description":"Success with no content returned"}}},"post":{"operationId":"copyImageToMediaManager","summary":"Copy image to media manager","description":"Duplicates an existing image into the authenticated user's media manager. The `image` path segment accepts either an integer image id or a GUID string and resolves to any image, regardless of which user owns it. Returns 200 with the new image's full metadata, or 404 when no image matches.","tags":["Users"],"security":[{"apiToken":[]}],"parameters":[{"name":"image","in":"path","required":true,"description":"Image id or GUID to copy","schema":{"type":"string"}}],"responses":{"200":{"description":"Image copied","content":{"application/json":{"schema":{"type":"object","description":"An Image plus its dimensions, aspect ratio, markup, and EXIF metadata.","properties":{"image":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},"srcid":{"type":["integer","null"],"description":"`id` of the source image when this image is a crop or derivative; `null` otherwise."},"width":{"type":"integer","description":"Image width in pixels","example":2420},"height":{"type":"integer","description":"Image height in pixels","example":1815},"ratio":{"type":"string","description":"Aspect ratio classification","enum":["ONE_ONE","FOUR_THREE","VARIABLE"],"example":"FOUR_THREE"},"markup":{"type":["string","null"],"description":"Image annotation markup; `null` when the image has none."},"exif":{"description":"EXIF metadata from the original image; an empty array when there is no EXIF data.","oneOf":[{"type":"object","additionalProperties":true},{"type":"array","maxItems":0}]}}}}}},"404":{"description":"No image matches the supplied id or GUID"}}}},"/user/media/images/{image}/rotate":{"post":{"operationId":"rotateImageInMediaManager","summary":"Rotate image in media manager","description":"Queues a job that creates a rotated copy of an existing image and swaps it into the authenticated user's media manager in place of the original (the original's library attachment is removed only when it belongs to the same user, and only after the copy is fully processed). The copy is a new source image, so later crops and markers apply to the rotated pixels. The `image` path segment accepts either an integer image id or a GUID string. The response is a job handle; clients poll `/user/media/images/rotate/{jobID}` until it reports `complete` or `failed`.","tags":["Users"],"security":[{"apiToken":[]}],"parameters":[{"name":"image","in":"path","required":true,"description":"Image id or GUID to rotate","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["degrees"],"properties":{"degrees":{"type":"integer","enum":[90,180,270],"description":"Clockwise rotation in degrees"},"jobID":{"type":"string","pattern":"^rotateImage_[A-Za-z0-9_-]{16,128}$","description":"Optional client-generated idempotency key. Retrying the same image, degrees, and jobID returns the original job without enqueueing a second rotation."}}}}}},"responses":{"202":{"description":"Rotation job queued","content":{"application/json":{"schema":{"type":"object","required":["jobID"],"properties":{"jobID":{"type":"string","description":"Handle for `/user/media/images/rotate/{jobID}` polling"}}}}}},"404":{"description":"No image matches the supplied id or GUID"},"409":{"description":"jobID was already used for a different rotation"},"422":{"description":"degrees or jobID is invalid"}}}},"/user/media/images/rotate/{jobID}":{"get":{"operationId":"getRotateImageStatus","summary":"Get rotate job status","description":"Reports the state of a rotation job queued by `rotateImageInMediaManager`. While the worker runs, `status` is `processing`. On success it is `complete` and `item` carries the new copy's flat media data; the worker generates display sizes before reporting success, so no further readiness polling is needed. `failed` means the original image and its library attachment are unchanged. Jobs are only visible to the user who queued them; unknown or another user's job ids return 404.","tags":["Users"],"security":[{"apiToken":[]}],"parameters":[{"name":"jobID","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Job status","content":{"application/json":{"schema":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["processing","complete","failed"]},"item":{"type":"object","description":"A single entry in a user's Media Manager library. The shape is flat and varies by media class (`type`): images carry `imageid`, documents carry `documentid`, and videos and embeds carry `objectid`. Size URL fields (`mini`, `thumbnail`, `standard`, `medium`, `original`) are present only for the sizes that have been generated at response time. When the request supplies an `accepts` filter collection, each item also carries a `filter_state`.","properties":{"type":{"type":"string","enum":["GuideImage","GuideVideoObject","GuideEmbedObject","Document"],"description":"Media class of the item"},"guid":{"type":"string"},"imageid":{"type":["integer","null"],"description":"Image id for images; thumbnail image id for documents and embeds; `null` when there is no associated image"},"objectid":{"type":"integer","description":"Present for videos and embeds"},"documentid":{"type":"integer","description":"Present for documents"},"srcid":{"type":["integer","null"],"description":"Source media id when this item is a derivative"},"ratio":{"type":"string","description":"Aspect-ratio name for images (e.g. `VARIABLE`)"},"mini":{"type":"string","format":"uri"},"thumbnail":{"type":"string","format":"uri"},"standard":{"type":"string","format":"uri"},"medium":{"type":"string","format":"uri"},"original":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"filename":{"type":["string","null"],"description":"Original filename, or embed title for embeds"},"date":{"description":"Upload or creation time as a UNIX timestamp"},"filter_state":{"description":"Server-computed acceptability of a media item for the requested `accepts` filter collection. Clients branch on this value rather than re-deriving the rules: `true` when the item is attachable as-is, `\"crop\"` when it must be cropped before it can be attached, `false` when the item's type is not accepted, or an object carrying a `message` that explains a soft failure (for example, an image below the collection's minimum resolution).","oneOf":[{"type":"boolean","description":"`true` when attachable as-is; `false` when the type is not accepted"},{"type":"string","enum":["crop"],"description":"The item must be cropped before it can be attached"},{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Human-readable reason the item cannot be attached"}}}]}}}}}}}},"404":{"description":"No rotation job matches the supplied id for this user"}}}},"/user/media/videos":{"get":{"operationId":"getUserVideos","summary":"Get user's videos","description":"Lists the videos in the authenticated user's media manager. The `order` parameter sorts by the internal video id rather than by upload date or filename.","tags":["Users"],"security":[{"apiToken":[]}],"parameters":[{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}},{"name":"order","in":"query","description":"Sort order (ascending or descending).","schema":{"type":"string","enum":["ASC","DESC"],"default":"ASC"}}],"responses":{"200":{"description":"List of videos","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","description":"Video information","properties":{"videoid":{"type":"integer","description":"Unique video identifier"},"objectid":{"type":"integer","description":"Internal object identifier"},"srcid":{"type":["integer","null"],"description":"`videoid` of the source video when this video is a derivative"},"filename":{"type":"string","description":"Original filename"},"duration":{"type":"integer","description":"Duration in milliseconds"},"width":{"type":"integer","description":"Video width in pixels"},"height":{"type":"integer","description":"Video height in pixels"},"image":{"type":["object","null"],"description":"Thumbnail image info (same structure as the /media/images response). `null` when the video has no thumbnail.","properties":{"image":{"type":"object","description":"Image object with size URLs","additionalProperties":true},"srcid":{"type":["integer","null"]},"width":{"type":"integer"},"height":{"type":"integer"},"ratio":{"type":"string","enum":["ONE_ONE","FOUR_THREE","VARIABLE"]},"markup":{"type":["string","null"]},"exif":{"description":"EXIF metadata; an empty array when there is none","oneOf":[{"type":"object","additionalProperties":true},{"type":"array","maxItems":0}]}}},"meta":{"type":["object","null"],"description":"Encoding metadata reported by the transcoder; `null` when no encoding metadata has been recorded for the video.","properties":{"video_codec":{"type":"string"},"audio_codec":{"type":"string"},"frame_rate":{"type":"number"},"width":{"type":"integer"},"height":{"type":"integer"},"duration_in_ms":{"type":"integer"},"file_size_in_bytes":{"type":"integer"},"video_bitrate_in_kbps":{"type":"integer"},"audio_bitrate_in_kbps":{"type":"integer"},"total_bitrate_in_kbps":{"type":"integer"},"audio_sample_rate":{"type":"integer"},"channels":{"type":"string"},"format":{"type":"string"},"state":{"type":"string","enum":["finished","processing","failed"]},"md5_checksum":{"type":["string","null"]},"id":{"type":"integer"}}},"encodings":{"type":"array","description":"Available encoded versions of the video; videos still transcoding return an empty array.","items":{"type":"object","properties":{"column":{"type":"string","description":"Internal encoding identifier (e.g. `MP4_720`)"},"label":{"type":"string","description":"Human-readable quality label (e.g. `480p`)"},"width":{"type":"integer"},"height":{"type":"integer"},"codecs":{"type":"string"},"mime":{"type":"string"},"format":{"type":"string"},"url":{"type":"string","format":"uri","description":"URL to the encoded video file"},"always_generate":{"type":"boolean"}}}}}}}}}}}}},"/guides":{"get":{"operationId":"listGuides","summary":"List all guides","description":"Returns guide summaries in the site's default language, sorted by `guideid`. When `guideids` is provided, only the first 50 ids are used and `filter`, `modifiedSince`, `order`, `offset`, and `limit` are ignored; ids that do not exist or are private (without `includePrivate`) are silently omitted.","tags":["Guides"],"security":[],"parameters":[{"name":"guideids","in":"query","description":"Comma-delimited list of `guideid`s to return. Only the first 50 ids are used; ids the viewer cannot see are omitted.","schema":{"type":"string"}},{"name":"filter","in":"query","description":"Return only guides of the specified types (comma-delimited). Unrecognized types match no guides. Ignored when `guideids` is provided.","schema":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]}},{"name":"order","in":"query","description":"Sort order (ascending or descending).","schema":{"type":"string","enum":["ASC","DESC"],"default":"ASC"}},{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}},{"name":"modifiedSince","in":"query","description":"Filter to only include items modified on or after this UNIX timestamp.","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"List of guides","content":{"application/json":{"schema":{"type":"array","description":"List of guide summaries.","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}}}},"post":{"operationId":"createGuide","summary":"Create a new guide","description":"Creates a guide. The guide starts private unless `public: true` is submitted. When `title` is omitted, a default title is generated from `type`, `category`, and `subject`. Some guide types require a `subject`. Unrecognized body fields are rejected; validation failures return 422 with an `errors` array. Callers without the privilege to create guides receive 404.","tags":["Guides"],"security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["category","type"],"properties":{"category":{"type":"string","description":"Category the guide belongs to (case sensitive)"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"subject":{"type":"string","description":"Subject/component the guide addresses. Required for guide types configured with a subject prompt."},"title":{"type":"string","description":"Custom guide title"},"introduction":{"type":"string","description":"Introduction text in wiki markup. Site-configured line and character limits apply (422 when exceeded)."},"conclusion":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_min":{"type":"integer","description":"Minimum time in seconds"},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"image":{"type":"integer","description":"`imageid` of the guide's main image"},"flags":{"type":"array","items":{"type":"string"},"description":"Flag ids to apply, in display order. Only user-settable flag ids are accepted (422 otherwise)."},"prerequisites":{"type":"array","items":{"type":"integer"},"description":"`guideid`s of prerequisite guides"},"parts":{"type":"array","description":"Parts required for the guide. Each item's `name` is canonicalized to an Item wiki title. See GuideItemWrite.","items":{"type":"object","description":"A tool or part as accepted when writing a guide (`createGuide`, `updateGuide`). `name` is resolved to an Item wiki and stored as that Item's canonical title; when `name` matches no existing Item, a new Item wiki is created from `summary` and `url`. When `name` matches an existing Item, `summary` and `url` are ignored. The response reflects the resolved values.","required":["name"],"properties":{"name":{"type":"string","description":"Item name. Resolved to an Item wiki and stored as that wiki's canonical title."},"type":{"type":"string","description":"Variant/type."},"quantity":{"type":"integer","default":1,"description":"Number of this item needed."},"notes":{"type":"string","nullable":true,"description":"Usage notes specific to this guide."},"isoptional":{"type":"boolean","description":"Whether the item is optional for the guide."},"featured":{"type":"boolean","description":"Whether the item is featured on the guide."},"summary":{"type":"string","description":"Description for the Item wiki created when `name` matches no existing Item. Ignored when `name` matches an existing Item."},"url":{"type":"string","format":"uri","description":"Supplier link for the Item wiki created when `name` matches no existing Item. Ignored when `name` matches an existing Item."}}}},"tools":{"type":"array","description":"Tools required for the guide. Each item's `name` is canonicalized to an Item wiki title. See GuideItemWrite.","items":{"type":"object","description":"A tool or part as accepted when writing a guide (`createGuide`, `updateGuide`). `name` is resolved to an Item wiki and stored as that Item's canonical title; when `name` matches no existing Item, a new Item wiki is created from `summary` and `url`. When `name` matches an existing Item, `summary` and `url` are ignored. The response reflects the resolved values.","required":["name"],"properties":{"name":{"type":"string","description":"Item name. Resolved to an Item wiki and stored as that wiki's canonical title."},"type":{"type":"string","description":"Variant/type."},"quantity":{"type":"integer","default":1,"description":"Number of this item needed."},"notes":{"type":"string","nullable":true,"description":"Usage notes specific to this guide."},"isoptional":{"type":"boolean","description":"Whether the item is optional for the guide."},"featured":{"type":"boolean","description":"Whether the item is featured on the guide."},"summary":{"type":"string","description":"Description for the Item wiki created when `name` matches no existing Item. Ignored when `name` matches an existing Item."},"url":{"type":"string","format":"uri","description":"Supplier link for the Item wiki created when `name` matches no existing Item. Ignored when `name` matches an existing Item."}}}},"documents":{"type":"array","items":{"type":"integer"}},"featured_documentid":{"type":"integer"},"summary":{"type":"string","description":"Short guide summary. Maximum 156 characters."},"objectid":{"type":["integer","null"],"description":"Media `objectid` of an intro video. Must belong to the authenticated user's media library. `null` clears the intro video."},"public":{"type":"boolean"},"langid":{"type":"string","description":"Source language of the new guide. Must be one of the site's supported language codes; defaults to the site default language."}}}}}},"responses":{"201":{"description":"Guide created","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}},"400":{"description":"Bad Request - Invalid parameters or request body","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Invalid parameter: offset must be a non-negative integer"}}}},"401":{"description":"Unauthorized - Authentication required or token invalid","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Authentication required"}}}}}}},"/guides/{guideid}":{"get":{"operationId":"getGuide","summary":"Get a guide","description":"Returns the guide with all steps. Steps of prerequisite guides are inlined into `steps` unless the `excludePrerequisiteSteps` parameter is present (any value, including false). If the guide is not translated into the requested `langid`, the source-language guide is returned. A private guide the viewer cannot see returns 403 rather than 404. With `type=XML`, both the guide and any error response are emitted as XML.","tags":["Guides"],"security":[],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},{"name":"excludePrerequisiteSteps","in":"query","description":"If present with any value (including false), steps from prerequisite guides are not inlined into the `steps` array.","schema":{"type":"boolean"}},{"name":"unpatrolled","in":"query","description":"If present with any value, the response is the head revision including pending (unpatrolled) edits, with no source-language fallback (404 when `langid` has no translation).","schema":{"type":"boolean"}},{"name":"type","in":"query","description":"Response format","schema":{"type":"string","enum":["JSON","XML"],"default":"JSON"}},{"name":"langid","in":"query","description":"Language code for the response content (e.g., \"en\", \"de\", \"fr\", \"it\", \"es\", \"pt\", \"ja\", \"zh\", \"nl\", \"ru\", \"tr\", \"ko\").\nDefaults to the site's default language.\n","schema":{"type":"string","pattern":"^[a-z]{2}$","example":"en"}},{"name":"revisionid","in":"query","description":"Returns the guide as of a specific guide history revision. This is a guide history revisionid, not the `revisionid` concurrency token returned in guide responses. Returns 404 if the revision does not exist or belongs to a different guide or language. Fetching a non-current revision requires the guide-history privilege (403 otherwise). Ignored when `unpatrolled` is present.","schema":{"type":"integer"}}],"responses":{"200":{"description":"Guide details","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}},"patch":{"operationId":"updateGuide","summary":"Update a guide","description":"Updates only the provided fields of an existing guide. If the submitted values canonicalize to the currently stored values, no new revision is created and the response returns the existing `revisionid`.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},{"name":"revisionid","in":"query","description":"Current revision ID of the resource. Required for edit operations to prevent conflicts.","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"subject":{"type":"string"},"title":{"type":"string"},"introduction":{"type":"string"},"conclusion":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required":{"type":"string","maxLength":128,"deprecated":true,"description":"Accepted for backward compatibility but ignored; the value is discarded and does not modify the guide. Use `time_required_min`/`time_required_max` instead."},"time_required_min":{"type":"integer","description":"Minimum time in seconds."},"time_required_max":{"type":"integer","description":"Maximum time in seconds."},"image":{"type":"integer"},"flags":{"type":"array","description":"Full replacement of the guide's flag list, in display order — the same flags in a new order is a real change that reorders them on the guide. Adding or removing a flag that requires a privilege the caller lacks fails validation, so privileged flags already on the guide must be included (though they may be reordered).","items":{"type":"string"}},"prerequisites":{"type":"array","items":{"type":"integer"}},"parts":{"type":"array","description":"Parts required for the guide. Each item's `name` is canonicalized to an Item wiki title. See GuideItemWrite.","items":{"type":"object","description":"A tool or part as accepted when writing a guide (`createGuide`, `updateGuide`). `name` is resolved to an Item wiki and stored as that Item's canonical title; when `name` matches no existing Item, a new Item wiki is created from `summary` and `url`. When `name` matches an existing Item, `summary` and `url` are ignored. The response reflects the resolved values.","required":["name"],"properties":{"name":{"type":"string","description":"Item name. Resolved to an Item wiki and stored as that wiki's canonical title."},"type":{"type":"string","description":"Variant/type."},"quantity":{"type":"integer","default":1,"description":"Number of this item needed."},"notes":{"type":"string","nullable":true,"description":"Usage notes specific to this guide."},"isoptional":{"type":"boolean","description":"Whether the item is optional for the guide."},"featured":{"type":"boolean","description":"Whether the item is featured on the guide."},"summary":{"type":"string","description":"Description for the Item wiki created when `name` matches no existing Item. Ignored when `name` matches an existing Item."},"url":{"type":"string","format":"uri","description":"Supplier link for the Item wiki created when `name` matches no existing Item. Ignored when `name` matches an existing Item."}}}},"tools":{"type":"array","description":"Tools required for the guide. Each item's `name` is canonicalized to an Item wiki title. See GuideItemWrite.","items":{"type":"object","description":"A tool or part as accepted when writing a guide (`createGuide`, `updateGuide`). `name` is resolved to an Item wiki and stored as that Item's canonical title; when `name` matches no existing Item, a new Item wiki is created from `summary` and `url`. When `name` matches an existing Item, `summary` and `url` are ignored. The response reflects the resolved values.","required":["name"],"properties":{"name":{"type":"string","description":"Item name. Resolved to an Item wiki and stored as that wiki's canonical title."},"type":{"type":"string","description":"Variant/type."},"quantity":{"type":"integer","default":1,"description":"Number of this item needed."},"notes":{"type":"string","nullable":true,"description":"Usage notes specific to this guide."},"isoptional":{"type":"boolean","description":"Whether the item is optional for the guide."},"featured":{"type":"boolean","description":"Whether the item is featured on the guide."},"summary":{"type":"string","description":"Description for the Item wiki created when `name` matches no existing Item. Ignored when `name` matches an existing Item."},"url":{"type":"string","format":"uri","description":"Supplier link for the Item wiki created when `name` matches no existing Item. Ignored when `name` matches an existing Item."}}}},"documents":{"type":"array","items":{"type":"integer"}},"featured_documentid":{"type":"integer"},"summary":{"type":"string","maxLength":156,"description":"Short guide summary. Maximum 156 characters."},"objectid":{"type":"integer","nullable":true,"description":"Media `objectid` of a video to attach to the guide introduction. The object must belong to the authenticated user; `null` detaches the current object."},"public":{"type":"boolean","description":"Changing this value requires guide privacy-change privileges; callers without them receive 403. When the value changes, guide PDF privacy is updated to match."}}}}}},"responses":{"200":{"description":"Guide updated. The response body is the updated guide; steps from prerequisite guides are not inlined into `steps`, unlike the default behavior of `getGuide`.","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}},"400":{"description":"Bad Request - Invalid parameters or request body","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Invalid parameter: offset must be a non-negative integer"}}}},"401":{"description":"Unauthorized - Authentication required or token invalid","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Authentication required"}}}},"403":{"description":"Forbidden - Insufficient privileges for this operation","content":{"application/json":{"schema":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"example":{"error":true,"message":"Insufficient privileges","requiredPrivileges":["admin"]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}},"409":{"description":"The `revisionid` query parameter does not match the guide's current revision. The response body is the current guide object (including the current `revisionid`), not an error object.","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}},"422":{"description":"Validation failed. Unknown body fields, invalid field values, and a missing `revisionid` query parameter return 422 with a message and an `errors` array."}}},"delete":{"operationId":"deleteGuide","summary":"Delete a guide","description":"Soft-deletes a guide. All language versions are removed, but the underlying revision data is retained and an admin can restore the guide via `restoreGuide`. Deletion is allowed for callers with the delete-any-guide privilege or for the guide's sole contributor; other callers receive 403. The `revisionid` query parameter must match the guide's current revision: a mismatch returns 409 with the current guide object as the body.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},{"name":"revisionid","in":"query","description":"Current revision ID of the resource. Required for edit operations to prevent conflicts.","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"Success with no content returned"},"401":{"description":"Unauthorized - Authentication required or token invalid","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Authentication required"}}}},"403":{"description":"Forbidden - Insufficient privileges for this operation","content":{"application/json":{"schema":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"example":{"error":true,"message":"Insufficient privileges","requiredPrivileges":["admin"]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}},"409":{"description":"The `revisionid` query parameter does not match the guide's current revision. The response body is the current guide object (including the current `revisionid`), not an error object.","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}},"422":{"description":"Missing `revisionid` query parameter."}}}},"/guides/{guideid}/tags":{"get":{"operationId":"getGuideTags","summary":"Get guide tags","description":"Returns the guide's normal tags as a flat array of strings sorted alphabetically. A guide that is private, deleted, or nonexistent returns 403 with the message \"Guide is private.\"; the endpoint does not return 404.","tags":["Guides","Tags"],"security":[],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}}],"responses":{"200":{"description":"List of tags","content":{"application/json":{"schema":{"type":"array","description":"List of tag names","items":{"type":"string"}}}}},"403":{"description":"Guide is private, deleted, or does not exist. The body is `{\"message\": \"Guide is private.\"}`.","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]}}}}}}},"/guides/{guideid}/tag":{"put":{"operationId":"addGuideTag","summary":"Add tag to guide","description":"Adds a normal tag to a guide, creating the tag if needed. Requires guide moderator privilege. The tag must be at most 32 characters. Tag text is mapped through the site's tag synonyms before storage, so the stored tag can differ from the submitted text. A prefix matching a tag type (for example `device:`) is parsed as a typed tag rather than literal text. Tag changes do not create a guide revision, so no `revisionid` parameter is required.","tags":["Guides","Tags"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tag"],"properties":{"tag":{"type":"string"}}}}}},"responses":{"200":{"description":"The updated guide. The guide object does not include a tags field; current tags are available from `getGuideTags`.","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}}}},"delete":{"operationId":"removeGuideTag","summary":"Remove tag from guide","description":"Removes a normal tag from a guide. Requires guide moderator privilege. Returns 404 if the submitted text does not exactly match a stored tag on the guide; synonyms are not resolved on removal. Tag changes do not create a guide revision, so no `revisionid` parameter is required.","tags":["Guides","Tags"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tag"],"properties":{"tag":{"type":"string"}}}}}},"responses":{"200":{"description":"Guide with updated tags","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}}}}},"/guides/{guideid}/public":{"put":{"operationId":"makeGuidePublic","summary":"Make guide public","description":"Makes a guide publicly visible. The `revisionid` query parameter must match the guide's current `revisionid`; a mismatch returns 409 with the current guide object as the response body. The caller must be permitted to change the guide's privacy (403 otherwise). If the guide is already public, no new revision is created and the current guide is returned. Prerequisite steps are not inlined in the response.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},{"name":"revisionid","in":"query","description":"Current revision ID of the resource. Required for edit operations to prevent conflicts.","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Guide made public","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}}}},"delete":{"operationId":"makeGuidePrivate","summary":"Make guide private","description":"Makes a guide private. The `revisionid` query parameter is required and must match the guide's current `revisionid`; a mismatch returns 409 with the current Guide object as the response body. The caller needs edit privilege on the guide and the privilege to change guide privacy (403 otherwise). If the guide is already private, no new revision is created and the current guide is returned unchanged.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},{"name":"revisionid","in":"query","description":"Current revision ID of the resource. Required for edit operations to prevent conflicts.","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Guide made private","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}}}}},"/guides/{guideid}/completed":{"put":{"operationId":"markGuideCompleted","summary":"Mark guide completed","description":"Marks the guide as completed by the authenticated user. The optional `langid` selects the translation the completion is recorded against and defaults to the guide's source language. A user can complete a guide once across all of its languages; repeated calls return 204 without recording anything. Completion grants reputation to the completing user and the guide's contributors. Returns 420 when a reputation rate limit is exceeded.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"langid":{"type":"string"}}}}}},"responses":{"204":{"description":"Success with no content returned"},"420":{"description":"Reputation rate limit exceeded","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]}}}}}},"delete":{"operationId":"unmarkGuideCompleted","summary":"Uncomplete guide","description":"Removes the authenticated user's completion mark from the guide and reverses the reputation it granted. Returns 204 whether or not a completion existed.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}}],"responses":{"204":{"description":"Success with no content returned"}}}},"/guides/{guideid}/steps":{"post":{"operationId":"createStep","summary":"Create a new step","description":"Adds a step to an existing guide in the guide's source language. `orderby` must be between 1 and the guide's current step count plus one. No guide-level `revisionid` is checked, so concurrent guide edits are not detected. Each line's `level` may exceed the previous line's level by at most one, and the first line must be level 0. Returns 201 with the full updated guide; steps from prerequisite guides are not inlined into the returned `steps`.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["lines","orderby"],"properties":{"lines":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"object","required":["text","bullet","level"],"properties":{"text":{"type":"string","minLength":1,"maxLength":350},"bullet":{"type":"string","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","minimum":0,"maximum":2}}}},"orderby":{"type":"integer","minimum":1,"description":"Position of step (1-indexed)"},"media":{"type":"object","required":["type","data"],"description":"The write format differs from the read format. For `type=image`, `data` is an array of up to 3 `imageid`s; images must be at least 800x600, belong to the authenticated user, and may be cropped and re-encoded in the background, in which case the stored imageids differ from the submitted ones. For `type=object`, `data` is a single `objectid` owned by the authenticated user, or null; setting an object clears the step's images. Responses report `type` as `image`, `video`, or `embed` with expanded data objects.","properties":{"type":{"type":"string","enum":["image","object"]},"data":{"oneOf":[{"type":"array","description":"`imageid`s (for `type=image`)","items":{"type":"integer"}},{"type":["integer","null"],"description":"`objectid` (for `type=object`)"}]}}},"title":{"type":"string","description":"Trimmed before saving. Silently ignored for accounts whose only privilege role is student."}}}}}},"responses":{"201":{"description":"Step created","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}}}}},"/guides/{guideid}/steps/{stepid}":{"patch":{"operationId":"updateStep","summary":"Update a step","description":"Edits an existing guide step. The guide id in the path must be the step's owning guide (the step's `guideid`); a guide that includes the step as a prerequisite returns 404. If the submitted values canonicalize to the currently stored values, no new revision is created and the response returns the existing `revisionid`.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},{"name":"stepid","in":"path","required":true,"description":"Unique identifier of the step.","schema":{"type":"integer"}},{"name":"revisionid","in":"query","required":true,"description":"The step's current `revisionid` as returned by the API. If it does not match, the request is rejected with 409 and the response body is the step's current state.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lines":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"object","required":["text","bullet","level"],"properties":{"text":{"type":"string"},"bullet":{"type":"string"},"level":{"type":"integer"}}}},"media":{"type":"object","required":["type","data"],"description":"Same write format as `createStep`: `type` is `image` (case-insensitive) with `data` as an array of image ids, or `object` with `data` as a single media-manager object id or null.","properties":{"type":{"type":"string","enum":["image","object"]},"data":{"oneOf":[{"type":"array","items":{"type":"integer"}},{"type":["integer","null"]}]}}},"title":{"type":"string","description":"Ignored for accounts whose only privilege role is student."}}}}}},"responses":{"200":{"description":"Step updated","content":{"application/json":{"schema":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}}}}}},"delete":{"operationId":"deleteStep","summary":"Delete a step","description":"Deletes a step from a guide. The step must be one of the guide's own steps; `stepid`s belonging to prerequisite guides return 404. If `revisionid` does not match the step's current `revisionid`, the response is 409 with the step's current state as the body. Returns the updated guide; steps from prerequisite guides are not inlined into the returned `steps`.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},{"name":"stepid","in":"path","required":true,"description":"Unique identifier of the step.","schema":{"type":"integer"}},{"name":"revisionid","in":"query","required":true,"description":"The step's current `revisionid` as returned by the API. If it does not match, the request is rejected with 409 and the response body is the step's current state.","schema":{"type":"integer"}}],"responses":{"200":{"description":"Step deleted, guide returned","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}}}}},"/guides/{guideid}/steporder":{"put":{"operationId":"reorderSteps","summary":"Reorder guide steps","description":"Reorders the steps of a guide. `stepids` must be a permutation of the guide's current `stepid`s; extra, missing, or duplicate ids return 422. If the submitted order matches the stored order, no new revision is created. A `revisionid` mismatch returns 409 with the current Guide object as the response body.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},{"name":"revisionid","in":"query","description":"Current revision ID of the resource. Required for edit operations to prevent conflicts.","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["stepids"],"properties":{"stepids":{"type":"array","items":{"type":"integer"},"description":"The guide's current `stepid`s in the desired order."}}}}}},"responses":{"200":{"description":"Steps reordered, full guide returned","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}},"401":{"description":"Unauthorized - Authentication required or token invalid","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Authentication required"}}}},"403":{"description":"Forbidden - Insufficient privileges for this operation","content":{"application/json":{"schema":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"example":{"error":true,"message":"Insufficient privileges","requiredPrivileges":["admin"]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}},"409":{"description":"Revision mismatch. The response body is the current Guide object, not an error object.","content":{"application/json":{"schema":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]}}}}}}},"/guides/{guideid}/users":{"get":{"operationId":"getGuideUsers","summary":"Get allowed users","description":"Lists the users on a guide's allowed-users list. Requires authentication and view access to the guide. Requests for guides that do not exist return 403, not 404. Each entry is a UserSummary without the `privileges` field.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}}],"responses":{"200":{"description":"List of allowed users","content":{"application/json":{"schema":{"type":"array","description":"List of user summaries","items":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]}}}}}}}},"/guides/{guideid}/users/{userid}":{"put":{"operationId":"addGuideUser","summary":"Add allowed user","description":"Adds a user to a guide's allowed-users list. The caller must be able to change the guide's privacy. Users on the list can view the guide while it is private and can themselves change the guide's privacy and allowed lists. Adding a user who is already on the list is a no-op. Returns 404 when the user or guide does not exist.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},{"name":"userid","in":"path","required":true,"description":"Unique identifier of the user.","schema":{"type":"integer"}}],"responses":{"201":{"description":"User added","content":{"application/json":{"schema":{"type":"array","description":"List of user summaries","items":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]}}}}}}},"delete":{"operationId":"removeGuideUser","summary":"Remove allowed user","description":"Removes a user from the allowed list for a private guide. Requires permission to change the guide's privacy. Requests for a nonexistent guide return 403, not 404. The `userid` is not validated: removing a user who is not on the list returns 200 and leaves the list unchanged. Returns the guide's remaining allowed users.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},{"name":"userid","in":"path","required":true,"description":"Unique identifier of the user.","schema":{"type":"integer"}}],"responses":{"200":{"description":"User removed","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","description":"List of user summaries","items":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]}}}}}}}}}},"/guides/{guideid}/teams":{"get":{"operationId":"getGuideTeams","summary":"Get allowed teams","description":"Lists teams on a private guide's allowed list. Requires permission to view the guide; a nonexistent guide returns 403 rather than 404. Only active teams are returned, ordered by team reputation descending. The response wraps the team list in a `guideTeams` key and includes `canIViewGuide`, `canIEditGuide`, and `canIChangeGuidePrivacy` booleans for the authenticated user.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}}],"responses":{"200":{"description":"List of allowed teams","content":{"application/json":{"schema":{"type":"object","properties":{"guideTeams":{"type":"array","description":"Array of Team objects.","items":{"type":"object","description":"Team information as returned by team list endpoints","properties":{"teamid":{"type":"integer"},"name":{"type":"string"},"owner":{"type":"integer","description":"`userid` of the team owner (manager)"},"reputation":{"type":"integer","description":"Sum of the reputation of enabled, non-banned team members"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}],"description":"Team avatar image; `null` when the team has no image"},"url":{"type":"string","format":"uri"},"member_count":{"type":"integer","description":"Number of enabled, non-banned team members"},"description":{"type":"string"},"new_member_since":{"type":"integer","format":"int64","description":"UNIX timestamp of the most recent member join"}}}},"canIViewGuide":{"type":"boolean","description":"Whether the authenticated user can view this guide"},"canIEditGuide":{"type":"boolean","description":"Whether the authenticated user can edit this guide"},"canIChangeGuidePrivacy":{"type":"boolean","description":"Whether the authenticated user can change this guide's privacy"}}}}}}}}},"/guides/{guideid}/teams/{teamid}":{"put":{"operationId":"addGuideTeam","summary":"Add allowed team","description":"Adds a team to a private guide's allowed list, granting its members access to the guide. Requires permission to change the guide's privacy. Returns 404 if the guide or team does not exist. Adding a team that is already on the list is a no-op. The response wraps the team list in a `guideTeams` key and includes `canIViewGuide`, `canIEditGuide`, and `canIChangeGuidePrivacy` booleans for the authenticated user.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},{"name":"teamid","in":"path","required":true,"description":"Unique identifier of the team.","schema":{"type":"integer"}}],"responses":{"201":{"description":"Team added","content":{"application/json":{"schema":{"type":"array","description":"Array of Team objects.","items":{"type":"object","description":"Team information as returned by team list endpoints","properties":{"teamid":{"type":"integer"},"name":{"type":"string"},"owner":{"type":"integer","description":"`userid` of the team owner (manager)"},"reputation":{"type":"integer","description":"Sum of the reputation of enabled, non-banned team members"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}],"description":"Team avatar image; `null` when the team has no image"},"url":{"type":"string","format":"uri"},"member_count":{"type":"integer","description":"Number of enabled, non-banned team members"},"description":{"type":"string"},"new_member_since":{"type":"integer","format":"int64","description":"UNIX timestamp of the most recent member join"}}}}}}}}},"delete":{"operationId":"removeGuideTeam","summary":"Remove allowed team","description":"Removes a team from the allowed list for a private guide. Requires permission to change the guide's privacy. Returns 404 if the guide does not exist. The `teamid` is not validated, so removing a team that is absent from the list succeeds and returns the unchanged state. The response wraps the team list in a `guideTeams` key and includes `canIViewGuide`, `canIEditGuide`, and `canIChangeGuidePrivacy` booleans for the authenticated user.","tags":["Guides"],"security":[{"apiToken":[]}],"parameters":[{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},{"name":"teamid","in":"path","required":true,"description":"Unique identifier of the team.","schema":{"type":"integer"}}],"responses":{"200":{"description":"Team removed","content":{"application/json":{"schema":{"type":"array","description":"Array of Team objects.","items":{"type":"object","description":"Team information as returned by team list endpoints","properties":{"teamid":{"type":"integer"},"name":{"type":"string"},"owner":{"type":"integer","description":"`userid` of the team owner (manager)"},"reputation":{"type":"integer","description":"Sum of the reputation of enabled, non-banned team members"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}],"description":"Team avatar image; `null` when the team has no image"},"url":{"type":"string","format":"uri"},"member_count":{"type":"integer","description":"Number of enabled, non-banned team members"},"description":{"type":"string"},"new_member_since":{"type":"integer","format":"int64","description":"UNIX timestamp of the most recent member join"}}}}}}}}}},"/wikis/{namespace}":{"get":{"operationId":"listWikis","summary":"List wikis","description":"Returns wikis in the specified namespace as lightweight list objects. The `display` query parameter selects the format: `objects` (default) returns a flat list; `leaves` returns only leaf categories; `hierarchy` (CATEGORY namespace only) ignores pagination and returns a nested map of category titles. Results are ordered by title ascending; with `modifiedSince`, only wikis with a revision on or after that UNIX timestamp are returned, ordered by latest revision instead. Private and deleted wikis are excluded. With `langid`, each wiki is returned in the requested language when an approved translation exists and in its master language otherwise.","tags":["Wikis"],"security":[],"parameters":[{"name":"namespace","in":"path","required":true,"description":"Wiki namespace.","schema":{"type":"string","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]}},{"name":"modifiedSince","in":"query","description":"Filter to only include items modified on or after this UNIX timestamp.","schema":{"type":"integer","format":"int64"}},{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}},{"name":"langid","in":"query","description":"Language code for the response content (e.g., \"en\", \"de\", \"fr\", \"it\", \"es\", \"pt\", \"ja\", \"zh\", \"nl\", \"ru\", \"tr\", \"ko\").\nDefaults to the site's default language.\n","schema":{"type":"string","pattern":"^[a-z]{2}$","example":"en"}}],"responses":{"200":{"description":"List of wikis","content":{"application/json":{"schema":{"type":"array","description":"List of lightweight wiki blurb objects. `revisionid` is not included in list items.","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}}}}},"/wikis":{"post":{"operationId":"createWiki","summary":"Create a new wiki","description":"Creates a wiki page. Requires authentication and permission to create pages in the target namespace; USER wikis use the numeric `userid` as the title and TEAM wikis the numeric `teamid`. Unknown body fields, and fields that do not apply to the target namespace, are rejected with 422. If a wiki with the same namespace and title already exists, the request returns 422 unless `source_revisionid` is provided, in which case a translation of the existing wiki is started in the request's view language. On success the response is 201 with the full wiki object.","tags":["Wikis"],"security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["namespace","title","contents"],"properties":{"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"Wiki URL-safe title"},"contents":{"type":"string","description":"Wiki content in wiki markup"},"image":{"type":"integer","description":"Image ID for main image"},"display_title":{"type":"string","description":"Human-readable display title"},"repairability_score":{"type":"integer","minimum":0,"maximum":10},"source_revisionid":{"type":"integer","description":"Revision of the existing wiki to translate from"},"flags":{"type":"array","description":"Replaces the wiki's flag set. Array order is preserved and is the order the flag banners render in on the page.","items":{"type":"string"}},"description":{"type":"string","description":"Short description (CATEGORY and ITEM wikis only)"},"suppliers":{"type":"array","items":{"type":"object"}},"info":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"documents":{"type":"array","items":{"type":"object","properties":{"documentid":{"type":"integer"}}}}}}}}},"responses":{"201":{"description":"Wiki created","content":{"application/json":{"schema":{"type":"object","description":"Complete wiki with full content. Full wiki responses do not include the `dataType`, `url`, `summary`, or `text` fields listed on WikiSummary; the short summary is returned in the `description` field. Namespace-specific fields (`guides`, `children`, `parts`, `tools`, `suppliers`, and similar) are present only for their namespaces, as noted on each field.","allOf":[{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"contents_raw":{"type":"string","description":"Wiki content in wiki markup"},"contents_rendered":{"type":"string","description":"Wiki content rendered as HTML"},"linked_wikis":{"type":"array","description":"Distinct existing wikis linked directly from the content, in order of first appearance","items":{"type":"object","description":"An existing wiki linked from wiki content","required":["wikiid","namespace","title"],"properties":{"wikiid":{"type":"integer","description":"Unique identifier of the linked wiki"},"namespace":{"type":"string","description":"Namespace of the linked wiki"},"title":{"type":"string","description":"Title of the linked wiki"}}}},"created_date":{"type":"integer","format":"int64","description":"Wiki creation timestamp"},"ancestors":{"type":"array","description":"Ancestor path, closest parent first","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"is_troubleshooting":{"type":"boolean","description":"Whether this is a troubleshooting wiki"},"authors":{"type":"array","description":"Top wiki contributors, with the creator listed first when present","items":{"type":"object","description":"A contributor's share of authorship of a wiki. `percent` is that contributor's fraction of the wiki's content. `userid` is `null` and `username` empty when the contributor's account no longer exists.","properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number"},"username":{"type":"string"},"avatar_url":{"type":["string","null"],"format":"uri"},"profile_url":{"type":"string","format":"uri"}}}},"tags":{"type":"array","description":"Normal tags applied to the wiki","items":{"type":"string"}},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"description":{"type":"string","description":"Short description, stored as the wiki summary (WIKI, INFO, CATEGORY, and ITEM namespaces)."},"flags":{"description":"On reads, an object keyed by flagid; each value contains `flagid`, `title`, `text`, and image or icon fields. On writes, an array of flagid strings that replaces the wiki's entire flag set; each added or removed flag requires the privilege associated with that flag. Order is preserved in both directions and is the order the flag banners render in on the page."},"repairability_score":{"type":["integer","null"],"description":"Repairability score 0-10 (CATEGORY namespace)","minimum":0,"maximum":10},"source_revisionid":{"type":["integer","null"],"description":"Source revision for translations"},"info":{"type":"array","description":"Additional metadata (CATEGORY and ITEM namespaces)","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"suppliers":{"type":"array","description":"Supplier information (ITEM namespace)","items":{"type":"object","properties":{"part_#":{"type":"string"},"type":{"type":"string"},"supplier":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"documents":{"type":"array","description":"Attached documents (CATEGORY namespace)","items":{"type":"object","properties":{"documentid":{"type":"integer"}}}},"guides":{"type":"array","description":"Associated guides (CATEGORY namespace)","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"children":{"type":"array","description":"Child categories (CATEGORY namespace)","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"parent":{"type":["string","null"],"description":"Parent category title (CATEGORY namespace)"},"author":{"type":"integer","description":"User ID of the primary author"},"available_langids":{"type":"array","description":"Language codes this wiki is available in","items":{"type":"string"}},"can_edit":{"type":"boolean","description":"Whether the authenticated user can edit this wiki"},"page_title":{"type":["string","null"],"description":"Full page title used in the browser tab"},"solutions_url":{"type":"string","format":"uri","description":"URL to related solutions/answers (CATEGORY namespace)"},"contents_json":{"type":"object","description":"Structured JSON representation of wiki contents (CATEGORY namespace)","additionalProperties":true},"category_info":{"type":"object","description":"Category-specific metadata","additionalProperties":true},"category_lists":{"type":"object","description":"Map from list title (for example \"iPhone Repair\") to a list of wiki summary objects (CATEGORY namespace). Returned as a JSON object, `{}` when empty, not as an array.","additionalProperties":true},"related_wikis":{"type":"array","description":"Related wikis","items":{"type":"object","additionalProperties":true}},"featured_guides":{"type":"array","description":"Featured guides for this category","items":{"type":"object","additionalProperties":true}},"diagrams":{"type":"array","description":"Interactive diagrams (CATEGORY namespace)","items":{"type":"object","additionalProperties":true}},"parts":{"type":"object","description":"Parts data (CATEGORY namespace). Returned as an object with `url` (link to all parts for the device) and `categories`, not as an array.","additionalProperties":true},"tools":{"type":"array","description":"Tools list (CATEGORY namespace). Items contain `title`, `target_url`, `image_url`, and `itemcode`.","items":{"type":"object","additionalProperties":true}}}}]}}}}}}},"/wikis/{namespace}/{title}":{"get":{"operationId":"getWiki","summary":"Get a specific wiki","description":"Returns a wiki by namespace and title. The title is URL-decoded and underscores are converted to spaces before lookup. The `can_edit` field reflects the caller's permissions. Returns 404 when the wiki does not exist or is hidden from the viewer. With `langid`, the wiki is returned in the requested language when a translation exists, falling back to the master-language version otherwise.","tags":["Wikis"],"security":[],"parameters":[{"name":"namespace","in":"path","required":true,"description":"Wiki namespace.","schema":{"type":"string","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]}},{"name":"title","in":"path","required":true,"description":"Wiki page title.","schema":{"type":"string"}},{"name":"unpatrolled","in":"query","description":"Returns the pending unpatrolled revision when one exists. Enabled by the presence of the parameter regardless of its value, including `unpatrolled=false`.","schema":{"type":"boolean"}},{"name":"langid","in":"query","description":"Language code for the response content (e.g., \"en\", \"de\", \"fr\", \"it\", \"es\", \"pt\", \"ja\", \"zh\", \"nl\", \"ru\", \"tr\", \"ko\").\nDefaults to the site's default language.\n","schema":{"type":"string","pattern":"^[a-z]{2}$","example":"en"}}],"responses":{"200":{"description":"Wiki details","content":{"application/json":{"schema":{"type":"object","description":"Complete wiki with full content. Full wiki responses do not include the `dataType`, `url`, `summary`, or `text` fields listed on WikiSummary; the short summary is returned in the `description` field. Namespace-specific fields (`guides`, `children`, `parts`, `tools`, `suppliers`, and similar) are present only for their namespaces, as noted on each field.","allOf":[{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"contents_raw":{"type":"string","description":"Wiki content in wiki markup"},"contents_rendered":{"type":"string","description":"Wiki content rendered as HTML"},"linked_wikis":{"type":"array","description":"Distinct existing wikis linked directly from the content, in order of first appearance","items":{"type":"object","description":"An existing wiki linked from wiki content","required":["wikiid","namespace","title"],"properties":{"wikiid":{"type":"integer","description":"Unique identifier of the linked wiki"},"namespace":{"type":"string","description":"Namespace of the linked wiki"},"title":{"type":"string","description":"Title of the linked wiki"}}}},"created_date":{"type":"integer","format":"int64","description":"Wiki creation timestamp"},"ancestors":{"type":"array","description":"Ancestor path, closest parent first","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"is_troubleshooting":{"type":"boolean","description":"Whether this is a troubleshooting wiki"},"authors":{"type":"array","description":"Top wiki contributors, with the creator listed first when present","items":{"type":"object","description":"A contributor's share of authorship of a wiki. `percent` is that contributor's fraction of the wiki's content. `userid` is `null` and `username` empty when the contributor's account no longer exists.","properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number"},"username":{"type":"string"},"avatar_url":{"type":["string","null"],"format":"uri"},"profile_url":{"type":"string","format":"uri"}}}},"tags":{"type":"array","description":"Normal tags applied to the wiki","items":{"type":"string"}},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"description":{"type":"string","description":"Short description, stored as the wiki summary (WIKI, INFO, CATEGORY, and ITEM namespaces)."},"flags":{"description":"On reads, an object keyed by flagid; each value contains `flagid`, `title`, `text`, and image or icon fields. On writes, an array of flagid strings that replaces the wiki's entire flag set; each added or removed flag requires the privilege associated with that flag. Order is preserved in both directions and is the order the flag banners render in on the page."},"repairability_score":{"type":["integer","null"],"description":"Repairability score 0-10 (CATEGORY namespace)","minimum":0,"maximum":10},"source_revisionid":{"type":["integer","null"],"description":"Source revision for translations"},"info":{"type":"array","description":"Additional metadata (CATEGORY and ITEM namespaces)","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"suppliers":{"type":"array","description":"Supplier information (ITEM namespace)","items":{"type":"object","properties":{"part_#":{"type":"string"},"type":{"type":"string"},"supplier":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"documents":{"type":"array","description":"Attached documents (CATEGORY namespace)","items":{"type":"object","properties":{"documentid":{"type":"integer"}}}},"guides":{"type":"array","description":"Associated guides (CATEGORY namespace)","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"children":{"type":"array","description":"Child categories (CATEGORY namespace)","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"parent":{"type":["string","null"],"description":"Parent category title (CATEGORY namespace)"},"author":{"type":"integer","description":"User ID of the primary author"},"available_langids":{"type":"array","description":"Language codes this wiki is available in","items":{"type":"string"}},"can_edit":{"type":"boolean","description":"Whether the authenticated user can edit this wiki"},"page_title":{"type":["string","null"],"description":"Full page title used in the browser tab"},"solutions_url":{"type":"string","format":"uri","description":"URL to related solutions/answers (CATEGORY namespace)"},"contents_json":{"type":"object","description":"Structured JSON representation of wiki contents (CATEGORY namespace)","additionalProperties":true},"category_info":{"type":"object","description":"Category-specific metadata","additionalProperties":true},"category_lists":{"type":"object","description":"Map from list title (for example \"iPhone Repair\") to a list of wiki summary objects (CATEGORY namespace). Returned as a JSON object, `{}` when empty, not as an array.","additionalProperties":true},"related_wikis":{"type":"array","description":"Related wikis","items":{"type":"object","additionalProperties":true}},"featured_guides":{"type":"array","description":"Featured guides for this category","items":{"type":"object","additionalProperties":true}},"diagrams":{"type":"array","description":"Interactive diagrams (CATEGORY namespace)","items":{"type":"object","additionalProperties":true}},"parts":{"type":"object","description":"Parts data (CATEGORY namespace). Returned as an object with `url` (link to all parts for the device) and `categories`, not as an array.","additionalProperties":true},"tools":{"type":"array","description":"Tools list (CATEGORY namespace). Items contain `title`, `target_url`, `image_url`, and `itemcode`.","items":{"type":"object","additionalProperties":true}}}}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}},"patch":{"operationId":"updateWiki","summary":"Modify a wiki","description":"Updates an existing wiki. Requires edit privilege on the wiki. The `revisionid` query parameter must match the current head revision; when an unpatrolled revision exists, the edit applies on top of it and `revisionid` must match the unpatrolled revision instead. An optional `langid` query parameter selects the translation to edit; patching a language with no existing translation starts one. Unknown fields and fields the authenticated user cannot edit are rejected with 422 rather than ignored. If the submitted values match the currently stored values, no new revision is created and the response returns the existing `revisionid`.","tags":["Wikis"],"security":[{"apiToken":[]}],"parameters":[{"name":"namespace","in":"path","required":true,"description":"Wiki namespace.","schema":{"type":"string","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]}},{"name":"title","in":"path","required":true,"description":"Wiki page title.","schema":{"type":"string"}},{"name":"revisionid","in":"query","description":"Current revision ID of the resource. Required for edit operations to prevent conflicts.","required":true,"schema":{"type":"integer"}},{"name":"langid","in":"query","description":"Language code for the response content (e.g., \"en\", \"de\", \"fr\", \"it\", \"es\", \"pt\", \"ja\", \"zh\", \"nl\", \"ru\", \"tr\", \"ko\").\nDefaults to the site's default language.\n","schema":{"type":"string","pattern":"^[a-z]{2}$","example":"en"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"contents":{"type":"string"},"image":{"type":"integer"},"display_title":{"type":"string"},"page_title":{"type":"string","maxLength":255,"description":"The wiki's page title — the heading at the top of the rendered page and its browser-tab title — stored separately from `display_title` (the canonical route name). Editable only by administrators, or by anyone editing a translation; other callers that set it are rejected with 422. Omitting it, or sending JSON `null`, usually leaves the stored value unchanged — but the two titles are kept in sync: if the same request also changes `display_title`, an omitted page title is re-derived from the new `display_title` rather than preserved. Sending an empty string clears the stored title (it then reads back as `null`). Applies to the WIKI, INFO, and CATEGORY namespaces."},"repairability_score":{"type":"integer","minimum":0,"maximum":10},"source_revisionid":{"type":"integer"},"flags":{"type":"array","description":"Replaces the wiki's flag set. Array order is preserved and is the order the flag banners render in on the page.","items":{"type":"string"}},"description":{"type":"string"},"suppliers":{"type":"array","items":{"type":"object"}},"info":{"type":"array","items":{"type":"object"}},"documents":{"type":"array","items":{"type":"object"}},"maintenance_schedule":{"type":"array","description":"Maintenance schedule tasks with trigger-based scheduling\n(CATEGORY namespace only). Each task can have multiple\ntriggers for \"whichever comes first\" logic.\n","items":{"type":"object","required":["task"],"properties":{"task":{"type":"string"},"status":{"type":"string","enum":["active","muted","archived","done"]},"triggers":{"type":"array","items":{"type":"object","description":"Defines when a maintenance task is due. When a schedule has multiple\ntriggers, the task is due when whichever trigger fires first.\n","required":["trigger_type","metric","unit"],"properties":{"trigger_type":{"type":"string","enum":["usage","time","condition"],"description":"Type of trigger:\n- `usage`: based on device usage (miles, hours, cycles, pages)\n- `time`: based on elapsed calendar time\n- `condition`: based on a metric crossing a threshold\n"},"metric":{"type":"string","description":"What is being measured:\n- For `usage` triggers: typically `usage` (matches the event `usage`/`usage_unit` fields)\n- For `time` triggers: `elapsed_time`\n- For `condition` triggers: the specific metric, e.g. `oil_life_percent`, `tire_tread_mm`\n"},"unit":{"type":"string","description":"Unit of measurement (miles, km, hours, pages, months, years, %, mm)"},"first_interval":{"type":["string","null"],"description":"Interval for the first occurrence when it differs from\n`repeat_interval` (for example, a timing belt first due at 90,000\nmiles). `null` means `repeat_interval` applies from the start.\n"},"repeat_interval":{"type":["string","null"],"description":"Interval for subsequent occurrences (for example, an oil change\nevery 5,000 miles). Required for `usage` and `time` triggers.\n"},"comparator":{"type":["string","null"],"description":"Comparison operator for `condition` triggers (`<=`, `>=`, `==`)"},"threshold":{"type":["string","null"],"description":"Value the metric is compared against for `condition` triggers"}}}},"guideid":{"type":["integer","null"]},"parts":{"type":["array","null"],"items":{"type":"object","properties":{"name":{"type":"string"}}}}}}}}}}}},"responses":{"200":{"description":"Wiki updated","content":{"application/json":{"schema":{"type":"object","description":"Complete wiki with full content. Full wiki responses do not include the `dataType`, `url`, `summary`, or `text` fields listed on WikiSummary; the short summary is returned in the `description` field. Namespace-specific fields (`guides`, `children`, `parts`, `tools`, `suppliers`, and similar) are present only for their namespaces, as noted on each field.","allOf":[{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"contents_raw":{"type":"string","description":"Wiki content in wiki markup"},"contents_rendered":{"type":"string","description":"Wiki content rendered as HTML"},"linked_wikis":{"type":"array","description":"Distinct existing wikis linked directly from the content, in order of first appearance","items":{"type":"object","description":"An existing wiki linked from wiki content","required":["wikiid","namespace","title"],"properties":{"wikiid":{"type":"integer","description":"Unique identifier of the linked wiki"},"namespace":{"type":"string","description":"Namespace of the linked wiki"},"title":{"type":"string","description":"Title of the linked wiki"}}}},"created_date":{"type":"integer","format":"int64","description":"Wiki creation timestamp"},"ancestors":{"type":"array","description":"Ancestor path, closest parent first","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"is_troubleshooting":{"type":"boolean","description":"Whether this is a troubleshooting wiki"},"authors":{"type":"array","description":"Top wiki contributors, with the creator listed first when present","items":{"type":"object","description":"A contributor's share of authorship of a wiki. `percent` is that contributor's fraction of the wiki's content. `userid` is `null` and `username` empty when the contributor's account no longer exists.","properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number"},"username":{"type":"string"},"avatar_url":{"type":["string","null"],"format":"uri"},"profile_url":{"type":"string","format":"uri"}}}},"tags":{"type":"array","description":"Normal tags applied to the wiki","items":{"type":"string"}},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"description":{"type":"string","description":"Short description, stored as the wiki summary (WIKI, INFO, CATEGORY, and ITEM namespaces)."},"flags":{"description":"On reads, an object keyed by flagid; each value contains `flagid`, `title`, `text`, and image or icon fields. On writes, an array of flagid strings that replaces the wiki's entire flag set; each added or removed flag requires the privilege associated with that flag. Order is preserved in both directions and is the order the flag banners render in on the page."},"repairability_score":{"type":["integer","null"],"description":"Repairability score 0-10 (CATEGORY namespace)","minimum":0,"maximum":10},"source_revisionid":{"type":["integer","null"],"description":"Source revision for translations"},"info":{"type":"array","description":"Additional metadata (CATEGORY and ITEM namespaces)","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"suppliers":{"type":"array","description":"Supplier information (ITEM namespace)","items":{"type":"object","properties":{"part_#":{"type":"string"},"type":{"type":"string"},"supplier":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"documents":{"type":"array","description":"Attached documents (CATEGORY namespace)","items":{"type":"object","properties":{"documentid":{"type":"integer"}}}},"guides":{"type":"array","description":"Associated guides (CATEGORY namespace)","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"children":{"type":"array","description":"Child categories (CATEGORY namespace)","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"parent":{"type":["string","null"],"description":"Parent category title (CATEGORY namespace)"},"author":{"type":"integer","description":"User ID of the primary author"},"available_langids":{"type":"array","description":"Language codes this wiki is available in","items":{"type":"string"}},"can_edit":{"type":"boolean","description":"Whether the authenticated user can edit this wiki"},"page_title":{"type":["string","null"],"description":"Full page title used in the browser tab"},"solutions_url":{"type":"string","format":"uri","description":"URL to related solutions/answers (CATEGORY namespace)"},"contents_json":{"type":"object","description":"Structured JSON representation of wiki contents (CATEGORY namespace)","additionalProperties":true},"category_info":{"type":"object","description":"Category-specific metadata","additionalProperties":true},"category_lists":{"type":"object","description":"Map from list title (for example \"iPhone Repair\") to a list of wiki summary objects (CATEGORY namespace). Returned as a JSON object, `{}` when empty, not as an array.","additionalProperties":true},"related_wikis":{"type":"array","description":"Related wikis","items":{"type":"object","additionalProperties":true}},"featured_guides":{"type":"array","description":"Featured guides for this category","items":{"type":"object","additionalProperties":true}},"diagrams":{"type":"array","description":"Interactive diagrams (CATEGORY namespace)","items":{"type":"object","additionalProperties":true}},"parts":{"type":"object","description":"Parts data (CATEGORY namespace). Returned as an object with `url` (link to all parts for the device) and `categories`, not as an array.","additionalProperties":true},"tools":{"type":"array","description":"Tools list (CATEGORY namespace). Items contain `title`, `target_url`, `image_url`, and `itemcode`.","items":{"type":"object","additionalProperties":true}}}}]}}}},"409":{"description":"The supplied `revisionid` does not match the wiki's current\nrevision. The response body is the current Wiki object at its head\nrevision, not an error envelope.\n","content":{"application/json":{"schema":{"type":"object","description":"Complete wiki with full content. Full wiki responses do not include the `dataType`, `url`, `summary`, or `text` fields listed on WikiSummary; the short summary is returned in the `description` field. Namespace-specific fields (`guides`, `children`, `parts`, `tools`, `suppliers`, and similar) are present only for their namespaces, as noted on each field.","allOf":[{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"contents_raw":{"type":"string","description":"Wiki content in wiki markup"},"contents_rendered":{"type":"string","description":"Wiki content rendered as HTML"},"linked_wikis":{"type":"array","description":"Distinct existing wikis linked directly from the content, in order of first appearance","items":{"type":"object","description":"An existing wiki linked from wiki content","required":["wikiid","namespace","title"],"properties":{"wikiid":{"type":"integer","description":"Unique identifier of the linked wiki"},"namespace":{"type":"string","description":"Namespace of the linked wiki"},"title":{"type":"string","description":"Title of the linked wiki"}}}},"created_date":{"type":"integer","format":"int64","description":"Wiki creation timestamp"},"ancestors":{"type":"array","description":"Ancestor path, closest parent first","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"is_troubleshooting":{"type":"boolean","description":"Whether this is a troubleshooting wiki"},"authors":{"type":"array","description":"Top wiki contributors, with the creator listed first when present","items":{"type":"object","description":"A contributor's share of authorship of a wiki. `percent` is that contributor's fraction of the wiki's content. `userid` is `null` and `username` empty when the contributor's account no longer exists.","properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number"},"username":{"type":"string"},"avatar_url":{"type":["string","null"],"format":"uri"},"profile_url":{"type":"string","format":"uri"}}}},"tags":{"type":"array","description":"Normal tags applied to the wiki","items":{"type":"string"}},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"description":{"type":"string","description":"Short description, stored as the wiki summary (WIKI, INFO, CATEGORY, and ITEM namespaces)."},"flags":{"description":"On reads, an object keyed by flagid; each value contains `flagid`, `title`, `text`, and image or icon fields. On writes, an array of flagid strings that replaces the wiki's entire flag set; each added or removed flag requires the privilege associated with that flag. Order is preserved in both directions and is the order the flag banners render in on the page."},"repairability_score":{"type":["integer","null"],"description":"Repairability score 0-10 (CATEGORY namespace)","minimum":0,"maximum":10},"source_revisionid":{"type":["integer","null"],"description":"Source revision for translations"},"info":{"type":"array","description":"Additional metadata (CATEGORY and ITEM namespaces)","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"suppliers":{"type":"array","description":"Supplier information (ITEM namespace)","items":{"type":"object","properties":{"part_#":{"type":"string"},"type":{"type":"string"},"supplier":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"documents":{"type":"array","description":"Attached documents (CATEGORY namespace)","items":{"type":"object","properties":{"documentid":{"type":"integer"}}}},"guides":{"type":"array","description":"Associated guides (CATEGORY namespace)","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"children":{"type":"array","description":"Child categories (CATEGORY namespace)","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"parent":{"type":["string","null"],"description":"Parent category title (CATEGORY namespace)"},"author":{"type":"integer","description":"User ID of the primary author"},"available_langids":{"type":"array","description":"Language codes this wiki is available in","items":{"type":"string"}},"can_edit":{"type":"boolean","description":"Whether the authenticated user can edit this wiki"},"page_title":{"type":["string","null"],"description":"Full page title used in the browser tab"},"solutions_url":{"type":"string","format":"uri","description":"URL to related solutions/answers (CATEGORY namespace)"},"contents_json":{"type":"object","description":"Structured JSON representation of wiki contents (CATEGORY namespace)","additionalProperties":true},"category_info":{"type":"object","description":"Category-specific metadata","additionalProperties":true},"category_lists":{"type":"object","description":"Map from list title (for example \"iPhone Repair\") to a list of wiki summary objects (CATEGORY namespace). Returned as a JSON object, `{}` when empty, not as an array.","additionalProperties":true},"related_wikis":{"type":"array","description":"Related wikis","items":{"type":"object","additionalProperties":true}},"featured_guides":{"type":"array","description":"Featured guides for this category","items":{"type":"object","additionalProperties":true}},"diagrams":{"type":"array","description":"Interactive diagrams (CATEGORY namespace)","items":{"type":"object","additionalProperties":true}},"parts":{"type":"object","description":"Parts data (CATEGORY namespace). Returned as an object with `url` (link to all parts for the device) and `categories`, not as an array.","additionalProperties":true},"tools":{"type":"array","description":"Tools list (CATEGORY namespace). Items contain `title`, `target_url`, `image_url`, and `itemcode`.","items":{"type":"object","additionalProperties":true}}}}]}}}}}},"delete":{"operationId":"deleteWiki","summary":"Delete a wiki","description":"Soft-deletes a wiki by saving a new revision with empty contents; the wiki's history is preserved and the deletion can be reverted. Requires edit and delete privileges on the wiki. The `revisionid` query parameter must match the current head revision; a mismatch returns 409 with the current Wiki object as the body. `langid` defaults to the wiki's master language, not the site default; deleting a translation removes only that translation, while deleting the master language also deletes all translations. A CATEGORY wiki with children cannot be deleted in its master language.","tags":["Wikis"],"security":[{"apiToken":[]}],"parameters":[{"name":"namespace","in":"path","required":true,"description":"Wiki namespace.","schema":{"type":"string","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]}},{"name":"title","in":"path","required":true,"description":"Wiki page title.","schema":{"type":"string"}},{"name":"revisionid","in":"query","description":"Current revision ID of the resource. Required for edit operations to prevent conflicts.","required":true,"schema":{"type":"integer"}},{"name":"langid","in":"query","description":"Language code for the response content (e.g., \"en\", \"de\", \"fr\", \"it\", \"es\", \"pt\", \"ja\", \"zh\", \"nl\", \"ru\", \"tr\", \"ko\").\nDefaults to the site's default language.\n","schema":{"type":"string","pattern":"^[a-z]{2}$","example":"en"}}],"responses":{"204":{"description":"Success with no content returned"},"403":{"description":"Forbidden - Insufficient privileges for this operation","content":{"application/json":{"schema":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"example":{"error":true,"message":"Insufficient privileges","requiredPrivileges":["admin"]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}},"409":{"description":"The supplied `revisionid` does not match the wiki's latest revision (or its unpatrolled revision when one exists). The response body is the current Wiki object.","content":{"application/json":{"schema":{"type":"object","description":"Complete wiki with full content. Full wiki responses do not include the `dataType`, `url`, `summary`, or `text` fields listed on WikiSummary; the short summary is returned in the `description` field. Namespace-specific fields (`guides`, `children`, `parts`, `tools`, `suppliers`, and similar) are present only for their namespaces, as noted on each field.","allOf":[{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"contents_raw":{"type":"string","description":"Wiki content in wiki markup"},"contents_rendered":{"type":"string","description":"Wiki content rendered as HTML"},"linked_wikis":{"type":"array","description":"Distinct existing wikis linked directly from the content, in order of first appearance","items":{"type":"object","description":"An existing wiki linked from wiki content","required":["wikiid","namespace","title"],"properties":{"wikiid":{"type":"integer","description":"Unique identifier of the linked wiki"},"namespace":{"type":"string","description":"Namespace of the linked wiki"},"title":{"type":"string","description":"Title of the linked wiki"}}}},"created_date":{"type":"integer","format":"int64","description":"Wiki creation timestamp"},"ancestors":{"type":"array","description":"Ancestor path, closest parent first","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"is_troubleshooting":{"type":"boolean","description":"Whether this is a troubleshooting wiki"},"authors":{"type":"array","description":"Top wiki contributors, with the creator listed first when present","items":{"type":"object","description":"A contributor's share of authorship of a wiki. `percent` is that contributor's fraction of the wiki's content. `userid` is `null` and `username` empty when the contributor's account no longer exists.","properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number"},"username":{"type":"string"},"avatar_url":{"type":["string","null"],"format":"uri"},"profile_url":{"type":"string","format":"uri"}}}},"tags":{"type":"array","description":"Normal tags applied to the wiki","items":{"type":"string"}},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"description":{"type":"string","description":"Short description, stored as the wiki summary (WIKI, INFO, CATEGORY, and ITEM namespaces)."},"flags":{"description":"On reads, an object keyed by flagid; each value contains `flagid`, `title`, `text`, and image or icon fields. On writes, an array of flagid strings that replaces the wiki's entire flag set; each added or removed flag requires the privilege associated with that flag. Order is preserved in both directions and is the order the flag banners render in on the page."},"repairability_score":{"type":["integer","null"],"description":"Repairability score 0-10 (CATEGORY namespace)","minimum":0,"maximum":10},"source_revisionid":{"type":["integer","null"],"description":"Source revision for translations"},"info":{"type":"array","description":"Additional metadata (CATEGORY and ITEM namespaces)","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"suppliers":{"type":"array","description":"Supplier information (ITEM namespace)","items":{"type":"object","properties":{"part_#":{"type":"string"},"type":{"type":"string"},"supplier":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"documents":{"type":"array","description":"Attached documents (CATEGORY namespace)","items":{"type":"object","properties":{"documentid":{"type":"integer"}}}},"guides":{"type":"array","description":"Associated guides (CATEGORY namespace)","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"children":{"type":"array","description":"Child categories (CATEGORY namespace)","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"parent":{"type":["string","null"],"description":"Parent category title (CATEGORY namespace)"},"author":{"type":"integer","description":"User ID of the primary author"},"available_langids":{"type":"array","description":"Language codes this wiki is available in","items":{"type":"string"}},"can_edit":{"type":"boolean","description":"Whether the authenticated user can edit this wiki"},"page_title":{"type":["string","null"],"description":"Full page title used in the browser tab"},"solutions_url":{"type":"string","format":"uri","description":"URL to related solutions/answers (CATEGORY namespace)"},"contents_json":{"type":"object","description":"Structured JSON representation of wiki contents (CATEGORY namespace)","additionalProperties":true},"category_info":{"type":"object","description":"Category-specific metadata","additionalProperties":true},"category_lists":{"type":"object","description":"Map from list title (for example \"iPhone Repair\") to a list of wiki summary objects (CATEGORY namespace). Returned as a JSON object, `{}` when empty, not as an array.","additionalProperties":true},"related_wikis":{"type":"array","description":"Related wikis","items":{"type":"object","additionalProperties":true}},"featured_guides":{"type":"array","description":"Featured guides for this category","items":{"type":"object","additionalProperties":true}},"diagrams":{"type":"array","description":"Interactive diagrams (CATEGORY namespace)","items":{"type":"object","additionalProperties":true}},"parts":{"type":"object","description":"Parts data (CATEGORY namespace). Returned as an object with `url` (link to all parts for the device) and `categories`, not as an array.","additionalProperties":true},"tools":{"type":"array","description":"Tools list (CATEGORY namespace). Items contain `title`, `target_url`, `image_url`, and `itemcode`.","items":{"type":"object","additionalProperties":true}}}}]}}}},"422":{"description":"The wiki is the master language of a CATEGORY with child categories, or a parameter failed validation."}}}},"/wikis/{namespace}/{title}/revert":{"post":{"operationId":"revertWiki","summary":"Revert a wiki","description":"Reverts a wiki by saving a new revision whose contents match the revision identified by `to_revisionid`; the current display title and namespace are preserved even if the target revision had different ones. Requires edit privilege on the wiki (403). `revisionid` must identify the wiki's current head revision (the unpatrolled revision when one exists); a mismatch returns 409 with the current Wiki object as the body. `to_revisionid` must be a different revision of the same wiki and language (422 otherwise). Returns the resulting wiki.","tags":["Wikis"],"security":[{"apiToken":[]}],"parameters":[{"name":"namespace","in":"path","required":true,"description":"Wiki namespace.","schema":{"type":"string","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]}},{"name":"title","in":"path","required":true,"description":"Wiki page title.","schema":{"type":"string"}},{"name":"revisionid","in":"query","description":"Current revision ID of the resource. Required for edit operations to prevent conflicts.","required":true,"schema":{"type":"integer"}},{"name":"to_revisionid","in":"query","required":true,"description":"Revision to revert to","schema":{"type":"integer"}}],"responses":{"200":{"description":"Wiki reverted","content":{"application/json":{"schema":{"type":"object","description":"Complete wiki with full content. Full wiki responses do not include the `dataType`, `url`, `summary`, or `text` fields listed on WikiSummary; the short summary is returned in the `description` field. Namespace-specific fields (`guides`, `children`, `parts`, `tools`, `suppliers`, and similar) are present only for their namespaces, as noted on each field.","allOf":[{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"contents_raw":{"type":"string","description":"Wiki content in wiki markup"},"contents_rendered":{"type":"string","description":"Wiki content rendered as HTML"},"linked_wikis":{"type":"array","description":"Distinct existing wikis linked directly from the content, in order of first appearance","items":{"type":"object","description":"An existing wiki linked from wiki content","required":["wikiid","namespace","title"],"properties":{"wikiid":{"type":"integer","description":"Unique identifier of the linked wiki"},"namespace":{"type":"string","description":"Namespace of the linked wiki"},"title":{"type":"string","description":"Title of the linked wiki"}}}},"created_date":{"type":"integer","format":"int64","description":"Wiki creation timestamp"},"ancestors":{"type":"array","description":"Ancestor path, closest parent first","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"is_troubleshooting":{"type":"boolean","description":"Whether this is a troubleshooting wiki"},"authors":{"type":"array","description":"Top wiki contributors, with the creator listed first when present","items":{"type":"object","description":"A contributor's share of authorship of a wiki. `percent` is that contributor's fraction of the wiki's content. `userid` is `null` and `username` empty when the contributor's account no longer exists.","properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number"},"username":{"type":"string"},"avatar_url":{"type":["string","null"],"format":"uri"},"profile_url":{"type":"string","format":"uri"}}}},"tags":{"type":"array","description":"Normal tags applied to the wiki","items":{"type":"string"}},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"description":{"type":"string","description":"Short description, stored as the wiki summary (WIKI, INFO, CATEGORY, and ITEM namespaces)."},"flags":{"description":"On reads, an object keyed by flagid; each value contains `flagid`, `title`, `text`, and image or icon fields. On writes, an array of flagid strings that replaces the wiki's entire flag set; each added or removed flag requires the privilege associated with that flag. Order is preserved in both directions and is the order the flag banners render in on the page."},"repairability_score":{"type":["integer","null"],"description":"Repairability score 0-10 (CATEGORY namespace)","minimum":0,"maximum":10},"source_revisionid":{"type":["integer","null"],"description":"Source revision for translations"},"info":{"type":"array","description":"Additional metadata (CATEGORY and ITEM namespaces)","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"suppliers":{"type":"array","description":"Supplier information (ITEM namespace)","items":{"type":"object","properties":{"part_#":{"type":"string"},"type":{"type":"string"},"supplier":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"documents":{"type":"array","description":"Attached documents (CATEGORY namespace)","items":{"type":"object","properties":{"documentid":{"type":"integer"}}}},"guides":{"type":"array","description":"Associated guides (CATEGORY namespace)","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"children":{"type":"array","description":"Child categories (CATEGORY namespace)","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"parent":{"type":["string","null"],"description":"Parent category title (CATEGORY namespace)"},"author":{"type":"integer","description":"User ID of the primary author"},"available_langids":{"type":"array","description":"Language codes this wiki is available in","items":{"type":"string"}},"can_edit":{"type":"boolean","description":"Whether the authenticated user can edit this wiki"},"page_title":{"type":["string","null"],"description":"Full page title used in the browser tab"},"solutions_url":{"type":"string","format":"uri","description":"URL to related solutions/answers (CATEGORY namespace)"},"contents_json":{"type":"object","description":"Structured JSON representation of wiki contents (CATEGORY namespace)","additionalProperties":true},"category_info":{"type":"object","description":"Category-specific metadata","additionalProperties":true},"category_lists":{"type":"object","description":"Map from list title (for example \"iPhone Repair\") to a list of wiki summary objects (CATEGORY namespace). Returned as a JSON object, `{}` when empty, not as an array.","additionalProperties":true},"related_wikis":{"type":"array","description":"Related wikis","items":{"type":"object","additionalProperties":true}},"featured_guides":{"type":"array","description":"Featured guides for this category","items":{"type":"object","additionalProperties":true}},"diagrams":{"type":"array","description":"Interactive diagrams (CATEGORY namespace)","items":{"type":"object","additionalProperties":true}},"parts":{"type":"object","description":"Parts data (CATEGORY namespace). Returned as an object with `url` (link to all parts for the device) and `categories`, not as an array.","additionalProperties":true},"tools":{"type":"array","description":"Tools list (CATEGORY namespace). Items contain `title`, `target_url`, `image_url`, and `itemcode`.","items":{"type":"object","additionalProperties":true}}}}]}}}}}}},"/wikis/{namespace}/{title}/tags":{"get":{"operationId":"getWikiTags","summary":"Get wiki tags","description":"Returns the wiki's normal (untyped) tags, sorted alphabetically; typed tags (`device:`, `product:`, `lang:`, `source:`, `system:`) are excluded. Returns 404 if the wiki does not exist or is hidden from the viewer.","tags":["Wikis","Tags"],"security":[],"parameters":[{"name":"namespace","in":"path","required":true,"description":"Wiki namespace.","schema":{"type":"string","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]}},{"name":"title","in":"path","required":true,"description":"Wiki page title.","schema":{"type":"string"}}],"responses":{"200":{"description":"List of tags","content":{"application/json":{"schema":{"type":"array","description":"List of tag names","items":{"type":"string"}}}}}}}},"/wikis/{namespace}/{title}/tag":{"put":{"operationId":"addWikiTag","summary":"Add tag to wiki","description":"Adds a tag to a wiki, creating the tag if needed. Requires a moderator account. The tag must be at most 32 characters and is mapped to its canonical form through the site's tag synonym list, so the stored tag can differ from the submitted text. A tag prefixed with a recognized tag type and a colon (`device:`, `product:`, `lang:`, `source:`, `system:`) is stored as a typed tag and does not appear in the wiki's `tags` list. On success the response is the full wiki object with the updated `tags` list.","tags":["Wikis","Tags"],"security":[{"apiToken":[]}],"parameters":[{"name":"namespace","in":"path","required":true,"description":"Wiki namespace.","schema":{"type":"string","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]}},{"name":"title","in":"path","required":true,"description":"Wiki page title.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tag"],"properties":{"tag":{"type":"string"}}}}}},"responses":{"200":{"description":"Wiki with updated tags","content":{"application/json":{"schema":{"type":"object","description":"Complete wiki with full content. Full wiki responses do not include the `dataType`, `url`, `summary`, or `text` fields listed on WikiSummary; the short summary is returned in the `description` field. Namespace-specific fields (`guides`, `children`, `parts`, `tools`, `suppliers`, and similar) are present only for their namespaces, as noted on each field.","allOf":[{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"contents_raw":{"type":"string","description":"Wiki content in wiki markup"},"contents_rendered":{"type":"string","description":"Wiki content rendered as HTML"},"linked_wikis":{"type":"array","description":"Distinct existing wikis linked directly from the content, in order of first appearance","items":{"type":"object","description":"An existing wiki linked from wiki content","required":["wikiid","namespace","title"],"properties":{"wikiid":{"type":"integer","description":"Unique identifier of the linked wiki"},"namespace":{"type":"string","description":"Namespace of the linked wiki"},"title":{"type":"string","description":"Title of the linked wiki"}}}},"created_date":{"type":"integer","format":"int64","description":"Wiki creation timestamp"},"ancestors":{"type":"array","description":"Ancestor path, closest parent first","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"is_troubleshooting":{"type":"boolean","description":"Whether this is a troubleshooting wiki"},"authors":{"type":"array","description":"Top wiki contributors, with the creator listed first when present","items":{"type":"object","description":"A contributor's share of authorship of a wiki. `percent` is that contributor's fraction of the wiki's content. `userid` is `null` and `username` empty when the contributor's account no longer exists.","properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number"},"username":{"type":"string"},"avatar_url":{"type":["string","null"],"format":"uri"},"profile_url":{"type":"string","format":"uri"}}}},"tags":{"type":"array","description":"Normal tags applied to the wiki","items":{"type":"string"}},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"description":{"type":"string","description":"Short description, stored as the wiki summary (WIKI, INFO, CATEGORY, and ITEM namespaces)."},"flags":{"description":"On reads, an object keyed by flagid; each value contains `flagid`, `title`, `text`, and image or icon fields. On writes, an array of flagid strings that replaces the wiki's entire flag set; each added or removed flag requires the privilege associated with that flag. Order is preserved in both directions and is the order the flag banners render in on the page."},"repairability_score":{"type":["integer","null"],"description":"Repairability score 0-10 (CATEGORY namespace)","minimum":0,"maximum":10},"source_revisionid":{"type":["integer","null"],"description":"Source revision for translations"},"info":{"type":"array","description":"Additional metadata (CATEGORY and ITEM namespaces)","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"suppliers":{"type":"array","description":"Supplier information (ITEM namespace)","items":{"type":"object","properties":{"part_#":{"type":"string"},"type":{"type":"string"},"supplier":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"documents":{"type":"array","description":"Attached documents (CATEGORY namespace)","items":{"type":"object","properties":{"documentid":{"type":"integer"}}}},"guides":{"type":"array","description":"Associated guides (CATEGORY namespace)","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"children":{"type":"array","description":"Child categories (CATEGORY namespace)","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"parent":{"type":["string","null"],"description":"Parent category title (CATEGORY namespace)"},"author":{"type":"integer","description":"User ID of the primary author"},"available_langids":{"type":"array","description":"Language codes this wiki is available in","items":{"type":"string"}},"can_edit":{"type":"boolean","description":"Whether the authenticated user can edit this wiki"},"page_title":{"type":["string","null"],"description":"Full page title used in the browser tab"},"solutions_url":{"type":"string","format":"uri","description":"URL to related solutions/answers (CATEGORY namespace)"},"contents_json":{"type":"object","description":"Structured JSON representation of wiki contents (CATEGORY namespace)","additionalProperties":true},"category_info":{"type":"object","description":"Category-specific metadata","additionalProperties":true},"category_lists":{"type":"object","description":"Map from list title (for example \"iPhone Repair\") to a list of wiki summary objects (CATEGORY namespace). Returned as a JSON object, `{}` when empty, not as an array.","additionalProperties":true},"related_wikis":{"type":"array","description":"Related wikis","items":{"type":"object","additionalProperties":true}},"featured_guides":{"type":"array","description":"Featured guides for this category","items":{"type":"object","additionalProperties":true}},"diagrams":{"type":"array","description":"Interactive diagrams (CATEGORY namespace)","items":{"type":"object","additionalProperties":true}},"parts":{"type":"object","description":"Parts data (CATEGORY namespace). Returned as an object with `url` (link to all parts for the device) and `categories`, not as an array.","additionalProperties":true},"tools":{"type":"array","description":"Tools list (CATEGORY namespace). Items contain `title`, `target_url`, `image_url`, and `itemcode`.","items":{"type":"object","additionalProperties":true}}}}]}}}}}},"delete":{"operationId":"removeWikiTag","summary":"Remove tag from wiki","description":"Removes a tag from a wiki. Requires a moderator account (403 otherwise). The submitted text must exactly match a tag currently in the wiki's tag list; tag synonyms are not resolved on removal, and typed tags cannot be removed through this endpoint. Returns 404 if the wiki does not exist or the tag is not on the wiki. On success the response is the full wiki object with the updated `tags` list.","tags":["Wikis","Tags"],"security":[{"apiToken":[]}],"parameters":[{"name":"namespace","in":"path","required":true,"description":"Wiki namespace.","schema":{"type":"string","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]}},{"name":"title","in":"path","required":true,"description":"Wiki page title.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tag"],"properties":{"tag":{"type":"string"}}}}}},"responses":{"200":{"description":"Wiki with updated tags","content":{"application/json":{"schema":{"type":"object","description":"Complete wiki with full content. Full wiki responses do not include the `dataType`, `url`, `summary`, or `text` fields listed on WikiSummary; the short summary is returned in the `description` field. Namespace-specific fields (`guides`, `children`, `parts`, `tools`, `suppliers`, and similar) are present only for their namespaces, as noted on each field.","allOf":[{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"contents_raw":{"type":"string","description":"Wiki content in wiki markup"},"contents_rendered":{"type":"string","description":"Wiki content rendered as HTML"},"linked_wikis":{"type":"array","description":"Distinct existing wikis linked directly from the content, in order of first appearance","items":{"type":"object","description":"An existing wiki linked from wiki content","required":["wikiid","namespace","title"],"properties":{"wikiid":{"type":"integer","description":"Unique identifier of the linked wiki"},"namespace":{"type":"string","description":"Namespace of the linked wiki"},"title":{"type":"string","description":"Title of the linked wiki"}}}},"created_date":{"type":"integer","format":"int64","description":"Wiki creation timestamp"},"ancestors":{"type":"array","description":"Ancestor path, closest parent first","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"is_troubleshooting":{"type":"boolean","description":"Whether this is a troubleshooting wiki"},"authors":{"type":"array","description":"Top wiki contributors, with the creator listed first when present","items":{"type":"object","description":"A contributor's share of authorship of a wiki. `percent` is that contributor's fraction of the wiki's content. `userid` is `null` and `username` empty when the contributor's account no longer exists.","properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number"},"username":{"type":"string"},"avatar_url":{"type":["string","null"],"format":"uri"},"profile_url":{"type":"string","format":"uri"}}}},"tags":{"type":"array","description":"Normal tags applied to the wiki","items":{"type":"string"}},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"description":{"type":"string","description":"Short description, stored as the wiki summary (WIKI, INFO, CATEGORY, and ITEM namespaces)."},"flags":{"description":"On reads, an object keyed by flagid; each value contains `flagid`, `title`, `text`, and image or icon fields. On writes, an array of flagid strings that replaces the wiki's entire flag set; each added or removed flag requires the privilege associated with that flag. Order is preserved in both directions and is the order the flag banners render in on the page."},"repairability_score":{"type":["integer","null"],"description":"Repairability score 0-10 (CATEGORY namespace)","minimum":0,"maximum":10},"source_revisionid":{"type":["integer","null"],"description":"Source revision for translations"},"info":{"type":"array","description":"Additional metadata (CATEGORY and ITEM namespaces)","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"suppliers":{"type":"array","description":"Supplier information (ITEM namespace)","items":{"type":"object","properties":{"part_#":{"type":"string"},"type":{"type":"string"},"supplier":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"documents":{"type":"array","description":"Attached documents (CATEGORY namespace)","items":{"type":"object","properties":{"documentid":{"type":"integer"}}}},"guides":{"type":"array","description":"Associated guides (CATEGORY namespace)","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"children":{"type":"array","description":"Child categories (CATEGORY namespace)","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"parent":{"type":["string","null"],"description":"Parent category title (CATEGORY namespace)"},"author":{"type":"integer","description":"User ID of the primary author"},"available_langids":{"type":"array","description":"Language codes this wiki is available in","items":{"type":"string"}},"can_edit":{"type":"boolean","description":"Whether the authenticated user can edit this wiki"},"page_title":{"type":["string","null"],"description":"Full page title used in the browser tab"},"solutions_url":{"type":"string","format":"uri","description":"URL to related solutions/answers (CATEGORY namespace)"},"contents_json":{"type":"object","description":"Structured JSON representation of wiki contents (CATEGORY namespace)","additionalProperties":true},"category_info":{"type":"object","description":"Category-specific metadata","additionalProperties":true},"category_lists":{"type":"object","description":"Map from list title (for example \"iPhone Repair\") to a list of wiki summary objects (CATEGORY namespace). Returned as a JSON object, `{}` when empty, not as an array.","additionalProperties":true},"related_wikis":{"type":"array","description":"Related wikis","items":{"type":"object","additionalProperties":true}},"featured_guides":{"type":"array","description":"Featured guides for this category","items":{"type":"object","additionalProperties":true}},"diagrams":{"type":"array","description":"Interactive diagrams (CATEGORY namespace)","items":{"type":"object","additionalProperties":true}},"parts":{"type":"object","description":"Parts data (CATEGORY namespace). Returned as an object with `url` (link to all parts for the device) and `categories`, not as an array.","additionalProperties":true},"tools":{"type":"array","description":"Tools list (CATEGORY namespace). Items contain `title`, `target_url`, `image_url`, and `itemcode`.","items":{"type":"object","additionalProperties":true}}}}]}}}}}}},"/wikis/maintenance/CATEGORY/{title}":{"get":{"operationId":"getWikiMaintenance","summary":"Get maintenance schedule","description":"Returns the maintenance schedule for a CATEGORY wiki, walking the ancestor hierarchy when the wiki has no schedule of its own. Resolution tries the requested language then English on the wiki itself, then on each ancestor closest-first. When schedules are inherited from an ancestor, `inheritedFrom` contains the ancestor wiki's title; otherwise it is `null`. A missing or invalid `langid` is treated as `en`. When no schedules exist anywhere in the chain, the response is 200 with an empty `schedules` array.","tags":["Wikis"],"security":[],"parameters":[{"name":"title","in":"path","required":true,"description":"Wiki page title.","schema":{"type":"string"}},{"name":"langid","in":"query","description":"Language code for the response content (e.g., \"en\", \"de\", \"fr\", \"it\", \"es\", \"pt\", \"ja\", \"zh\", \"nl\", \"ru\", \"tr\", \"ko\").\nDefaults to the site's default language.\n","schema":{"type":"string","pattern":"^[a-z]{2}$","example":"en"}}],"responses":{"200":{"description":"Maintenance schedule (own or inherited)","content":{"application/json":{"schema":{"type":"object","description":"Maintenance schedule with inheritance metadata. Schedules are resolved via an inheritance chain: the wiki's own schedules in the requested language, then English, then the closest ancestor wiki with schedules. The first match wins.","properties":{"schedules":{"type":"array","items":{"type":"object","description":"A single maintenance task with trigger-based scheduling","properties":{"wiki_maintenance_scheduleid":{"type":"integer","description":"Unique task identifier"},"task":{"type":"string","description":"Description of the maintenance task"},"status":{"type":"string","enum":["active","muted","archived","done"],"description":"Whether this schedule's triggers are evaluated"},"triggers":{"type":"array","description":"Trigger conditions that define when this task is due; the task is\ndue when whichever trigger fires first (for example, an oil change\nat 5,000 miles or 6 months).\n","items":{"type":"object","description":"Defines when a maintenance task is due. When a schedule has multiple\ntriggers, the task is due when whichever trigger fires first.\n","required":["trigger_type","metric","unit"],"properties":{"trigger_type":{"type":"string","enum":["usage","time","condition"],"description":"Type of trigger:\n- `usage`: based on device usage (miles, hours, cycles, pages)\n- `time`: based on elapsed calendar time\n- `condition`: based on a metric crossing a threshold\n"},"metric":{"type":"string","description":"What is being measured:\n- For `usage` triggers: typically `usage` (matches the event `usage`/`usage_unit` fields)\n- For `time` triggers: `elapsed_time`\n- For `condition` triggers: the specific metric, e.g. `oil_life_percent`, `tire_tread_mm`\n"},"unit":{"type":"string","description":"Unit of measurement (miles, km, hours, pages, months, years, %, mm)"},"first_interval":{"type":["string","null"],"description":"Interval for the first occurrence when it differs from\n`repeat_interval` (for example, a timing belt first due at 90,000\nmiles). `null` means `repeat_interval` applies from the start.\n"},"repeat_interval":{"type":["string","null"],"description":"Interval for subsequent occurrences (for example, an oil change\nevery 5,000 miles). Required for `usage` and `time` triggers.\n"},"comparator":{"type":["string","null"],"description":"Comparison operator for `condition` triggers (`<=`, `>=`, `==`)"},"threshold":{"type":["string","null"],"description":"Value the metric is compared against for `condition` triggers"}}}},"guideid":{"type":["integer","null"],"description":"Associated guide ID"},"parts":{"type":["array","null"],"description":"Suggested replacement parts","items":{"type":"object","properties":{"name":{"type":"string"}}}}}}},"inheritedFrom":{"type":["string","null"],"description":"Title of the ancestor wiki these schedules were inherited from. `null` when the wiki has its own schedules.\n"},"langid":{"type":"string","description":"Language of the returned schedules. May differ from the requested language if schedules were only available in English or from an ancestor.\n"},"revisionid":{"type":["integer","null"],"description":"Head `revisionid` of the requested wiki in the language the schedules were resolved to. `null` when the wiki has no revision in that language.\n"}}}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}}},"/categories":{"get":{"operationId":"listCategories","summary":"Get category hierarchy","description":"Returns the full category hierarchy as a tree rooted at the site's Root category; the Root node itself is omitted. Keys are canonical category wiki titles in each category's master language — the request locale has no effect. Values are nested child trees, or `null` for categories with no children. The response body is always a JSON object; an empty hierarchy is `{}`. Results are cached server-side, so recent category changes may not be reflected immediately.","tags":["Categories"],"security":[],"responses":{"200":{"description":"Category hierarchy tree","content":{"application/json":{"schema":{"type":"object","description":"Hierarchical tree of categories. Keys are category wiki titles, values are nested objects or `null` for categories with no children. An empty hierarchy is an empty object.","additionalProperties":{"oneOf":[{"type":"object","additionalProperties":true},{"type":"null"}]},"example":{"iPhone":{"iPhone 4":null,"iPhone 5":null},"Mac":{"MacBook Pro":null,"iMac":null}}}}}}}}},"/comments":{"get":{"operationId":"listComments","summary":"List comments","description":"Returns comments ordered by `commentid`. Each item includes a `replies` array containing the comment's direct replies. `modifiedSince` compares against `modified_date`, which is 0 until a comment is first edited, so any positive value excludes comments that have never been edited. `langid` filters on the comment's auto-detected language.","tags":["Comments"],"security":[],"parameters":[{"name":"modifiedSince","in":"query","description":"Filter to only include items modified on or after this UNIX timestamp.","schema":{"type":"integer","format":"int64"}},{"name":"context","in":"query","description":"Filters to comments whose context matches this value exactly.","schema":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]}},{"name":"langid","in":"query","description":"Filters to comments whose auto-detected language matches this value. When omitted, comments in all languages are returned.","schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order (ascending or descending).","schema":{"type":"string","enum":["ASC","DESC"],"default":"ASC"}},{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}}],"responses":{"200":{"description":"List of comments","content":{"application/json":{"schema":{"type":"array","description":"Array of Comment objects.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}}}}}}},"/comments/{commentid}":{"get":{"operationId":"getComment","summary":"Get a comment","description":"Returns a comment by `commentid`. Comments on guides or steps require permission to view the guide and return 403 otherwise. The response includes a `replies` array containing the comment's direct replies; reply objects do not include a `replies` field of their own.","tags":["Comments"],"security":[],"parameters":[{"name":"commentid","in":"path","required":true,"description":"Unique identifier of the comment.","schema":{"type":"integer"}}],"responses":{"200":{"description":"Comment details","content":{"application/json":{"schema":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}}},"403":{"description":"Forbidden - Insufficient privileges for this operation","content":{"application/json":{"schema":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"example":{"error":true,"message":"Insufficient privileges","requiredPrivileges":["admin"]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}},"patch":{"operationId":"updateComment","summary":"Edit a comment","description":"Edits an existing comment. The authenticated user must be the comment's author and the edit must occur within 5 minutes of the comment's creation; admins are exempt from both requirements. Editing a comment on a guide or step requires permission to view the guide. The submitted text is normalized before storage, so the returned `text_raw` can differ from the submitted text. Body fields other than `text` are rejected with 422.","tags":["Comments"],"security":[{"apiToken":[]}],"parameters":[{"name":"commentid","in":"path","required":true,"description":"Unique identifier of the comment.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":12,"maxLength":4096}}}}}},"responses":{"200":{"description":"Comment updated","content":{"application/json":{"schema":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}}},"403":{"description":"Forbidden - Insufficient privileges for this operation","content":{"application/json":{"schema":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"example":{"error":true,"message":"Insufficient privileges","requiredPrivileges":["admin"]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}},"delete":{"operationId":"deleteComment","summary":"Delete a comment","description":"Deletes a comment. The authenticated user must be the comment's owner or hold the admin privilege. Deletion is a soft delete: the comment and its replies get status `deleted` and remain readable via `getComment`. Deleting a comment on a guide or step requires permission to view the guide.","tags":["Comments"],"security":[{"apiToken":[]}],"parameters":[{"name":"commentid","in":"path","required":true,"description":"Unique identifier of the comment.","schema":{"type":"integer"}}],"responses":{"204":{"description":"Success with no content returned"},"403":{"description":"Forbidden - Insufficient privileges for this operation","content":{"application/json":{"schema":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"example":{"error":true,"message":"Insufficient privileges","requiredPrivileges":["admin"]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}}},"/comments/{context}/{contextid}":{"post":{"operationId":"createComment","summary":"Create a comment","description":"Creates a comment on the specified context. Accepted context values are `guide`, `step`, `wiki`, `post`, `wp_post`, and `story`; other values return 422. For `step`, `contextid` is the `stepid`. Returns 404 when the target does not exist. Commenting on a guide requires permission to view the guide. Body fields other than `text`, `parentid`, and `langid` are rejected with 422. `langid` is accepted but ignored; the comment's locale is detected from the text asynchronously after creation, so `locale` is `null` in the 201 response.","tags":["Comments"],"security":[{"apiToken":[]}],"parameters":[{"name":"context","in":"path","required":true,"description":"Comment context type","schema":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]}},{"name":"contextid","in":"path","required":true,"description":"ID of the content to comment on","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":12,"maxLength":4096,"description":"Comment text in wiki markup. Length limits count the raw text including markup."},"parentid":{"type":"integer","description":"Parent comment ID for replies. Must reference a top-level comment; replies cannot be nested more than one level deep."},"langid":{"type":"string","description":"Ignored. The comment's locale is detected from the text asynchronously after creation."}}}}}},"responses":{"201":{"description":"Comment created","content":{"application/json":{"schema":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}}},"403":{"description":"Forbidden - Insufficient privileges for this operation","content":{"application/json":{"schema":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"example":{"error":true,"message":"Insufficient privileges","requiredPrivileges":["admin"]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}}},"/tags":{"get":{"operationId":"listTags","summary":"List tags","description":"Lists tags of type `normal`; device, product, language, source, and system tags are excluded. The response is a flat array of tag name strings in creation order, not alphabetical, with `order` controlling the direction. A `limit` above 200 is clamped to 200. Results are cached server-side, so newly created tags can be absent from responses for up to a minute.","tags":["Tags"],"security":[],"parameters":[{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}},{"name":"order","in":"query","description":"Sort order (ascending or descending).","schema":{"type":"string","enum":["ASC","DESC"],"default":"ASC"}}],"responses":{"200":{"description":"List of tags","content":{"application/json":{"schema":{"type":"array","description":"List of tag names","items":{"type":"string"}}}}}}}},"/teams":{"get":{"operationId":"listTeams","summary":"List teams","description":"Lists teams ordered by `teamid`; `order` controls direction. Business-type and deleted teams are excluded. The aggregates `reputation`, `member_count`, and `new_member_since` count only enabled, non-banned members; when `newMemberSince` is supplied, they are computed only over members who joined on or after that timestamp.","tags":["Teams"],"security":[],"parameters":[{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}},{"name":"order","in":"query","description":"Sort order (ascending or descending).","schema":{"type":"string","enum":["ASC","DESC"],"default":"ASC"}},{"name":"newMemberSince","in":"query","description":"Only return teams with a member who joined on or after this UNIX timestamp.","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"List of teams","content":{"application/json":{"schema":{"type":"array","description":"Array of Team objects.","items":{"type":"object","description":"Team information as returned by team list endpoints","properties":{"teamid":{"type":"integer"},"name":{"type":"string"},"owner":{"type":"integer","description":"`userid` of the team owner (manager)"},"reputation":{"type":"integer","description":"Sum of the reputation of enabled, non-banned team members"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}],"description":"Team avatar image; `null` when the team has no image"},"url":{"type":"string","format":"uri"},"member_count":{"type":"integer","description":"Number of enabled, non-banned team members"},"description":{"type":"string"},"new_member_since":{"type":"integer","format":"int64","description":"UNIX timestamp of the most recent member join"}}}}}}}}}},"/teams/{teamid}":{"get":{"operationId":"getTeam","summary":"Get team members","description":"Returns the full list of team members, sorted by `userid` in the requested direction. Results are not paginated. Disabled and banned accounts are excluded, and member objects never include `privileges`. Returns 404 for unknown teams.","tags":["Teams"],"security":[],"parameters":[{"name":"teamid","in":"path","required":true,"description":"Unique identifier of the team.","schema":{"type":"integer"}},{"name":"order","in":"query","description":"Sort order (ascending or descending).","schema":{"type":"string","enum":["ASC","DESC"],"default":"ASC"}}],"responses":{"200":{"description":"List of team members","content":{"application/json":{"schema":{"type":"array","description":"List of user summaries","items":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]}}}}}}}},"/teams/{teamid}/users/{userid}":{"put":{"operationId":"addTeamMember","summary":"Add team member","description":"Adds a user to a team. When the authenticated user adds themself to a team that has a `join_code`, the supplied `join_code` must match exactly; a mismatch returns 403. Adding a different user requires team-management privileges and sends an invitation email when the user is not already a member. The first member added to an empty team becomes the team owner. The response is the team's full member list ordered by `userid`.","tags":["Teams"],"security":[{"apiToken":[]}],"parameters":[{"name":"teamid","in":"path","required":true,"description":"Unique identifier of the team.","schema":{"type":"integer"}},{"name":"userid","in":"path","required":true,"description":"Unique identifier of the user.","schema":{"type":"integer"}},{"name":"join_code","in":"query","description":"Code required when the authenticated user joins a team that has a `join_code`. Ignored when the caller has team-management privileges or is adding a different user.","schema":{"type":"string"}}],"responses":{"200":{"description":"User added","content":{"application/json":{"schema":{"type":"array","description":"List of user summaries","items":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]}}}}}}},"delete":{"operationId":"removeTeamMember","summary":"Remove team member","description":"Removes a user from a team. The authenticated user must be the user being removed, the team owner, or hold team-management privileges. If the removed user was the team owner, the earliest-joined remaining member is promoted to owner; if no members remain, the team is deleted. The response is the full remaining member list ordered ascending by `userid`.","tags":["Teams"],"security":[{"apiToken":[]}],"parameters":[{"name":"teamid","in":"path","required":true,"description":"Unique identifier of the team.","schema":{"type":"integer"}},{"name":"userid","in":"path","required":true,"description":"Unique identifier of the user.","schema":{"type":"integer"}}],"responses":{"200":{"description":"User removed","content":{"application/json":{"schema":{"type":"array","description":"List of user summaries","items":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]}}}}}}}},"/teams/{teamid}/repair_services":{"get":{"operationId":"listRepairServices","summary":"List repair services","description":"Returns the device wikis a business team offers repair services for, in display order. Requires permission to edit the business team's profile.","tags":["Teams"],"security":[{"apiToken":[]}],"parameters":[{"name":"teamid","in":"path","required":true,"description":"Unique identifier of the team.","schema":{"type":"integer"}}],"responses":{"200":{"description":"The team's repair services","content":{"application/json":{"schema":{"type":"array","description":"A business team's repair services, in display order","items":{"type":"object","description":"A device wiki a business team offers repair services for","properties":{"wikiid":{"type":"integer","description":"The device wiki's id"},"displayTitle":{"type":"string","description":"The device's human-readable title"},"url":{"type":"string","format":"uri","description":"URL of the device wiki"}}}}}}}}},"post":{"operationId":"addRepairService","summary":"Add a repair service","description":"Adds a device wiki to the business team's repair services, appended to the end of the list. Returns the updated list.","tags":["Teams"],"security":[{"apiToken":[]}],"parameters":[{"name":"teamid","in":"path","required":true,"description":"Unique identifier of the team.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["wikiid"],"properties":{"wikiid":{"type":"integer","description":"The device wiki to add."}}}}}},"responses":{"200":{"description":"The updated repair services","content":{"application/json":{"schema":{"type":"array","description":"A business team's repair services, in display order","items":{"type":"object","description":"A device wiki a business team offers repair services for","properties":{"wikiid":{"type":"integer","description":"The device wiki's id"},"displayTitle":{"type":"string","description":"The device's human-readable title"},"url":{"type":"string","format":"uri","description":"URL of the device wiki"}}}}}}}}},"put":{"operationId":"reorderRepairServices","summary":"Reorder repair services","description":"Replaces the display order of the business team's repair services with the supplied order, which must list every current service. Returns the updated list.","tags":["Teams"],"security":[{"apiToken":[]}],"parameters":[{"name":"teamid","in":"path","required":true,"description":"Unique identifier of the team.","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["wikiids"],"properties":{"wikiids":{"type":"array","description":"Device wiki ids in the desired display order.","items":{"type":"integer"}}}}}}},"responses":{"200":{"description":"The updated repair services","content":{"application/json":{"schema":{"type":"array","description":"A business team's repair services, in display order","items":{"type":"object","description":"A device wiki a business team offers repair services for","properties":{"wikiid":{"type":"integer","description":"The device wiki's id"},"displayTitle":{"type":"string","description":"The device's human-readable title"},"url":{"type":"string","format":"uri","description":"URL of the device wiki"}}}}}}}}}},"/teams/{teamid}/repair_services/{wikiid}":{"delete":{"operationId":"removeRepairService","summary":"Remove a repair service","description":"Removes a device wiki from the business team's repair services. Returns the updated list.","tags":["Teams"],"security":[{"apiToken":[]}],"parameters":[{"name":"teamid","in":"path","required":true,"description":"Unique identifier of the team.","schema":{"type":"integer"}},{"name":"wikiid","in":"path","required":true,"description":"The device wiki to remove.","schema":{"type":"integer"}}],"responses":{"200":{"description":"The updated repair services","content":{"application/json":{"schema":{"type":"array","description":"A business team's repair services, in display order","items":{"type":"object","description":"A device wiki a business team offers repair services for","properties":{"wikiid":{"type":"integer","description":"The device wiki's id"},"displayTitle":{"type":"string","description":"The device's human-readable title"},"url":{"type":"string","format":"uri","description":"URL of the device wiki"}}}}}}}}}},"/stories":{"get":{"operationId":"listStories","summary":"List stories","description":"Returns repair stories with status `open`. Stories in the language given by `langid` sort first, followed by stories in the site default language, then all others; within each group stories are ordered by `storyid` in the `order` direction. Language affects ordering only and does not filter results. `product` filters to stories linked to product pages matching the product code.","tags":["Stories"],"security":[],"parameters":[{"name":"product","in":"query","description":"Filters to stories linked to the specified product code.","schema":{"type":"string"}},{"name":"guideid","in":"query","description":"Filters to stories linked to the specified guide.","schema":{"type":"integer"}},{"name":"langid","in":"query","description":"Preferred language for result ordering. Stories in this language sort first. Does not filter results by language.","schema":{"type":"string"}},{"name":"requireImages","in":"query","allowEmptyValue":true,"description":"If present (with any value, including empty), limits results to stories that have at least one image.","schema":{"type":"boolean"}},{"name":"order","in":"query","description":"Sort order (ascending or descending).","schema":{"type":"string","enum":["ASC","DESC"],"default":"ASC"}},{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","description":"Maximum number of items to return. Values above 50 are clamped to 50.","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"List of stories","content":{"application/json":{"schema":{"type":"array","description":"Array of StorySummary objects.","items":{"type":"object","description":"Repair story summary","properties":{"storyid":{"type":"integer"},"langid":{"type":"string","description":"Language of the story"},"status":{"type":"string","description":"Story visibility status","enum":["open","deleted"]},"view_url":{"type":"string","format":"uri","description":"URL to view this story. Renamed from `url` in API v2.0."},"title_raw":{"type":"string","description":"Story title in raw text"},"title_rendered":{"type":"string","description":"Story title rendered as HTML"},"intro_raw":{"type":"string","description":"Story introduction in raw text"},"intro_rendered":{"type":"string","description":"Story introduction rendered as HTML"},"body_raw":{"type":"string","description":"Story body in raw text"},"body_rendered":{"type":"string","description":"Story body rendered as HTML"},"conclusion_raw":{"type":"string","description":"Story conclusion in raw text"},"conclusion_rendered":{"type":"string","description":"Story conclusion rendered as HTML"},"rating":{"type":["integer","null"],"description":"Story rating score (1-5); `null` when the story has no rating."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"date":{"type":"integer","format":"int64"},"modified_date":{"type":"integer","format":"int64"},"images":{"type":"array","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},"products":{"type":"array","description":"Store products linked to this story, serialized as product blurbs.","items":{"type":"object","properties":{"dataType":{"type":"string","const":"product"},"langid":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"url":{"type":"string","format":"uri"},"price":{"type":"string","description":"Unformatted price string; empty when unavailable."},"productCode":{"type":"integer"},"optionid":{"type":"integer"},"itemCode":{"type":"string"},"optionTitle":{"type":"string"},"image":{"type":"object","description":"Product image URLs. `id` is always `null`.","properties":{"id":{"type":"null"},"mini":{"type":"string","format":"uri"},"thumbnail":{"type":"string","format":"uri"},"standard":{"type":"string","format":"uri"},"original":{"type":"string","format":"uri"}}}}}},"guides":{"type":"array","description":"Guides related to this story; guides that are not public are omitted.","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}}}}}}},"post":{"operationId":"createStory","summary":"Create a story","description":"Creates a repair story. Submissions are limited to one per user per minute; a request inside the rate-limit window returns 429 with the user's most recently created story. When `langid` is omitted, the story language is detected from `body`. Attached images must be at least 800x600 pixels and owned by the authenticated user; they may be re-encoded, so the `images` array in the response can differ from the submitted ids. Product codes are normalized to item-code form (`IFxxx-xxx`) and must match existing product Item wikis; guide ids must reference existing guides.","tags":["Stories"],"security":[{"apiToken":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title","intro","body","conclusion"],"properties":{"title":{"type":"string","minLength":8,"maxLength":80},"intro":{"type":"string","minLength":1},"body":{"type":"string","minLength":1},"conclusion":{"type":"string","minLength":1},"langid":{"type":"string"},"images":{"type":"array","maxItems":3,"items":{"type":"integer"}},"guides":{"type":"array","items":{"type":"integer"}},"products":{"type":"array","items":{"type":"string"}},"difficulty":{"type":"string","description":"Difficulty of the repair as experienced by the author.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_taken":{"type":"integer","description":"Repair time in seconds, clamped to the range 0 to 31556926 (one year)."}}}}}},"responses":{"201":{"description":"Story created","content":{"application/json":{"schema":{"type":"object","description":"Full repair story, identical in shape to StorySummary. `intro`, `body`, and `conclusion` are write-side field names accepted by POST and PATCH and are never present in responses.","allOf":[{"type":"object","description":"Repair story summary","properties":{"storyid":{"type":"integer"},"langid":{"type":"string","description":"Language of the story"},"status":{"type":"string","description":"Story visibility status","enum":["open","deleted"]},"view_url":{"type":"string","format":"uri","description":"URL to view this story. Renamed from `url` in API v2.0."},"title_raw":{"type":"string","description":"Story title in raw text"},"title_rendered":{"type":"string","description":"Story title rendered as HTML"},"intro_raw":{"type":"string","description":"Story introduction in raw text"},"intro_rendered":{"type":"string","description":"Story introduction rendered as HTML"},"body_raw":{"type":"string","description":"Story body in raw text"},"body_rendered":{"type":"string","description":"Story body rendered as HTML"},"conclusion_raw":{"type":"string","description":"Story conclusion in raw text"},"conclusion_rendered":{"type":"string","description":"Story conclusion rendered as HTML"},"rating":{"type":["integer","null"],"description":"Story rating score (1-5); `null` when the story has no rating."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"date":{"type":"integer","format":"int64"},"modified_date":{"type":"integer","format":"int64"},"images":{"type":"array","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},"products":{"type":"array","description":"Store products linked to this story, serialized as product blurbs.","items":{"type":"object","properties":{"dataType":{"type":"string","const":"product"},"langid":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"url":{"type":"string","format":"uri"},"price":{"type":"string","description":"Unformatted price string; empty when unavailable."},"productCode":{"type":"integer"},"optionid":{"type":"integer"},"itemCode":{"type":"string"},"optionTitle":{"type":"string"},"image":{"type":"object","description":"Product image URLs. `id` is always `null`.","properties":{"id":{"type":"null"},"mini":{"type":"string","format":"uri"},"thumbnail":{"type":"string","format":"uri"},"standard":{"type":"string","format":"uri"},"original":{"type":"string","format":"uri"}}}}}},"guides":{"type":"array","description":"Guides related to this story; guides that are not public are omitted.","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}]}}}},"420":{"description":"Submission rejected by reputation limits."},"422":{"description":"Validation failed; the body contains an `errors` array detailing each failure."},"429":{"description":"The user already submitted a story within the last minute; the body contains the user's most recently created story.","content":{"application/json":{"schema":{"type":"object","description":"Full repair story, identical in shape to StorySummary. `intro`, `body`, and `conclusion` are write-side field names accepted by POST and PATCH and are never present in responses.","allOf":[{"type":"object","description":"Repair story summary","properties":{"storyid":{"type":"integer"},"langid":{"type":"string","description":"Language of the story"},"status":{"type":"string","description":"Story visibility status","enum":["open","deleted"]},"view_url":{"type":"string","format":"uri","description":"URL to view this story. Renamed from `url` in API v2.0."},"title_raw":{"type":"string","description":"Story title in raw text"},"title_rendered":{"type":"string","description":"Story title rendered as HTML"},"intro_raw":{"type":"string","description":"Story introduction in raw text"},"intro_rendered":{"type":"string","description":"Story introduction rendered as HTML"},"body_raw":{"type":"string","description":"Story body in raw text"},"body_rendered":{"type":"string","description":"Story body rendered as HTML"},"conclusion_raw":{"type":"string","description":"Story conclusion in raw text"},"conclusion_rendered":{"type":"string","description":"Story conclusion rendered as HTML"},"rating":{"type":["integer","null"],"description":"Story rating score (1-5); `null` when the story has no rating."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"date":{"type":"integer","format":"int64"},"modified_date":{"type":"integer","format":"int64"},"images":{"type":"array","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},"products":{"type":"array","description":"Store products linked to this story, serialized as product blurbs.","items":{"type":"object","properties":{"dataType":{"type":"string","const":"product"},"langid":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"url":{"type":"string","format":"uri"},"price":{"type":"string","description":"Unformatted price string; empty when unavailable."},"productCode":{"type":"integer"},"optionid":{"type":"integer"},"itemCode":{"type":"string"},"optionTitle":{"type":"string"},"image":{"type":"object","description":"Product image URLs. `id` is always `null`.","properties":{"id":{"type":"null"},"mini":{"type":"string","format":"uri"},"thumbnail":{"type":"string","format":"uri"},"standard":{"type":"string","format":"uri"},"original":{"type":"string","format":"uri"}}}}}},"guides":{"type":"array","description":"Guides related to this story; guides that are not public are omitted.","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}]}}}}}}},"/stories/{storyid}":{"get":{"operationId":"getStory","summary":"Get a specific story","description":"Returns a repair story by `storyid`. A story that does not exist or whose status is not `open` returns 404; callers with the admin privilege can retrieve stories in any status.","tags":["Stories"],"security":[],"parameters":[{"name":"storyid","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Story details","content":{"application/json":{"schema":{"type":"object","description":"Full repair story, identical in shape to StorySummary. `intro`, `body`, and `conclusion` are write-side field names accepted by POST and PATCH and are never present in responses.","allOf":[{"type":"object","description":"Repair story summary","properties":{"storyid":{"type":"integer"},"langid":{"type":"string","description":"Language of the story"},"status":{"type":"string","description":"Story visibility status","enum":["open","deleted"]},"view_url":{"type":"string","format":"uri","description":"URL to view this story. Renamed from `url` in API v2.0."},"title_raw":{"type":"string","description":"Story title in raw text"},"title_rendered":{"type":"string","description":"Story title rendered as HTML"},"intro_raw":{"type":"string","description":"Story introduction in raw text"},"intro_rendered":{"type":"string","description":"Story introduction rendered as HTML"},"body_raw":{"type":"string","description":"Story body in raw text"},"body_rendered":{"type":"string","description":"Story body rendered as HTML"},"conclusion_raw":{"type":"string","description":"Story conclusion in raw text"},"conclusion_rendered":{"type":"string","description":"Story conclusion rendered as HTML"},"rating":{"type":["integer","null"],"description":"Story rating score (1-5); `null` when the story has no rating."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"date":{"type":"integer","format":"int64"},"modified_date":{"type":"integer","format":"int64"},"images":{"type":"array","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},"products":{"type":"array","description":"Store products linked to this story, serialized as product blurbs.","items":{"type":"object","properties":{"dataType":{"type":"string","const":"product"},"langid":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"url":{"type":"string","format":"uri"},"price":{"type":"string","description":"Unformatted price string; empty when unavailable."},"productCode":{"type":"integer"},"optionid":{"type":"integer"},"itemCode":{"type":"string"},"optionTitle":{"type":"string"},"image":{"type":"object","description":"Product image URLs. `id` is always `null`.","properties":{"id":{"type":"null"},"mini":{"type":"string","format":"uri"},"thumbnail":{"type":"string","format":"uri"},"standard":{"type":"string","format":"uri"},"original":{"type":"string","format":"uri"}}}}}},"guides":{"type":"array","description":"Guides related to this story; guides that are not public are omitted.","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}]}}}},"404":{"description":"Story does not exist or its status is not `open`."}}},"patch":{"operationId":"updateStory","summary":"Edit a story","description":"Edits only the provided fields of an existing story. The authenticated user must be the story's author or hold the admin privilege; all other callers receive 403, including for a nonexistent `storyid` (there is no 404 path). All request fields are optional; unrecognized fields are rejected with 422. `langid` and `order` are accepted but ignored; a story's language cannot be changed after creation. Validation failures return 422 with an `errors` array identifying the offending fields.","tags":["Stories"],"security":[{"apiToken":[]}],"parameters":[{"name":"storyid","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":8,"maxLength":80},"intro":{"type":"string","minLength":1},"body":{"type":"string","minLength":1},"conclusion":{"type":"string","minLength":1},"images":{"type":"array","maxItems":3,"items":{"type":"integer"},"description":"imageids in display order. Newly attached images must be at least 800x600 pixels and owned by the authenticated user. Images that are not 4:3 or not JPEG are re-encoded and stored under new imageids, so the stored list can differ from the submitted ids.\n"},"guides":{"type":"array","items":{"type":"integer"},"description":"guideids related to this story. Every id must reference an existing guide; otherwise the request returns 422.\n"},"products":{"type":"array","items":{"type":"string"},"description":"Product codes. Each code is normalized to `IFxxx-xxx` form and must correspond to an existing product Item wiki; otherwise the request returns 422.\n"},"object":{"type":["integer","null"],"description":"`objectid` of a video owned by the authenticated user, or `null` to detach. Persisted but not included in the response.\n"},"difficulty":{"type":"string","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"],"description":"Persisted but not included in the response."},"time_taken":{"type":"integer","description":"Repair time in seconds, clamped to the range 0 to 31556926 (one year). Persisted but not included in the response.\n"}}}}}},"responses":{"200":{"description":"Story updated","content":{"application/json":{"schema":{"type":"object","description":"Full repair story, identical in shape to StorySummary. `intro`, `body`, and `conclusion` are write-side field names accepted by POST and PATCH and are never present in responses.","allOf":[{"type":"object","description":"Repair story summary","properties":{"storyid":{"type":"integer"},"langid":{"type":"string","description":"Language of the story"},"status":{"type":"string","description":"Story visibility status","enum":["open","deleted"]},"view_url":{"type":"string","format":"uri","description":"URL to view this story. Renamed from `url` in API v2.0."},"title_raw":{"type":"string","description":"Story title in raw text"},"title_rendered":{"type":"string","description":"Story title rendered as HTML"},"intro_raw":{"type":"string","description":"Story introduction in raw text"},"intro_rendered":{"type":"string","description":"Story introduction rendered as HTML"},"body_raw":{"type":"string","description":"Story body in raw text"},"body_rendered":{"type":"string","description":"Story body rendered as HTML"},"conclusion_raw":{"type":"string","description":"Story conclusion in raw text"},"conclusion_rendered":{"type":"string","description":"Story conclusion rendered as HTML"},"rating":{"type":["integer","null"],"description":"Story rating score (1-5); `null` when the story has no rating."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"date":{"type":"integer","format":"int64"},"modified_date":{"type":"integer","format":"int64"},"images":{"type":"array","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},"products":{"type":"array","description":"Store products linked to this story, serialized as product blurbs.","items":{"type":"object","properties":{"dataType":{"type":"string","const":"product"},"langid":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"url":{"type":"string","format":"uri"},"price":{"type":"string","description":"Unformatted price string; empty when unavailable."},"productCode":{"type":"integer"},"optionid":{"type":"integer"},"itemCode":{"type":"string"},"optionTitle":{"type":"string"},"image":{"type":"object","description":"Product image URLs. `id` is always `null`.","properties":{"id":{"type":"null"},"mini":{"type":"string","format":"uri"},"thumbnail":{"type":"string","format":"uri"},"standard":{"type":"string","format":"uri"},"original":{"type":"string","format":"uri"}}}}}},"guides":{"type":"array","description":"Guides related to this story; guides that are not public are omitted.","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}]}}}}}}},"/suggest/{query}":{"get":{"operationId":"suggest","summary":"Search suggestions","description":"Returns up to 10 search suggestions matching the query, drawn from the requested document types and filtered by the viewer's privileges. A query of `guideid:<id>` bypasses search and returns that single guide. An empty query returns an empty `results` array with 200. Results are spread across the requested doctypes so that no single type dominates, then ordered by the sequence in which the doctypes were requested.","tags":["Search"],"security":[],"parameters":[{"name":"query","in":"path","required":true,"description":"Search query string","schema":{"type":"string"}},{"name":"doctypes","in":"query","description":"Comma-separated list of result types to include. Accepted values are `guide`, `item`, `topic`, `device`, `category`, `question`, `post`, and `all` (the default, which expands to `topic` and `guide`). `device` and `category` are aliases for `topic`; `post` is an alias for `question`. Unrecognized values are ignored; a request with no valid doctypes returns 400.","schema":{"type":"string","example":"guide,device,category,question,all"}},{"name":"langid","in":"query","description":"Result language. Invalid values fall back to the site default.","schema":{"type":"string"}},{"name":"fallbackToDefaultLanguage","in":"query","description":"When true, additionally searches the site default language.","schema":{"type":"boolean"}},{"name":"showAllLanguages","in":"query","description":"When true, allows results that are unavailable in the target or default language by falling back to the document's source language.","schema":{"type":"boolean"}},{"name":"guideDevice","in":"query","description":"Restricts results to a single device by name.","schema":{"type":"string"}}],"responses":{"200":{"description":"Suggestion results","content":{"application/json":{"schema":{"type":"object","description":"Suggest response: the submitted query and its matching results.","properties":{"query":{"type":"string","description":"The search query that was submitted"},"results":{"type":"array","description":"List of suggestion results","items":{"type":"object","description":"A single suggestion result. The object shape varies by the `dataType` discriminator (`guide`, `wiki`, question, product, or page); only the fields for the matching `dataType` are present on a given result.","properties":{"dataType":{"type":"string","description":"Type discriminator for the result (e.g. `wiki`, `guide`)"},"wikiid":{"type":"integer","description":"Present when `dataType` is `wiki`"},"guideid":{"type":"integer","description":"Present when `dataType` is `guide`"},"namespace":{"type":"string","description":"Wiki namespace; present when `dataType` is `wiki`"},"langid":{"type":"string","description":"Language of this result"},"title":{"type":"string","description":"URL-safe title"},"display_title":{"type":"string","description":"Human-readable title"},"summary":{"type":"string","description":"Short summary of this result"},"text":{"type":"string","description":"Description text"},"url":{"type":"string","format":"uri","description":"URL to this result"},"modified_date":{"type":"integer","format":"int64"},"author":{"type":"integer","description":"`userid` of the author"},"image":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}}}}},"required":["query","results"]}}}}}}},"/media/images/{imageid}":{"get":{"operationId":"getImage","summary":"Get image info","description":"Returns information about an image by `imageid` or GUID. The image is returned when the viewer owns it, holds guide-edit privileges, or the image is referenced by content the viewer can view. An image that exists but fails this check returns 403; an unknown id returns 404.","tags":["Media"],"security":[],"parameters":[{"name":"imageid","in":"path","required":true,"description":"Unique identifier of the image (integer ID or GUID string).","schema":{"oneOf":[{"type":"integer"},{"type":"string"}]}}],"responses":{"200":{"description":"Image information","content":{"application/json":{"schema":{"type":"object","description":"An Image plus its dimensions, aspect ratio, markup, and EXIF metadata.","properties":{"image":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},"srcid":{"type":["integer","null"],"description":"`id` of the source image when this image is a crop or derivative; `null` otherwise."},"width":{"type":"integer","description":"Image width in pixels","example":2420},"height":{"type":"integer","description":"Image height in pixels","example":1815},"ratio":{"type":"string","description":"Aspect ratio classification","enum":["ONE_ONE","FOUR_THREE","VARIABLE"],"example":"FOUR_THREE"},"markup":{"type":["string","null"],"description":"Image annotation markup; `null` when the image has none."},"exif":{"description":"EXIF metadata from the original image; an empty array when there is no EXIF data.","oneOf":[{"type":"object","additionalProperties":true},{"type":"array","maxItems":0}]}}}}}},"403":{"description":"Forbidden - Insufficient privileges for this operation","content":{"application/json":{"schema":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"example":{"error":true,"message":"Insufficient privileges","requiredPrivileges":["admin"]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}}},"/media/videos/{videoid}":{"get":{"operationId":"getVideo","summary":"Get video info","description":"Returns information about a video by `videoid` or GUID. The video is returned when the viewer owns it, holds guide-edit privileges, or can view a guide that references it. A video that exists but fails this check returns 403; an unknown id returns 404. Successful responses include direct CDN URLs for every generated encoding.","tags":["Media"],"security":[],"parameters":[{"name":"videoid","in":"path","required":true,"description":"Video ID (integer) or GUID (string)","schema":{"oneOf":[{"type":"integer"},{"type":"string"}]}}],"responses":{"200":{"description":"Video information","content":{"application/json":{"schema":{"type":"object","description":"Video information","properties":{"videoid":{"type":"integer","description":"Unique video identifier"},"objectid":{"type":"integer","description":"Internal object identifier"},"srcid":{"type":["integer","null"],"description":"`videoid` of the source video when this video is a derivative"},"filename":{"type":"string","description":"Original filename"},"duration":{"type":"integer","description":"Duration in milliseconds"},"width":{"type":"integer","description":"Video width in pixels"},"height":{"type":"integer","description":"Video height in pixels"},"image":{"type":["object","null"],"description":"Thumbnail image info (same structure as the /media/images response). `null` when the video has no thumbnail.","properties":{"image":{"type":"object","description":"Image object with size URLs","additionalProperties":true},"srcid":{"type":["integer","null"]},"width":{"type":"integer"},"height":{"type":"integer"},"ratio":{"type":"string","enum":["ONE_ONE","FOUR_THREE","VARIABLE"]},"markup":{"type":["string","null"]},"exif":{"description":"EXIF metadata; an empty array when there is none","oneOf":[{"type":"object","additionalProperties":true},{"type":"array","maxItems":0}]}}},"meta":{"type":["object","null"],"description":"Encoding metadata reported by the transcoder; `null` when no encoding metadata has been recorded for the video.","properties":{"video_codec":{"type":"string"},"audio_codec":{"type":"string"},"frame_rate":{"type":"number"},"width":{"type":"integer"},"height":{"type":"integer"},"duration_in_ms":{"type":"integer"},"file_size_in_bytes":{"type":"integer"},"video_bitrate_in_kbps":{"type":"integer"},"audio_bitrate_in_kbps":{"type":"integer"},"total_bitrate_in_kbps":{"type":"integer"},"audio_sample_rate":{"type":"integer"},"channels":{"type":"string"},"format":{"type":"string"},"state":{"type":"string","enum":["finished","processing","failed"]},"md5_checksum":{"type":["string","null"]},"id":{"type":"integer"}}},"encodings":{"type":"array","description":"Available encoded versions of the video; videos still transcoding return an empty array.","items":{"type":"object","properties":{"column":{"type":"string","description":"Internal encoding identifier (e.g. `MP4_720`)"},"label":{"type":"string","description":"Human-readable quality label (e.g. `480p`)"},"width":{"type":"integer"},"height":{"type":"integer"},"codecs":{"type":"string"},"mime":{"type":"string"},"format":{"type":"string"},"url":{"type":"string","format":"uri","description":"URL to the encoded video file"},"always_generate":{"type":"boolean"}}}}}}}}},"403":{"description":"Forbidden - Insufficient privileges for this operation","content":{"application/json":{"schema":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"example":{"error":true,"message":"Insufficient privileges","requiredPrivileges":["admin"]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}}},"/media/documents/{id}":{"get":{"operationId":"getDocument","summary":"Get document info","description":"Returns information about a document by `documentid` or GUID. A document is viewable when it is attached to any post or wiki, when it is attached to a guide the viewer can view, or when it is a certification upload owned by the viewer or by a team the viewer is on; admins and guide moderators can view more broadly. A document that exists but is not viewable returns 403; an unknown id returns 404. A document not attached to anything returns 403 for every viewer except admins and guide moderators, including its uploader.","tags":["Media"],"security":[],"parameters":[{"name":"id","in":"path","required":true,"description":"Document ID (integer) or GUID (string). All-numeric values shorter than 16 characters are looked up as a `documentid`; all other values are looked up as a GUID.","schema":{"oneOf":[{"type":"integer"},{"type":"string"}]}}],"responses":{"200":{"description":"Document information","content":{"application/json":{"schema":{"type":"object","description":"Attached document (PDF, etc.). `thumbnailid` and `imageid` carry the same value and are `null` when the document has no thumbnail; in that case `standard`, `thumbnail`, and `mini` contain placeholder no-image URLs rather than `null`.","properties":{"documentid":{"type":"integer"},"guid":{"type":"string"},"filename":{"type":["string","null"],"description":"Original filename as uploaded"},"title":{"type":"string","description":"Display title; falls back to the filename when no title is set, and to an empty string when both are unset"},"size":{"type":"integer","description":"File size in bytes"},"thumbnailid":{"type":["integer","null"],"description":"`imageid` of the document's thumbnail; `null` when the document has no thumbnail"},"imageid":{"type":["integer","null"],"description":"Duplicate of `thumbnailid`, emitted for media manager compatibility"},"document_type":{"type":"string"},"document_extension":{"type":"string"},"document_group":{"type":"string"},"standard":{"type":"string","format":"uri","description":"Thumbnail image URL at standard size"},"thumbnail":{"type":"string","format":"uri","description":"Thumbnail image URL at thumbnail size"},"mini":{"type":"string","format":"uri","description":"Thumbnail image URL at mini size"},"edit_url":{"type":"string","description":"Site-relative path to the document metadata edit page (/Document/Edit/{guid}), without scheme or host"},"view_url":{"type":"string","description":"Site-relative path to the document viewer page (/Document/{guid}/{filename}.{extension}), without scheme or host"},"download_url":{"type":"string","format":"uri"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp in seconds"},"summary":{"type":["string","null"]},"pages":{"type":"integer"},"type":{"type":"string","const":"Document"}}}}}},"403":{"description":"Forbidden - Insufficient privileges for this operation","content":{"application/json":{"schema":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"example":{"error":true,"message":"Insufficient privileges","requiredPrivileges":["admin"]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}}},"/troubleshooting/{title}":{"get":{"operationId":"getTroubleshooting","summary":"Get a troubleshooting page","description":"Returns a parsed troubleshooting page by its WIKI-namespace title. The `solutions` array holds the ordered cause/fix sections (the troubleshooting steps); `introduction` and `conclusion` bracket them. Guides, products, and part/guide collections referenced in the wiki text are resolved into structured objects.\n\nIf the title resolves to a WIKI-namespace page that exists but is not a troubleshooting page (or the page redirects elsewhere), the response is still HTTP 200 but contains only a `canonicalUrl` to follow (see `TroubleshootingRedirect`). Returns 404 when no WIKI-namespace page with that title exists (e.g. a device/category title) or the page has no parent device.","tags":["Troubleshooting"],"security":[],"parameters":[{"name":"title","in":"path","required":true,"description":"Wiki page title.","schema":{"type":"string"}},{"name":"selectedDevice","in":"query","description":"Narrow device-specific links (parts, guides, model wikilinks) to a particular device, optionally with a variant as `device:variant`. Must be the page's device or one of its descendants; ignored otherwise.","schema":{"type":"string"}},{"name":"unpatrolled","in":"query","description":"Returns the pending unpatrolled revision when one exists. Enabled by the presence of the parameter regardless of its value, including `unpatrolled=false` — pass no value (`?unpatrolled`) to enable, omit the parameter to disable.","allowEmptyValue":true,"schema":{"type":"string"}},{"name":"langid","in":"query","description":"Language code for the response content (e.g., \"en\", \"de\", \"fr\", \"it\", \"es\", \"pt\", \"ja\", \"zh\", \"nl\", \"ru\", \"tr\", \"ko\").\nDefaults to the site's default language.\n","schema":{"type":"string","pattern":"^[a-z]{2}$","example":"en"}}],"responses":{"200":{"description":"The parsed troubleshooting page, or a redirect stub.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"A fully parsed troubleshooting page, with the source wiki's rigid document structure split into `introduction`, `solutions`, and `conclusion`.","required":["pageTitle","title","id","breadcrumbs","answersUrl","editUrl","historyUrl","canonicalUrl","authors","lastUpdatedDate","flags","hreflangUrls","metaDescription","metaKeywords","linkedProblems","relatedProblems","mainImageUrl","mainImageUrlLarge","viewStats","category","userSelectedDevice","hideDeviceSelection","algoliaConfig","deviceGuideUrl","deviceTroubleshootingUrl","toc","introduction","solutions","conclusion","featuredProducts"],"properties":{"pageTitle":{"type":"string","description":"SEO page title."},"title":{"type":"string","description":"Human-readable problem title."},"id":{"type":"integer","description":"The underlying wiki id."},"breadcrumbs":{"type":"array","items":{"type":"object","required":["title","url"],"properties":{"title":{"type":"string"},"url":{"type":"string","description":"Link URL (absolute in most contexts, site-relative for some ancestor links), or an empty string for the current page."}}}},"answersUrl":{"type":"string"},"editUrl":{"type":"string"},"historyUrl":{"type":"string"},"canonicalUrl":{"type":"string"},"authors":{"type":"array","items":{"type":"object","description":"A contributing author. The list holds at most the top ten contributors by ownership share, reordered with the page creator first when they are among them.","required":["userid","percent","username","avatar","profileUrl"],"properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number","description":"Percentage of the page's content attributed to this author (may be fractional, e.g. 8.33)."},"username":{"type":"string"},"avatar":{"type":["string","null"]},"profileUrl":{"type":"string"}}}},"lastUpdatedDate":{"type":"integer","format":"int64","description":"UNIX timestamp of the latest revision."},"flags":{"type":"array","items":{"type":"object","description":"A banner flag on the page (e.g. a maintenance or warning notice). Either `icon` (a Font Awesome name) or `image` (a URL) is present, not both.","required":["flagid","title","text"],"properties":{"flagid":{"type":"string","description":"Stable identifier of the flag type (e.g. \"WIKI_STUB\")."},"title":{"type":"string"},"text":{"type":"string"},"icon":{"type":"string"},"image":{"type":"string"}}}},"hreflangUrls":{"type":"object","description":"Map of language code (plus `x-default`) to the canonical URL for that language.","additionalProperties":{"type":"string"}},"metaDescription":{"type":"string"},"metaKeywords":{"type":"string"},"linkedProblems":{"type":"array","description":"Problems explicitly linked from the body of this page.","items":{"type":"object","description":"A link to another troubleshooting problem page.","required":["url","title","deviceTitle","imageUrl"],"properties":{"url":{"type":"string"},"title":{"type":"string"},"deviceTitle":{"type":"string","description":"Display title of the problem's device."},"imageUrl":{"type":"string"}}}},"relatedProblems":{"type":"array","description":"Other problems for the same device (or an ancestor).","items":{"type":"object","description":"A link to another troubleshooting problem page.","required":["url","title","deviceTitle","imageUrl"],"properties":{"url":{"type":"string"},"title":{"type":"string"},"deviceTitle":{"type":"string","description":"Display title of the problem's device."},"imageUrl":{"type":"string"}}}},"mainImageUrl":{"type":"string"},"mainImageUrlLarge":{"type":"string"},"viewStats":{"type":"object","description":"View counts for the page over several time windows.","required":["today","week","month","all"],"properties":{"today":{"type":"integer"},"week":{"type":"integer"},"month":{"type":"integer"},"all":{"type":"integer"}}},"category":{"type":"object","description":"The parent device category the problem belongs to.","required":["displayTitle","deviceTitle","imageUrl","viewUrl","description"],"properties":{"displayTitle":{"type":"string"},"deviceTitle":{"type":"string","description":"URL-safe device title."},"imageUrl":{"type":"string"},"viewUrl":{"type":"string"},"description":{"type":"string"}}},"userSelectedDevice":{"type":["object","null"],"description":"The device the response was narrowed to, echoed back from the `selectedDevice` parameter. `null` when no valid device was selected.","required":["deviceTitle","displayTitle","imageUrl","variant"],"properties":{"deviceTitle":{"type":"string"},"displayTitle":{"type":"string"},"imageUrl":{"type":"string"},"variant":{"type":["string","null"]}}},"hideDeviceSelection":{"type":"boolean","description":"Whether the device picker should be hidden (the device is a leaf with at most one variant)."},"algoliaConfig":{"type":"object","description":"Public Algolia search configuration for on-page search.","properties":{"apiKey":{"type":"string"},"indexPrefix":{"type":"string"}}},"deviceGuideUrl":{"type":"string","description":"URL to the parent device's guides section."},"deviceTroubleshootingUrl":{"type":"string","description":"URL to the parent device's problem list."},"devicePartsUrl":{"type":"string","description":"URL to the parent device's parts store. Omitted when the device has no enabled parts."},"toc":{"type":["string","null"],"description":"Rendered table-of-contents HTML."},"introduction":{"type":"array","items":{"type":"object","description":"One section of a troubleshooting page. In the `solutions` bucket each section is a single cause/fix (the `== Heading ==` blocks of the source wiki). Sections in `introduction` and `conclusion` share this shape.","required":["heading","id","body","guides","products","partCollections","guideCollections"],"properties":{"heading":{"type":["string","null"],"description":"Section heading text; `null` for an untitled leading block."},"id":{"type":["string","null"],"description":"Anchor id for linking to the section (e.g. \"Section_Heavy_Use\")."},"body":{"type":"string","description":"The section's rendered HTML, with featured products removed."},"guides":{"type":"array","items":{"type":"object","description":"A repair guide referenced from within a troubleshooting section.","required":["guideid","url","title","image","time_required","difficulty","introduction_rendered"],"properties":{"guideid":{"type":"integer"},"url":{"type":"string","description":"Absolute URL to the guide."},"title":{"type":"string"},"image":{"type":"object","properties":{"thumbnail":{"type":"string","description":"Thumbnail image URL for the guide."}}},"time_required":{"type":"string","description":"Human-readable estimate of the time the guide takes."},"difficulty":{"type":"string","description":"Human-readable difficulty rating (e.g. \"Moderate\")."},"introduction_rendered":{"type":"string","description":"The guide's introduction rendered as HTML."}}}},"products":{"type":"array","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}},"partCollections":{"type":"array","items":{"type":"object","description":"A link to a collection of replacement parts for a device. When a `selectedDevice` is supplied, collections are narrowed to that device (and variant) where possible.","required":["url","title","description","imageUrl","showChooseModel","isEmpty","device"],"properties":{"url":{"type":"string","description":"Absolute URL to the parts collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":["string","null"]},"showChooseModel":{"type":"boolean","description":"Whether the UI should prompt the viewer to choose a specific model before the collection resolves to concrete parts."},"isEmpty":{"type":"boolean","description":"Whether the narrowed collection contains no purchasable parts."},"device":{"type":"string","description":"Display title of the device the collection is for."}}}},"guideCollections":{"type":"array","items":{"type":"object","description":"A link to a filtered collection of guides for a device.","required":["url","title","description","imageUrl","showChooseModel","isEmpty"],"properties":{"url":{"type":"string","description":"Absolute URL to the guide collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"showChooseModel":{"type":"boolean"},"isEmpty":{"type":"boolean"}}}}}}},"solutions":{"type":"array","description":"The ordered cause/fix sections — the troubleshooting steps.","items":{"type":"object","description":"One section of a troubleshooting page. In the `solutions` bucket each section is a single cause/fix (the `== Heading ==` blocks of the source wiki). Sections in `introduction` and `conclusion` share this shape.","required":["heading","id","body","guides","products","partCollections","guideCollections"],"properties":{"heading":{"type":["string","null"],"description":"Section heading text; `null` for an untitled leading block."},"id":{"type":["string","null"],"description":"Anchor id for linking to the section (e.g. \"Section_Heavy_Use\")."},"body":{"type":"string","description":"The section's rendered HTML, with featured products removed."},"guides":{"type":"array","items":{"type":"object","description":"A repair guide referenced from within a troubleshooting section.","required":["guideid","url","title","image","time_required","difficulty","introduction_rendered"],"properties":{"guideid":{"type":"integer"},"url":{"type":"string","description":"Absolute URL to the guide."},"title":{"type":"string"},"image":{"type":"object","properties":{"thumbnail":{"type":"string","description":"Thumbnail image URL for the guide."}}},"time_required":{"type":"string","description":"Human-readable estimate of the time the guide takes."},"difficulty":{"type":"string","description":"Human-readable difficulty rating (e.g. \"Moderate\")."},"introduction_rendered":{"type":"string","description":"The guide's introduction rendered as HTML."}}}},"products":{"type":"array","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}},"partCollections":{"type":"array","items":{"type":"object","description":"A link to a collection of replacement parts for a device. When a `selectedDevice` is supplied, collections are narrowed to that device (and variant) where possible.","required":["url","title","description","imageUrl","showChooseModel","isEmpty","device"],"properties":{"url":{"type":"string","description":"Absolute URL to the parts collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":["string","null"]},"showChooseModel":{"type":"boolean","description":"Whether the UI should prompt the viewer to choose a specific model before the collection resolves to concrete parts."},"isEmpty":{"type":"boolean","description":"Whether the narrowed collection contains no purchasable parts."},"device":{"type":"string","description":"Display title of the device the collection is for."}}}},"guideCollections":{"type":"array","items":{"type":"object","description":"A link to a filtered collection of guides for a device.","required":["url","title","description","imageUrl","showChooseModel","isEmpty"],"properties":{"url":{"type":"string","description":"Absolute URL to the guide collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"showChooseModel":{"type":"boolean"},"isEmpty":{"type":"boolean"}}}}}}},"conclusion":{"type":"array","items":{"type":"object","description":"One section of a troubleshooting page. In the `solutions` bucket each section is a single cause/fix (the `== Heading ==` blocks of the source wiki). Sections in `introduction` and `conclusion` share this shape.","required":["heading","id","body","guides","products","partCollections","guideCollections"],"properties":{"heading":{"type":["string","null"],"description":"Section heading text; `null` for an untitled leading block."},"id":{"type":["string","null"],"description":"Anchor id for linking to the section (e.g. \"Section_Heavy_Use\")."},"body":{"type":"string","description":"The section's rendered HTML, with featured products removed."},"guides":{"type":"array","items":{"type":"object","description":"A repair guide referenced from within a troubleshooting section.","required":["guideid","url","title","image","time_required","difficulty","introduction_rendered"],"properties":{"guideid":{"type":"integer"},"url":{"type":"string","description":"Absolute URL to the guide."},"title":{"type":"string"},"image":{"type":"object","properties":{"thumbnail":{"type":"string","description":"Thumbnail image URL for the guide."}}},"time_required":{"type":"string","description":"Human-readable estimate of the time the guide takes."},"difficulty":{"type":"string","description":"Human-readable difficulty rating (e.g. \"Moderate\")."},"introduction_rendered":{"type":"string","description":"The guide's introduction rendered as HTML."}}}},"products":{"type":"array","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}},"partCollections":{"type":"array","items":{"type":"object","description":"A link to a collection of replacement parts for a device. When a `selectedDevice` is supplied, collections are narrowed to that device (and variant) where possible.","required":["url","title","description","imageUrl","showChooseModel","isEmpty","device"],"properties":{"url":{"type":"string","description":"Absolute URL to the parts collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":["string","null"]},"showChooseModel":{"type":"boolean","description":"Whether the UI should prompt the viewer to choose a specific model before the collection resolves to concrete parts."},"isEmpty":{"type":"boolean","description":"Whether the narrowed collection contains no purchasable parts."},"device":{"type":"string","description":"Display title of the device the collection is for."}}}},"guideCollections":{"type":"array","items":{"type":"object","description":"A link to a filtered collection of guides for a device.","required":["url","title","description","imageUrl","showChooseModel","isEmpty"],"properties":{"url":{"type":"string","description":"Absolute URL to the guide collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"showChooseModel":{"type":"boolean"},"isEmpty":{"type":"boolean"}}}}}}},"featuredProducts":{"type":"array","description":"Up to three products featured in the page introduction.","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}}}},{"type":"object","description":"Returned in place of a full page (still HTTP 200) when the requested wiki is not a troubleshooting page, or redirects elsewhere. Consumers should follow `canonicalUrl`.","required":["canonicalUrl"],"properties":{"canonicalUrl":{"type":"string","description":"Absolute URL the caller should redirect to."}}}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}}},"/troubleshooting/wikiid/{wikiid}":{"get":{"operationId":"getTroubleshootingByWikiid","summary":"Get a troubleshooting page by wiki id","description":"Identical to `GET /troubleshooting/{title}` — including the HTTP 200 redirect stub for non-troubleshooting pages — but looks the page up by its numeric wiki id instead of its title.","tags":["Troubleshooting"],"security":[],"parameters":[{"name":"wikiid","in":"path","required":true,"description":"The troubleshooting page's wiki id.","schema":{"type":"integer"}},{"name":"selectedDevice","in":"query","description":"Narrow device-specific links (parts, guides, model wikilinks) to a particular device, optionally with a variant as `device:variant`. Must be the page's device or one of its descendants; ignored otherwise.","schema":{"type":"string"}},{"name":"unpatrolled","in":"query","description":"Returns the pending unpatrolled revision when one exists. Enabled by the presence of the parameter regardless of its value, including `unpatrolled=false` — pass no value (`?unpatrolled`) to enable, omit the parameter to disable.","allowEmptyValue":true,"schema":{"type":"string"}},{"name":"langid","in":"query","description":"Language code for the response content (e.g., \"en\", \"de\", \"fr\", \"it\", \"es\", \"pt\", \"ja\", \"zh\", \"nl\", \"ru\", \"tr\", \"ko\").\nDefaults to the site's default language.\n","schema":{"type":"string","pattern":"^[a-z]{2}$","example":"en"}}],"responses":{"200":{"description":"The parsed troubleshooting page, or a redirect stub.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"A fully parsed troubleshooting page, with the source wiki's rigid document structure split into `introduction`, `solutions`, and `conclusion`.","required":["pageTitle","title","id","breadcrumbs","answersUrl","editUrl","historyUrl","canonicalUrl","authors","lastUpdatedDate","flags","hreflangUrls","metaDescription","metaKeywords","linkedProblems","relatedProblems","mainImageUrl","mainImageUrlLarge","viewStats","category","userSelectedDevice","hideDeviceSelection","algoliaConfig","deviceGuideUrl","deviceTroubleshootingUrl","toc","introduction","solutions","conclusion","featuredProducts"],"properties":{"pageTitle":{"type":"string","description":"SEO page title."},"title":{"type":"string","description":"Human-readable problem title."},"id":{"type":"integer","description":"The underlying wiki id."},"breadcrumbs":{"type":"array","items":{"type":"object","required":["title","url"],"properties":{"title":{"type":"string"},"url":{"type":"string","description":"Link URL (absolute in most contexts, site-relative for some ancestor links), or an empty string for the current page."}}}},"answersUrl":{"type":"string"},"editUrl":{"type":"string"},"historyUrl":{"type":"string"},"canonicalUrl":{"type":"string"},"authors":{"type":"array","items":{"type":"object","description":"A contributing author. The list holds at most the top ten contributors by ownership share, reordered with the page creator first when they are among them.","required":["userid","percent","username","avatar","profileUrl"],"properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number","description":"Percentage of the page's content attributed to this author (may be fractional, e.g. 8.33)."},"username":{"type":"string"},"avatar":{"type":["string","null"]},"profileUrl":{"type":"string"}}}},"lastUpdatedDate":{"type":"integer","format":"int64","description":"UNIX timestamp of the latest revision."},"flags":{"type":"array","items":{"type":"object","description":"A banner flag on the page (e.g. a maintenance or warning notice). Either `icon` (a Font Awesome name) or `image` (a URL) is present, not both.","required":["flagid","title","text"],"properties":{"flagid":{"type":"string","description":"Stable identifier of the flag type (e.g. \"WIKI_STUB\")."},"title":{"type":"string"},"text":{"type":"string"},"icon":{"type":"string"},"image":{"type":"string"}}}},"hreflangUrls":{"type":"object","description":"Map of language code (plus `x-default`) to the canonical URL for that language.","additionalProperties":{"type":"string"}},"metaDescription":{"type":"string"},"metaKeywords":{"type":"string"},"linkedProblems":{"type":"array","description":"Problems explicitly linked from the body of this page.","items":{"type":"object","description":"A link to another troubleshooting problem page.","required":["url","title","deviceTitle","imageUrl"],"properties":{"url":{"type":"string"},"title":{"type":"string"},"deviceTitle":{"type":"string","description":"Display title of the problem's device."},"imageUrl":{"type":"string"}}}},"relatedProblems":{"type":"array","description":"Other problems for the same device (or an ancestor).","items":{"type":"object","description":"A link to another troubleshooting problem page.","required":["url","title","deviceTitle","imageUrl"],"properties":{"url":{"type":"string"},"title":{"type":"string"},"deviceTitle":{"type":"string","description":"Display title of the problem's device."},"imageUrl":{"type":"string"}}}},"mainImageUrl":{"type":"string"},"mainImageUrlLarge":{"type":"string"},"viewStats":{"type":"object","description":"View counts for the page over several time windows.","required":["today","week","month","all"],"properties":{"today":{"type":"integer"},"week":{"type":"integer"},"month":{"type":"integer"},"all":{"type":"integer"}}},"category":{"type":"object","description":"The parent device category the problem belongs to.","required":["displayTitle","deviceTitle","imageUrl","viewUrl","description"],"properties":{"displayTitle":{"type":"string"},"deviceTitle":{"type":"string","description":"URL-safe device title."},"imageUrl":{"type":"string"},"viewUrl":{"type":"string"},"description":{"type":"string"}}},"userSelectedDevice":{"type":["object","null"],"description":"The device the response was narrowed to, echoed back from the `selectedDevice` parameter. `null` when no valid device was selected.","required":["deviceTitle","displayTitle","imageUrl","variant"],"properties":{"deviceTitle":{"type":"string"},"displayTitle":{"type":"string"},"imageUrl":{"type":"string"},"variant":{"type":["string","null"]}}},"hideDeviceSelection":{"type":"boolean","description":"Whether the device picker should be hidden (the device is a leaf with at most one variant)."},"algoliaConfig":{"type":"object","description":"Public Algolia search configuration for on-page search.","properties":{"apiKey":{"type":"string"},"indexPrefix":{"type":"string"}}},"deviceGuideUrl":{"type":"string","description":"URL to the parent device's guides section."},"deviceTroubleshootingUrl":{"type":"string","description":"URL to the parent device's problem list."},"devicePartsUrl":{"type":"string","description":"URL to the parent device's parts store. Omitted when the device has no enabled parts."},"toc":{"type":["string","null"],"description":"Rendered table-of-contents HTML."},"introduction":{"type":"array","items":{"type":"object","description":"One section of a troubleshooting page. In the `solutions` bucket each section is a single cause/fix (the `== Heading ==` blocks of the source wiki). Sections in `introduction` and `conclusion` share this shape.","required":["heading","id","body","guides","products","partCollections","guideCollections"],"properties":{"heading":{"type":["string","null"],"description":"Section heading text; `null` for an untitled leading block."},"id":{"type":["string","null"],"description":"Anchor id for linking to the section (e.g. \"Section_Heavy_Use\")."},"body":{"type":"string","description":"The section's rendered HTML, with featured products removed."},"guides":{"type":"array","items":{"type":"object","description":"A repair guide referenced from within a troubleshooting section.","required":["guideid","url","title","image","time_required","difficulty","introduction_rendered"],"properties":{"guideid":{"type":"integer"},"url":{"type":"string","description":"Absolute URL to the guide."},"title":{"type":"string"},"image":{"type":"object","properties":{"thumbnail":{"type":"string","description":"Thumbnail image URL for the guide."}}},"time_required":{"type":"string","description":"Human-readable estimate of the time the guide takes."},"difficulty":{"type":"string","description":"Human-readable difficulty rating (e.g. \"Moderate\")."},"introduction_rendered":{"type":"string","description":"The guide's introduction rendered as HTML."}}}},"products":{"type":"array","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}},"partCollections":{"type":"array","items":{"type":"object","description":"A link to a collection of replacement parts for a device. When a `selectedDevice` is supplied, collections are narrowed to that device (and variant) where possible.","required":["url","title","description","imageUrl","showChooseModel","isEmpty","device"],"properties":{"url":{"type":"string","description":"Absolute URL to the parts collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":["string","null"]},"showChooseModel":{"type":"boolean","description":"Whether the UI should prompt the viewer to choose a specific model before the collection resolves to concrete parts."},"isEmpty":{"type":"boolean","description":"Whether the narrowed collection contains no purchasable parts."},"device":{"type":"string","description":"Display title of the device the collection is for."}}}},"guideCollections":{"type":"array","items":{"type":"object","description":"A link to a filtered collection of guides for a device.","required":["url","title","description","imageUrl","showChooseModel","isEmpty"],"properties":{"url":{"type":"string","description":"Absolute URL to the guide collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"showChooseModel":{"type":"boolean"},"isEmpty":{"type":"boolean"}}}}}}},"solutions":{"type":"array","description":"The ordered cause/fix sections — the troubleshooting steps.","items":{"type":"object","description":"One section of a troubleshooting page. In the `solutions` bucket each section is a single cause/fix (the `== Heading ==` blocks of the source wiki). Sections in `introduction` and `conclusion` share this shape.","required":["heading","id","body","guides","products","partCollections","guideCollections"],"properties":{"heading":{"type":["string","null"],"description":"Section heading text; `null` for an untitled leading block."},"id":{"type":["string","null"],"description":"Anchor id for linking to the section (e.g. \"Section_Heavy_Use\")."},"body":{"type":"string","description":"The section's rendered HTML, with featured products removed."},"guides":{"type":"array","items":{"type":"object","description":"A repair guide referenced from within a troubleshooting section.","required":["guideid","url","title","image","time_required","difficulty","introduction_rendered"],"properties":{"guideid":{"type":"integer"},"url":{"type":"string","description":"Absolute URL to the guide."},"title":{"type":"string"},"image":{"type":"object","properties":{"thumbnail":{"type":"string","description":"Thumbnail image URL for the guide."}}},"time_required":{"type":"string","description":"Human-readable estimate of the time the guide takes."},"difficulty":{"type":"string","description":"Human-readable difficulty rating (e.g. \"Moderate\")."},"introduction_rendered":{"type":"string","description":"The guide's introduction rendered as HTML."}}}},"products":{"type":"array","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}},"partCollections":{"type":"array","items":{"type":"object","description":"A link to a collection of replacement parts for a device. When a `selectedDevice` is supplied, collections are narrowed to that device (and variant) where possible.","required":["url","title","description","imageUrl","showChooseModel","isEmpty","device"],"properties":{"url":{"type":"string","description":"Absolute URL to the parts collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":["string","null"]},"showChooseModel":{"type":"boolean","description":"Whether the UI should prompt the viewer to choose a specific model before the collection resolves to concrete parts."},"isEmpty":{"type":"boolean","description":"Whether the narrowed collection contains no purchasable parts."},"device":{"type":"string","description":"Display title of the device the collection is for."}}}},"guideCollections":{"type":"array","items":{"type":"object","description":"A link to a filtered collection of guides for a device.","required":["url","title","description","imageUrl","showChooseModel","isEmpty"],"properties":{"url":{"type":"string","description":"Absolute URL to the guide collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"showChooseModel":{"type":"boolean"},"isEmpty":{"type":"boolean"}}}}}}},"conclusion":{"type":"array","items":{"type":"object","description":"One section of a troubleshooting page. In the `solutions` bucket each section is a single cause/fix (the `== Heading ==` blocks of the source wiki). Sections in `introduction` and `conclusion` share this shape.","required":["heading","id","body","guides","products","partCollections","guideCollections"],"properties":{"heading":{"type":["string","null"],"description":"Section heading text; `null` for an untitled leading block."},"id":{"type":["string","null"],"description":"Anchor id for linking to the section (e.g. \"Section_Heavy_Use\")."},"body":{"type":"string","description":"The section's rendered HTML, with featured products removed."},"guides":{"type":"array","items":{"type":"object","description":"A repair guide referenced from within a troubleshooting section.","required":["guideid","url","title","image","time_required","difficulty","introduction_rendered"],"properties":{"guideid":{"type":"integer"},"url":{"type":"string","description":"Absolute URL to the guide."},"title":{"type":"string"},"image":{"type":"object","properties":{"thumbnail":{"type":"string","description":"Thumbnail image URL for the guide."}}},"time_required":{"type":"string","description":"Human-readable estimate of the time the guide takes."},"difficulty":{"type":"string","description":"Human-readable difficulty rating (e.g. \"Moderate\")."},"introduction_rendered":{"type":"string","description":"The guide's introduction rendered as HTML."}}}},"products":{"type":"array","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}},"partCollections":{"type":"array","items":{"type":"object","description":"A link to a collection of replacement parts for a device. When a `selectedDevice` is supplied, collections are narrowed to that device (and variant) where possible.","required":["url","title","description","imageUrl","showChooseModel","isEmpty","device"],"properties":{"url":{"type":"string","description":"Absolute URL to the parts collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":["string","null"]},"showChooseModel":{"type":"boolean","description":"Whether the UI should prompt the viewer to choose a specific model before the collection resolves to concrete parts."},"isEmpty":{"type":"boolean","description":"Whether the narrowed collection contains no purchasable parts."},"device":{"type":"string","description":"Display title of the device the collection is for."}}}},"guideCollections":{"type":"array","items":{"type":"object","description":"A link to a filtered collection of guides for a device.","required":["url","title","description","imageUrl","showChooseModel","isEmpty"],"properties":{"url":{"type":"string","description":"Absolute URL to the guide collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"showChooseModel":{"type":"boolean"},"isEmpty":{"type":"boolean"}}}}}}},"featuredProducts":{"type":"array","description":"Up to three products featured in the page introduction.","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}}}},{"type":"object","description":"Returned in place of a full page (still HTTP 200) when the requested wiki is not a troubleshooting page, or redirects elsewhere. Consumers should follow `canonicalUrl`.","required":["canonicalUrl"],"properties":{"canonicalUrl":{"type":"string","description":"Absolute URL the caller should redirect to."}}}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}}},"/troubleshooting/collection/{title}":{"get":{"operationId":"getProblemList","summary":"List a device's troubleshooting problems","description":"Returns the collection view for a device (a CATEGORY/TOPIC wiki): every troubleshooting problem associated with it — directly or inherited from an ancestor — plus up to ten community answers ranked by views over the last 30 days. Returns 404 when the wiki is not a topic page or has no related problems; when the topic redirects, the HTTP 200 body is a `canonicalUrl` stub instead of the collection (see `TroubleshootingRedirect`).","tags":["Troubleshooting"],"security":[],"parameters":[{"name":"title","in":"path","required":true,"description":"Wiki page title.","schema":{"type":"string"}},{"name":"unpatrolled","in":"query","description":"Returns the pending unpatrolled revision when one exists. Enabled by the presence of the parameter regardless of its value, including `unpatrolled=false` — pass no value (`?unpatrolled`) to enable, omit the parameter to disable.","allowEmptyValue":true,"schema":{"type":"string"}},{"name":"langid","in":"query","description":"Language code for the response content (e.g., \"en\", \"de\", \"fr\", \"it\", \"es\", \"pt\", \"ja\", \"zh\", \"nl\", \"ru\", \"tr\", \"ko\").\nDefaults to the site's default language.\n","schema":{"type":"string","pattern":"^[a-z]{2}$","example":"en"}}],"responses":{"200":{"description":"The device's problem-list collection, or a redirect stub.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"The collection view for a device: the list of troubleshooting problems associated with it, plus popular community answers.","required":["title","id","breadcrumbs","deviceUrls","problems","answers","allAnswersUrl","allAnswersCount","directlyAttachedProblemsCount","canonicalUrl","viewStats"],"properties":{"title":{"type":"string"},"id":{"type":"integer","description":"The device (CATEGORY) wiki id."},"breadcrumbs":{"type":"array","items":{"type":"object","required":["title","url"],"properties":{"title":{"type":"string"},"url":{"type":"string","description":"Link URL (absolute in most contexts, site-relative for some ancestor links), or an empty string for the current page."}}}},"deviceUrls":{"type":"object","required":["deviceGuideUrl","deviceTroubleshootingUrl"],"properties":{"deviceGuideUrl":{"type":"string"},"deviceTroubleshootingUrl":{"type":"string"},"devicePartsUrl":{"type":"string","description":"URL to the device's parts store. Omitted when the device has no enabled parts."}}},"problems":{"type":"array","items":{"type":"object","description":"One problem in a device's problem-list collection.","required":["problemTitle","problemUrl","deviceTitle","description","imageSrcStandard","imageSrcThumbnail","deviceSrcThumbnail","badges"],"properties":{"problemTitle":{"type":"string"},"problemUrl":{"type":"string"},"deviceTitle":{"type":"string"},"description":{"type":"string"},"imageSrcStandard":{"type":"string"},"imageSrcThumbnail":{"type":"string"},"deviceSrcThumbnail":{"type":["string","null"]},"problemTypeIcon":{"type":"string","description":"Icon name derived from a `problem-<type>` tag, when present."},"badges":{"type":"array","items":{"type":"string"}}}}},"answers":{"type":"array","description":"At most ten community answers, ranked by views over the last 30 days.","items":{"type":"object","description":"A community answers post surfaced on a problem-list collection.","required":["title","url","description","imageUrl","deviceTitle"],"properties":{"title":{"type":"string"},"url":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"deviceTitle":{"type":"string"}}}},"allAnswersUrl":{"type":"string"},"allAnswersCount":{"type":"integer"},"directlyAttachedProblemsCount":{"type":"integer"},"canonicalUrl":{"type":"string"},"viewStats":{"type":"object","description":"View counts for the page over several time windows.","required":["today","week","month","all"],"properties":{"today":{"type":"integer"},"week":{"type":"integer"},"month":{"type":"integer"},"all":{"type":"integer"}}}}},{"type":"object","description":"Returned in place of a full page (still HTTP 200) when the requested wiki is not a troubleshooting page, or redirects elsewhere. Consumers should follow `canonicalUrl`.","required":["canonicalUrl"],"properties":{"canonicalUrl":{"type":"string","description":"Absolute URL the caller should redirect to."}}}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}}}}}},"components":{"securitySchemes":{"apiToken":{"type":"apiKey","name":"Authorization","in":"header","description":"API authorization token. Format: `api YOUR_AUTH_TOKEN`\n\nObtain tokens via `POST /user/token` with email and password.\n"},"appId":{"type":"apiKey","name":"X-App-Id","in":"header","description":"Application identifier. Required for some operations.\n\nContact iFixit for an app ID if needed for your integration.\n"}},"schemas":{"Error":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"InsufficientPrivileges":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"Image":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},"ImageWithMetadata":{"type":"object","description":"An Image plus its dimensions, aspect ratio, markup, and EXIF metadata.","properties":{"image":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},"srcid":{"type":["integer","null"],"description":"`id` of the source image when this image is a crop or derivative; `null` otherwise."},"width":{"type":"integer","description":"Image width in pixels","example":2420},"height":{"type":"integer","description":"Image height in pixels","example":1815},"ratio":{"type":"string","description":"Aspect ratio classification","enum":["ONE_ONE","FOUR_THREE","VARIABLE"],"example":"FOUR_THREE"},"markup":{"type":["string","null"],"description":"Image annotation markup; `null` when the image has none."},"exif":{"description":"EXIF metadata from the original image; an empty array when there is no EXIF data.","oneOf":[{"type":"object","additionalProperties":true},{"type":"array","maxItems":0}]}}},"UserSummary":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"User":{"type":"object","description":"Full user profile with authentication details. The `url` field inherited from UserSummary is not emitted by responses that use this schema. Viewer-only fields such as `links` and `unread_notification_count` are present only when the represented user is the authenticated viewer.","allOf":[{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},{"type":"object","properties":{"certification_count":{"type":"integer","description":"Number of certifications earned","example":0},"badge_counts":{"type":"object","description":"Count of badges by level","properties":{"bronze":{"type":"integer"},"silver":{"type":"integer"},"gold":{"type":"integer"},"total":{"type":"integer"}}},"summary":{"type":["string","null"],"description":"User's about text (plain text summary)","example":"I fix things!"},"about_raw":{"oneOf":[{"type":"string"},{"type":"boolean"}],"description":"User's about content in wiki markup; `false` when empty"},"about_rendered":{"oneOf":[{"type":"string"},{"type":"boolean"}],"description":"User's about content rendered as HTML; `false` when empty"},"partner":{"type":["object","null"],"description":"Partner organization information; may be `null`","additionalProperties":true},"greatest_privilege":{"type":"string","description":"Highest privilege level of the user (e.g. `User`, `Moderator`, `Admin`)"},"langid":{"type":"string","description":"User's preferred language code","example":"en"},"preferredStoreDomain":{"type":"string","description":"User's preferred store domain (e.g. `ifixit-us`)"},"preferredStoreLocale":{"type":"string","description":"User's preferred store locale (e.g. `en-us`)"},"authToken":{"type":"string","description":"Authentication token for API requests, sent as `Authorization: api AUTH_TOKEN`. Present in login, registration, and impersonation responses; absent from other user responses. The token is a server-side session id, invalidated by logout or session expiry.","example":"0123456789abcdef0123456789abcdef"},"links":{"type":"object","description":"Related links. Present only when the represented user is the authenticated viewer; `manage` is included only for viewers permitted to access the management interface.","properties":{"manage":{"type":"string","description":"URL to user management page"}},"additionalProperties":{"type":"string"}}}}]},"UserInfo":{"type":"object","description":"Public user profile information. The `url` field inherited from UserSummary is not emitted in this representation. When the request is authenticated as the user being returned, the response includes additional viewer-only fields such as `links` and `unread_notification_count`.","allOf":[{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},{"type":"object","properties":{"certification_count":{"type":"integer"},"badge_counts":{"type":"object","properties":{"bronze":{"type":"integer"},"silver":{"type":"integer"},"gold":{"type":"integer"},"total":{"type":"integer"}}},"summary":{"type":["string","null"],"description":"User's about text (plain text summary)"},"about_raw":{"oneOf":[{"type":"string"},{"type":"boolean"}],"description":"User's about content in wiki markup; `false` when empty"},"about_rendered":{"oneOf":[{"type":"string"},{"type":"boolean"}],"description":"User's about content rendered as HTML; `false` when empty"},"partner":{"type":["object","null"],"description":"Partner organization information; may be `null`","additionalProperties":true},"greatest_privilege":{"type":"string","description":"Highest privilege level of the user"},"langid":{"type":"string","description":"User's preferred language code"},"preferredStoreDomain":{"type":"string","description":"User's preferred store domain"},"preferredStoreLocale":{"type":"string","description":"User's preferred store locale"}}}]},"UserList":{"type":"array","description":"List of user summaries","items":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]}},"GuideType":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"GuideDifficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"StepLine":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"StepMedia":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"Step":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]},"Tool":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}},"Part":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}},"PrerequisiteGuide":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},"GuideSummary":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},"Guide":{"type":"object","description":"Complete guide object","allOf":[{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"time_required":{"type":"string","description":"Human-readable time estimate (e.g. \"30 minutes\", \"No estimate\"). Omitted from guide summaries."},"time_required_min":{"type":"integer","description":"Minimum time in seconds. Omitted from guide summaries."},"flags":{"type":"array","description":"In the guide's display order (editors arrange flags by importance). Preserve it — sorting or deduping loses the order a PATCH would then write back.","items":{"type":"object","description":"A flag displayed on a guide","properties":{"title":{"type":"string","description":"Flag display title"},"flagid":{"type":"string"},"text":{"type":"string","description":"Flag text content"}}}},"conclusion_raw":{"type":"string","description":"Conclusion text in wiki markup"},"conclusion_rendered":{"type":"string","description":"Conclusion text as HTML"},"introduction_raw":{"type":["string","null"],"description":"Introduction text in wiki markup"},"introduction_rendered":{"type":["string","null"],"description":"Introduction text as HTML"},"documents":{"type":"array","items":{"type":"object"}},"parts":{"type":"array","description":"Parts required for this guide","items":{"type":"object","description":"Part required for the guide","properties":{"type":{"type":"string","description":"Part variant/type"},"quantity":{"type":"integer","description":"Number of this part needed","default":1},"text":{"type":"string","description":"Part name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to part page"},"thumbnail":{"type":"string","format":"uri","description":"Part thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this part is optional for the guide"},"featured":{"type":"boolean","description":"Whether this part is featured on the guide"}}}},"tools":{"type":"array","description":"Tools required for this guide","items":{"type":"object","description":"Tool required for the guide","properties":{"type":{"type":"string","description":"Tool variant/type"},"quantity":{"type":"integer","description":"Number of this tool needed","default":1},"text":{"type":"string","description":"Tool name"},"notes":{"type":["string","null"],"description":"Usage notes specific to this guide"},"url":{"type":"string","format":"uri","description":"URL to tool page"},"thumbnail":{"type":"string","format":"uri","description":"Tool thumbnail image URL"},"isoptional":{"type":"boolean","description":"Whether this tool is optional for the guide"},"featured":{"type":"boolean","description":"Whether this tool is featured on the guide"}}}},"prerequisites":{"type":"array","description":"Prerequisite guides","items":{"type":"object","description":"A prerequisite guide reference","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer"},"locale":{"type":"string"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string"},"subject":{"type":"string"},"title":{"type":"string"},"difficulty":{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},"time_required_max":{"type":"integer"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"steps":{"type":"array","description":"Guide steps (includes prerequisite steps by default)","items":{"type":"object","description":"A single step within a guide","properties":{"stepid":{"type":"integer","description":"Unique step identifier"},"guideid":{"type":"integer","description":"Parent guide ID. `getGuide` inlines the steps of prerequisite guides into the returned `steps` array; for those steps, `guideid` is the prerequisite guide's id, and `updateStep` and `deleteStep` must target that guide."},"orderby":{"type":"integer","description":"Position of the step within its owning guide (1-indexed). Steps inlined from prerequisite guides are numbered within their own guide, so `orderby` is not unique across the returned array."},"revisionid":{"type":"integer","description":"Opaque revision counter for the step in the returned language; changes when the step content or its translation text changes. This is the value the `revisionid` parameter of `updateStep` and `deleteStep` is compared against."},"accepted":{"type":"boolean","description":"Present on step translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"title":{"type":"string","description":"Custom step title"},"lines":{"type":"array","description":"Text content lines","items":{"type":"object","description":"A single line of text within a step","properties":{"text_raw":{"type":"string","description":"Raw text content with wiki markup"},"text_rendered":{"type":"string","description":"HTML-rendered text content"},"bullet":{"type":"string","description":"Bullet color or icon type","enum":["black","red","orange","yellow","light_blue","blue","green","violet","icon_note","icon_caution","icon_reminder"]},"level":{"type":"integer","description":"Indentation level (0-2)","minimum":0,"maximum":2},"lineid":{"type":["integer","null"],"description":"Unique line identifier"}},"required":["text_raw","bullet","level"]},"minItems":1,"maxItems":8},"media":{"type":"object","description":"Media attached to a step","properties":{"type":{"type":"string","description":"Type of media","enum":["image","video","embed"]},"data":{"oneOf":[{"type":"array","description":"Array of images when `type` is `image`","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},{"type":"object","description":"Video object when `type` is `video`"}]}},"required":["type","data"]},"comments":{"type":"array","description":"Public comments on this step, threaded (each item may have a `replies` array), ordered chronologically ascending. Always present. By default the full list is returned; when the `stepComments` query flag is set on `getGuide` the list is capped at 20 top-level comments per step and `comment_count` is added. See `comment_count` for the true total.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"comment_count":{"type":"integer","description":"Total number of public comments for this step (top-level + replies). Present only when the `stepComments` query flag is set on `getGuide`. Use this to display \"See all N comments\" when `comments` is capped.","minimum":0}},"required":["stepid","guideid","orderby","revisionid","lines"]}},"comments":{"type":"array","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"langid":{"type":"string"},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"accepted":{"type":"boolean","description":"Present on guide translation update responses. True when the saved revision published immediately; false when it is pending patrol."},"created_date":{"type":"integer","format":"int64"},"published_date":{"type":"integer","format":"int64"},"patrol_threshold":{"type":"integer","description":"Reputation needed to patrol this guide"},"can_edit":{"type":"boolean","description":"Whether the viewer can edit the guide"},"favorited":{"type":"boolean","description":"Whether the authenticated user has favorited the guide"},"completed":{"type":"boolean","description":"Whether the authenticated user has completed the guide"},"featured_document_embed_url":{"type":"string"},"featured_document_thumbnail_url":{"type":"string"},"featured_documentid":{"type":["integer","null"]},"intro_video_url":{"type":["string","null"],"format":"uri"},"intro_video":{"type":["object","null"],"properties":{"embedid":{"type":"integer"},"url":{"type":"string","format":"uri"},"width":{"type":"integer"},"height":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"},"provider_url":{"type":"string"},"provider_name":{"type":"string"},"html":{"type":"string"},"author_url":{"type":"string"},"author_name":{"type":"string"}}},"video_info":{"type":"object","description":"Guide-level video and step timestamp metadata for single-video guides. Present only when the `videoInfo` query flag is set on `getGuide`.","properties":{"type":{"type":"string","enum":["none","youtube","ifixit"]},"videoId":{"type":["string","null"],"description":"YouTube video id or iFixit video id"},"videoUrls":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"iFixit-hosted video encodings by format, present for `ifixit` videos"},"videoWidth":{"type":"integer","description":"iFixit-hosted video width in pixels"},"videoHeight":{"type":"integer","description":"iFixit-hosted video height in pixels"},"timestamps":{"type":"array","description":"Step timestamp ranges as `[stepid, { startTime, endTime }]` tuples","items":{"type":"array","minItems":2,"maxItems":2,"prefixItems":[{"type":"integer","description":"Step id"},{"type":"object","description":"Timestamp range for a step in a single-video guide","properties":{"startTime":{"type":"number","description":"Start time in seconds","minimum":0},"endTime":{"type":"number","description":"End time in seconds","minimum":0}},"required":["startTime","endTime"]}]}}},"required":["type","videoId","timestamps"]},"available_langids":{"type":"array","description":"Languages this guide is available in","items":{"type":"string"}}}}]},"GuideList":{"type":"array","description":"List of guide summaries.","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"CommentContext":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"Comment":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}}},"required":["commentid","context","contextid","text_raw","date","status","author"]},"CommentList":{"type":"array","description":"Array of Comment objects.","items":{"type":"object","description":"A comment on a guide, step, wiki, or other content","properties":{"commentid":{"type":"integer"},"locale":{"type":["string","null"],"description":"Language of the comment, auto-detected from its text after creation; `null` when no language has been detected."},"context":{"type":"string","description":"Type of content the comment is attached to. `wp_post` refers to news (WordPress) posts. `info` appears only on existing comments and is not accepted when creating comments.","enum":["guide","step","wiki","info","post","story","wp_post"]},"contextid":{"type":"integer","description":"ID of the content this comment is attached to"},"parentid":{"type":["integer","null"],"description":"`commentid` of the parent comment when this comment is a reply; `null` on top-level comments."},"title":{"type":"string","description":"Comment title (usually derived from context)"},"text_raw":{"type":"string","description":"Comment text in raw format"},"text_rendered":{"type":"string","description":"Comment text rendered as HTML"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp of when the comment was created"},"modified_date":{"type":"integer","format":"int64","description":"UNIX timestamp of the last edit; 0 when the comment has never been edited."},"status":{"type":"string","description":"Comment visibility status","enum":["public","private","deleted"]},"rating":{"type":"integer","description":"Always 0; upvote counts are available only from the upvote endpoints."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"replies":{"type":"array","description":"Direct replies, ordered by `commentid` descending; present only on top-level comments.","items":{"$ref":"#/components/schemas/Comment"}}},"required":["commentid","context","contextid","text_raw","date","status","author"]}},"CommentUpvote":{"type":"object","description":"Comment upvote response","properties":{"commentid":{"type":"integer"},"upvotes":{"type":"integer","description":"Total number of upvotes on the comment"}}},"WikiNamespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"WikiSummary":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},"Wiki":{"type":"object","description":"Complete wiki with full content. Full wiki responses do not include the `dataType`, `url`, `summary`, or `text` fields listed on WikiSummary; the short summary is returned in the `description` field. Namespace-specific fields (`guides`, `children`, `parts`, `tools`, `suppliers`, and similar) are present only for their namespaces, as noted on each field.","allOf":[{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}},{"type":"object","properties":{"contents_raw":{"type":"string","description":"Wiki content in wiki markup"},"contents_rendered":{"type":"string","description":"Wiki content rendered as HTML"},"linked_wikis":{"type":"array","description":"Distinct existing wikis linked directly from the content, in order of first appearance","items":{"type":"object","description":"An existing wiki linked from wiki content","required":["wikiid","namespace","title"],"properties":{"wikiid":{"type":"integer","description":"Unique identifier of the linked wiki"},"namespace":{"type":"string","description":"Namespace of the linked wiki"},"title":{"type":"string","description":"Title of the linked wiki"}}}},"created_date":{"type":"integer","format":"int64","description":"Wiki creation timestamp"},"ancestors":{"type":"array","description":"Ancestor path, closest parent first","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"is_troubleshooting":{"type":"boolean","description":"Whether this is a troubleshooting wiki"},"authors":{"type":"array","description":"Top wiki contributors, with the creator listed first when present","items":{"type":"object","description":"A contributor's share of authorship of a wiki. `percent` is that contributor's fraction of the wiki's content. `userid` is `null` and `username` empty when the contributor's account no longer exists.","properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number"},"username":{"type":"string"},"avatar_url":{"type":["string","null"],"format":"uri"},"profile_url":{"type":"string","format":"uri"}}}},"tags":{"type":"array","description":"Normal tags applied to the wiki","items":{"type":"string"}},"unreviewed_machine_translation":{"type":"boolean","description":"True when this translation is machine-generated output no person has reviewed yet. Machine translations are published immediately; a human review or a later human edit clears this flag. Always false for source-language documents."},"description":{"type":"string","description":"Short description, stored as the wiki summary (WIKI, INFO, CATEGORY, and ITEM namespaces)."},"flags":{"description":"On reads, an object keyed by flagid; each value contains `flagid`, `title`, `text`, and image or icon fields. On writes, an array of flagid strings that replaces the wiki's entire flag set; each added or removed flag requires the privilege associated with that flag. Order is preserved in both directions and is the order the flag banners render in on the page."},"repairability_score":{"type":["integer","null"],"description":"Repairability score 0-10 (CATEGORY namespace)","minimum":0,"maximum":10},"source_revisionid":{"type":["integer","null"],"description":"Source revision for translations"},"info":{"type":"array","description":"Additional metadata (CATEGORY and ITEM namespaces)","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}}}},"suppliers":{"type":"array","description":"Supplier information (ITEM namespace)","items":{"type":"object","properties":{"part_#":{"type":"string"},"type":{"type":"string"},"supplier":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"documents":{"type":"array","description":"Attached documents (CATEGORY namespace)","items":{"type":"object","properties":{"documentid":{"type":"integer"}}}},"guides":{"type":"array","description":"Associated guides (CATEGORY namespace)","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"children":{"type":"array","description":"Child categories (CATEGORY namespace)","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"parent":{"type":["string","null"],"description":"Parent category title (CATEGORY namespace)"},"author":{"type":"integer","description":"User ID of the primary author"},"available_langids":{"type":"array","description":"Language codes this wiki is available in","items":{"type":"string"}},"can_edit":{"type":"boolean","description":"Whether the authenticated user can edit this wiki"},"page_title":{"type":["string","null"],"description":"Full page title used in the browser tab"},"solutions_url":{"type":"string","format":"uri","description":"URL to related solutions/answers (CATEGORY namespace)"},"contents_json":{"type":"object","description":"Structured JSON representation of wiki contents (CATEGORY namespace)","additionalProperties":true},"category_info":{"type":"object","description":"Category-specific metadata","additionalProperties":true},"category_lists":{"type":"object","description":"Map from list title (for example \"iPhone Repair\") to a list of wiki summary objects (CATEGORY namespace). Returned as a JSON object, `{}` when empty, not as an array.","additionalProperties":true},"related_wikis":{"type":"array","description":"Related wikis","items":{"type":"object","additionalProperties":true}},"featured_guides":{"type":"array","description":"Featured guides for this category","items":{"type":"object","additionalProperties":true}},"diagrams":{"type":"array","description":"Interactive diagrams (CATEGORY namespace)","items":{"type":"object","additionalProperties":true}},"parts":{"type":"object","description":"Parts data (CATEGORY namespace). Returned as an object with `url` (link to all parts for the device) and `categories`, not as an array.","additionalProperties":true},"tools":{"type":"array","description":"Tools list (CATEGORY namespace). Items contain `title`, `target_url`, `image_url`, and `itemcode`.","items":{"type":"object","additionalProperties":true}}}}]},"WikiList":{"type":"array","description":"List of lightweight wiki blurb objects. `revisionid` is not included in list items.","items":{"type":"object","description":"Lightweight wiki object for list views","properties":{"dataType":{"type":"string","const":"wiki"},"wikiid":{"type":"integer","description":"Unique wiki identifier"},"namespace":{"type":"string","description":"Wiki namespace determines the type and purpose of the wiki:\n- CATEGORY: Content hierarchy wikis (devices, topics)\n- ITEM: Parts and tools\n- TEAM: Team about pages\n- USER: User about pages\n- INFO: Site information pages\n- WIKI: General documentation\n","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]},"title":{"type":"string","description":"URL-safe wiki title"},"display_title":{"type":"string","description":"Human-readable display title"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"langid":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"text":{"type":"string"},"author":{"type":"integer","description":"User ID of the wiki author"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}},"CategoryHierarchy":{"type":"object","description":"Nested category hierarchy","additionalProperties":{"oneOf":[{"type":"object","description":"Nested children","additionalProperties":{"type":"object","description":"Nested category hierarchy","additionalProperties":{"oneOf":[{"type":"object","description":"Nested children","additionalProperties":{"$ref":"#/components/schemas/CategoryHierarchy"}},{"type":"string","description":"Leaf node (empty object as string)"}]}}},{"type":"string","description":"Leaf node (empty object as string)"}]}},"CategoryHierarchyWithTitles":{"type":"object","description":"Category hierarchy with display titles","properties":{"title":{"type":"string"},"display_titles":{"type":"array","items":{"type":"object","properties":{"langid":{"type":"string"},"display_title":{"type":"string"}}}},"children":{"type":"array","items":{"type":"object","description":"Category hierarchy with display titles","properties":{"title":{"type":"string"},"display_titles":{"type":"array","items":{"type":"object","properties":{"langid":{"type":"string"},"display_title":{"type":"string"}}}},"children":{"type":"array","items":{"$ref":"#/components/schemas/CategoryHierarchyWithTitles"}}}}}}},"Video":{"type":"object","description":"Video information","properties":{"videoid":{"type":"integer","description":"Unique video identifier"},"objectid":{"type":"integer","description":"Internal object identifier"},"srcid":{"type":["integer","null"],"description":"`videoid` of the source video when this video is a derivative"},"filename":{"type":"string","description":"Original filename"},"duration":{"type":"integer","description":"Duration in milliseconds"},"width":{"type":"integer","description":"Video width in pixels"},"height":{"type":"integer","description":"Video height in pixels"},"image":{"type":["object","null"],"description":"Thumbnail image info (same structure as the /media/images response). `null` when the video has no thumbnail.","properties":{"image":{"type":"object","description":"Image object with size URLs","additionalProperties":true},"srcid":{"type":["integer","null"]},"width":{"type":"integer"},"height":{"type":"integer"},"ratio":{"type":"string","enum":["ONE_ONE","FOUR_THREE","VARIABLE"]},"markup":{"type":["string","null"]},"exif":{"description":"EXIF metadata; an empty array when there is none","oneOf":[{"type":"object","additionalProperties":true},{"type":"array","maxItems":0}]}}},"meta":{"type":["object","null"],"description":"Encoding metadata reported by the transcoder; `null` when no encoding metadata has been recorded for the video.","properties":{"video_codec":{"type":"string"},"audio_codec":{"type":"string"},"frame_rate":{"type":"number"},"width":{"type":"integer"},"height":{"type":"integer"},"duration_in_ms":{"type":"integer"},"file_size_in_bytes":{"type":"integer"},"video_bitrate_in_kbps":{"type":"integer"},"audio_bitrate_in_kbps":{"type":"integer"},"total_bitrate_in_kbps":{"type":"integer"},"audio_sample_rate":{"type":"integer"},"channels":{"type":"string"},"format":{"type":"string"},"state":{"type":"string","enum":["finished","processing","failed"]},"md5_checksum":{"type":["string","null"]},"id":{"type":"integer"}}},"encodings":{"type":"array","description":"Available encoded versions of the video; videos still transcoding return an empty array.","items":{"type":"object","properties":{"column":{"type":"string","description":"Internal encoding identifier (e.g. `MP4_720`)"},"label":{"type":"string","description":"Human-readable quality label (e.g. `480p`)"},"width":{"type":"integer"},"height":{"type":"integer"},"codecs":{"type":"string"},"mime":{"type":"string"},"format":{"type":"string"},"url":{"type":"string","format":"uri","description":"URL to the encoded video file"},"always_generate":{"type":"boolean"}}}}}},"Embed":{"type":"object","description":"Media manager item for an embedded object (YouTube, Vimeo, etc.)","properties":{"embedid":{"type":"integer"},"objectid":{"type":"integer"},"imageid":{"type":["integer","null"],"description":"`imageid` of the embed's thumbnail image; `null` when the embed has no thumbnail"},"type":{"type":"string","const":"GuideEmbedObject"},"mini":{"type":"string","format":"uri","description":"Thumbnail URL; a placeholder image URL when the embed has no thumbnail"},"thumbnail":{"type":"string","format":"uri","description":"Thumbnail URL; a placeholder image URL when the embed has no thumbnail"},"standard":{"type":"string","format":"uri","description":"Thumbnail URL; a placeholder image URL when the embed has no thumbnail"},"medium":{"type":"string","format":"uri","description":"Thumbnail URL; a placeholder image URL when the embed has no thumbnail"},"view_url":{"type":"string","format":"uri","description":"URL of the embedded content"},"width":{"type":"integer"},"height":{"type":"integer"},"html":{"type":"string","description":"HTML embed code"},"filename":{"type":"string","description":"Embed title"},"provider":{"type":"string","description":"oEmbed provider name"},"date":{"description":"Creation timestamp"}}},"Document":{"type":"object","description":"Attached document (PDF, etc.). `thumbnailid` and `imageid` carry the same value and are `null` when the document has no thumbnail; in that case `standard`, `thumbnail`, and `mini` contain placeholder no-image URLs rather than `null`.","properties":{"documentid":{"type":"integer"},"guid":{"type":"string"},"filename":{"type":["string","null"],"description":"Original filename as uploaded"},"title":{"type":"string","description":"Display title; falls back to the filename when no title is set, and to an empty string when both are unset"},"size":{"type":"integer","description":"File size in bytes"},"thumbnailid":{"type":["integer","null"],"description":"`imageid` of the document's thumbnail; `null` when the document has no thumbnail"},"imageid":{"type":["integer","null"],"description":"Duplicate of `thumbnailid`, emitted for media manager compatibility"},"document_type":{"type":"string"},"document_extension":{"type":"string"},"document_group":{"type":"string"},"standard":{"type":"string","format":"uri","description":"Thumbnail image URL at standard size"},"thumbnail":{"type":"string","format":"uri","description":"Thumbnail image URL at thumbnail size"},"mini":{"type":"string","format":"uri","description":"Thumbnail image URL at mini size"},"edit_url":{"type":"string","description":"Site-relative path to the document metadata edit page (/Document/Edit/{guid}), without scheme or host"},"view_url":{"type":"string","description":"Site-relative path to the document viewer page (/Document/{guid}/{filename}.{extension}), without scheme or host"},"download_url":{"type":"string","format":"uri"},"date":{"type":"integer","format":"int64","description":"UNIX timestamp in seconds"},"summary":{"type":["string","null"]},"pages":{"type":"integer"},"type":{"type":"string","const":"Document"}}},"TeamSummary":{"type":"object","description":"Basic team information","properties":{"teamid":{"type":"integer"},"name":{"type":"string"},"imageUrl":{"type":"string","format":"uri","description":"Team avatar URL"}}},"Team":{"type":"object","description":"Team information as returned by team list endpoints","properties":{"teamid":{"type":"integer"},"name":{"type":"string"},"owner":{"type":"integer","description":"`userid` of the team owner (manager)"},"reputation":{"type":"integer","description":"Sum of the reputation of enabled, non-banned team members"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}],"description":"Team avatar image; `null` when the team has no image"},"url":{"type":"string","format":"uri"},"member_count":{"type":"integer","description":"Number of enabled, non-banned team members"},"description":{"type":"string"},"new_member_since":{"type":"integer","format":"int64","description":"UNIX timestamp of the most recent member join"}}},"TeamList":{"type":"array","description":"Array of Team objects.","items":{"type":"object","description":"Team information as returned by team list endpoints","properties":{"teamid":{"type":"integer"},"name":{"type":"string"},"owner":{"type":"integer","description":"`userid` of the team owner (manager)"},"reputation":{"type":"integer","description":"Sum of the reputation of enabled, non-banned team members"},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}],"description":"Team avatar image; `null` when the team has no image"},"url":{"type":"string","format":"uri"},"member_count":{"type":"integer","description":"Number of enabled, non-banned team members"},"description":{"type":"string"},"new_member_since":{"type":"integer","format":"int64","description":"UNIX timestamp of the most recent member join"}}}},"StorySummary":{"type":"object","description":"Repair story summary","properties":{"storyid":{"type":"integer"},"langid":{"type":"string","description":"Language of the story"},"status":{"type":"string","description":"Story visibility status","enum":["open","deleted"]},"view_url":{"type":"string","format":"uri","description":"URL to view this story. Renamed from `url` in API v2.0."},"title_raw":{"type":"string","description":"Story title in raw text"},"title_rendered":{"type":"string","description":"Story title rendered as HTML"},"intro_raw":{"type":"string","description":"Story introduction in raw text"},"intro_rendered":{"type":"string","description":"Story introduction rendered as HTML"},"body_raw":{"type":"string","description":"Story body in raw text"},"body_rendered":{"type":"string","description":"Story body rendered as HTML"},"conclusion_raw":{"type":"string","description":"Story conclusion in raw text"},"conclusion_rendered":{"type":"string","description":"Story conclusion rendered as HTML"},"rating":{"type":["integer","null"],"description":"Story rating score (1-5); `null` when the story has no rating."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"date":{"type":"integer","format":"int64"},"modified_date":{"type":"integer","format":"int64"},"images":{"type":"array","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},"products":{"type":"array","description":"Store products linked to this story, serialized as product blurbs.","items":{"type":"object","properties":{"dataType":{"type":"string","const":"product"},"langid":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"url":{"type":"string","format":"uri"},"price":{"type":"string","description":"Unformatted price string; empty when unavailable."},"productCode":{"type":"integer"},"optionid":{"type":"integer"},"itemCode":{"type":"string"},"optionTitle":{"type":"string"},"image":{"type":"object","description":"Product image URLs. `id` is always `null`.","properties":{"id":{"type":"null"},"mini":{"type":"string","format":"uri"},"thumbnail":{"type":"string","format":"uri"},"standard":{"type":"string","format":"uri"},"original":{"type":"string","format":"uri"}}}}}},"guides":{"type":"array","description":"Guides related to this story; guides that are not public are omitted.","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}},"Story":{"type":"object","description":"Full repair story, identical in shape to StorySummary. `intro`, `body`, and `conclusion` are write-side field names accepted by POST and PATCH and are never present in responses.","allOf":[{"type":"object","description":"Repair story summary","properties":{"storyid":{"type":"integer"},"langid":{"type":"string","description":"Language of the story"},"status":{"type":"string","description":"Story visibility status","enum":["open","deleted"]},"view_url":{"type":"string","format":"uri","description":"URL to view this story. Renamed from `url` in API v2.0."},"title_raw":{"type":"string","description":"Story title in raw text"},"title_rendered":{"type":"string","description":"Story title rendered as HTML"},"intro_raw":{"type":"string","description":"Story introduction in raw text"},"intro_rendered":{"type":"string","description":"Story introduction rendered as HTML"},"body_raw":{"type":"string","description":"Story body in raw text"},"body_rendered":{"type":"string","description":"Story body rendered as HTML"},"conclusion_raw":{"type":"string","description":"Story conclusion in raw text"},"conclusion_rendered":{"type":"string","description":"Story conclusion rendered as HTML"},"rating":{"type":["integer","null"],"description":"Story rating score (1-5); `null` when the story has no rating."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"date":{"type":"integer","format":"int64"},"modified_date":{"type":"integer","format":"int64"},"images":{"type":"array","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},"products":{"type":"array","description":"Store products linked to this story, serialized as product blurbs.","items":{"type":"object","properties":{"dataType":{"type":"string","const":"product"},"langid":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"url":{"type":"string","format":"uri"},"price":{"type":"string","description":"Unformatted price string; empty when unavailable."},"productCode":{"type":"integer"},"optionid":{"type":"integer"},"itemCode":{"type":"string"},"optionTitle":{"type":"string"},"image":{"type":"object","description":"Product image URLs. `id` is always `null`.","properties":{"id":{"type":"null"},"mini":{"type":"string","format":"uri"},"thumbnail":{"type":"string","format":"uri"},"standard":{"type":"string","format":"uri"},"original":{"type":"string","format":"uri"}}}}}},"guides":{"type":"array","description":"Guides related to this story; guides that are not public are omitted.","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}]},"StoryList":{"type":"array","description":"Array of StorySummary objects.","items":{"type":"object","description":"Repair story summary","properties":{"storyid":{"type":"integer"},"langid":{"type":"string","description":"Language of the story"},"status":{"type":"string","description":"Story visibility status","enum":["open","deleted"]},"view_url":{"type":"string","format":"uri","description":"URL to view this story. Renamed from `url` in API v2.0."},"title_raw":{"type":"string","description":"Story title in raw text"},"title_rendered":{"type":"string","description":"Story title rendered as HTML"},"intro_raw":{"type":"string","description":"Story introduction in raw text"},"intro_rendered":{"type":"string","description":"Story introduction rendered as HTML"},"body_raw":{"type":"string","description":"Story body in raw text"},"body_rendered":{"type":"string","description":"Story body rendered as HTML"},"conclusion_raw":{"type":"string","description":"Story conclusion in raw text"},"conclusion_rendered":{"type":"string","description":"Story conclusion rendered as HTML"},"rating":{"type":["integer","null"],"description":"Story rating score (1-5); `null` when the story has no rating."},"author":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]},"date":{"type":"integer","format":"int64"},"modified_date":{"type":"integer","format":"int64"},"images":{"type":"array","items":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}},"products":{"type":"array","description":"Store products linked to this story, serialized as product blurbs.","items":{"type":"object","properties":{"dataType":{"type":"string","const":"product"},"langid":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"url":{"type":"string","format":"uri"},"price":{"type":"string","description":"Unformatted price string; empty when unavailable."},"productCode":{"type":"integer"},"optionid":{"type":"integer"},"itemCode":{"type":"string"},"optionTitle":{"type":"string"},"image":{"type":"object","description":"Product image URLs. `id` is always `null`.","properties":{"id":{"type":"null"},"mini":{"type":"string","format":"uri"},"thumbnail":{"type":"string","format":"uri"},"standard":{"type":"string","format":"uri"},"original":{"type":"string","format":"uri"}}}}}},"guides":{"type":"array","description":"Guides related to this story; guides that are not public are omitted.","items":{"type":"object","description":"Lightweight guide object for list views. Includes `time_required_max` but not `time_required` or `time_required_min`; those two fields appear only in full guide responses.","properties":{"dataType":{"type":"string","const":"guide"},"guideid":{"type":"integer","description":"Unique guide identifier"},"locale":{"type":"string","description":"Guide language"},"revisionid":{"type":"integer"},"modified_date":{"type":"integer","format":"int64"},"prereq_modified_date":{"type":"integer","format":"int64"},"url":{"type":"string","format":"uri"},"type":{"type":"string","description":"Type of guide","enum":["replacement","installation","repair","disassembly","teardown","technique","maintenance","how-to"]},"category":{"type":"string","description":"Category the guide belongs to"},"subject":{"type":"string","description":"Subject/component being worked on"},"title":{"type":"string","description":"Full guide title"},"summary":{"type":"string"},"difficulty":{"oneOf":[{"type":"string","description":"Estimated difficulty level. Write operations accept only the English values listed here; responses return a localized label.","enum":["Very easy","Easy","Moderate","Difficult","Very difficult"]},{"type":"null"}],"description":"Localized difficulty label; `null` when the guide has no difficulty set."},"time_required_max":{"type":"integer","description":"Maximum time in seconds"},"public":{"type":"boolean"},"userid":{"type":"integer"},"username":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]}}}}}}},"SuggestResult":{"type":"object","description":"A single suggestion result. The object shape varies by the `dataType` discriminator (`guide`, `wiki`, question, product, or page); only the fields for the matching `dataType` are present on a given result.","properties":{"dataType":{"type":"string","description":"Type discriminator for the result (e.g. `wiki`, `guide`)"},"wikiid":{"type":"integer","description":"Present when `dataType` is `wiki`"},"guideid":{"type":"integer","description":"Present when `dataType` is `guide`"},"namespace":{"type":"string","description":"Wiki namespace; present when `dataType` is `wiki`"},"langid":{"type":"string","description":"Language of this result"},"title":{"type":"string","description":"URL-safe title"},"display_title":{"type":"string","description":"Human-readable title"},"summary":{"type":"string","description":"Short summary of this result"},"text":{"type":"string","description":"Description text"},"url":{"type":"string","format":"uri","description":"URL to this result"},"modified_date":{"type":"integer","format":"int64"},"author":{"type":"integer","description":"`userid` of the author"},"image":{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]}}},"UserTeamSuggestResults":{"type":"object","description":"Combined user and team suggestion results","properties":{"users":{"type":"array","items":{"type":"object","description":"Minimal user information embedded in other resources","properties":{"userid":{"type":"integer","description":"Unique user identifier","example":261784},"username":{"type":"string","description":"Display name","example":"John Doe"},"unique_username":{"type":["string","null"],"description":"Unique @-mentionable username","example":"johndoe"},"join_date":{"type":"integer","format":"int64","description":"Account creation date as a UNIX timestamp","example":1285253372},"image":{"oneOf":[{"type":"object","description":"Image object with URLs for pre-generated sizes, served from the iFixit CDN. Ungenerated sizes are omitted from the object; `id`, `guid`, and `original` are always present.","properties":{"id":{"type":"integer","example":73556},"guid":{"type":"string","description":"Globally unique identifier string for the image","example":"FucWIkw2ZEBiIJHk"},"mini":{"type":"string","format":"uri","description":"Very small thumbnail (56px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini"},"thumbnail":{"type":"string","format":"uri","description":"Small thumbnail (96px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail"},"140x105":{"type":"string","format":"uri","description":"140x105 pixel size"},"200x150":{"type":"string","format":"uri","description":"200x150 pixel size"},"standard":{"type":"string","format":"uri","description":"Standard web display size (300px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"},"440x330":{"type":"string","format":"uri","description":"440x330 pixel size"},"medium":{"type":"string","format":"uri","description":"Medium size (592px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.medium"},"large":{"type":"string","format":"uri","description":"Large size (800px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.large"},"huge":{"type":"string","format":"uri","description":"Very large size (1600px)","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.huge"},"original":{"type":"string","format":"uri","description":"Original full-resolution image","example":"https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.full"}},"required":["id"]},{"type":"null"}]},"reputation":{"type":"integer","description":"User's reputation score","example":139},"url":{"type":"string","format":"uri","description":"URL to user's profile page","example":"https://www.ifixit.com/User/261784/John+Doe"},"teams":{"type":"array","description":"`teamid` values of the teams the user belongs to","items":{"type":"integer"},"example":[276]},"privileges":{"type":"array","description":"List of user privileges","items":{"type":"string"},"example":["User"]}},"required":["userid","username"]}},"teams":{"type":"array","items":{"type":"object","description":"Basic team information","properties":{"teamid":{"type":"integer"},"name":{"type":"string"},"imageUrl":{"type":"string","format":"uri","description":"Team avatar URL"}}}}}},"Tag":{"type":"object","description":"A tag that can be applied to guides and wikis","properties":{"tagid":{"type":"integer"},"tag":{"type":"string","description":"Tag name"},"count":{"type":"integer","description":"Number of items with this tag"}}},"TagList":{"type":"array","description":"List of tag names","items":{"type":"string"}},"BadgeList":{"type":"array","description":"Array of UserBadge objects, each pairing a badge definition with the user's earned status.","items":{"type":"object","description":"A badge with the user's earned status","properties":{"earned":{"type":"boolean","description":"Whether the user has earned this badge"},"times_earned":{"type":"integer","description":"Number of times the user has earned this badge"},"date":{"type":["integer","null"],"format":"int64","description":"UNIX timestamp of the most recent time the badge was earned; `null` when the badge has not been earned."},"badge":{"type":"object","description":"Badge definition","properties":{"badgeid":{"type":"integer"},"name":{"type":"string"},"type":{"type":"string","enum":["bronze","silver","gold"]},"category":{"type":"string"},"description":{"type":"string"},"multiple":{"type":"boolean"},"num_users":{"type":"integer","description":"Total number of times this badge has been awarded across all users; for repeatable badges this can exceed the number of distinct users."},"icon":{"type":["string","null"],"description":"Font Awesome icon class for this badge"},"image":{"type":"string","description":"Badge image URL; an empty string when the badge has no image."},"secondary_color":{"type":"string","description":"Secondary color name for badge display (e.g. `camelot`, `steel-blue`)"}}}}}},"WorkbenchItem":{"type":"object","description":"A device instance on a user's (or anonymous session's) workbench, backed either by a device wiki (`wikiid` set) or a custom name (`custom_name` set). Custom items set `title` and `display_title` to `custom_name` and the wiki-derived fields to `null`.","properties":{"workbench_itemid":{"type":"integer"},"wikiid":{"type":["integer","null"]},"variantid":{"type":["integer","null"]},"custom_name":{"type":["string","null"]},"nickname":{"type":["string","null"]},"purchase_date":{"type":["integer","null"],"description":"Purchase date for this item instance"},"purchase_price":{"type":["number","null"],"description":"Purchase price for this item instance"},"warranty_expires_date":{"type":["integer","null"],"description":"Warranty expiration date for this item instance"},"notes":{"type":["string","null"],"maxLength":10000,"description":"User notes for this item (wikitext)"},"active":{"type":"integer","enum":[0,1]},"date_added":{"type":"integer","description":"UNIX timestamp when the item was added to the workbench"},"title":{"type":"string","description":"Display title (wiki title or `custom_name`)"},"display_title":{"type":"string","description":"Formatted display title"},"variant":{"type":["string","null"]},"image":{"type":["string","null"],"description":"URL of the device image"},"topic_url":{"type":["string","null"]},"answers_url":{"type":["string","null"]},"parts_url":{"type":["string","null"]}}},"WorkbenchItemDetail":{"description":"A WorkbenchItem extended with `recent_events`: the item's stored (materialized) events ordered by `date_event` descending. Synthetic events for upcoming scheduled maintenance are not included.","allOf":[{"type":"object","description":"A device instance on a user's (or anonymous session's) workbench, backed either by a device wiki (`wikiid` set) or a custom name (`custom_name` set). Custom items set `title` and `display_title` to `custom_name` and the wiki-derived fields to `null`.","properties":{"workbench_itemid":{"type":"integer"},"wikiid":{"type":["integer","null"]},"variantid":{"type":["integer","null"]},"custom_name":{"type":["string","null"]},"nickname":{"type":["string","null"]},"purchase_date":{"type":["integer","null"],"description":"Purchase date for this item instance"},"purchase_price":{"type":["number","null"],"description":"Purchase price for this item instance"},"warranty_expires_date":{"type":["integer","null"],"description":"Warranty expiration date for this item instance"},"notes":{"type":["string","null"],"maxLength":10000,"description":"User notes for this item (wikitext)"},"active":{"type":"integer","enum":[0,1]},"date_added":{"type":"integer","description":"UNIX timestamp when the item was added to the workbench"},"title":{"type":"string","description":"Display title (wiki title or `custom_name`)"},"display_title":{"type":"string","description":"Formatted display title"},"variant":{"type":["string","null"]},"image":{"type":["string","null"],"description":"URL of the device image"},"topic_url":{"type":["string","null"]},"answers_url":{"type":["string","null"]},"parts_url":{"type":["string","null"]}}},{"type":"object","properties":{"recent_events":{"type":"array","items":{"type":"object","description":"A maintenance or service event. Materialized events have a\n`workbench_eventid` and are stored in the database; synthetic events\nhave `workbench_eventid: null` and are computed on the fly from\nactive maintenance schedules to represent the next upcoming\noccurrence of a scheduled task. Synthetic events come from item-level\nschedules (`workbench_item_maintenance_scheduleid`) or schedules\ninherited from the item's device wiki\n(`wiki_maintenance_scheduleid`); inherited schedules remain virtual\nuntil the user completes, skips, or updates them, at which point an\nitem-level copy is created.\n","properties":{"workbench_eventid":{"type":["integer","null"],"description":"`null` for synthetic (computed) events; present for materialized (user-created) events.\n"},"workbench_itemid":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string","enum":["task","reading"],"description":"What the event records: maintenance or service work ('task'), or a standalone observed measurement of the item ('reading' — an odometer value, a cycle count). Readings carry a `usage` value, are created completed, and never link to a schedule. Set at creation and immutable afterward. Synthetic events are always 'task'.\n"},"date_event":{"type":["integer","null"],"description":"UNIX timestamp of when the event occurred, is scheduled, or is next due. `null` for usage-only synthetic events.\n"},"notes":{"type":["string","null"]},"usage":{"type":["integer","null"],"description":"Absolute usage reading at time of event (e.g. odometer at 75000, battery at 312 cycles). Not a delta.\n"},"usage_unit":{"type":["string","null"],"description":"Unit for usage reading (e.g. miles, km, hours, cycles, pages)"},"cost":{"type":["number","null"],"format":"decimal","description":"Cost of the maintenance event. `null` when not recorded and on synthetic events."},"date_completed":{"type":["integer","null"],"description":"UNIX timestamp of when the event was completed"},"date_skipped":{"type":["integer","null"],"description":"UNIX timestamp of when the event was skipped. Mutually exclusive with `date_completed`.\n"},"created_by_userid":{"type":["integer","null"]},"date_created":{"type":["integer","null"],"description":"UNIX timestamp when the event was created. `null` for synthetic events.\n"},"workbench_item_maintenance_scheduleid":{"type":["integer","null"]},"wiki_maintenance_scheduleid":{"type":["integer","null"],"description":"Present on synthetic events from inherited wiki schedules that have not yet been materialized to the item; the wiki-schedule event operations address the event by this id. `null` once the schedule has been materialized, at which point `workbench_item_maintenance_scheduleid` is set instead.\n"},"triggers":{"type":["array","null"],"items":{"type":"object","description":"Defines when a maintenance task is due. Multiple triggers per schedule\nimplement \"whichever comes first\" logic.\n","required":["trigger_type","metric","unit"],"properties":{"trigger_type":{"type":"string","enum":["usage","time","condition"],"description":"Type of trigger:\n- `usage`: based on device usage (miles, hours, cycles, pages)\n- `time`: based on elapsed calendar time\n- `condition`: based on a metric crossing a threshold\n"},"metric":{"type":"string","description":"What is being measured. Validated against a fixed allowlist per\ntrigger type:\n- `usage` triggers: must be `usage`\n- `time` triggers: must be `elapsed_time`\n- `condition` triggers: one of `battery_cycle_count`,\n  `battery_health_percent`, `belt_wear`, `brake_pad_thickness_mm`,\n  `controller_runtime_hours`, `coolant_ph`, `filter_life_percent`,\n  `filter_pressure_drop`, `oil_life`, `oil_life_percent`,\n  `temperature_celsius`, `tire_tread_depth_mm`, `visible_wear`,\n  `water_hardness`\n"},"unit":{"type":"string","description":"Unit of measurement, validated against a fixed allowlist per trigger type: `usage` accepts `miles`, `kilometers`, `hours`, `pages`, `cycles`; `time` accepts `days`, `weeks`, `months`, `years`; `condition` accepts `%`, `percent`, `score`, `hours`, `miles`, `kilometers`, `mm`, `psi`, `volts`, `celsius`, `fahrenheit`, `ph`, `count`. `km` is rejected — the accepted spelling is `kilometers`."},"first_due_at":{"type":["integer","null"],"description":"**Time triggers only.** Absolute UNIX timestamp of the first occurrence, for \"first on date X, then repeat every N units.\" Ignored once the first occurrence has been completed or skipped; always `null` for usage and condition triggers. Treated as a UTC calendar date — send UTC midnight of the intended day.\n"},"first_interval":{"type":["number","null"],"description":"**Usage triggers only.** Usage threshold for the first occurrence, for \"first at N units, then repeat every M units,\" expressed in the trigger's `unit`. Always `null` for time and condition triggers.\n"},"repeat_interval":{"type":["number","null"],"description":"Interval for subsequent occurrences. Required for usage/time triggers unless a first-occurrence anchor is given (`first_due_at` for time, `first_interval` for usage), and must be greater than zero. Must be a whole number for `months`/`years` units; use a finer unit for sub-month cadence.\n"},"comparator":{"type":["string","null"],"description":"Comparison operator for condition triggers (`<=`, `>=`, `==`)"},"threshold":{"type":["number","null"],"description":"Value to compare against for condition triggers","example":15}}},"description":"Current triggers of the event's schedule, reflecting live schedule state rather than a snapshot at event creation. `null` means the event has no schedule (one-off/manual event); `[]` means the schedule has no active triggers.\n"}}}}}}]},"WorkbenchItemList":{"type":"object","description":"Wrapper holding an `items` array of WorkbenchItem objects.","properties":{"items":{"type":"array","items":{"type":"object","description":"A device instance on a user's (or anonymous session's) workbench, backed either by a device wiki (`wikiid` set) or a custom name (`custom_name` set). Custom items set `title` and `display_title` to `custom_name` and the wiki-derived fields to `null`.","properties":{"workbench_itemid":{"type":"integer"},"wikiid":{"type":["integer","null"]},"variantid":{"type":["integer","null"]},"custom_name":{"type":["string","null"]},"nickname":{"type":["string","null"]},"purchase_date":{"type":["integer","null"],"description":"Purchase date for this item instance"},"purchase_price":{"type":["number","null"],"description":"Purchase price for this item instance"},"warranty_expires_date":{"type":["integer","null"],"description":"Warranty expiration date for this item instance"},"notes":{"type":["string","null"],"maxLength":10000,"description":"User notes for this item (wikitext)"},"active":{"type":"integer","enum":[0,1]},"date_added":{"type":"integer","description":"UNIX timestamp when the item was added to the workbench"},"title":{"type":"string","description":"Display title (wiki title or `custom_name`)"},"display_title":{"type":"string","description":"Formatted display title"},"variant":{"type":["string","null"]},"image":{"type":["string","null"],"description":"URL of the device image"},"topic_url":{"type":["string","null"]},"answers_url":{"type":["string","null"]},"parts_url":{"type":["string","null"]}}}}}},"WorkbenchEvent":{"type":"object","description":"A maintenance or service event. Materialized events have a\n`workbench_eventid` and are stored in the database; synthetic events\nhave `workbench_eventid: null` and are computed on the fly from\nactive maintenance schedules to represent the next upcoming\noccurrence of a scheduled task. Synthetic events come from item-level\nschedules (`workbench_item_maintenance_scheduleid`) or schedules\ninherited from the item's device wiki\n(`wiki_maintenance_scheduleid`); inherited schedules remain virtual\nuntil the user completes, skips, or updates them, at which point an\nitem-level copy is created.\n","properties":{"workbench_eventid":{"type":["integer","null"],"description":"`null` for synthetic (computed) events; present for materialized (user-created) events.\n"},"workbench_itemid":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string","enum":["task","reading"],"description":"What the event records: maintenance or service work ('task'), or a standalone observed measurement of the item ('reading' — an odometer value, a cycle count). Readings carry a `usage` value, are created completed, and never link to a schedule. Set at creation and immutable afterward. Synthetic events are always 'task'.\n"},"date_event":{"type":["integer","null"],"description":"UNIX timestamp of when the event occurred, is scheduled, or is next due. `null` for usage-only synthetic events.\n"},"notes":{"type":["string","null"]},"usage":{"type":["integer","null"],"description":"Absolute usage reading at time of event (e.g. odometer at 75000, battery at 312 cycles). Not a delta.\n"},"usage_unit":{"type":["string","null"],"description":"Unit for usage reading (e.g. miles, km, hours, cycles, pages)"},"cost":{"type":["number","null"],"format":"decimal","description":"Cost of the maintenance event. `null` when not recorded and on synthetic events."},"date_completed":{"type":["integer","null"],"description":"UNIX timestamp of when the event was completed"},"date_skipped":{"type":["integer","null"],"description":"UNIX timestamp of when the event was skipped. Mutually exclusive with `date_completed`.\n"},"created_by_userid":{"type":["integer","null"]},"date_created":{"type":["integer","null"],"description":"UNIX timestamp when the event was created. `null` for synthetic events.\n"},"workbench_item_maintenance_scheduleid":{"type":["integer","null"]},"wiki_maintenance_scheduleid":{"type":["integer","null"],"description":"Present on synthetic events from inherited wiki schedules that have not yet been materialized to the item; the wiki-schedule event operations address the event by this id. `null` once the schedule has been materialized, at which point `workbench_item_maintenance_scheduleid` is set instead.\n"},"triggers":{"type":["array","null"],"items":{"type":"object","description":"Defines when a maintenance task is due. Multiple triggers per schedule\nimplement \"whichever comes first\" logic.\n","required":["trigger_type","metric","unit"],"properties":{"trigger_type":{"type":"string","enum":["usage","time","condition"],"description":"Type of trigger:\n- `usage`: based on device usage (miles, hours, cycles, pages)\n- `time`: based on elapsed calendar time\n- `condition`: based on a metric crossing a threshold\n"},"metric":{"type":"string","description":"What is being measured. Validated against a fixed allowlist per\ntrigger type:\n- `usage` triggers: must be `usage`\n- `time` triggers: must be `elapsed_time`\n- `condition` triggers: one of `battery_cycle_count`,\n  `battery_health_percent`, `belt_wear`, `brake_pad_thickness_mm`,\n  `controller_runtime_hours`, `coolant_ph`, `filter_life_percent`,\n  `filter_pressure_drop`, `oil_life`, `oil_life_percent`,\n  `temperature_celsius`, `tire_tread_depth_mm`, `visible_wear`,\n  `water_hardness`\n"},"unit":{"type":"string","description":"Unit of measurement, validated against a fixed allowlist per trigger type: `usage` accepts `miles`, `kilometers`, `hours`, `pages`, `cycles`; `time` accepts `days`, `weeks`, `months`, `years`; `condition` accepts `%`, `percent`, `score`, `hours`, `miles`, `kilometers`, `mm`, `psi`, `volts`, `celsius`, `fahrenheit`, `ph`, `count`. `km` is rejected — the accepted spelling is `kilometers`."},"first_due_at":{"type":["integer","null"],"description":"**Time triggers only.** Absolute UNIX timestamp of the first occurrence, for \"first on date X, then repeat every N units.\" Ignored once the first occurrence has been completed or skipped; always `null` for usage and condition triggers. Treated as a UTC calendar date — send UTC midnight of the intended day.\n"},"first_interval":{"type":["number","null"],"description":"**Usage triggers only.** Usage threshold for the first occurrence, for \"first at N units, then repeat every M units,\" expressed in the trigger's `unit`. Always `null` for time and condition triggers.\n"},"repeat_interval":{"type":["number","null"],"description":"Interval for subsequent occurrences. Required for usage/time triggers unless a first-occurrence anchor is given (`first_due_at` for time, `first_interval` for usage), and must be greater than zero. Must be a whole number for `months`/`years` units; use a finer unit for sub-month cadence.\n"},"comparator":{"type":["string","null"],"description":"Comparison operator for condition triggers (`<=`, `>=`, `==`)"},"threshold":{"type":["number","null"],"description":"Value to compare against for condition triggers","example":15}}},"description":"Current triggers of the event's schedule, reflecting live schedule state rather than a snapshot at event creation. `null` means the event has no schedule (one-off/manual event); `[]` means the schedule has no active triggers.\n"}}},"WorkbenchEventList":{"type":"object","description":"Wrapper holding an `events` array of WorkbenchEvent objects, which may mix materialized and synthetic events.","properties":{"events":{"type":"array","items":{"type":"object","description":"A maintenance or service event. Materialized events have a\n`workbench_eventid` and are stored in the database; synthetic events\nhave `workbench_eventid: null` and are computed on the fly from\nactive maintenance schedules to represent the next upcoming\noccurrence of a scheduled task. Synthetic events come from item-level\nschedules (`workbench_item_maintenance_scheduleid`) or schedules\ninherited from the item's device wiki\n(`wiki_maintenance_scheduleid`); inherited schedules remain virtual\nuntil the user completes, skips, or updates them, at which point an\nitem-level copy is created.\n","properties":{"workbench_eventid":{"type":["integer","null"],"description":"`null` for synthetic (computed) events; present for materialized (user-created) events.\n"},"workbench_itemid":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string","enum":["task","reading"],"description":"What the event records: maintenance or service work ('task'), or a standalone observed measurement of the item ('reading' — an odometer value, a cycle count). Readings carry a `usage` value, are created completed, and never link to a schedule. Set at creation and immutable afterward. Synthetic events are always 'task'.\n"},"date_event":{"type":["integer","null"],"description":"UNIX timestamp of when the event occurred, is scheduled, or is next due. `null` for usage-only synthetic events.\n"},"notes":{"type":["string","null"]},"usage":{"type":["integer","null"],"description":"Absolute usage reading at time of event (e.g. odometer at 75000, battery at 312 cycles). Not a delta.\n"},"usage_unit":{"type":["string","null"],"description":"Unit for usage reading (e.g. miles, km, hours, cycles, pages)"},"cost":{"type":["number","null"],"format":"decimal","description":"Cost of the maintenance event. `null` when not recorded and on synthetic events."},"date_completed":{"type":["integer","null"],"description":"UNIX timestamp of when the event was completed"},"date_skipped":{"type":["integer","null"],"description":"UNIX timestamp of when the event was skipped. Mutually exclusive with `date_completed`.\n"},"created_by_userid":{"type":["integer","null"]},"date_created":{"type":["integer","null"],"description":"UNIX timestamp when the event was created. `null` for synthetic events.\n"},"workbench_item_maintenance_scheduleid":{"type":["integer","null"]},"wiki_maintenance_scheduleid":{"type":["integer","null"],"description":"Present on synthetic events from inherited wiki schedules that have not yet been materialized to the item; the wiki-schedule event operations address the event by this id. `null` once the schedule has been materialized, at which point `workbench_item_maintenance_scheduleid` is set instead.\n"},"triggers":{"type":["array","null"],"items":{"type":"object","description":"Defines when a maintenance task is due. Multiple triggers per schedule\nimplement \"whichever comes first\" logic.\n","required":["trigger_type","metric","unit"],"properties":{"trigger_type":{"type":"string","enum":["usage","time","condition"],"description":"Type of trigger:\n- `usage`: based on device usage (miles, hours, cycles, pages)\n- `time`: based on elapsed calendar time\n- `condition`: based on a metric crossing a threshold\n"},"metric":{"type":"string","description":"What is being measured. Validated against a fixed allowlist per\ntrigger type:\n- `usage` triggers: must be `usage`\n- `time` triggers: must be `elapsed_time`\n- `condition` triggers: one of `battery_cycle_count`,\n  `battery_health_percent`, `belt_wear`, `brake_pad_thickness_mm`,\n  `controller_runtime_hours`, `coolant_ph`, `filter_life_percent`,\n  `filter_pressure_drop`, `oil_life`, `oil_life_percent`,\n  `temperature_celsius`, `tire_tread_depth_mm`, `visible_wear`,\n  `water_hardness`\n"},"unit":{"type":"string","description":"Unit of measurement, validated against a fixed allowlist per trigger type: `usage` accepts `miles`, `kilometers`, `hours`, `pages`, `cycles`; `time` accepts `days`, `weeks`, `months`, `years`; `condition` accepts `%`, `percent`, `score`, `hours`, `miles`, `kilometers`, `mm`, `psi`, `volts`, `celsius`, `fahrenheit`, `ph`, `count`. `km` is rejected — the accepted spelling is `kilometers`."},"first_due_at":{"type":["integer","null"],"description":"**Time triggers only.** Absolute UNIX timestamp of the first occurrence, for \"first on date X, then repeat every N units.\" Ignored once the first occurrence has been completed or skipped; always `null` for usage and condition triggers. Treated as a UTC calendar date — send UTC midnight of the intended day.\n"},"first_interval":{"type":["number","null"],"description":"**Usage triggers only.** Usage threshold for the first occurrence, for \"first at N units, then repeat every M units,\" expressed in the trigger's `unit`. Always `null` for time and condition triggers.\n"},"repeat_interval":{"type":["number","null"],"description":"Interval for subsequent occurrences. Required for usage/time triggers unless a first-occurrence anchor is given (`first_due_at` for time, `first_interval` for usage), and must be greater than zero. Must be a whole number for `months`/`years` units; use a finer unit for sub-month cadence.\n"},"comparator":{"type":["string","null"],"description":"Comparison operator for condition triggers (`<=`, `>=`, `==`)"},"threshold":{"type":["number","null"],"description":"Value to compare against for condition triggers","example":15}}},"description":"Current triggers of the event's schedule, reflecting live schedule state rather than a snapshot at event creation. `null` means the event has no schedule (one-off/manual event); `[]` means the schedule has no active triggers.\n"}}}}}},"ProposedItem":{"type":"object","description":"A device the workbench image scan detected in a user photo, awaiting review. Rows start `pending` and resolve to `added` (committed to the workbench) or `discarded`. `matched_*` fields describe a speculative catalog match and are absent when the scan matched nothing.","properties":{"workbench_proposed_itemid":{"type":"integer"},"detected_name":{"type":"string","description":"The device name the scan detected."},"detected_type":{"type":["string","null"]},"confidence":{"type":["integer","null"],"description":"Match confidence 0–100."},"match_type":{"type":"string","enum":["exact","ancestor","none"]},"matched_wikiid":{"type":["integer","null"]},"matched_variantid":{"type":["integer","null"]},"matched_title":{"type":["string","null"],"description":"Title of the matched device wiki, localized to the request language."},"matched_image":{"type":["string","null"],"description":"Standard image of the matched device wiki."},"box":{"type":["array","null"],"minItems":4,"maxItems":4,"items":{"type":"number","minimum":0,"maximum":1000},"description":"Detection bounding box `[ymin, xmin, ymax, xmax]` (0–1000)."},"other_options":{"type":["array","null"],"items":{"type":"object","properties":{"wikiid":{"type":"integer"},"title":{"type":["string","null"]}}}},"imageid":{"type":["integer","null"]},"source_image":{"type":["string","null"],"description":"Medium-sized URL of the scan frame used for cropped thumbnails."},"status":{"type":"string","enum":["pending","added","discarded"]},"date_created":{"type":"integer","description":"UNIX timestamp when the proposal was recorded."}}},"ProposedItemList":{"type":"object","description":"Wrapper holding a `proposals` array of ProposedItem objects.","properties":{"proposals":{"type":"array","items":{"type":"object","description":"A device the workbench image scan detected in a user photo, awaiting review. Rows start `pending` and resolve to `added` (committed to the workbench) or `discarded`. `matched_*` fields describe a speculative catalog match and are absent when the scan matched nothing.","properties":{"workbench_proposed_itemid":{"type":"integer"},"detected_name":{"type":"string","description":"The device name the scan detected."},"detected_type":{"type":["string","null"]},"confidence":{"type":["integer","null"],"description":"Match confidence 0–100."},"match_type":{"type":"string","enum":["exact","ancestor","none"]},"matched_wikiid":{"type":["integer","null"]},"matched_variantid":{"type":["integer","null"]},"matched_title":{"type":["string","null"],"description":"Title of the matched device wiki, localized to the request language."},"matched_image":{"type":["string","null"],"description":"Standard image of the matched device wiki."},"box":{"type":["array","null"],"minItems":4,"maxItems":4,"items":{"type":"number","minimum":0,"maximum":1000},"description":"Detection bounding box `[ymin, xmin, ymax, xmax]` (0–1000)."},"other_options":{"type":["array","null"],"items":{"type":"object","properties":{"wikiid":{"type":"integer"},"title":{"type":["string","null"]}}}},"imageid":{"type":["integer","null"]},"source_image":{"type":["string","null"],"description":"Medium-sized URL of the scan frame used for cropped thumbnails."},"status":{"type":"string","enum":["pending","added","discarded"]},"date_created":{"type":"integer","description":"UNIX timestamp when the proposal was recorded."}}}}}},"TroubleshootingGuide":{"type":"object","description":"A repair guide referenced from within a troubleshooting section.","required":["guideid","url","title","image","time_required","difficulty","introduction_rendered"],"properties":{"guideid":{"type":"integer"},"url":{"type":"string","description":"Absolute URL to the guide."},"title":{"type":"string"},"image":{"type":"object","properties":{"thumbnail":{"type":"string","description":"Thumbnail image URL for the guide."}}},"time_required":{"type":"string","description":"Human-readable estimate of the time the guide takes."},"difficulty":{"type":"string","description":"Human-readable difficulty rating (e.g. \"Moderate\")."},"introduction_rendered":{"type":"string","description":"The guide's introduction rendered as HTML."}}},"TroubleshootingProduct":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}},"TroubleshootingPartCollection":{"type":"object","description":"A link to a collection of replacement parts for a device. When a `selectedDevice` is supplied, collections are narrowed to that device (and variant) where possible.","required":["url","title","description","imageUrl","showChooseModel","isEmpty","device"],"properties":{"url":{"type":"string","description":"Absolute URL to the parts collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":["string","null"]},"showChooseModel":{"type":"boolean","description":"Whether the UI should prompt the viewer to choose a specific model before the collection resolves to concrete parts."},"isEmpty":{"type":"boolean","description":"Whether the narrowed collection contains no purchasable parts."},"device":{"type":"string","description":"Display title of the device the collection is for."}}},"TroubleshootingGuideCollection":{"type":"object","description":"A link to a filtered collection of guides for a device.","required":["url","title","description","imageUrl","showChooseModel","isEmpty"],"properties":{"url":{"type":"string","description":"Absolute URL to the guide collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"showChooseModel":{"type":"boolean"},"isEmpty":{"type":"boolean"}}},"TroubleshootingSection":{"type":"object","description":"One section of a troubleshooting page. In the `solutions` bucket each section is a single cause/fix (the `== Heading ==` blocks of the source wiki). Sections in `introduction` and `conclusion` share this shape.","required":["heading","id","body","guides","products","partCollections","guideCollections"],"properties":{"heading":{"type":["string","null"],"description":"Section heading text; `null` for an untitled leading block."},"id":{"type":["string","null"],"description":"Anchor id for linking to the section (e.g. \"Section_Heavy_Use\")."},"body":{"type":"string","description":"The section's rendered HTML, with featured products removed."},"guides":{"type":"array","items":{"type":"object","description":"A repair guide referenced from within a troubleshooting section.","required":["guideid","url","title","image","time_required","difficulty","introduction_rendered"],"properties":{"guideid":{"type":"integer"},"url":{"type":"string","description":"Absolute URL to the guide."},"title":{"type":"string"},"image":{"type":"object","properties":{"thumbnail":{"type":"string","description":"Thumbnail image URL for the guide."}}},"time_required":{"type":"string","description":"Human-readable estimate of the time the guide takes."},"difficulty":{"type":"string","description":"Human-readable difficulty rating (e.g. \"Moderate\")."},"introduction_rendered":{"type":"string","description":"The guide's introduction rendered as HTML."}}}},"products":{"type":"array","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}},"partCollections":{"type":"array","items":{"type":"object","description":"A link to a collection of replacement parts for a device. When a `selectedDevice` is supplied, collections are narrowed to that device (and variant) where possible.","required":["url","title","description","imageUrl","showChooseModel","isEmpty","device"],"properties":{"url":{"type":"string","description":"Absolute URL to the parts collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":["string","null"]},"showChooseModel":{"type":"boolean","description":"Whether the UI should prompt the viewer to choose a specific model before the collection resolves to concrete parts."},"isEmpty":{"type":"boolean","description":"Whether the narrowed collection contains no purchasable parts."},"device":{"type":"string","description":"Display title of the device the collection is for."}}}},"guideCollections":{"type":"array","items":{"type":"object","description":"A link to a filtered collection of guides for a device.","required":["url","title","description","imageUrl","showChooseModel","isEmpty"],"properties":{"url":{"type":"string","description":"Absolute URL to the guide collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"showChooseModel":{"type":"boolean"},"isEmpty":{"type":"boolean"}}}}}},"TroubleshootingLinkedProblem":{"type":"object","description":"A link to another troubleshooting problem page.","required":["url","title","deviceTitle","imageUrl"],"properties":{"url":{"type":"string"},"title":{"type":"string"},"deviceTitle":{"type":"string","description":"Display title of the problem's device."},"imageUrl":{"type":"string"}}},"TroubleshootingAuthor":{"type":"object","description":"A contributing author. The list holds at most the top ten contributors by ownership share, reordered with the page creator first when they are among them.","required":["userid","percent","username","avatar","profileUrl"],"properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number","description":"Percentage of the page's content attributed to this author (may be fractional, e.g. 8.33)."},"username":{"type":"string"},"avatar":{"type":["string","null"]},"profileUrl":{"type":"string"}}},"TroubleshootingCategory":{"type":"object","description":"The parent device category the problem belongs to.","required":["displayTitle","deviceTitle","imageUrl","viewUrl","description"],"properties":{"displayTitle":{"type":"string"},"deviceTitle":{"type":"string","description":"URL-safe device title."},"imageUrl":{"type":"string"},"viewUrl":{"type":"string"},"description":{"type":"string"}}},"TroubleshootingSelectedDevice":{"type":["object","null"],"description":"The device the response was narrowed to, echoed back from the `selectedDevice` parameter. `null` when no valid device was selected.","required":["deviceTitle","displayTitle","imageUrl","variant"],"properties":{"deviceTitle":{"type":"string"},"displayTitle":{"type":"string"},"imageUrl":{"type":"string"},"variant":{"type":["string","null"]}}},"TroubleshootingViewStats":{"type":"object","description":"View counts for the page over several time windows.","required":["today","week","month","all"],"properties":{"today":{"type":"integer"},"week":{"type":"integer"},"month":{"type":"integer"},"all":{"type":"integer"}}},"TroubleshootingFlag":{"type":"object","description":"A banner flag on the page (e.g. a maintenance or warning notice). Either `icon` (a Font Awesome name) or `image` (a URL) is present, not both.","required":["flagid","title","text"],"properties":{"flagid":{"type":"string","description":"Stable identifier of the flag type (e.g. \"WIKI_STUB\")."},"title":{"type":"string"},"text":{"type":"string"},"icon":{"type":"string"},"image":{"type":"string"}}},"TroubleshootingBreadcrumb":{"type":"object","required":["title","url"],"properties":{"title":{"type":"string"},"url":{"type":"string","description":"Link URL (absolute in most contexts, site-relative for some ancestor links), or an empty string for the current page."}}},"TroubleshootingPage":{"type":"object","description":"A fully parsed troubleshooting page, with the source wiki's rigid document structure split into `introduction`, `solutions`, and `conclusion`.","required":["pageTitle","title","id","breadcrumbs","answersUrl","editUrl","historyUrl","canonicalUrl","authors","lastUpdatedDate","flags","hreflangUrls","metaDescription","metaKeywords","linkedProblems","relatedProblems","mainImageUrl","mainImageUrlLarge","viewStats","category","userSelectedDevice","hideDeviceSelection","algoliaConfig","deviceGuideUrl","deviceTroubleshootingUrl","toc","introduction","solutions","conclusion","featuredProducts"],"properties":{"pageTitle":{"type":"string","description":"SEO page title."},"title":{"type":"string","description":"Human-readable problem title."},"id":{"type":"integer","description":"The underlying wiki id."},"breadcrumbs":{"type":"array","items":{"type":"object","required":["title","url"],"properties":{"title":{"type":"string"},"url":{"type":"string","description":"Link URL (absolute in most contexts, site-relative for some ancestor links), or an empty string for the current page."}}}},"answersUrl":{"type":"string"},"editUrl":{"type":"string"},"historyUrl":{"type":"string"},"canonicalUrl":{"type":"string"},"authors":{"type":"array","items":{"type":"object","description":"A contributing author. The list holds at most the top ten contributors by ownership share, reordered with the page creator first when they are among them.","required":["userid","percent","username","avatar","profileUrl"],"properties":{"userid":{"type":["integer","null"]},"percent":{"type":"number","description":"Percentage of the page's content attributed to this author (may be fractional, e.g. 8.33)."},"username":{"type":"string"},"avatar":{"type":["string","null"]},"profileUrl":{"type":"string"}}}},"lastUpdatedDate":{"type":"integer","format":"int64","description":"UNIX timestamp of the latest revision."},"flags":{"type":"array","items":{"type":"object","description":"A banner flag on the page (e.g. a maintenance or warning notice). Either `icon` (a Font Awesome name) or `image` (a URL) is present, not both.","required":["flagid","title","text"],"properties":{"flagid":{"type":"string","description":"Stable identifier of the flag type (e.g. \"WIKI_STUB\")."},"title":{"type":"string"},"text":{"type":"string"},"icon":{"type":"string"},"image":{"type":"string"}}}},"hreflangUrls":{"type":"object","description":"Map of language code (plus `x-default`) to the canonical URL for that language.","additionalProperties":{"type":"string"}},"metaDescription":{"type":"string"},"metaKeywords":{"type":"string"},"linkedProblems":{"type":"array","description":"Problems explicitly linked from the body of this page.","items":{"type":"object","description":"A link to another troubleshooting problem page.","required":["url","title","deviceTitle","imageUrl"],"properties":{"url":{"type":"string"},"title":{"type":"string"},"deviceTitle":{"type":"string","description":"Display title of the problem's device."},"imageUrl":{"type":"string"}}}},"relatedProblems":{"type":"array","description":"Other problems for the same device (or an ancestor).","items":{"type":"object","description":"A link to another troubleshooting problem page.","required":["url","title","deviceTitle","imageUrl"],"properties":{"url":{"type":"string"},"title":{"type":"string"},"deviceTitle":{"type":"string","description":"Display title of the problem's device."},"imageUrl":{"type":"string"}}}},"mainImageUrl":{"type":"string"},"mainImageUrlLarge":{"type":"string"},"viewStats":{"type":"object","description":"View counts for the page over several time windows.","required":["today","week","month","all"],"properties":{"today":{"type":"integer"},"week":{"type":"integer"},"month":{"type":"integer"},"all":{"type":"integer"}}},"category":{"type":"object","description":"The parent device category the problem belongs to.","required":["displayTitle","deviceTitle","imageUrl","viewUrl","description"],"properties":{"displayTitle":{"type":"string"},"deviceTitle":{"type":"string","description":"URL-safe device title."},"imageUrl":{"type":"string"},"viewUrl":{"type":"string"},"description":{"type":"string"}}},"userSelectedDevice":{"type":["object","null"],"description":"The device the response was narrowed to, echoed back from the `selectedDevice` parameter. `null` when no valid device was selected.","required":["deviceTitle","displayTitle","imageUrl","variant"],"properties":{"deviceTitle":{"type":"string"},"displayTitle":{"type":"string"},"imageUrl":{"type":"string"},"variant":{"type":["string","null"]}}},"hideDeviceSelection":{"type":"boolean","description":"Whether the device picker should be hidden (the device is a leaf with at most one variant)."},"algoliaConfig":{"type":"object","description":"Public Algolia search configuration for on-page search.","properties":{"apiKey":{"type":"string"},"indexPrefix":{"type":"string"}}},"deviceGuideUrl":{"type":"string","description":"URL to the parent device's guides section."},"deviceTroubleshootingUrl":{"type":"string","description":"URL to the parent device's problem list."},"devicePartsUrl":{"type":"string","description":"URL to the parent device's parts store. Omitted when the device has no enabled parts."},"toc":{"type":["string","null"],"description":"Rendered table-of-contents HTML."},"introduction":{"type":"array","items":{"type":"object","description":"One section of a troubleshooting page. In the `solutions` bucket each section is a single cause/fix (the `== Heading ==` blocks of the source wiki). Sections in `introduction` and `conclusion` share this shape.","required":["heading","id","body","guides","products","partCollections","guideCollections"],"properties":{"heading":{"type":["string","null"],"description":"Section heading text; `null` for an untitled leading block."},"id":{"type":["string","null"],"description":"Anchor id for linking to the section (e.g. \"Section_Heavy_Use\")."},"body":{"type":"string","description":"The section's rendered HTML, with featured products removed."},"guides":{"type":"array","items":{"type":"object","description":"A repair guide referenced from within a troubleshooting section.","required":["guideid","url","title","image","time_required","difficulty","introduction_rendered"],"properties":{"guideid":{"type":"integer"},"url":{"type":"string","description":"Absolute URL to the guide."},"title":{"type":"string"},"image":{"type":"object","properties":{"thumbnail":{"type":"string","description":"Thumbnail image URL for the guide."}}},"time_required":{"type":"string","description":"Human-readable estimate of the time the guide takes."},"difficulty":{"type":"string","description":"Human-readable difficulty rating (e.g. \"Moderate\")."},"introduction_rendered":{"type":"string","description":"The guide's introduction rendered as HTML."}}}},"products":{"type":"array","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}},"partCollections":{"type":"array","items":{"type":"object","description":"A link to a collection of replacement parts for a device. When a `selectedDevice` is supplied, collections are narrowed to that device (and variant) where possible.","required":["url","title","description","imageUrl","showChooseModel","isEmpty","device"],"properties":{"url":{"type":"string","description":"Absolute URL to the parts collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":["string","null"]},"showChooseModel":{"type":"boolean","description":"Whether the UI should prompt the viewer to choose a specific model before the collection resolves to concrete parts."},"isEmpty":{"type":"boolean","description":"Whether the narrowed collection contains no purchasable parts."},"device":{"type":"string","description":"Display title of the device the collection is for."}}}},"guideCollections":{"type":"array","items":{"type":"object","description":"A link to a filtered collection of guides for a device.","required":["url","title","description","imageUrl","showChooseModel","isEmpty"],"properties":{"url":{"type":"string","description":"Absolute URL to the guide collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"showChooseModel":{"type":"boolean"},"isEmpty":{"type":"boolean"}}}}}}},"solutions":{"type":"array","description":"The ordered cause/fix sections — the troubleshooting steps.","items":{"type":"object","description":"One section of a troubleshooting page. In the `solutions` bucket each section is a single cause/fix (the `== Heading ==` blocks of the source wiki). Sections in `introduction` and `conclusion` share this shape.","required":["heading","id","body","guides","products","partCollections","guideCollections"],"properties":{"heading":{"type":["string","null"],"description":"Section heading text; `null` for an untitled leading block."},"id":{"type":["string","null"],"description":"Anchor id for linking to the section (e.g. \"Section_Heavy_Use\")."},"body":{"type":"string","description":"The section's rendered HTML, with featured products removed."},"guides":{"type":"array","items":{"type":"object","description":"A repair guide referenced from within a troubleshooting section.","required":["guideid","url","title","image","time_required","difficulty","introduction_rendered"],"properties":{"guideid":{"type":"integer"},"url":{"type":"string","description":"Absolute URL to the guide."},"title":{"type":"string"},"image":{"type":"object","properties":{"thumbnail":{"type":"string","description":"Thumbnail image URL for the guide."}}},"time_required":{"type":"string","description":"Human-readable estimate of the time the guide takes."},"difficulty":{"type":"string","description":"Human-readable difficulty rating (e.g. \"Moderate\")."},"introduction_rendered":{"type":"string","description":"The guide's introduction rendered as HTML."}}}},"products":{"type":"array","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}},"partCollections":{"type":"array","items":{"type":"object","description":"A link to a collection of replacement parts for a device. When a `selectedDevice` is supplied, collections are narrowed to that device (and variant) where possible.","required":["url","title","description","imageUrl","showChooseModel","isEmpty","device"],"properties":{"url":{"type":"string","description":"Absolute URL to the parts collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":["string","null"]},"showChooseModel":{"type":"boolean","description":"Whether the UI should prompt the viewer to choose a specific model before the collection resolves to concrete parts."},"isEmpty":{"type":"boolean","description":"Whether the narrowed collection contains no purchasable parts."},"device":{"type":"string","description":"Display title of the device the collection is for."}}}},"guideCollections":{"type":"array","items":{"type":"object","description":"A link to a filtered collection of guides for a device.","required":["url","title","description","imageUrl","showChooseModel","isEmpty"],"properties":{"url":{"type":"string","description":"Absolute URL to the guide collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"showChooseModel":{"type":"boolean"},"isEmpty":{"type":"boolean"}}}}}}},"conclusion":{"type":"array","items":{"type":"object","description":"One section of a troubleshooting page. In the `solutions` bucket each section is a single cause/fix (the `== Heading ==` blocks of the source wiki). Sections in `introduction` and `conclusion` share this shape.","required":["heading","id","body","guides","products","partCollections","guideCollections"],"properties":{"heading":{"type":["string","null"],"description":"Section heading text; `null` for an untitled leading block."},"id":{"type":["string","null"],"description":"Anchor id for linking to the section (e.g. \"Section_Heavy_Use\")."},"body":{"type":"string","description":"The section's rendered HTML, with featured products removed."},"guides":{"type":"array","items":{"type":"object","description":"A repair guide referenced from within a troubleshooting section.","required":["guideid","url","title","image","time_required","difficulty","introduction_rendered"],"properties":{"guideid":{"type":"integer"},"url":{"type":"string","description":"Absolute URL to the guide."},"title":{"type":"string"},"image":{"type":"object","properties":{"thumbnail":{"type":"string","description":"Thumbnail image URL for the guide."}}},"time_required":{"type":"string","description":"Human-readable estimate of the time the guide takes."},"difficulty":{"type":"string","description":"Human-readable difficulty rating (e.g. \"Moderate\")."},"introduction_rendered":{"type":"string","description":"The guide's introduction rendered as HTML."}}}},"products":{"type":"array","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}},"partCollections":{"type":"array","items":{"type":"object","description":"A link to a collection of replacement parts for a device. When a `selectedDevice` is supplied, collections are narrowed to that device (and variant) where possible.","required":["url","title","description","imageUrl","showChooseModel","isEmpty","device"],"properties":{"url":{"type":"string","description":"Absolute URL to the parts collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":["string","null"]},"showChooseModel":{"type":"boolean","description":"Whether the UI should prompt the viewer to choose a specific model before the collection resolves to concrete parts."},"isEmpty":{"type":"boolean","description":"Whether the narrowed collection contains no purchasable parts."},"device":{"type":"string","description":"Display title of the device the collection is for."}}}},"guideCollections":{"type":"array","items":{"type":"object","description":"A link to a filtered collection of guides for a device.","required":["url","title","description","imageUrl","showChooseModel","isEmpty"],"properties":{"url":{"type":"string","description":"Absolute URL to the guide collection."},"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"showChooseModel":{"type":"boolean"},"isEmpty":{"type":"boolean"}}}}}}},"featuredProducts":{"type":"array","description":"Up to three products featured in the page introduction.","items":{"type":"object","description":"A store product referenced from within a troubleshooting section. Only products that are enabled in the viewer's preferred store and are not Pro-only are included; everything else is dropped.","required":["url","title","price","reviews","sku"],"properties":{"image":{"type":"string","description":"Product image URL (size170)."},"thumbnailUrl":{"type":"string","description":"Product thumbnail image URL."},"url":{"type":"string","description":"Absolute URL to the product page."},"title":{"type":"string"},"price":{"type":"object","properties":{"amount":{"type":"number"},"currencyCode":{"type":"string","example":"USD"}}},"reviews":{"type":"object","properties":{"rating":{"type":"number","description":"Average review rating."},"count":{"type":"integer","description":"Number of reviews."}}},"sku":{"type":"string"}}}}}},"TroubleshootingRedirect":{"type":"object","description":"Returned in place of a full page (still HTTP 200) when the requested wiki is not a troubleshooting page, or redirects elsewhere. Consumers should follow `canonicalUrl`.","required":["canonicalUrl"],"properties":{"canonicalUrl":{"type":"string","description":"Absolute URL the caller should redirect to."}}},"ProblemListEntry":{"type":"object","description":"One problem in a device's problem-list collection.","required":["problemTitle","problemUrl","deviceTitle","description","imageSrcStandard","imageSrcThumbnail","deviceSrcThumbnail","badges"],"properties":{"problemTitle":{"type":"string"},"problemUrl":{"type":"string"},"deviceTitle":{"type":"string"},"description":{"type":"string"},"imageSrcStandard":{"type":"string"},"imageSrcThumbnail":{"type":"string"},"deviceSrcThumbnail":{"type":["string","null"]},"problemTypeIcon":{"type":"string","description":"Icon name derived from a `problem-<type>` tag, when present."},"badges":{"type":"array","items":{"type":"string"}}}},"AnswersListEntry":{"type":"object","description":"A community answers post surfaced on a problem-list collection.","required":["title","url","description","imageUrl","deviceTitle"],"properties":{"title":{"type":"string"},"url":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"deviceTitle":{"type":"string"}}},"ProblemList":{"type":"object","description":"The collection view for a device: the list of troubleshooting problems associated with it, plus popular community answers.","required":["title","id","breadcrumbs","deviceUrls","problems","answers","allAnswersUrl","allAnswersCount","directlyAttachedProblemsCount","canonicalUrl","viewStats"],"properties":{"title":{"type":"string"},"id":{"type":"integer","description":"The device (CATEGORY) wiki id."},"breadcrumbs":{"type":"array","items":{"type":"object","required":["title","url"],"properties":{"title":{"type":"string"},"url":{"type":"string","description":"Link URL (absolute in most contexts, site-relative for some ancestor links), or an empty string for the current page."}}}},"deviceUrls":{"type":"object","required":["deviceGuideUrl","deviceTroubleshootingUrl"],"properties":{"deviceGuideUrl":{"type":"string"},"deviceTroubleshootingUrl":{"type":"string"},"devicePartsUrl":{"type":"string","description":"URL to the device's parts store. Omitted when the device has no enabled parts."}}},"problems":{"type":"array","items":{"type":"object","description":"One problem in a device's problem-list collection.","required":["problemTitle","problemUrl","deviceTitle","description","imageSrcStandard","imageSrcThumbnail","deviceSrcThumbnail","badges"],"properties":{"problemTitle":{"type":"string"},"problemUrl":{"type":"string"},"deviceTitle":{"type":"string"},"description":{"type":"string"},"imageSrcStandard":{"type":"string"},"imageSrcThumbnail":{"type":"string"},"deviceSrcThumbnail":{"type":["string","null"]},"problemTypeIcon":{"type":"string","description":"Icon name derived from a `problem-<type>` tag, when present."},"badges":{"type":"array","items":{"type":"string"}}}}},"answers":{"type":"array","description":"At most ten community answers, ranked by views over the last 30 days.","items":{"type":"object","description":"A community answers post surfaced on a problem-list collection.","required":["title","url","description","imageUrl","deviceTitle"],"properties":{"title":{"type":"string"},"url":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"deviceTitle":{"type":"string"}}}},"allAnswersUrl":{"type":"string"},"allAnswersCount":{"type":"integer"},"directlyAttachedProblemsCount":{"type":"integer"},"canonicalUrl":{"type":"string"},"viewStats":{"type":"object","description":"View counts for the page over several time windows.","required":["today","week","month","all"],"properties":{"today":{"type":"integer"},"week":{"type":"integer"},"month":{"type":"integer"},"all":{"type":"integer"}}}}},"Product":{"type":"object","description":"Response envelope returned by `getProduct`; product fields are nested under `data`.","properties":{"status":{"type":"string","enum":["success"]},"data":{"type":"object","properties":{"sku":{"type":"string"},"price":{"type":"string","description":"Decimal price string for the US store."},"productcode":{"type":"integer"},"image":{"type":"object","description":"Map of size name to image URL; `full` is always present.","additionalProperties":{"type":"string","format":"uri"}},"url":{"type":"string","format":"uri","description":"Product page URL in the US store."},"related":{"type":"object","properties":{"guides":{"type":"array","description":"Related guide entries; an empty array for tool products.","items":{"type":"object"}},"common":{"description":"Common guide data, or `false` when absent."},"wikis":{"description":"Always `false`."},"special":{"description":"Always `false`."}}}}}}},"PartCollection":{"type":"object","description":"Collection of parts for a device. `getDevicePartCollections` does not emit this shape; see that operation's 200 response.","properties":{"collection_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"device":{"type":"string"},"parts":{"type":"array","items":{"type":"object","description":"Summary of a part in a collection","properties":{"itemcode":{"type":"string"},"name":{"type":"string"},"price":{"type":"number","format":"float"},"in_stock":{"type":"boolean"},"thumbnail":{"type":"string","format":"uri"},"url":{"type":"string","format":"uri"}}}}}},"PartSummary":{"type":"object","description":"Summary of a part in a collection","properties":{"itemcode":{"type":"string"},"name":{"type":"string"},"price":{"type":"number","format":"float"},"in_stock":{"type":"boolean"},"thumbnail":{"type":"string","format":"uri"},"url":{"type":"string","format":"uri"}}}},"parameters":{"offset":{"name":"offset","in":"query","description":"Number of items to skip from the beginning. Defaults to 0.","schema":{"type":"integer","minimum":0,"default":0}},"limit":{"name":"limit","in":"query","description":"Maximum number of items to return. Range [1, 200]. Defaults to 20.","schema":{"type":"integer","minimum":1,"maximum":200,"default":20}},"order":{"name":"order","in":"query","description":"Sort order (ascending or descending).","schema":{"type":"string","enum":["ASC","DESC"],"default":"ASC"}},"langid":{"name":"langid","in":"query","description":"Language code for the response content (e.g., \"en\", \"de\", \"fr\", \"it\", \"es\", \"pt\", \"ja\", \"zh\", \"nl\", \"ru\", \"tr\", \"ko\").\nDefaults to the site's default language.\n","schema":{"type":"string","pattern":"^[a-z]{2}$","example":"en"}},"revisionid":{"name":"revisionid","in":"query","description":"Current revision ID of the resource. Required for edit operations to prevent conflicts.","required":true,"schema":{"type":"integer"}},"modifiedSince":{"name":"modifiedSince","in":"query","description":"Filter to only include items modified on or after this UNIX timestamp.","schema":{"type":"integer","format":"int64"}},"selectedDevice":{"name":"selectedDevice","in":"query","description":"Narrow device-specific links (parts, guides, model wikilinks) to a particular device, optionally with a variant as `device:variant`. Must be the page's device or one of its descendants; ignored otherwise.","schema":{"type":"string"}},"unpatrolled":{"name":"unpatrolled","in":"query","description":"Returns the pending unpatrolled revision when one exists. Enabled by the presence of the parameter regardless of its value, including `unpatrolled=false` — pass no value (`?unpatrolled`) to enable, omit the parameter to disable.","allowEmptyValue":true,"schema":{"type":"string"}},"guideid":{"name":"guideid","in":"path","required":true,"description":"Unique identifier of the guide.","schema":{"type":"integer"}},"stepid":{"name":"stepid","in":"path","required":true,"description":"Unique identifier of the step.","schema":{"type":"integer"}},"userid":{"name":"userid","in":"path","required":true,"description":"Unique identifier of the user.","schema":{"type":"integer"}},"teamid":{"name":"teamid","in":"path","required":true,"description":"Unique identifier of the team.","schema":{"type":"integer"}},"commentid":{"name":"commentid","in":"path","required":true,"description":"Unique identifier of the comment.","schema":{"type":"integer"}},"imageid":{"name":"imageid","in":"path","required":true,"description":"Unique identifier of the image (integer ID or GUID string).","schema":{"oneOf":[{"type":"integer"},{"type":"string"}]}},"namespace":{"name":"namespace","in":"path","required":true,"description":"Wiki namespace.","schema":{"type":"string","enum":["WIKI","CATEGORY","INFO","ITEM","USER","TEAM"]}},"wikiTitle":{"name":"title","in":"path","required":true,"description":"Wiki page title.","schema":{"type":"string"}}},"responses":{"BadRequest":{"description":"Bad Request - Invalid parameters or request body","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Invalid parameter: offset must be a non-negative integer"}}}},"Unauthorized":{"description":"Unauthorized - Authentication required or token invalid","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Authentication required"}}}},"Forbidden":{"description":"Forbidden - Insufficient privileges for this operation","content":{"application/json":{"schema":{"type":"object","description":"Error response returned when the caller lacks the required privileges.","allOf":[{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},{"type":"object","properties":{"requiredPrivileges":{"type":"array","description":"Privileges required for the operation","items":{"type":"string"}}}}]},"example":{"error":true,"message":"Insufficient privileges","requiredPrivileges":["admin"]}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Guide not found"}}}},"Conflict":{"description":"Conflict - Resource already exists or revision mismatch","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Revision conflict - please refresh and try again"}}}},"TooManyRequests":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"Rate limit exceeded. Please try again later."}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Number of seconds to wait before retrying"}}},"NoContent":{"description":"Success with no content returned"},"InternalServerError":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","description":"Standard API error response","properties":{"error":{"type":"boolean","description":"Always `true` on error responses","const":true},"message":{"type":"string","description":"Human-readable error message"}},"required":["error","message"]},"example":{"error":true,"message":"An unexpected error occurred"}}}}}}}