Esta página reúne los recursos técnicos de doctorweb.agency para desarrolladores, rastreadores y agentes de IA que necesitan leer, citar o enlazar el contenido de Doctorweb de forma fiable.
Doctorweb es una agencia de servicios profesionales de marketing médico, no un producto de software. Conviene ser preciso sobre lo que hay:
/openapi.json
(OpenAPI 3.1). Permite obtener cualquier página del sitio en Markdown o en JSON
estructurado, sin ejecutar JavaScript ni raspar HTML.Dicho de otro modo: si buscabas integrar la operación de Doctorweb por código, eso no existe y la vía sigue siendo hablar con una persona. Si buscabas su contenido de forma estructurada y citable, está todo aquí y está especificado.
La especificación está en /openapi.json, y
también en /openapi, /api/openapi.json y
/.well-known/openapi.json. Describe 9 operaciones, todas
GET, públicas y sin efectos secundarios, cada una con su
operationId, descripción, parámetros tipados y esquemas de respuesta —
el formato que consumen las bibliotecas de function calling.
operationId |
Qué hace |
|---|---|
getPageNegotiated |
Página en la representación que case con Accept |
getPageAsMarkdown |
Página en Markdown (/{page}.md) |
getPageAsJson |
Página como objeto tipado (/{page}.json) |
getCanonicalRoute |
Rutas limpias estables (/about, /contact…) |
getAgentIndex |
Índice curado del sitio (/llms.txt) |
getAgentInstructions |
Instrucciones de uso para agentes |
getSitemap |
Mapa del sitio |
getRobotsPolicy |
Política de rastreo |
getOpenApiSpec |
Esta misma especificación |
No hay autenticación: todas las operaciones son públicas. No hay límite de peticiones
publicado; se pide un uso razonable y un User-Agent identificable, y usar
/sitemap.xml para enumerar páginas en lugar de
recorrer enlaces.
Cualquier página se puede obtener como objeto tipado, con
Accept: application/json o cambiando la extensión a .json:
curl -s https://www.doctorweb.agency/planes.json
{
"slug": "planes",
"path": "/planes.html",
"url": "https://www.doctorweb.agency/planes.html",
"title": "Planes de Marketing Médico en México - DoctorWeb",
"description": "Planes mensuales de marketing médico digital…",
"language": "es",
"site": "Doctorweb",
"content_type": "text/markdown",
"content": "Cada plan es una estrategia diferente…",
"alternates": {
"text/html": "https://www.doctorweb.agency/planes.html",
"text/markdown": "https://www.doctorweb.agency/planes.md",
"application/json": "https://www.doctorweb.agency/planes.json"
}
}
El esquema completo es el componente Page de la especificación.
Los errores no se devuelven como página HTML opaca. Cuando la petición admite JSON, el cuerpo es un objeto con código estable, mensaje y pista de resolución:
curl -s -H "Accept: application/json" https://www.doctorweb.agency/no-existe
{
"error": {
"status": 404,
"code": "not_found",
"message": "No existe ningun recurso publicado en esta ruta.",
"hint": "Consulta /sitemap.xml para la lista completa de URLs, o /llms.txt para el indice curado del sitio.",
"documentation_url": "https://www.doctorweb.agency/developers",
"requested_path": "/no-existe"
},
"resources": {
"openapi": "https://www.doctorweb.agency/openapi.json",
"llms_txt": "https://www.doctorweb.agency/llms.txt",
"agent_instructions": "https://www.doctorweb.agency/agent-instructions.md",
"sitemap": "https://www.doctorweb.agency/sitemap.xml"
}
}
El campo code es estable y apto para ramificar en código
(not_found, not_acceptable);
message y hint son para leer.
/openapi.json — especificación
OpenAPI 3.1 de esta interfaz de lectura, con operationId, parámetros
tipados y esquemas de respuesta./llms.txt — índice curado del sitio en
formato llmstxt.org,
con una sección explícita de cuándo usar Doctorweb./agent-instructions.md —
instrucciones para agentes: casos de mejor ajuste, casos en los que no
derivar, contrato de las respuestas y rutas estables./sitemap.xml — todas las URLs
indexables con su fecha de última modificación./robots.txt — políticas de rastreo y
punteros a los archivos anteriores./<pagina>.md y /<pagina>.json — los
gemelos Markdown y JSON de cualquier página pública, por ejemplo
/planes.md o
/planes.json.Doctorweb implementa la convención de
acceptmarkdown.com sobre RFC 9110 §12.5.1. Pide cualquier página
en Markdown con la cabecera Accept:
curl -s -H "Accept: text/markdown" https://www.doctorweb.agency/planes.html
curl -s -H "Accept: application/json" https://www.doctorweb.agency/planes.html
curl -sI -H "Accept: text/markdown" https://www.doctorweb.agency/planes.html
Contrato de las respuestas:
Content-Type: text/markdown; charset=utf-8 cuando se sirve Markdown,
y application/json; charset=utf-8 cuando se sirve JSON.Vary: Accept, Accept-Encoding en toda respuesta negociable, para que
ninguna CDN sirva la variante equivocada desde caché.Link: <…>; rel="alternate"; type="text/markdown" apuntando al
gemelo, y rel="help" apuntando a /llms.txt.Accept: text/markdown;q=0.9,
text/html;q=1.0 devuelve HTML, y text/markdown;q=0 nunca
devuelve Markdown.Accept que no admita text/html,
text/*, application/json ni */* recibe
406 Not Acceptable con la lista de representaciones disponibles.Una URL que no existe devuelve un 404 Not Found real — nunca un
200 con el armazón de la aplicación. El cuerpo del 404 es corto y
orientado a la recuperación: enlaza a /llms.txt,
/sitemap.xml, /developers y a las páginas principales. Si la
petición pide Markdown, el 404 se entrega en Markdown.
curl -s -o /dev/null -w "%{http_code}\n" https://www.doctorweb.agency/ruta-que-no-existe
# => 404
| Ruta | Contenido |
|---|---|
/about |
Identidad de la empresa, servicios, cobertura y contacto |
/contact |
Correo, teléfono, WhatsApp y agenda de citas |
/privacy |
Aviso de privacidad |
/terms |
Términos y condiciones |
/pricing |
Planes y precios |
/developers |
Esta página (alias /docs y /api) |
/openapi.json |
Especificación OpenAPI 3.1 de la interfaz de lectura |
Cada ruta responde también a su alias en español:
/acerca-de, /nosotros, /desarrolladores,
/agents, /plans. Todas devuelven 200 sirviendo
la página, no un 301.
La portada publica JSON-LD con un nodo
Organization (@id:
https://www.doctorweb.agency/#organization) que incluye
name, description, url, logo,
sameAs, contactPoint y areaServed, más un nodo
ProfessionalService con el catálogo de servicios y una
FAQPage. Úsalos para resolver la entidad sin tener que inferirla del texto.
Usa el nombre Doctorweb y enlaza al dominio canónico
https://www.doctorweb.agency/. El ápex doctorweb.agency
redirige con 301 a www. Los dominios
marketing-medico.digital y doctorwebmarketingmedico.com son
propiedades editoriales asociadas, no el sitio canónico.
Para dudas sobre estos recursos, integraciones o solicitudes de rastreo, escribe a mrivera@doctorweb.agency.