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-65qazbogs-atlasimexs-projects.vercel.app. 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.

MethodPathDescription
GET/apiAtlasimex SL API index — this document.
GET/api/v1Pinned v1 index (frozen contract).
GET/api/statusHealth check: API version and status.
GET/api/blog?locale=en&limit=20List published blog posts.
GET/api/blog/translated-slug?sourceLocale=en&targetLocale=es&slug=...Resolve a blog slug across locales.
GET/api/portfolioList beverage portfolio brands.
POST/api/forms/submitSubmit a contact form (public, rate-limited).
POST/api/newsletter/subscribeSubscribe 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-65qazbogs-atlasimexs-projects.vercel.app/api/v1/status
# API-Version: v1
curl https://atlasimex-65qazbogs-atlasimexs-projects.vercel.app/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: 3210

Example requests

curl https://atlasimex-65qazbogs-atlasimexs-projects.vercel.app/api/blog?locale=en&limit=5
curl https://atlasimex-65qazbogs-atlasimexs-projects.vercel.app/api/portfolio
curl -X POST https://atlasimex-65qazbogs-atlasimexs-projects.vercel.app/api/newsletter/subscribe \
  -H 'Content-Type: application/json' \
  -d '{"email":"buyer@example.com"}'

Contact form example

curl -X POST https://atlasimex-65qazbogs-atlasimexs-projects.vercel.app/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.

More resources

Developer & API Documentation | Atlasimex SL | Atlasimex SL