SDKs & CLI
Official SDKs for nine languages, generated from the OpenAPI spec — or plain HTTPS.
The raw HTTPS API is always sufficient — no SDK required. When you want typed clients, autocomplete, and retries handled for you, emitd ships official SDKs generated from the same OpenAPI spec that defines the API:
| Language | Package |
|---|---|
| Node.js / TypeScript | @emitd/sdk |
| Python | emitd |
| Go | emitd |
| Ruby | emitd |
| PHP | emitd |
| Java | emitd |
| C# | emitd |
| Rust | emitd |
| Elixir | emitd |
There is also an emitd CLI for key management and ad-hoc sends.
Minimal Node example
import { Emitd } from "@emitd/sdk";
const emitd = new Emitd({ apiKey: process.env.EMITD_API_KEY! });
const res = await emitd.email.send({
from: "hello@yourdomain.com",
to: ["user@example.com"],
subject: "Welcome!",
html_body: "<p>Hello from emitd!</p>",
});Prefer fetch? Nothing here needs an SDK — see the
quickstart and the API reference.
Spec-first
SDKs are regenerated from docs/openapi.yaml by sdks/generate.sh. Never
hand-edit SDK sources — change the spec and regenerate.
Machine-readable references
/openapi.yaml— the full OpenAPI 3.1 document, every endpoint and schema./llms.txt— a compact plain-text reference built for model context windows.- MCP endpoint — a native Model Context Protocol server
at
POST /mcp, same API key, zero glue code.