{
  "openapi": "3.1.0",
  "info": {
    "title": "Agent Friendly Web Public Audit API",
    "version": "0.2.0",
    "description": "Read-only audit of public website signals. The AF score is Gabriel Mucchiut's methodology, not an official certification. Auxiliary diagnostics include crawler policy, Content Signals and current discovery catalogs without changing the historical AF v1 score."
  },
  "servers": [{ "url": "https://agentfriendlyweb.dev" }],
  "paths": {
    "/api/scan": {
      "post": {
        "summary": "Audit public website signals",
        "operationId": "scanPublicWebsite",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["url"],
                "properties": { "url": { "type": "string", "format": "uri" } },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Observed evidence, AF v1 score, auxiliary diagnostics, probes and limits",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": ["target", "checkedAt", "evidence", "readiness", "probes", "limits"],
                  "properties": {
                    "target": { "type": "string", "format": "uri" },
                    "checkedAt": { "type": "string", "format": "date-time" },
                    "evidence": { "type": "object", "additionalProperties": { "type": "boolean" } },
                    "readiness": { "type": "object" },
                    "probes": { "type": "array", "items": { "type": "object" } },
                    "limits": { "type": "array", "items": { "type": "string" } }
                  }
                }
              }
            }
          },
          "400": { "description": "Invalid or non-public target" }
        }
      }
    }
  }
}
