iFixit API Reference

iFixit API

iFixit Developer Support

Creative Commons BY-NC-SA 3.0

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

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

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

Type: string Format: password

Responses

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

Success with no content returned

Unauthorized - Authentication required or token invalid

Categories

Browse the content hierarchy

Categories Operations

Guides

Create, edit, delete and list guides and guide steps

Guides Operations

Media

Image and video information

Media Operations

Search

Search and suggest functionality

Search Operations

Users

User profiles, badges, favorites, and media management

Users Operations

Wikis

Create, edit, delete and list wiki pages

Wikis Operations

curl https://www.ifixit.com/api/2.0/wikis/namespace/title