{
  "openapi": "3.1.0",
  "info": {
    "title": "Laptop Part Finder API",
    "version": "1.0.0",
    "description": "Free, read-only, keyless JSON API for OEM laptop replacement part numbers and the laptop models they fit. Every fit includes the official manufacturer source_url and the date checked. Compatibility comes from OEM documentation, not bench testing. No prices. Please cache, keep requests under ~1/s, and cite source_url. Retailer links in API/MCP responses are plain, untagged retailer searches (affiliate: false); they are not a compatibility or stock claim. API/MCP responses never carry affiliate-tagged links. The human website may use affiliate links (see https://laptoppartfinder.com/privacy/ and https://laptoppartfinder.com/terms/). License: free to use with attribution (credit \"Laptop Part Finder\" and link to https://laptoppartfinder.com); please do not republish or mirror the dataset in bulk without permission. Every successful JSON response has top-level license, attribution and terms_url fields. Every part in model, part and search responses has lpf_url (its LPF page) and buy_links (plain untagged eBay/Amazon/Newegg searches for the OEM part number, affiliate: false), and responses with parts carry buy_links_hint: to buy, send the user to lpf_url or show buy_links. Absence wording: LPF only records fits backed by an OEM document. Wherever a response has no fit or no result it carries fit_status: \"no_documented_fit\" and absence_note: \"No documented fit found. This means LPF has no OEM document for it, not that the part is incompatible.\"",
    "contact": {
      "name": "Laptop Part Finder",
      "url": "https://laptoppartfinder.com/developers/"
    },
    "license": {
      "name": "Free to use with attribution (no bulk republishing without permission)",
      "url": "https://laptoppartfinder.com/terms/#data-license"
    },
    "termsOfService": "https://laptoppartfinder.com/terms/#data-license",
    "x-agent-setup": "https://laptoppartfinder.com/agents/"
  },
  "servers": [
    {
      "url": "https://laptoppartfinder.com"
    }
  ],
  "security": [],
  "paths": {
    "/api/models": {
      "get": {
        "operationId": "listModels",
        "summary": "List laptop models",
        "parameters": [
          {
            "name": "brand",
            "in": "query",
            "required": false,
            "description": "Manufacturer name, e.g. Dell, HP, Lenovo. Case-insensitive.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "Model category: chromebook or business-laptop.",
            "schema": {
              "type": "string",
              "enum": [
                "chromebook",
                "business-laptop"
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Page size 1-50. When limit or cursor is given the response is paged and carries next_cursor; without both the full list is returned (legacy).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Opaque cursor from next_cursor.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful JSON response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelsResponse"
                }
              }
            }
          }
        },
        "description": "Lists every covered laptop and Chromebook model with its fit count and page/API URLs. Filter by brand or category."
      }
    },
    "/api/models/{slug}": {
      "get": {
        "operationId": "getModel",
        "summary": "Get one model and its parts",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Model slug from /api/models, e.g. lenovo-thinkpad-t490.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "client",
            "in": "query",
            "required": false,
            "description": "Optional name of your app or agent (letters and digits), used only to label outbound retailer links.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful JSON response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not found. Returns an error message (and a hint when available).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Returns one laptop model with every documented OEM replacement part, its constraints and the official source URL for each fit. Ambiguous names return candidate models."
      }
    },
    "/api/parts/{part_number}": {
      "get": {
        "operationId": "getPart",
        "summary": "Get one part and the models it fits",
        "parameters": [
          {
            "name": "part_number",
            "in": "path",
            "required": true,
            "description": "OEM part number (case-insensitive) or part page slug, e.g. 01AV489.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "client",
            "in": "query",
            "required": false,
            "description": "Optional name of your app or agent (letters and digits), used only to label outbound retailer links.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful JSON response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not found. Returns an error message (and a hint when available).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Looks up an OEM part number (case-insensitive) or part page slug and lists every laptop model it is documented to fit, with sources."
      }
    },
    "/api/search": {
      "get": {
        "operationId": "search",
        "summary": "Search models and parts",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "description": "Search text, e.g. \"thinkpad t490 battery\" or a part number. Required.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "Optional part type filter, e.g. Battery, Screen, Keyboard.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum results per list (default 20, max 50).",
            "schema": {
              "type": "integer",
              "default": 20,
              "maximum": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful JSON response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing or invalid query. Returns an error message.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Free-text search across model names, part numbers, part names and part types."
      }
    },
    "/api/guides": {
      "get": {
        "operationId": "listGuides",
        "summary": "List repair guides",
        "parameters": [
          {
            "name": "model",
            "in": "query",
            "required": false,
            "description": "Model slug or name, e.g. hp-elitebook-840-g6.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "component",
            "in": "query",
            "required": false,
            "description": "Component, e.g. battery, ssd, keyboard.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful JSON response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuidesResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not found. Returns an error message (and a hint when available).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Lists part-swap guides paraphrased from official service manuals, optionally filtered by model or component. Guides are not bench-tested."
      }
    },
    "/api/guides/{slug}": {
      "get": {
        "operationId": "getGuide",
        "summary": "Get one repair guide",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Guide slug from /api/guides.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful JSON response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuideResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not found. Returns an error message (and a hint when available).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Returns one repair guide as Markdown with its official manual URL and page citations."
      }
    },
    "/api/v1/data.json": {
      "get": {
        "operationId": "getDataExport",
        "summary": "Download the full dataset",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful JSON response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataExport"
                }
              }
            }
          }
        },
        "description": "The complete dataset (models, parts, fits with sources) as one JSON file. Prefer the paged endpoints for single lookups."
      }
    },
    "/api/v1/guides.json": {
      "get": {
        "operationId": "getGuidesExport",
        "summary": "Download all repair guides",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful JSON response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuidesExport"
                }
              }
            }
          }
        },
        "description": "Every repair guide with Markdown steps and citations as one JSON file."
      }
    },
    "/api/resolve": {
      "get": {
        "operationId": "resolveRequest",
        "summary": "Resolve a vague request (e.g. \"T490 battery\" or a part number) into a model, part type and candidates, or one clarifying question",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "status is resolved, needs_clarification or no_model_match",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "resolved",
                        "needs_clarification",
                        "no_model_match",
                        "no_match"
                      ]
                    },
                    "clarifying_question": {
                      "type": "string"
                    },
                    "candidates": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "fit_status": {
                      "$ref": "#/components/schemas/FitStatus"
                    },
                    "absence_note": {
                      "type": "string",
                      "description": "Always: \"No documented fit found. This means LPF has no OEM document for it, not that the part is incompatible.\""
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Missing q",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/suggest": {
      "get": {
        "operationId": "suggest",
        "summary": "Type-ahead suggestions (~1 KB)",
        "description": "Lightweight type-ahead for search boxes: up to 8 models (prefix match on model name words, with search aliases such as 450g5 or x1c) and up to 6 parts whose part number starts with the query (3+ characters). Use /api/search for full results. With no match it returns mode no_match plus fit_status no_documented_fit.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "description": "Partial text, 2 to 60 characters.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Suggestions.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "query": {
                      "type": "string"
                    },
                    "total_models": {
                      "type": "integer"
                    },
                    "models": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "slug": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "parts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "part_number": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "search_url": {
                      "type": "string"
                    },
                    "mode": {
                      "type": "string",
                      "enum": [
                        "no_match"
                      ]
                    },
                    "message": {
                      "type": "string"
                    },
                    "request_url": {
                      "type": "string"
                    },
                    "fit_status": {
                      "$ref": "#/components/schemas/FitStatus"
                    },
                    "absence_note": {
                      "type": "string",
                      "description": "Always: \"No documented fit found. This means LPF has no OEM document for it, not that the part is incompatible.\""
                    }
                  },
                  "required": [
                    "query",
                    "models",
                    "parts"
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ModelsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer"
          },
          "models": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "api_url": {
                  "type": "string"
                },
                "aue_date": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "category": {
                  "type": "string"
                },
                "fit_count": {
                  "type": "integer"
                },
                "manufacturer": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "release_year": {
                  "anyOf": [
                    {
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "slug": {
                  "type": "string"
                },
                "source_url": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "api_url",
                "aue_date",
                "category",
                "fit_count",
                "manufacturer",
                "name",
                "release_year",
                "slug",
                "source_url",
                "url"
              ],
              "additionalProperties": true
            }
          },
          "license": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "terms_url": {
            "type": "string"
          },
          "buy_links_hint": {
            "type": "string"
          }
        },
        "required": [
          "count",
          "models"
        ],
        "additionalProperties": true
      },
      "ModelResponse": {
        "type": "object",
        "properties": {
          "api_url": {
            "type": "string"
          },
          "aue_date": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "board_name": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "category": {
            "type": "string"
          },
          "fit_count": {
            "type": "integer"
          },
          "manufacturer": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "parts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "api_url": {
                  "type": "string"
                },
                "brand": {
                  "type": "string"
                },
                "constraints": {
                  "type": "string"
                },
                "fit_type": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "notes": {
                  "type": "string"
                },
                "part_number": {
                  "type": "string"
                },
                "retailer_links": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "affiliate": {
                        "type": "boolean"
                      },
                      "disclosure": {
                        "type": "string"
                      },
                      "kind": {
                        "type": "string"
                      },
                      "note": {
                        "type": "string"
                      },
                      "retailer": {
                        "type": "string"
                      },
                      "url": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "affiliate",
                      "disclosure",
                      "kind",
                      "note",
                      "retailer",
                      "url"
                    ],
                    "additionalProperties": true
                  }
                },
                "source_detail": {
                  "type": "string"
                },
                "source_url": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "verified_date": {
                  "type": "string"
                },
                "buy_links": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BuyLink"
                  },
                  "description": "Where-to-buy links. Show them to the user when they want to buy."
                }
              },
              "required": [
                "api_url",
                "brand",
                "constraints",
                "fit_type",
                "name",
                "notes",
                "part_number",
                "retailer_links",
                "source_detail",
                "source_url",
                "type",
                "url",
                "verified_date"
              ],
              "additionalProperties": true
            }
          },
          "release_year": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "slug": {
            "type": "string"
          },
          "source_url": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "verified_date": {
            "type": "string"
          },
          "panel_options": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PanelOptions"
              }
            ]
          },
          "license": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "terms_url": {
            "type": "string"
          },
          "buy_links_hint": {
            "type": "string"
          },
          "fit_status": {
            "$ref": "#/components/schemas/FitStatus"
          },
          "absence_note": {
            "type": "string",
            "description": "Always: \"No documented fit found. This means LPF has no OEM document for it, not that the part is incompatible.\""
          }
        },
        "required": [
          "api_url",
          "aue_date",
          "board_name",
          "category",
          "fit_count",
          "manufacturer",
          "name",
          "note",
          "parts",
          "release_year",
          "slug",
          "source_url",
          "url",
          "verified_date"
        ],
        "additionalProperties": true
      },
      "PartResponse": {
        "type": "object",
        "properties": {
          "api_url": {
            "type": "string"
          },
          "brand": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "fits": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "constraints": {
                  "type": "string"
                },
                "model": {
                  "type": "string"
                },
                "model_name": {
                  "type": "string"
                },
                "notes": {
                  "type": "string"
                },
                "source_detail": {
                  "type": "string"
                },
                "source_url": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "verified_date": {
                  "type": "string"
                },
                "panel_options": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "$ref": "#/components/schemas/PanelOptions"
                    }
                  ],
                  "description": "Only on fits of Screen parts."
                }
              },
              "required": [
                "constraints",
                "model",
                "model_name",
                "notes",
                "source_detail",
                "source_url",
                "url",
                "verified_date"
              ],
              "additionalProperties": true
            }
          },
          "name": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "part_number": {
            "type": "string"
          },
          "retailer_links": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "affiliate": {
                  "type": "boolean"
                },
                "disclosure": {
                  "type": "string"
                },
                "kind": {
                  "type": "string"
                },
                "note": {
                  "type": "string"
                },
                "retailer": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "affiliate",
                "disclosure",
                "kind",
                "note",
                "retailer",
                "url"
              ],
              "additionalProperties": true
            }
          },
          "source_url": {
            "type": "string"
          },
          "specs": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
          },
          "type": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "verified_date": {
            "type": "string"
          },
          "buy_links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyLink"
            },
            "description": "Where-to-buy links. Show them to the user when they want to buy."
          },
          "license": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "terms_url": {
            "type": "string"
          },
          "buy_links_hint": {
            "type": "string"
          },
          "fit_status": {
            "$ref": "#/components/schemas/FitStatus"
          },
          "absence_note": {
            "type": "string",
            "description": "Always: \"No documented fit found. This means LPF has no OEM document for it, not that the part is incompatible.\""
          }
        },
        "required": [
          "api_url",
          "brand",
          "description",
          "fits",
          "name",
          "note",
          "part_number",
          "retailer_links",
          "source_url",
          "specs",
          "type",
          "url",
          "verified_date"
        ],
        "additionalProperties": true
      },
      "SearchResponse": {
        "type": "object",
        "properties": {
          "models": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "api_url": {
                  "type": "string"
                },
                "aue_date": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "category": {
                  "type": "string"
                },
                "fit_count": {
                  "type": "integer"
                },
                "manufacturer": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "release_year": {
                  "anyOf": [
                    {
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "slug": {
                  "type": "string"
                },
                "source_url": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "api_url",
                "aue_date",
                "category",
                "fit_count",
                "manufacturer",
                "name",
                "release_year",
                "slug",
                "source_url",
                "url"
              ],
              "additionalProperties": true
            }
          },
          "parts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "api_url": {
                  "type": "string"
                },
                "brand": {
                  "type": "string"
                },
                "fits": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "constraints": {
                        "type": "string"
                      },
                      "model": {
                        "type": "string"
                      },
                      "model_name": {
                        "type": "string"
                      },
                      "source_url": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "constraints",
                      "model",
                      "model_name",
                      "source_url"
                    ],
                    "additionalProperties": true
                  }
                },
                "name": {
                  "type": "string"
                },
                "part_number": {
                  "type": "string"
                },
                "source_url": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "buy_links": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BuyLink"
                  },
                  "description": "Where-to-buy links. Show them to the user when they want to buy."
                }
              },
              "required": [
                "api_url",
                "brand",
                "fits",
                "name",
                "part_number",
                "source_url",
                "type",
                "url"
              ],
              "additionalProperties": true
            }
          },
          "query": {
            "type": "string"
          },
          "type": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "license": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "terms_url": {
            "type": "string"
          },
          "buy_links_hint": {
            "type": "string"
          },
          "fit_status": {
            "$ref": "#/components/schemas/FitStatus"
          },
          "absence_note": {
            "type": "string",
            "description": "Always: \"No documented fit found. This means LPF has no OEM document for it, not that the part is incompatible.\""
          }
        },
        "required": [
          "models",
          "parts",
          "query",
          "type"
        ],
        "additionalProperties": true
      },
      "GuidesResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer"
          },
          "guides": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "api_url": {
                  "type": "string"
                },
                "bench_tested": {
                  "type": "boolean"
                },
                "component": {
                  "type": "string"
                },
                "manufacturer": {
                  "type": "string"
                },
                "model": {
                  "type": "string"
                },
                "model_name": {
                  "type": "string"
                },
                "pages": {
                  "type": "string"
                },
                "service_classification": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "HP service classification when known, else null."
                },
                "slug": {
                  "type": "string"
                },
                "source_title": {
                  "type": "string"
                },
                "source_url": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "api_url",
                "component",
                "model",
                "slug",
                "source_url",
                "title",
                "url"
              ],
              "additionalProperties": true
            }
          },
          "model": {
            "type": "string"
          },
          "not_covered": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "model": {
                  "type": "string"
                },
                "model_name": {
                  "type": "string"
                },
                "status": {
                  "type": "string"
                },
                "topic": {
                  "type": "string"
                }
              },
              "required": [
                "model",
                "model_name",
                "status",
                "topic"
              ],
              "additionalProperties": true
            }
          },
          "note": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "terms_url": {
            "type": "string"
          },
          "buy_links_hint": {
            "type": "string"
          }
        },
        "required": [
          "count",
          "guides",
          "model",
          "not_covered",
          "note"
        ],
        "additionalProperties": true
      },
      "GuideResponse": {
        "type": "object",
        "properties": {
          "api_url": {
            "type": "string"
          },
          "bench_tested": {
            "type": "boolean"
          },
          "component": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "markdown": {
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "model_name": {
            "type": "string"
          },
          "pages": {
            "type": "string"
          },
          "service_classification": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "slug": {
            "type": "string"
          },
          "source_title": {
            "type": "string"
          },
          "source_url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "attribution": {
            "type": "string"
          },
          "terms_url": {
            "type": "string"
          },
          "buy_links_hint": {
            "type": "string"
          }
        },
        "required": [
          "api_url",
          "bench_tested",
          "component",
          "manufacturer",
          "markdown",
          "model",
          "model_name",
          "pages",
          "service_classification",
          "slug",
          "source_title",
          "source_url",
          "title",
          "url"
        ],
        "additionalProperties": true
      },
      "DataExport": {
        "type": "object",
        "properties": {
          "base": {
            "type": "string"
          },
          "ebay": {
            "type": "object",
            "properties": {
              "campid": {
                "type": "string"
              },
              "disclosure": {
                "type": "string"
              },
              "mkrid": {
                "type": "string"
              },
              "searchBase": {
                "type": "string"
              },
              "toolid": {
                "type": "string"
              }
            },
            "required": [
              "campid",
              "disclosure",
              "mkrid",
              "searchBase",
              "toolid"
            ],
            "additionalProperties": true
          },
          "fits": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "constraints": {
                  "type": "string"
                },
                "model": {
                  "type": "string"
                },
                "notes": {
                  "type": "string"
                },
                "part": {
                  "type": "string"
                },
                "part_number": {
                  "type": "string"
                },
                "source_detail": {
                  "type": "string"
                },
                "source_url": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "verified_date": {
                  "type": "string"
                }
              },
              "required": [
                "constraints",
                "model",
                "notes",
                "part",
                "part_number",
                "source_detail",
                "source_url",
                "type",
                "verified_date"
              ],
              "additionalProperties": true
            }
          },
          "generated": {
            "type": "string"
          },
          "models": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "aue_date": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "board_name": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "category": {
                  "type": "string"
                },
                "manufacturer": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "release_year": {
                  "anyOf": [
                    {
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "slug": {
                  "type": "string"
                },
                "source_url": {
                  "type": "string"
                },
                "verified_date": {
                  "type": "string"
                }
              },
              "required": [
                "aue_date",
                "board_name",
                "category",
                "manufacturer",
                "name",
                "release_year",
                "slug",
                "source_url",
                "verified_date"
              ],
              "additionalProperties": true
            }
          },
          "parts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "brand": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "part_number": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                },
                "source_url": {
                  "type": "string"
                },
                "specs": {
                  "type": "object",
                  "properties": {
                    "backlit": {
                      "type": "boolean"
                    },
                    "capacity": {
                      "type": "string"
                    },
                    "cells": {
                      "anyOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "charge_capacity": {
                      "type": "string"
                    },
                    "connector": {
                      "type": "string"
                    },
                    "family": {
                      "type": "string"
                    },
                    "keys": {
                      "type": "integer"
                    },
                    "layout": {
                      "type": "string"
                    },
                    "location": {
                      "type": "string"
                    },
                    "mains_cord_region": {
                      "type": "string"
                    },
                    "power_watts": {
                      "type": "integer"
                    },
                    "resolution": {
                      "type": "string"
                    },
                    "screen_size": {
                      "type": "string"
                    },
                    "touch": {
                      "type": "boolean"
                    },
                    "voltage": {
                      "type": "string"
                    },
                    "wattage": {
                      "type": "string"
                    }
                  },
                  "required": [],
                  "additionalProperties": true
                },
                "type": {
                  "type": "string"
                },
                "verified_date": {
                  "type": "string"
                }
              },
              "required": [
                "brand",
                "description",
                "name",
                "part_number",
                "slug",
                "source_url",
                "specs",
                "type",
                "verified_date"
              ],
              "additionalProperties": true
            }
          },
          "site": {
            "type": "string"
          }
        },
        "required": [
          "base",
          "ebay",
          "fits",
          "generated",
          "models",
          "parts",
          "site"
        ],
        "additionalProperties": true
      },
      "GuidesExport": {
        "type": "object",
        "properties": {
          "base": {
            "type": "string"
          },
          "generated": {
            "type": "string"
          },
          "guides": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "api_url": {
                  "type": "string"
                },
                "bench_tested": {
                  "type": "boolean"
                },
                "component": {
                  "type": "string"
                },
                "manufacturer": {
                  "type": "string"
                },
                "markdown": {
                  "type": "string"
                },
                "model": {
                  "type": "string"
                },
                "model_name": {
                  "type": "string"
                },
                "pages": {
                  "type": "string"
                },
                "service_classification": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "slug": {
                  "type": "string"
                },
                "source_title": {
                  "type": "string"
                },
                "source_url": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "api_url",
                "bench_tested",
                "component",
                "manufacturer",
                "markdown",
                "model",
                "model_name",
                "pages",
                "service_classification",
                "slug",
                "source_title",
                "source_url",
                "title",
                "url"
              ],
              "additionalProperties": true
            }
          },
          "not_covered": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "model": {
                  "type": "string"
                },
                "model_name": {
                  "type": "string"
                },
                "status": {
                  "type": "string"
                },
                "topic": {
                  "type": "string"
                }
              },
              "required": [
                "model",
                "model_name",
                "status",
                "topic"
              ],
              "additionalProperties": true
            }
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "base",
          "generated",
          "guides",
          "not_covered",
          "note"
        ],
        "additionalProperties": true
      },
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string"
          },
          "hint": {
            "type": "string"
          },
          "fit_status": {
            "$ref": "#/components/schemas/FitStatus"
          },
          "absence_note": {
            "type": "string",
            "description": "Always: \"No documented fit found. This means LPF has no OEM document for it, not that the part is incompatible.\""
          }
        },
        "required": [
          "error"
        ],
        "additionalProperties": true
      },
      "PanelOptions": {
        "type": "object",
        "description": "Present when a model has two or more documented screen (LCD/display panel) parts. Panels for one model may use different connectors (e.g. 30-pin vs 40-pin eDP), resolutions or touch layers; check the current panel part number or connector before ordering.",
        "properties": {
          "count": {
            "type": "integer",
            "minimum": 2,
            "description": "Number of distinct documented screen parts for the model."
          },
          "part_numbers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "differs_by": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "connector",
                "resolution",
                "touch",
                "screen_size",
                "panel_type",
                "brightness"
              ]
            },
            "description": "Differences stated in the part data or fit notes. Empty means none were documented, not that the panels are interchangeable. connector appears only when pin counts are stated in the data."
          },
          "connector_documented": {
            "type": "boolean",
            "description": "True if any of these panels has a connector pin count stated in the data."
          },
          "advice": {
            "type": "string"
          }
        },
        "required": [
          "count",
          "part_numbers",
          "differs_by",
          "connector_documented",
          "advice"
        ],
        "additionalProperties": false
      },
      "BuyLink": {
        "type": "object",
        "description": "A plain, untagged retailer search link for this part's OEM part number (affiliate: false; API/MCP responses never carry affiliate-tagged links). Not a fit guarantee.",
        "properties": {
          "merchant": {
            "type": "string",
            "enum": [
              "ebay",
              "amazon",
              "newegg",
              "lpscreen"
            ]
          },
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "affiliate": {
            "type": "boolean"
          },
          "kind": {
            "type": "string",
            "enum": [
              "search",
              "listing"
            ]
          }
        },
        "required": [
          "merchant",
          "label",
          "url",
          "affiliate",
          "kind"
        ],
        "additionalProperties": true
      },
      "Confidence": {
        "type": "string",
        "enum": [
          "oem_manual",
          "retailer",
          "unverified"
        ],
        "description": "oem_manual: manufacturer documentation. retailer: third-party retailer listing (Retailer-listed), not manufacturer documentation. unverified: no documented source type."
      },
      "FitStatus": {
        "type": "string",
        "enum": [
          "no_documented_fit"
        ],
        "description": "Present when a response has no fit or no result (part with no models, model with no parts of the requested type, resolve not_found/no_match, search no_match). LPF only records fits backed by an OEM document, so this never means the part is incompatible."
      }
    }
  },
  "externalDocs": {
    "description": "For AI agents and developers (API and MCP server)",
    "url": "https://laptoppartfinder.com/developers/"
  }
}
