rootmail

Getting started

Base URL & conventions

Where the API lives, and the conventions every endpoint shares.

All API requests go to a single versioned base URL:

base URL
https://service.gateml.io/v1

Conventions

  • JSON in, JSON out. Request and response bodies are snake_case.
  • Every resource has a prefixed id — msg_…, tmpl_…, cmp_… — so an id is self-describing.
  • Responses wrap single objects as { object: "message", … } and collections as { object: "list", data: [...], next_cursor }.
  • Timestamps are ISO 8601 UTC strings.
  • Writes validate strictly and fail closed with a structured error.

The SDK maps casing for you

The Node SDK speaks camelCase to your code and translates to the API's snake_case on the wire, so you never think about it:

casing.ts
const msg = await mail.messages.create({ to, subject, html });
console.log(msg.id, msg.createdAt); // camelCase in JS