{
  "openapi": "3.1.0",
  "info": {
    "title": "RoboPartPicker public API",
    "version": "1.0.0",
    "description": "Public read-only robotics project, component and bill-of-materials data. Observed prices are catalog estimates, not binding quotes.",
    "contact": {
      "name": "RoboPartPicker",
      "email": "support@robopartpicker.com"
    },
    "license": {
      "name": "Public read-only data; upstream projects retain their own licenses."
    }
  },
  "servers": [
    {
      "url": "https://robopartpicker.com/api"
    }
  ],
  "paths": {
    "/health": {
      "get": {
        "operationId": "health",
        "summary": "Service health and enabled capabilities.",
        "responses": {
          "200": {
            "description": "Service status"
          }
        }
      }
    },
    "/v1/projects": {
      "get": {
        "operationId": "listProjects",
        "summary": "List or search robotics projects.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "maximum": 100
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "physical_design",
                "commercial_showcase",
                "robotics_software"
              ]
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Project list with total and catalog stats"
          }
        }
      }
    },
    "/v1/components": {
      "get": {
        "operationId": "listComponents",
        "summary": "List or search technical components.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "maximum": 100
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Component list with total"
          }
        }
      }
    },
    "/v1/boms": {
      "get": {
        "operationId": "listBoms",
        "summary": "List public bills of materials.",
        "responses": {
          "200": {
            "description": "BOM list with line counts"
          }
        }
      }
    },
    "/v1/marketplace": {
      "get": {
        "operationId": "listMarketplace",
        "summary": "List public marketplace listings.",
        "responses": {
          "200": {
            "description": "Listing list"
          }
        }
      }
    }
  },
  "x-mcp": {
    "endpoint": "https://robopartpicker.com/mcp",
    "discovery": "https://robopartpicker.com/.well-known/mcp.json",
    "serverCard": "https://robopartpicker.com/.well-known/mcp/server-card.json"
  }
}