{
  "opencollection": "1.0.0",
  "info": {
    "name": "Amigo Account Surface Patient API",
    "version": "0.1.0"
  },
  "request": {
    "auth": {
      "type": "bearer",
      "token": "{{bearerToken}}"
    }
  },
  "items": [
    {
      "info": {
        "name": "Surface Patient",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Redirect To Surface",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.amigo.ai/s/f/:surface_id",
            "params": [
              {
                "name": "surface_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Short-URL redirect: ``/s/f/{surface_id}`` → ``/s/{token}``.\n\nGenerates a fresh HMAC token and issues a 302 redirect so that SMS\nmessages can contain a short, clickable link instead of the long\nbase64-encoded token URL."
        },
        {
          "info": {
            "name": "Lookup Field",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.amigo.ai/s/:token/lookup/:lookup_type",
            "params": [
              {
                "name": "token",
                "value": "",
                "type": "path"
              },
              {
                "name": "lookup_type",
                "value": "",
                "type": "path"
              },
              {
                "name": "q",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Search healthcare reference data for form field autocompletion.\n\nSupports: medication (RxNorm), allergy (RxNorm), pharmacy (NPPES NPI),\ninsurance (static carrier list). Token-authenticated, no Bearer auth."
        },
        {
          "info": {
            "name": "Ocr Extract",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.amigo.ai/s/:token/ocr",
            "params": [
              {
                "name": "token",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Extract structured data from an image (e.g. insurance card) using Gemini Vision.\n\nReturns extracted field key-value pairs and a confidence score.\nToken-authenticated, no Bearer auth."
        },
        {
          "info": {
            "name": "Render Surface",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.amigo.ai/s/:token",
            "params": [
              {
                "name": "token",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Render a patient-facing surface as HTML.\n\nToken-authenticated — no Bearer auth required.\nRecords a surface.opened lifecycle event on first view."
        },
        {
          "info": {
            "name": "Get Surface Spec",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.amigo.ai/s/:token/spec",
            "params": [
              {
                "name": "token",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Return surface spec as JSON for the forms app.\n\nThe forms app (Next.js) calls this on SSR to fetch the spec,\nsaved field values, and merged branding. Records surface.opened\nevent on first access."
        },
        {
          "info": {
            "name": "Get Availability",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.amigo.ai/s/:token/availability",
            "params": [
              {
                "name": "token",
                "value": "",
                "type": "path"
              },
              {
                "name": "date",
                "value": "",
                "type": "query",
                "description": "ISO date (YYYY-MM-DD) to start search"
              },
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days to search forward"
              }
            ]
          },
          "docs": "Return available appointment slots for the surface's workspace.\n\nQueries FHIR Slot resources from world.entities_synced that are free\nand within the requested date range. Token-authenticated, no Bearer auth."
        },
        {
          "info": {
            "name": "Book Appointment",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.amigo.ai/s/:token/book",
            "params": [
              {
                "name": "token",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Submit a booking request for a specific slot.\n\nWrites a booking.requested world event tied to the surface's entity.\nToken-authenticated, no Bearer auth."
        },
        {
          "info": {
            "name": "Heal Field",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.amigo.ai/s/:token/heal",
            "params": [
              {
                "name": "token",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Auto-heal a form field value using Claude Haiku.\n\nBest-effort LLM correction — returns original value with confidence 0\nif the service is unavailable or inference fails.\nToken-authenticated, no Bearer auth."
        },
        {
          "info": {
            "name": "Submit Surface",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.amigo.ai/s/:token/submit",
            "params": [
              {
                "name": "token",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Submit a patient-facing surface form.\n\nAccepts standard HTML form POST. Writes surface.submitted event\nwith confidence 0.5 (self-reported data)."
        },
        {
          "info": {
            "name": "Save Field",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://api.amigo.ai/s/:token/fields/:key",
            "params": [
              {
                "name": "token",
                "value": "",
                "type": "path"
              },
              {
                "name": "key",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Auto-save a single field value.\n\nCalled by client-side JavaScript on field blur.\nWrites surface.field_saved event with confidence 0.5."
        }
      ]
    }
  ],
  "bundled": true
}