iFixit API Reference
iFixit API
iFixit Developer Support
Download OpenAPI Document json Download OpenAPI Document yaml
Our API provides programmatic access to iFixit, enabling anyone to write innovative applications and utilities on top of our rich repair database.
What can I do with the API?
Anything you want! The sky is the limit for awesome applications built using our database of repair guides. We can't wait to see what you come up with.
Our API is provided under a non-commercial BY-NC-SA license. If you'd like to use it for commercial purposes, reach out to our API team for pricing. Training Large Language Models on iFixit content is prohibited by our Terms of Service.
The API provides access to our repair guides (step-by-step guides and namespace pages), categories, users, teams, and our reputation badges.
If you build on our API, we will support you by maintaining future compatibility. Make sure to version your API calls with 2.0. When we introduce changes that may break existing apps, we will increment the version number.
Using the API
Getting Started
The best way to get started is to just dive right in! You don't need an app ID for most requests, so you can start writing your app right now. Here's an example API call:
curl https://www.ifixit.com/api/2.0/guides/1220
If you want to build an offline tool, an archived collection of oManual files is also available.
Authentication
Most public endpoints do not require authentication. A few endpoints require an App ID, which you can request from our API team. This is usually only required for complex integrations.
To authenticate, first obtain a token with your email and password:
curl -X POST https://www.ifixit.com/api/2.0/user/token \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"yourpassword"}'
The response includes an authToken field. Use it in subsequent requests:
curl https://www.ifixit.com/api/2.0/user \
-H "Authorization: api YOUR_AUTH_TOKEN"
Note: the Authorization header uses the api scheme, not Bearer.
Response Format
All endpoints return JSON by default. Append ?pretty to any request URL for human-readable formatted output. Some endpoints additionally support XML via the Accept: application/xml request header.
Error Responses
Errors are returned as a JSON object with a consistent shape:
{
"error": true,
"message": "Human-readable description of the error"
}
Common status codes:
| Code | Meaning |
|---|---|
| 400 | Bad request — invalid parameters |
| 401 | Authentication required |
| 403 | Forbidden — insufficient privileges |
| 404 | Resource not found |
| 429 | Rate limit exceeded |
Pagination
List endpoints accept offset and limit query parameters. limit defaults to 20 and has a maximum of 200. Responses are plain arrays — iterate by incrementing offset by limit until you receive fewer items than requested.
GET /api/2.0/guides?offset=0&limit=50
GET /api/2.0/guides?offset=50&limit=50
Rate Limiting
API requests are rate limited. When limits are exceeded, the API returns a 429 status code.
Versioning
This is version 2.0 of the iFixit API. The version is included in the URL path: /api/2.0/.
AuthenticationOptional
Discover iFixit OAuth endpoints
Returns public authorization server metadata, including the issuer, endpoints, scopes, PKCE methods, and supported client authentication. The canonical RFC 8414 location is /.well-known/oauth-authorization-server/api/2.0/oidc on the same host, outside the API prefix. This appended location supports clients that try the issuer-relative metadata path. Both preserve the issuer URL ending in /api/2.0/oidc and use the same discovery response as /oidc/.well-known/openid-configuration.
Responses
- 200
Public OAuth and OpenID configuration
{
"issuer": "https://example.com",
"authorization_endpoint": "https://example.com",
"token_endpoint": "https://example.com",
"jwks_uri": "https://example.com",
"userinfo_endpoint": "https://example.com",
"scopes_supported": ["string"],
"token_endpoint_auth_methods_supported": ["string"],
"code_challenge_methods_supported": ["string"]
}
Validate a Workbench MCP access token
Auth Required
Validates the bearer token against its current client registration, resource grant, expiration, and enabled user account. Returns only the claims an MCP server needs to authorize the request. The caller must check the issuer, resource audience, expiry, and required scopes against its own configuration before accepting the token.
Responses
- 200
Active Workbench resource grant
{
"iss": "https://example.com",
"sub": "string",
"aud": "https://example.com",
"scope": "string",
"exp": 1
}
User login
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.
Body
Type: string Format: email
- password
Type: string Format: password
Responses
- 201
Login successful
{
"userid": 261784,
"username": "John Doe",
"unique_username": "johndoe",
"join_date": 1285253372,
"image": {
"id": 73556,
"guid": "FucWIkw2ZEBiIJHk",
"mini": "https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.mini",
"thumbnail": "https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.thumbnail",
"standard": "https://guide-images.cdn.ifixit.com/igi/FucWIkw2ZEBiIJHk.standard"
},
"reputation": 139,
"url": "https://www.ifixit.com/User/261784/John+Doe",
"teams": [276],
"privileges": ["User"],
"certificate_count": 0,
"badge_counts": {
"bronze": 1,
"silver": 1,
"gold": 1,
"total": 1
},
"summary": "I fix things!",
"authToken": "0123456789abcdef0123456789abcdef"
}
User logout
Auth Required
Logs out the authenticated user by deleting the authorization token.
Responses
- 204
Success with no content returned
- 401
Unauthorized - Authentication required or token invalid
Categories
Browse the content hierarchy
Categories Operations
- get/wikis/CATEGORY/{title}/children
- get/categories
Guides
Create, edit, delete and list guides and guide steps
Guides Operations
- get/guides
- post/guides
- get/guides/{guideid}
- delete/guides/{guideid}
Media
Image and video information
Media Operations
- get/media/images/{imageid}
- get/media/videos/{videoid}
Search
Search and suggest functionality
Search Operations
- get/suggest/{query}
Users
User profiles, badges, favorites, and media management
Users Operations
- get/user
- post/user/token
- delete/user/token
Wikis
Create, edit, delete and list wiki pages
Wikis Operations
- get/wikis/{namespace}
- post/wikis
- get/wikis/{namespace}/{title}
curl https://www.ifixit.com/api/2.0/wikis/namespace/title