{
  "openapi": "3.0.3",
  "info": {
    "title": "AZChat",
    "version": "0.1.0",
    "description": "THIS IS: AZChat spendable handles, ephemeral rooms (TTL/sealed), and an agent bus. Reached only through FragGate. mesh_enabled_default is false. THIS IS NOT: SMTP, a public MTA, AZMail, a mesh hop, deanonymize, or a Chromium chat runner. Do not bridge AZChat ↔ AZMail. Stranger room_pull is 404. Author: Aziel Eliab only. Works with ChatGPT (GPT Actions / OpenAI), Grok (xAI), Venice, Claude (Anthropic), Cursor (MCP), Glama (MCP), Perplexity, Microsoft Copilot / Bing, Google Gemini / Vertex, Mistral, Meta AI, Apple Intelligence surfaces, Amazon Q tooling, DuckAssist, You.com, Cohere, and other MCP/OpenAPI-capable assistants. FragGate slug azchat. Catalog MCP https://aziel-runtime.vibelock.workers.dev/mcp. Suite mesh GET /v1/mesh PROXY (QNM-BUILD-1.0; QNS-CD-1.0 hub cite; No Node Gate; No auto-heal; No public qnsd proxy).",
    "contact": {
      "name": "Aziel Eliab",
      "url": "https://github.com/AzielEliab/azchat"
    },
    "license": {
      "name": "Apache-2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0"
    }
  },
  "servers": [
    {
      "url": "https://azchat-download-tracker.vibelock.workers.dev",
      "description": "AZChat Worker"
    },
    {
      "url": "https://aziel-runtime.vibelock.workers.dev",
      "description": "aziel-runtime catalog"
    }
  ],
  "paths": {
    "/v1/health": {
      "get": {
        "operationId": "azchat_health",
        "summary": "Liveness. Does not increment downloads.",
        "tags": [
          "azchat"
        ],
        "responses": {
          "200": {
            "description": "health"
          }
        }
      }
    },
    "/v1/skill": {
      "get": {
        "operationId": "azchat_skill",
        "summary": "Skill markdown. Does not increment downloads.",
        "tags": [
          "azchat"
        ],
        "responses": {
          "200": {
            "description": "markdown"
          }
        }
      }
    },
    "/v1/doctor": {
      "get": {
        "operationId": "azchat_doctor",
        "summary": "Doctor self-check. FragGate LIVE_OPS.",
        "tags": [
          "azchat"
        ],
        "responses": {
          "200": {
            "description": "doctor"
          }
        }
      }
    },
    "/v1/example": {
      "get": {
        "operationId": "azchat_example",
        "summary": "Sample payload.",
        "tags": [
          "azchat"
        ],
        "responses": {
          "200": {
            "description": "example"
          }
        }
      }
    },
    "/v1/handle_new": {
      "post": {
        "operationId": "azchat_handle_new",
        "summary": "handle new",
        "tags": [
          "azchat"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AZChat receipt"
          }
        }
      }
    },
    "/v1/handle_rotate": {
      "post": {
        "operationId": "azchat_handle_rotate",
        "summary": "handle rotate",
        "tags": [
          "azchat"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AZChat receipt"
          }
        }
      }
    },
    "/v1/room_open": {
      "post": {
        "operationId": "azchat_room_open",
        "summary": "room open",
        "tags": [
          "azchat"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AZChat receipt"
          }
        }
      }
    },
    "/v1/room_post": {
      "post": {
        "operationId": "azchat_room_post",
        "summary": "room post",
        "tags": [
          "azchat"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AZChat receipt"
          }
        }
      }
    },
    "/v1/room_pull": {
      "post": {
        "operationId": "azchat_room_pull",
        "summary": "room pull",
        "tags": [
          "azchat"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AZChat receipt"
          }
        }
      }
    },
    "/v1/bus_send": {
      "post": {
        "operationId": "azchat_bus_send",
        "summary": "bus send",
        "tags": [
          "azchat"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AZChat receipt"
          }
        }
      }
    },
    "/v1/bus_poll": {
      "post": {
        "operationId": "azchat_bus_poll",
        "summary": "bus poll",
        "tags": [
          "azchat"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AZChat receipt"
          }
        }
      }
    },
    "/v1/verify_receipt": {
      "post": {
        "operationId": "azchat_verify_receipt",
        "summary": "verify receipt",
        "tags": [
          "azchat"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AZChat receipt"
          }
        }
      }
    },
    "/v1/import_export": {
      "post": {
        "operationId": "azchat_import_export",
        "summary": "import export",
        "tags": [
          "azchat"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AZChat receipt"
          }
        }
      }
    },
    "/v1/smtp": {
      "post": {
        "operationId": "azchat_smtp",
        "summary": "smtp",
        "tags": [
          "azchat"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AZChat receipt"
          }
        }
      }
    },
    "/v1/bridge_azmail": {
      "post": {
        "operationId": "azchat_bridge_azmail",
        "summary": "bridge azmail",
        "tags": [
          "azchat"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AZChat receipt"
          }
        }
      }
    },
    "/v1/mesh_enable": {
      "post": {
        "operationId": "azchat_mesh_enable",
        "summary": "mesh enable",
        "tags": [
          "azchat"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "AZChat receipt"
          }
        }
      }
    },
    "/v1/fraggate/list": {
      "get": {
        "operationId": "azchat_fraggate_list_proxy",
        "summary": "PROXY to aziel-runtime GET /v1/fraggate/list via AZIEL_RUNTIME. Not a local op.",
        "tags": [
          "fraggate"
        ],
        "responses": {
          "200": {
            "description": "catalog"
          }
        }
      }
    },
    "/v1/fraggate/describe": {
      "get": {
        "operationId": "azchat_fraggate_describe_proxy",
        "summary": "PROXY to aziel-runtime GET /v1/fraggate/describe. Not a local op.",
        "tags": [
          "fraggate"
        ],
        "responses": {
          "200": {
            "description": "describe"
          }
        }
      }
    },
    "/v1/fraggate/call": {
      "post": {
        "operationId": "azchat_fraggate_call_proxy",
        "summary": "PROXY to aziel-runtime POST /v1/fraggate/call. Not a local op.",
        "tags": [
          "fraggate"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "call"
          }
        }
      }
    },
    "/v1/mesh": {
      "get": {
        "operationId": "azchat_mesh_status_proxy",
        "summary": "PROXY to aziel-runtime GET /v1/mesh. Suite mesh status. Default OFF. QNS-CD-1.0 hub cite attached. Not a local op. Not a qnsd proxy.",
        "tags": [
          "mesh"
        ],
        "responses": {
          "200": {
            "description": "aziel-runtime mesh envelope"
          }
        }
      },
      "head": {
        "operationId": "azchat_mesh_status_head_proxy",
        "summary": "PROXY to aziel-runtime GET /v1/mesh. Suite mesh status. Default OFF. QNS-CD-1.0 hub cite attached. Not a local op. Not a qnsd proxy.",
        "tags": [
          "mesh"
        ],
        "responses": {
          "200": {
            "description": "aziel-runtime mesh envelope"
          }
        }
      }
    },
    "/v1/mesh/status": {
      "get": {
        "operationId": "azchat_mesh_status_proxy",
        "summary": "PROXY alias of GET /v1/mesh. QNS-CD-1.0 hub cite attached. Not a local op.",
        "tags": [
          "mesh"
        ],
        "responses": {
          "200": {
            "description": "aziel-runtime mesh envelope"
          }
        }
      }
    },
    "/v1/mesh/nodes": {
      "get": {
        "operationId": "azchat_mesh_nodes_proxy",
        "summary": "PROXY to aziel-runtime GET /v1/mesh/nodes. Live Nodes (5-minute presence) + QNS-CD-1.0 cross-map. Not a local op. Not a qnsd proxy.",
        "tags": [
          "mesh"
        ],
        "responses": {
          "200": {
            "description": "aziel-runtime mesh envelope"
          }
        }
      }
    },
    "/v1/mesh/enable": {
      "post": {
        "operationId": "azchat_mesh_enable_proxy",
        "summary": "PROXY to aziel-runtime POST /v1/mesh/enable. Operator bearer required. Rate-limited. Not a local op.",
        "tags": [
          "mesh"
        ],
        "responses": {
          "200": {
            "description": "aziel-runtime mesh envelope"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      }
    },
    "/v1/mesh/disable": {
      "post": {
        "operationId": "azchat_mesh_disable_proxy",
        "summary": "PROXY to aziel-runtime POST /v1/mesh/disable. Always allowed. Not a local op.",
        "tags": [
          "mesh"
        ],
        "responses": {
          "200": {
            "description": "aziel-runtime mesh envelope"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      }
    },
    "/v1/mesh/join": {
      "post": {
        "operationId": "azchat_mesh_join_proxy",
        "summary": "PROXY to aziel-runtime POST /v1/mesh/join. Body {product, node_id?, label?, presence?}. Refused while OFF. Not a local op.",
        "tags": [
          "mesh"
        ],
        "responses": {
          "200": {
            "description": "aziel-runtime mesh envelope"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      }
    },
    "/v1/mesh/heartbeat": {
      "post": {
        "operationId": "azchat_mesh_heartbeat_proxy",
        "summary": "PROXY to aziel-runtime POST /v1/mesh/heartbeat. Body {node_id}. Not a local op.",
        "tags": [
          "mesh"
        ],
        "responses": {
          "200": {
            "description": "aziel-runtime mesh envelope"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      }
    },
    "/v1/mesh/leave": {
      "post": {
        "operationId": "azchat_mesh_leave_proxy",
        "summary": "PROXY to aziel-runtime POST /v1/mesh/leave. Body {node_id}. Not a local op.",
        "tags": [
          "mesh"
        ],
        "responses": {
          "200": {
            "description": "aziel-runtime mesh envelope"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      }
    },
    "/v1/mesh/broadcast": {
      "post": {
        "operationId": "azchat_mesh_broadcast_proxy",
        "summary": "PROXY to aziel-runtime POST /v1/mesh/broadcast. SHA-256 receipt only. Not AnonBroadcast upload. Not a local op.",
        "tags": [
          "mesh"
        ],
        "responses": {
          "200": {
            "description": "aziel-runtime mesh envelope"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      }
    }
  }
}