{
  "openapi": "3.1.0",
  "info": {
    "title": "Agencia AVO: solicitud de informe y Auditoría AVO",
    "version": "1.0.0",
    "description": "Acción pública de agenciaavo.com para que una persona, o un agente de IA que actúe con su autorización, solicite el informe del test AVO Readiness o la Auditoría AVO. Usa solo datos veraces y el consentimiento real de la persona.",
    "contact": {
      "name": "Agencia AVO · Mr Crab 7",
      "email": "info@agenciaavo.com",
      "url": "https://agenciaavo.com/"
    }
  },
  "servers": [
    {
      "url": "https://agenciaavo.com"
    }
  ],
  "paths": {
    "/": {
      "post": {
        "operationId": "solicitarAuditoriaAvo",
        "summary": "Solicitar el informe AVO o la Auditoría AVO",
        "description": "Envía el formulario auditoria-avo. Las respuestas del test (q01 a q12) son opcionales y mejoran el informe.",
        "requestBody": {
          "required": true,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "required": [
                  "form-name",
                  "nombre",
                  "email",
                  "empresa",
                  "privacidad"
                ],
                "properties": {
                  "form-name": {
                    "type": "string",
                    "const": "auditoria-avo",
                    "description": "Identificador del formulario. Siempre auditoria-avo."
                  },
                  "nombre": {
                    "type": "string",
                    "maxLength": 120,
                    "description": "Nombre de la persona de contacto."
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "description": "Email donde se enviará el informe AVO."
                  },
                  "empresa": {
                    "type": "string",
                    "maxLength": 160,
                    "description": "Nombre de la empresa."
                  },
                  "web": {
                    "type": "string",
                    "description": "Web de la empresa (opcional)."
                  },
                  "telefono": {
                    "type": "string",
                    "description": "Teléfono (opcional)."
                  },
                  "privacidad": {
                    "type": "string",
                    "const": "acepto",
                    "description": "Aceptación expresa de la política de privacidad por parte de la persona. Obligatorio."
                  },
                  "comunicaciones": {
                    "type": "string",
                    "enum": [
                      "acepto"
                    ],
                    "description": "Solo si la persona consiente expresamente recibir novedades por email. Opcional."
                  },
                  "q01-identidad": {
                    "type": "string",
                    "enum": [
                      "No, o no lo sé",
                      "En parte, hay diferencias",
                      "Sí, idénticos en todas partes"
                    ],
                    "description": "Identidad digital (discover): ¿Tu empresa tiene los mismos datos (nombre, dirección, teléfono, horario) en la web, Google Business Profile y directorios? Opcional."
                  },
                  "q02-indexacion": {
                    "type": "string",
                    "enum": [
                      "No lo sé",
                      "Indexada, pero gran parte se carga con JavaScript",
                      "Sí, el contenido está en el HTML"
                    ],
                    "description": "SEO técnico e indexación (discover): ¿Tu web está indexada en Google y su contenido principal se puede leer sin ejecutar JavaScript? Opcional."
                  },
                  "q03-entidades": {
                    "type": "string",
                    "enum": [
                      "No, es genérica",
                      "Más o menos",
                      "Sí, sin ambigüedad"
                    ],
                    "description": "Entidades (understand): ¿Tu web deja claro quién eres, qué haces, dónde y para quién, en frases que una IA pueda repetir sin interpretar? Opcional."
                  },
                  "q04-schema": {
                    "type": "string",
                    "enum": [
                      "No",
                      "Algunos, sin revisar",
                      "Completos y validados"
                    ],
                    "description": "Datos estructurados (understand): ¿Tu web tiene datos estructurados Schema.org (Organization, LocalBusiness, Service, FAQPage…)? Opcional."
                  },
                  "q05-servicios": {
                    "type": "string",
                    "enum": [
                      "No, una página general",
                      "Solo algunos",
                      "Sí, todos"
                    ],
                    "description": "Productos y servicios (understand): ¿Cada servicio o producto tiene su propia página con qué incluye, para quién es y cómo se contrata? Opcional."
                  },
                  "q07-reputacion": {
                    "type": "string",
                    "enum": [
                      "Pocas o ninguna",
                      "Algunas, sin responder",
                      "Muchas, recientes y respondidas"
                    ],
                    "description": "Reputación (verify): ¿Tienes reseñas recientes y verificables en Google u otras plataformas, y las respondes? Opcional."
                  },
                  "q08-fuentes": {
                    "type": "string",
                    "enum": [
                      "No",
                      "Algunos",
                      "Sí, varios relevantes"
                    ],
                    "description": "Fuentes externas (verify): ¿Otros sitios (medios, directorios, asociaciones, partners) hablan de tu empresa y enlazan a tu web? Opcional."
                  },
                  "q06-precios": {
                    "type": "string",
                    "enum": [
                      "Nada, todo bajo consulta",
                      "Algún dato suelto",
                      "Sí, claros y actualizados"
                    ],
                    "description": "Precios y condiciones (select): ¿Publicas precios, rangos o condiciones (plazos, garantías, cancelación, formas de pago)? Opcional."
                  },
                  "q09-comparabilidad": {
                    "type": "string",
                    "enum": [
                      "No",
                      "En parte",
                      "Sí"
                    ],
                    "description": "Comparabilidad (select): Solo con lo que publicas, ¿podría un agente compararte con la competencia en zona, especialidad, plazos e idiomas? Opcional."
                  },
                  "q10-tiempo-real": {
                    "type": "string",
                    "enum": [
                      "No",
                      "Se actualizan a mano de vez en cuando",
                      "Sí, sincronizados"
                    ],
                    "description": "Información en tiempo real (act): ¿Tu disponibilidad, agenda, stock u horarios están actualizados y accesibles online? Opcional."
                  },
                  "q11-acciones": {
                    "type": "string",
                    "enum": [
                      "No, solo teléfono o email",
                      "Un formulario sencillo",
                      "Sí, conectado a agenda o CRM"
                    ],
                    "description": "Integraciones y acciones (act): ¿Se puede reservar, pedir presupuesto o comprar online sin hablar con nadie? Opcional."
                  },
                  "q12-medicion": {
                    "type": "string",
                    "enum": [
                      "No",
                      "Lo intuimos, sin datos",
                      "Sí, lo medimos"
                    ],
                    "description": "Medición de conversiones agénticas (act): ¿Sabes cuántos clientes te llegan desde ChatGPT, Gemini, Perplexity u otros asistentes de IA? Opcional."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Solicitud recibida. Una persona del equipo responde en un máximo de 2 días laborables."
          },
          "303": {
            "description": "Recibida y redirigida a la página de confirmación."
          }
        }
      }
    }
  }
}