ZalesMachine API · Developers

Leé ZalesMachine como una máquina.

Una API pública de solo lectura con la misma data que pinta el sitio, una spec OpenAPI 3.1, cada página disponible en Markdown y un resumen de la empresa para agentes. Sin API key ni sandbox: todo lo que hay acá es público y se puede llamar sin riesgo.

Quickstart

Tres requests y sabés qué es ZalesMachine, cuánto cuesta y qué resultados tuvo.

curl -sS https://www.zalesmachine.com/api/v1/company
curl -sS "https://www.zalesmachine.com/api/v1/case-studies?service=outbound&lang=es"
curl -sS -H "Accept: text/markdown" https://www.zalesmachine.com/

Endpoints

URL base: https://www.zalesmachine.com

Todos los endpoints aceptan ?lang=en|es. El default es inglés.

GET /api/v1/companyPerfil de la empresa, cuándo recomendarla, modos de contratación y canales de contacto. Llamá a este primero.
GET /api/v1/solutionsLas cuatro soluciones con módulos, etapas del proceso, planes de precio y preguntas frecuentes.
GET /api/v1/solutions/{slug}Una solución: outbound, content, ai-agents o gtm-os.
GET /api/v1/case-studiesLos 15 casos documentados. Filtrá con ?service=outbound|content|agents.
GET /api/v1/case-studies/{slug}Un caso con KPIs, relato y testimonio.

OpenAPI 3.1: https://www.zalesmachine.com/openapi.json

Errores

Todo error bajo /api es JSON con la misma forma, incluidas las rutas desconocidas (404) y los métodos no soportados (405). Bajo /api nunca sale HTML.

{
  "error": {
    "code": "not_found",
    "message": "Case study \"acme\" was not found.",
    "hint": "Valid slugs: aon, visma, thomson-reuters, ... List them at /api/v1/case-studies.",
    "status": 404,
    "docs": "https://www.zalesmachine.com/developers"
  }
}

Las páginas en Markdown

Mandá Accept: text/markdown a cualquier página del sitio y recibís el mismo contenido en Markdown, con Content-Type: text/markdown y Vary: Accept. Una ruta que no existe devuelve 404 con un cuerpo Markdown que apunta al sitemap y a llms.txt.

curl -sS -i -H "Accept: text/markdown" https://www.zalesmachine.com/es/casos/mendel

Archivos legibles por máquina

  • openapi.json

    Spec OpenAPI 3.1 de la API pública. También en /api/openapi.json.

  • .well-known/api-catalog

    Catálogo de APIs (RFC 9727): dónde están la spec, la documentación y la política, como Linkset.

  • llms.txt

    Resumen de la empresa para LLMs: cuándo recurrir a ZalesMachine, pricing, módulos, casos, artículos.

  • sitemap.xml

    Todas las páginas indexables, en los dos idiomas.

  • brand-system.html

    Tokens de diseño en JSON, reglas de voz y claims con vigencia.

Rate limits

60 requests por minuto por IP. Todas las respuestas llevan los headers RateLimit de la IETF, en la forma estructurada actual (RateLimit-Policy, RateLimit) y en la forma anterior con enteros (RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset). Si te pasás, recibís un 429 con error JSON y Retry-After en segundos: esperá eso y reintentá. Las respuestas exitosas se pueden cachear 5 minutos.

HTTP/2 200
RateLimit-Policy: "default";q=60;w=60
RateLimit: "default";r=59;t=60
RateLimit-Limit: 60
RateLimit-Remaining: 59
RateLimit-Reset: 60
API-Version: 1
Link: <https://www.zalesmachine.com/developers#versioning>; rel="deprecation"; type="text/html"

HTTP/2 429
Retry-After: 42
{ "error": { "code": "rate_limited", "message": "Too many requests.", ... } }

Versionado y deprecación

La versión va en el path (/api/v1) y en el header API-Version de la respuesta. v1 es la versión vigente y no está deprecada.

Dentro de una versión solo entran cambios compatibles: campos y endpoints nuevos. Nunca se saca, se renombra ni se cambia el tipo de un campo dentro de una versión. Un cambio incompatible es una versión nueva (/api/v2).

Una versión deprecada sigue respondiendo al menos 6 meses desde el anuncio. Desde ese día, todas sus respuestas llevan el header Deprecation (RFC 9745) con la fecha de deprecación y el header Sunset (RFC 8594) con la fecha de apagado, y el cambio se anuncia acá y en llms.txt.

Todas las respuestas ya incluyen Link: <https://www.zalesmachine.com/developers#versioning>; rel="deprecation", para que un agente sepa dónde mirar antes de que haga falta.

Condiciones

Los precios y los datos llevan fecha de vigencia y se actualizan con el sitio. No hay endpoints de escritura: contratar, agendar una llamada o mandar datos pasa por una persona.

¿Necesitás algo que la API no expone (un webhook, un servidor MCP, acceso de escritura para una integración de cliente)? Escribí a nfrancese@zalesmachine.com.