openapi: 3.1.0 info: title: Clawvisor Auth Gateway API version: 0.2.0 description: The Clawvisor gateway API — the authorization layer AI agents call to act on external services (Gmail, Calendar, Drive, Contacts, GitHub, Slack, Notion, Linear, Stripe, Twilio, iMessage) without ever holding the underlying credentials. Agents declare a **task** describing their purpose and the service/action pairs they need; the user approves the scope once; and every subsequent gateway request is checked against restrictions, task scope, intent verification, and (optionally) per-request human approval before Clawvisor injects credentials, executes through an adapter, and returns a clean semantic result. This description is GENERATED by the API Evangelist enrichment pipeline from Clawvisor's public README and agent protocol (skills/clawvisor/SKILL.md.tmpl); Clawvisor does not publish an OpenAPI document. Every path, method, field, and status below is documented in github.com/clawvisor/clawvisor. x-generated-by: api-evangelist-enrichment-pipeline x-source: https://github.com/clawvisor/clawvisor/blob/main/README.md license: name: MIT url: https://github.com/clawvisor/clawvisor/blob/main/LICENSE contact: name: Clawvisor url: https://clawvisor.com servers: - url: https://app.clawvisor.com description: Hosted Clawvisor (managed service) - url: http://localhost:25297 description: Self-hosted local daemon (default port) security: - agentToken: [] tags: - name: Gateway description: Execute authorized actions on downstream services through the gateway. paths: /api/gateway/request: post: operationId: gatewayRequest tags: - Gateway summary: Execute an authorized action description: Execute a single action on a downstream service under an approved task. Clawvisor checks restrictions, validates the action against task scope and intent verification, injects credentials, executes through the service adapter, and returns a semantic result. Requests without a `task_id` fall back to per-request approval. Use `?wait=true` to block until a pending request resolves. parameters: - name: wait in: query required: false schema: type: boolean requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GatewayRequest' responses: '200': description: Gateway result (see status field). content: application/json: schema: $ref: '#/components/schemas/GatewayResponse' '401': description: Missing or invalid agent token. content: application/json: schema: $ref: '#/components/schemas/Error' /api/gateway/request/{request_id}/execute: post: operationId: executeGatewayRequest tags: - Gateway summary: Execute a previously approved pending request description: Execute a gateway request that was left `pending` for human approval, once the user has approved it. Idempotent on `request_id`. parameters: - name: request_id in: path required: true schema: type: string responses: '200': description: Gateway result. content: application/json: schema: $ref: '#/components/schemas/GatewayResponse' components: schemas: GatewayRequest: type: object required: - service - action properties: service: type: string action: type: string params: type: object additionalProperties: true reason: type: string description: Why the agent is making this request (checked by intent verification). request_id: type: string description: Client-supplied correlation id; used for callbacks and the /execute follow-up. task_id: type: string description: The approved task this request runs under. Omit for per-request approval. session_id: type: string description: Required on standing tasks; scopes chain-context verification to one invocation. context: type: object properties: source: type: string callback_url: type: string format: uri GatewayResponse: type: object properties: status: type: string enum: - executed - pending - blocked - restricted - pending_task_approval - pending_scope_expansion - task_expired - error result: type: object properties: summary: type: string data: {} audit_id: type: string error: type: string code: type: string description: Machine error code, e.g. SERVICE_NOT_CONFIGURED, MISSING_SESSION_ID. Error: type: object properties: status: type: string error: type: string code: type: string securitySchemes: agentToken: type: http scheme: bearer description: Agent token (or dashboard JWT for admin-gated endpoints), sent as Authorization Bearer header. agentTokenHeader: type: apiKey in: header name: X-Clawvisor-Agent-Token description: Agent token for the skill catalog endpoint.