{
  "agentsJson": "0.1.0",
  "info": {
    "title": "garage-door-bellingham-wa Agent API",
    "version": "1.0.0",
    "description": "Reliable garage door services in Bellingham and surrounding areas"
  },
  "servers": [
    {
      "url": "https://garagedoorbellingham.com/api/agent"
    }
  ],
  "auth": [
    {
      "type": "none",
      "rateLimit": "per-ip:30/min, per-site:300/min"
    }
  ],
  "flows": [
    {
      "id": "request-callback",
      "title": "Request a callback from garage-door-bellingham-wa",
      "description": "Two-step flow. Draft the callback, surface a summary to the user for confirmation, then confirm. The draft step returns a human-readable summary so the agent can read it back before committing.",
      "steps": [
        {
          "id": "draft",
          "operationId": "draftCallback",
          "method": "POST",
          "path": "/actions/request-callback/draft",
          "input": [
            {
              "name": "callerName",
              "type": "string",
              "required": true,
              "description": "Full name of the person requesting the callback."
            },
            {
              "name": "callerPhone",
              "type": "string",
              "required": true,
              "description": "Callback phone number in E.164 format (e.g. +13035551234)."
            },
            {
              "name": "callerEmail",
              "type": "string",
              "required": false,
              "description": "Optional email address for follow-up."
            },
            {
              "name": "reason",
              "type": "string",
              "required": true,
              "description": "Brief description of why the caller wants a callback (e.g. 'clogged drain')."
            },
            {
              "name": "preferredWindow",
              "type": "string",
              "required": false,
              "description": "Preferred time window for the callback (e.g. 'this afternoon', 'tomorrow morning')."
            }
          ],
          "output": [
            "draftId",
            "summary",
            "etaWindow"
          ]
        },
        {
          "id": "confirm",
          "operationId": "confirmCallback",
          "method": "POST",
          "path": "/actions/request-callback/confirm",
          "dependsOn": "draft",
          "input": [
            {
              "name": "draftId",
              "type": "string",
              "required": true,
              "description": "The draftId returned by the draft step."
            }
          ],
          "output": [
            "leadId",
            "expectedCallbackBy"
          ]
        }
      ]
    }
  ],
  "links": {
    "faq": "https://garagedoorbellingham.com/faq",
    "contactForm": "https://garagedoorbellingham.com/contact"
  }
}