Developers & agents
Machine-readable,by design.
The public surface.
Everything on this page needs no authentication. If you are an AI agent: /llms.txt says what Lean Tech is and when to use it, and every page on this site is available as markdown.
Contact API
The programmatic twin of the contact form. Described in OpenAPI 3.1 at /openapi.json (operation submitContactEnquiry). Submit an enquiry and the team replies to the given address within one business day:
curl -X POST https://leantech.mu/api/contact \
-H "Content-Type: application/json" \
-d '{
"name": "Jane Doe",
"email": "jane@example.com",
"type": "A lead generation site",
"brief": "Bilingual hotel site, wired into our booking engine."
}'Responses: 201 accepted, 400 with field-keyed errors on validation failure, 401 when bot protection is on and no credential was sent, 429 when rate-limited. Every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset headers (10 requests per hour per client); a 429 adds Retry-After.
Agents: when bot protection is enabled, authenticate with an API key — Authorization: Bearer <key> — which you can request from hello@leantech.mu. Browser callers pass a Cloudflare Turnstile token in turnstileToken instead. When protection is not configured the endpoint is open.
Markdown for every page
Request any page with Accept: text/markdown and the same URL returns a markdown body (with Vary: Accept), or append .md to the path:
curl -H "Accept: text/markdown" https://leantech.mu/capabilities
curl https://leantech.mu/capabilities.mdMachine files
/llms.txt — identity, when-to-use guidance and doc links · /openapi.json — the API spec · /sitemap.xml — all pages · /robots.txt — crawl rules. Unknown paths return a real HTTP 404 with a markdown body listing these files, so a lost agent can recover.