{
  "openapi": "3.1.0",
  "info": {
    "title": "turva.dev Agent API",
    "version": "3.7.0",
    "description": "Read-only metadata + payable endpoints for AI agents. MPP + x402 + ACP enabled on /api/agent/* routes.",
    "contact": {
      "name": "Erik Rekola",
      "email": "info@turva.dev",
      "url": "https://turva.dev/"
    },
    "license": {
      "name": "Proprietary",
      "url": "https://turva.dev/legal"
    }
  },
  "servers": [
    {
      "url": "https://turva.dev"
    }
  ],
  "x-payment-protocols": [
    "x402",
    "mpp",
    "acp"
  ],
  "paths": {
    "/api/agent/audit": {
      "post": {
        "summary": "Order an agent-readiness audit",
        "operationId": "orderAudit",
        "x-payment-info": {
          "intent": "charge",
          "method": "stripe",
          "amount": 650000,
          "currency": "EUR",
          "description": "Audit — fixed scope, 2-3 weeks",
          "x402": {
            "network": "base",
            "asset": "USDC",
            "amount": "6500000000",
            "scheme": "exact"
          }
        },
        "responses": {
          "200": {
            "description": "Audit ordered"
          },
          "402": {
            "description": "Payment Required (x402)"
          }
        }
      }
    },
    "/api/agent/advisory": {
      "post": {
        "summary": "Subscribe to monthly advisory",
        "operationId": "subscribeAdvisory",
        "x-payment-info": {
          "intent": "session",
          "method": "stripe",
          "amount": 300000,
          "currency": "EUR",
          "interval": "month",
          "description": "Advisory — monthly retainer (min 3 months)",
          "x402": {
            "network": "base",
            "asset": "USDC",
            "amount": "3000000000",
            "scheme": "exact"
          }
        },
        "responses": {
          "200": {
            "description": "Subscription created"
          },
          "402": {
            "description": "Payment Required (x402)"
          }
        }
      }
    },
    "/api/agent/implementation": {
      "post": {
        "summary": "Book an implementation day",
        "operationId": "bookImplementationDay",
        "x-payment-info": {
          "intent": "charge",
          "method": "stripe",
          "amount": 150000,
          "currency": "EUR",
          "description": "Implementation — per day, scoped per task",
          "x402": {
            "network": "base",
            "asset": "USDC",
            "amount": "1500000000",
            "scheme": "exact"
          }
        },
        "responses": {
          "200": {
            "description": "Day booked"
          },
          "402": {
            "description": "Payment Required (x402)"
          }
        }
      }
    },
    "/x402": {
      "get": {
        "summary": "x402 discovery endpoint (HTTP 402)",
        "operationId": "getX402Endpoint",
        "responses": {
          "402": {
            "description": "Payment required"
          }
        }
      }
    },
    "/agent/auth/register": {
      "get": {
        "summary": "Agent registration instructions",
        "operationId": "getAgentAuthRegister",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/agent/auth/claim": {
      "get": {
        "summary": "Agent claim instructions",
        "operationId": "getAgentAuthClaim",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/agent/auth/revoke": {
      "get": {
        "summary": "Agent revocation instructions",
        "operationId": "getAgentAuthRevoke",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "summary": "LLM summary",
        "operationId": "getLlmsTxt",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/llms-full.txt": {
      "get": {
        "summary": "Full concatenated content",
        "operationId": "getLlmsFullTxt",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/auth.md": {
      "get": {
        "summary": "Agent registration metadata",
        "operationId": "getAuthMd",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/sitemap.xml": {
      "get": {
        "summary": "Sitemap",
        "operationId": "getSitemap",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/ai.txt": {
      "get": {
        "summary": "AI policy",
        "operationId": "getAiPolicy",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/mcp/server-card.json": {
      "get": {
        "summary": "MCP Server Card",
        "operationId": "getMcpCard",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/agent-skills/index.json": {
      "get": {
        "summary": "Agent Skills index",
        "operationId": "getSkillsIndex",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/api-catalog": {
      "get": {
        "summary": "API catalog",
        "operationId": "getApiCatalog",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/security.txt": {
      "get": {
        "summary": "Security",
        "operationId": "getSecurity",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/oauth-authorization-server": {
      "get": {
        "summary": "OAuth Authorization Server Metadata",
        "operationId": "getOauthDiscovery",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/oauth-protected-resource": {
      "get": {
        "summary": "OAuth Protected Resource Metadata",
        "operationId": "getOauthProtectedResource",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/ap2": {
      "get": {
        "summary": "AP2 manifest",
        "operationId": "getAp2",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/acp": {
      "get": {
        "summary": "ACP manifest",
        "operationId": "getAcp",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/x402": {
      "get": {
        "summary": "x402 discovery manifest",
        "operationId": "getX402",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/x402-mesh.json": {
      "get": {
        "summary": "x402-mesh",
        "operationId": "getX402Mesh",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/mpp": {
      "get": {
        "summary": "MPP discovery",
        "operationId": "getMpp",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    },
    "/.well-known/ucp": {
      "get": {
        "summary": "UCP profile",
        "operationId": "getUcp",
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    }
  }
}