{
  "info": {
    "name": "RotorLab API",
    "_postman_id": "b1d0c0de-0000-4000-8000-rotorlabapi01",
    "description": "RotorLab key-authenticated HTTP API (/api/v1). Set the collection variables `base_url` (e.g. http://127.0.0.1:8765) and `api_key` (your rl_... key from My account → API access). Auth is applied at the collection level as a Bearer token.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [ { "key": "token", "value": "{{api_key}}", "type": "string" } ]
  },
  "variable": [
    { "key": "base_url", "value": "http://127.0.0.1:8765", "type": "string" },
    { "key": "api_key", "value": "rl_paste_your_key_here", "type": "string" },
    { "key": "build_id", "value": "1", "type": "string" }
  ],
  "item": [
    {
      "name": "Meta",
      "item": [
        { "name": "Version", "request": { "method": "GET", "header": [],
          "url": { "raw": "{{base_url}}/api/v1/version", "host": ["{{base_url}}"], "path": ["api","v1","version"] },
          "description": "Free, unmetered. Returns API name, version, author." } },
        { "name": "Usage", "request": { "method": "GET", "header": [],
          "url": { "raw": "{{base_url}}/api/v1/usage", "host": ["{{base_url}}"], "path": ["api","v1","usage"] },
          "description": "Free, unmetered. Your daily quota, remaining, and credit balance." } }
      ]
    },
    {
      "name": "Physics",
      "item": [
        { "name": "Airframes", "request": { "method": "GET", "header": [],
          "url": { "raw": "{{base_url}}/api/v1/airframes", "host": ["{{base_url}}"], "path": ["api","v1","airframes"] } } },
        { "name": "Catalog", "request": { "method": "GET", "header": [],
          "url": { "raw": "{{base_url}}/api/v1/catalog", "host": ["{{base_url}}"], "path": ["api","v1","catalog"] } } },
        { "name": "Analyze", "request": { "method": "POST",
          "header": [ { "key": "Content-Type", "value": "application/json" } ],
          "body": { "mode": "raw", "raw": "{\n  \"airframe_type\": \"Quad X\",\n  \"motor_count\": 4,\n  \"prop_diameter_in\": 7,\n  \"prop_pitch_in\": 4,\n  \"motor_kv\": 1700\n}" },
          "url": { "raw": "{{base_url}}/api/v1/analyze", "host": ["{{base_url}}"], "path": ["api","v1","analyze"] },
          "description": "Analyze a build. Returns out (headline numbers), charts (SVG), and checks." } }
      ]
    },
    {
      "name": "Builds",
      "item": [
        { "name": "List builds", "request": { "method": "GET", "header": [],
          "url": { "raw": "{{base_url}}/api/v1/builds", "host": ["{{base_url}}"], "path": ["api","v1","builds"] } } },
        { "name": "Create / overwrite build", "request": { "method": "POST",
          "header": [ { "key": "Content-Type", "value": "application/json" } ],
          "body": { "mode": "raw", "raw": "{\n  \"name\": \"My API build\",\n  \"params\": { \"airframe_type\": \"Quad X\", \"motor_count\": 4 },\n  \"notes\": \"created via API\"\n}" },
          "url": { "raw": "{{base_url}}/api/v1/builds", "host": ["{{base_url}}"], "path": ["api","v1","builds"] } } },
        { "name": "Get build by id", "request": { "method": "GET", "header": [],
          "url": { "raw": "{{base_url}}/api/v1/builds/{{build_id}}", "host": ["{{base_url}}"], "path": ["api","v1","builds","{{build_id}}"] } } },
        { "name": "Delete build by id", "request": { "method": "DELETE", "header": [],
          "url": { "raw": "{{base_url}}/api/v1/builds/{{build_id}}", "host": ["{{base_url}}"], "path": ["api","v1","builds","{{build_id}}"] } } }
      ]
    }
  ]
}
