{
    "name": "Servicio Técnico Gran Canaria - API de contenido",
    "description": "API pública de solo lectura. La lectura no exige claves ni registro.",
    "version": "v1",
    "openapi": "https://serviciotecnicograncanaria.es/openapi.json",
    "mcp": "https://serviciotecnicograncanaria.es/mcp",
    "mcpCard": "https://serviciotecnicograncanaria.es/.well-known/mcp/server-card.json",
    "docs": "https://serviciotecnicograncanaria.es/desarrolladores/",
    "docsMarkdown": "https://serviciotecnicograncanaria.es/api.md",
    "servidor": "https://serviciotecnicograncanaria.es/wp-json/agentes/v1",
    "formato": "JSON (UTF-8). Todas las operaciones son GET.",
    "operations": [
        {
            "operationId": "search_pages",
            "summary": "Buscar páginas del sitio",
            "descripcion": "Busca en las páginas publicadas de Servicio Técnico Gran Canaria por servicio, problema o zona de Gran Canaria y devuelve las URL más relevantes con un extracto. Es el punto de entrada normal: pasa después la URL a read_page. Si hay más resultados, la respuesta trae next_cursor para pedir la página siguiente.",
            "metodo": "GET",
            "url": "https://serviciotecnicograncanaria.es/wp-json/agentes/v1/search_pages",
            "parametros": [
                {
                    "nombre": "query",
                    "en": "query",
                    "obligatorio": true,
                    "tipo": "string",
                    "descripcion": "Texto en español, por ejemplo \"lavadora\". Funciona mejor con el servicio, el problema o la zona que con frases largas."
                },
                {
                    "nombre": "limit",
                    "en": "query",
                    "obligatorio": false,
                    "tipo": "integer",
                    "descripcion": "Resultados por página, de 1 a 25. Por defecto, 8."
                },
                {
                    "nombre": "cursor",
                    "en": "query",
                    "obligatorio": false,
                    "tipo": "string",
                    "descripcion": "El next_cursor de la respuesta anterior, para pedir la página siguiente de resultados."
                }
            ],
            "ejemplo": "curl \"https://serviciotecnicograncanaria.es/wp-json/agentes/v1/search_pages?query=lavadora&limit=3\"",
            "autenticacion": "ninguna"
        },
        {
            "operationId": "read_page",
            "summary": "Leer una página en Markdown",
            "descripcion": "Devuelve el texto completo de una página publicada de Servicio Técnico Gran Canaria, convertido a Markdown y sin menús, pie ni llamadas a la acción. Acepta la URL completa, la ruta o el slug.",
            "metodo": "GET",
            "url": "https://serviciotecnicograncanaria.es/wp-json/agentes/v1/read_page",
            "parametros": [
                {
                    "nombre": "url",
                    "en": "query",
                    "obligatorio": true,
                    "tipo": "string",
                    "descripcion": "URL completa (https://serviciotecnicograncanaria.es/contacto/), ruta (/contacto/) o slug (contacto) de una página de este sitio."
                }
            ],
            "ejemplo": "curl \"https://serviciotecnicograncanaria.es/wp-json/agentes/v1/read_page?url=https%3A%2F%2Fserviciotecnicograncanaria.es%2Fcontacto%2F\"",
            "autenticacion": "ninguna"
        },
        {
            "operationId": "get_company_info",
            "summary": "Cómo funciona el servicio, servicios y zonas",
            "descripcion": "Qué atiende Servicio Técnico Gran Canaria, su horario de atención y su cobertura, cómo pedir un servicio, el modelo de servicio (quién hace, presupuesta, factura y garantiza el trabajo), los impuestos, la nota de precios y la lista de servicios y zonas con su URL. Úsalo para explicar al usuario cómo funciona el servicio y cómo pedirlo. Con section se pide solo una parte.",
            "metodo": "GET",
            "url": "https://serviciotecnicograncanaria.es/wp-json/agentes/v1/get_company_info",
            "parametros": [
                {
                    "nombre": "section",
                    "en": "query",
                    "obligatorio": false,
                    "tipo": "string",
                    "descripcion": "Qué parte devolver: all (todo, por defecto), contact (cómo pedir un servicio y horario), service_model (cómo funciona el servicio, precios e impuestos), coverage (zonas con su URL) o services (servicios con su URL)."
                }
            ],
            "ejemplo": "curl \"https://serviciotecnicograncanaria.es/wp-json/agentes/v1/get_company_info?section=service_model\"",
            "autenticacion": "ninguna"
        }
    ],
    "errores": {
        "formato": "{\"code\":\"...\",\"message\":\"...\",\"data\":{\"status\":404,\"hint\":\"qué hacer\"}}",
        "codigos": {
            "400": "Falta un parámetro obligatorio o es inválido; data.hint dice cuál.",
            "401": "Token inválido o ausente donde hace falta; WWW-Authenticate apunta a los metadatos.",
            "404": "Ruta o página inexistente.",
            "429": "Cuota agotada; Retry-After dice cuántos segundos esperar."
        },
        "siempre_json": true
    },
    "empezar": {
        "sin_clave": "La lectura funciona sin credenciales: GET https://serviciotecnicograncanaria.es/wp-json/agentes/v1/get_company_info",
        "sandbox": "No hace falta uno aparte: la API es de solo lectura. Comprobación: https://serviciotecnicograncanaria.es/api/sandbox",
        "claves": "Autoservicio: POST https://serviciotecnicograncanaria.es/oauth/register da client_id y client_secret al instante, sin aprobación humana."
    },
    "getting_started": {
        "no_api_key_needed": "No API key is needed to read: https://serviciotecnicograncanaria.es/wp-json/agentes/v1/get_company_info",
        "sandbox": "Read-only API: production is safe to test against (https://serviciotecnicograncanaria.es/api/sandbox).",
        "deprecation_policy": "https://serviciotecnicograncanaria.es/desarrolladores/#versionado",
        "self_serve_keys": "POST https://serviciotecnicograncanaria.es/oauth/register returns client credentials instantly, no approval needed."
    },
    "sandbox": "https://serviciotecnicograncanaria.es/api/sandbox",
    "versionado": {
        "version": "v1",
        "donde": "En la ruta: https://serviciotecnicograncanaria.es/wp-json/agentes/v1/ y en la cabecera API-Version.",
        "compatibles": "Campos y operaciones nuevos se añaden dentro de v1 sin aviso; ignora lo que no conozcas.",
        "incompatibles": "Salen en una versión nueva (v2). La anterior sigue viva al menos 90 días tras anunciar su retirada.",
        "plazo_minimo_dias": 90,
        "aviso": "Una versión en retirada responde con Deprecation (RFC 9745) y Sunset (RFC 8594). Hoy ninguna lo está.",
        "en_retirada": [],
        "politica": "https://serviciotecnicograncanaria.es/desarrolladores/#versionado",
        "contrato": "https://serviciotecnicograncanaria.es/openapi.json"
    },
    "rateLimit": {
        "anonimo": "60 peticiones / 60 s por IP",
        "cabeceras": [
            "RateLimit",
            "RateLimit-Policy",
            "RateLimit-Limit",
            "RateLimit-Remaining",
            "RateLimit-Reset",
            "Retry-After"
        ],
        "identificado": "600 peticiones / 60 s por client_id"
    },
    "operacionesConToken": [
        {
            "operationId": "get_quota",
            "metodo": "GET",
            "url": "https://serviciotecnicograncanaria.es/wp-json/agentes/v1/quota",
            "scope": "quota:read",
            "autenticacion": "Authorization: Bearer TOKEN"
        },
        {
            "operationId": "get_agent_identity",
            "metodo": "GET",
            "url": "https://serviciotecnicograncanaria.es/agent/identity",
            "scope": "cualquiera",
            "autenticacion": "Authorization: Bearer TOKEN",
            "descripcion": "Quién es el agente que llama (client_id, scope y cuota). Sin token responde 401 con WWW-Authenticate y resource_metadata."
        }
    ],
    "auth": {
        "obligatoria": false,
        "para_que_sirve": "Identificarse no abre contenido nuevo: sube la cuota de 60 a 600 peticiones por minuto.",
        "metodo": "OAuth 2.0 client_credentials; el token va en Authorization: Bearer",
        "metadatos": "https://serviciotecnicograncanaria.es/.well-known/oauth-authorization-server",
        "recurso": "https://serviciotecnicograncanaria.es/.well-known/oauth-protected-resource/wp-json/agentes/v1",
        "alta": "https://serviciotecnicograncanaria.es/oauth/register",
        "token": "https://serviciotecnicograncanaria.es/oauth/token",
        "documentacion": "https://serviciotecnicograncanaria.es/auth.md"
    }
}