ZalesMachine API · Developers
Read ZalesMachine like a machine.
A public, read-only API with the same data the site renders, an OpenAPI 3.1 spec, every page available as Markdown, and a company summary for agents. No API key, no sandbox: everything here is public and safe to call.
Quickstart
Three requests and you know what ZalesMachine is, what it costs and what it has delivered.
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
Base URL: https://www.zalesmachine.com
Every endpoint accepts ?lang=en|es. Default is English.
| GET /api/v1/company | Company profile, when-to-use guidance, operating modes and contact channels. Call this first. |
| GET /api/v1/solutions | The four solutions with modules, process stages, pricing plans and FAQs. |
| GET /api/v1/solutions/{slug} | One solution: outbound, content, ai-agents or gtm-os. |
| GET /api/v1/case-studies | The 15 documented results. Filter with ?service=outbound|content|agents. |
| GET /api/v1/case-studies/{slug} | One case study with KPIs, narrative and testimonial. |
OpenAPI 3.1: https://www.zalesmachine.com/openapi.json
Errors
Every error under /api is JSON with the same shape, including unknown paths (404) and unsupported methods (405). No HTML is ever returned under /api.
{
"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"
}
}Pages as Markdown
Send Accept: text/markdown to any page of the site and you get the same content as Markdown, with Content-Type: text/markdown and Vary: Accept. Unknown paths return a 404 with a Markdown body that points to the sitemap and llms.txt.
curl -sS -i -H "Accept: text/markdown" https://www.zalesmachine.com/es/casos/mendelMachine-readable files
- openapi.json
OpenAPI 3.1 spec of the public API. Also at /api/openapi.json.
- .well-known/api-catalog
API catalog (RFC 9727): where the spec, the docs and the policy live, as a Linkset.
- llms.txt
Company summary for LLMs: when to use ZalesMachine, pricing, modules, case studies, articles.
- sitemap.xml
Every indexable page in both languages.
- brand-system.html
Design tokens as JSON, voice rules and claims with validity dates.
Rate limits
60 requests per minute per client IP. Every response carries the IETF RateLimit headers, in the current structured form (RateLimit-Policy, RateLimit) and in the earlier integer form (RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset). Over the limit you get a 429 with a JSON error and Retry-After in seconds: wait that long and retry. Successful responses are cacheable for 5 minutes.
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.", ... } }Versioning and deprecation
The version is in the path (/api/v1) and in the API-Version response header. v1 is the current version and is not deprecated.
Within a version, only backward-compatible changes ship: new fields and new endpoints. A field is never removed, renamed or retyped inside a version. A breaking change is a new version (/api/v2).
A deprecated version keeps answering for at least 6 months after the announcement. From that day on, every response of that version carries a Deprecation header (RFC 9745) with the deprecation date and a Sunset header (RFC 8594) with the shutdown date, and the change is announced here and in llms.txt.
Every response already includes Link: <https://www.zalesmachine.com/developers#versioning>; rel="deprecation", so an agent knows where to look before it matters.
Terms
Prices and figures carry an as-of date and are updated with the site. There are no write endpoints: hiring, booking a call or sending data goes through a person.
Need something the API does not expose (a webhook, an MCP server, write access for a client integration)? Write to nfrancese@zalesmachine.com.