Skip to content

Email infrastructure for developers, marketers, and AI agents. Transactional, broadcast, and inbound through one API, CLI, and SDKs for every runtime.

<container> <heading> Welcome, {{firstName}} </heading> <paragraph> Thanks for joining us. </paragraph> <button href="https://sevk.io"> Get started → </button> </container>
import { readFile } from 'node:fs/promises' import { Sevk } from 'sevk' const markup = await readFile('welcome.sevk', 'utf8') const sevk = new Sevk(process.env.SEVK_API_KEY!) await sevk.emails.send({ from: 'hello@yourdomain.com', to: 'ada@example.com', subject: 'Welcome aboard', markup })
Drop into any runtime
Node.js
Python
PHP
Ruby
Go
Rust
Java
.NET
Capabilities

One workflow,
every role.

Marketers write copy, designers shape the template, developers wire it to the API. Same markup, same render output, same primitives across every surface.

View all features

AI generation

Draft sevk Markup from a prompt or an AI agent. Output is valid markup, not a free-text guess.

Visual editor

WYSIWYG that emits sevk Markup, not HTML soup. Marketers and developers edit the same source.

MCP for AI agents

Connect agents directly to sevk through 74 focused tools. Existing API keys, existing scopes, same backend logic.

Inbound emails

Receive on your own domain, forward messages to a shared inbox, and link replies back to the original send.

Command-line interface

Send, render, broadcast from your shell. Single static binary, multiple profiles, scriptable end to end.

SDKs in eight languages

Node, Python, Go, Rust, Java, .NET, PHP, and Ruby. One HTTP surface, identical resource shape across every SDK.

sevk Markup

Write emails
like code.

A markup language designed for email clients. No build step, no transpile, no framework runtime. Write it, render it, send it.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<section background-color="#f8f9fa" padding="40px 20px">
  <container max-width="600px">
    <section padding="0" text-align="center">
      <heading level="1" color="#1a1a1a">
        Welcome to sevk! 👋
      </heading>
    </section>
    <section padding="20px 0" text-align="center">
      <text color="#666666">
        We're excited to have you on board.
      </text>
    </section>
    <section padding="0" text-align="center">
      <button padding="10px 20px" background-color="#0a0a0a" color="#ffffff" border-radius="8px" href="https://sevk.io">
        Get Started
      </button>
    </section>
  </container>
</section>
UTF-8LFSpaces: 2
19 lines
Official SDKs

Polyglot SDKs,
same markup.

Render sevk Markup locally and call emails.send from Node, Bun, Python, Go, PHP, Ruby, .NET, Java, or Rust. Same primitives, same HTTP surface.

Browse all SDKs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { Sevk, render } from 'sevk';

const sevk = new Sevk('your-api-key');

const html = render(`
  <section padding="40px 20px" background-color="#f8f9fa">
    <container max-width="600px">
      <heading level="1" color="#1a1a1a">Welcome!</heading>
      <paragraph color="#666666">Thanks for signing up.</paragraph>
      <button href="https://example.com" background-color="#5227FF" color="#ffffff">
        Get Started
      </button>
    </container>
  </section>
`);

sevk.emails.send({
  to: 'recipient@example.com',
  from: 'hello@yourdomain.com',
  subject: 'Welcome!',
  html
});
UTF-8LFSpaces: 2
AI generation

Prompt in,
markup out.

Describe the email. Get valid sevk Markup back. Edit it, render it, send it. The output is the same source the editor uses.

AI Prompt

Command line

Your terminal is a first-class client.

Every API surface has a CLI command. Works in CI jobs, AI agent tool calls, and ad-hoc shell sessions. Same auth model, same output formats.

Browse commands
Send
$sevk emails send --from you@x.com --to a@b.com --subject Hi --text "..."
Render
$sevk markup render email.sevk -o output.html
Broadcasts
$sevk broadcasts send bcst_42 --yes
Domains
$sevk domains list
Webhooks
$sevk webhooks list --profile prod
Pricing

Prepaid balance.
Per email cost.

Outbound and accepted inbound email each include 1,000 free messages every month. After its own allowance, each direction costs $0.001 per email. No tiers, seat fees, or plan upgrades. Higher-volume pricing is negotiable. Excludes applicable taxes.

Free outbound1,000each month
Free accepted inbound1,000each month
Paid usage$0.001per email after allowance
Top-up minimum$5prepaid balance
Changelog

Changelog
in your inbox.

New sevk Markup tags, SDK releases, and API changes. Sent when there's something to report, not on a schedule.

Unsubscribe with one click. Privacy Policy.