Developers
Atlasimex SL Developer & API Documentation
The Atlasimex SL public REST API gives AI agents and integrators programmatic access to public content (blog posts, portfolio brands, RSS feeds) plus public write endpoints (contact form, newsletter). Machine-readable entry points: OpenAPI JSON, OpenAPI YAML, API index, MCP manifest and llms.txt.
Base URL and authentication
Base URL: https://atlasimex.es. Read endpoints require no authentication and issue no API keys. Write endpoints are public but rate-limited server-side. For integration questions contact contact@atlasimex.es.
Endpoints
Every path above has a pinned v1 alias under /api/v1 (e.g. /api/v1/blog). Pin /api/v1/* when you need a frozen contract. You may also send an API-Version: v1 request header; the served version is echoed back on every response.
| Method | Path | Description |
|---|---|---|
| GET | /api | Atlasimex SL API index — this document. |
| GET | /api/v1 | Pinned v1 index (frozen contract). |
| GET | /api/status | Health check: API version and status. |
| GET | /api/blog?locale=en&limit=20 | List published blog posts. |
| GET | /api/blog/translated-slug?sourceLocale=en&targetLocale=es&slug=... | Resolve a blog slug across locales. |
| GET | /api/portfolio | List beverage portfolio brands. |
| POST | /api/forms/submit | Submit a contact form (public, rate-limited). |
| POST | /api/newsletter/subscribe | Subscribe an email to the newsletter. |
| GET | /api/rss/{locale} | RSS 2.0 blog feed per locale (en, es, fr, ar). |
API versioning and deprecation
The current major is v1. Unversioned /api/* paths track the current major; pinned /api/v1/* aliases serve the identical frozen contract. Breaking changes ship as a new /api/v2 major with at least 6 months of overlap: a deprecated major carries Deprecation: true plus a Sunset date header (and a sunset field in the endpoint index). Every response also echoes the served version in API-Version.
curl -i https://atlasimex.es/api/v1/status
# API-Version: v1
curl https://atlasimex.es/api/blog?locale=en&limit=5 -H 'API-Version: v1'Rate limits
Every API response carries RFC RateLimit headers (RateLimit-Limit, RateLimit-Policy, and RateLimit-Remaining / RateLimit-Reset where quota is tracked per client). Public reads share a generous quota (600/minute); the contact form allows 10 submissions/hour per IP and the newsletter 5 attempts/hour per email. A 429 always carries Retry-After in seconds. Wait that long before retrying and self-throttle on the RateLimit headers in real time.
HTTP/1.1 429 Too Many Requests
API-Version: v1
RateLimit-Limit: 5
RateLimit-Remaining: 0
RateLimit-Reset: 3210
RateLimit-Policy: "5";w=3600
Retry-After: 3210Example requests
curl https://atlasimex.es/api/blog?locale=en&limit=5
curl https://atlasimex.es/api/portfolio
curl -X POST https://atlasimex.es/api/newsletter/subscribe \
-H 'Content-Type: application/json' \
-d '{"email":"buyer@example.com"}'Contact form example
curl -X POST https://atlasimex.es/api/forms/submit \
-H 'Content-Type: application/json' \
-d '{
"form_type": "contact_page",
"form_data": {"email":"buyer@example.com","first_name":"Alex","message":"Private label inquiry"},
"locale": "en",
"source_page": "contact"
}'Spam protection
Contact form submissions are delivered server-side through the Stalwart webmail form endpoint (EmailJS fallback) and carry a website_hp honeypot field: always send it empty. A filled value is treated as a bot submission and silently discarded: nothing is stored or sent.
Error responses
All API errors return JSON with a stable code, a human message, a resolution hint and links to this page and the OpenAPI spec, never an HTML error page:
{
"success": false,
"code": "UNSUPPORTED_LOCALE",
"message": "Unsupported locale \"de\".",
"hint": "Use one of: en, es, fr, ar. Example: /api/blog?locale=es",
"docs": "/docs",
"openapi": "/openapi.json"
}Webhooks and MCP
Atlasimex SL does not offer webhooks. Poll the REST endpoints or RSS feeds instead. For Model Context Protocol clients, the MCP-compatible manifest at /mcp.json describes every endpoint as a callable tool over Streamable HTTP, with a live handshake at /.well-known/mcp.