Waryway · Guides · Wayletter first send

Wayletter: first send

Wayletter is a transactional send service: JSON POST /v1/send with a Bearer API key. It is not Gmail. Default transport is sink — messages are stored here (Activity), not delivered to the public internet, until you configure WAYLETTER_RELAY_*.

Wayletter First send API SMTP

Getting Started

Wayletter is a transactional send service: you POST JSON to /v1/send with a Bearer API key. It is not Gmail and not an inbox. Default transport is sink — the message is stored in this process, not delivered to the public internet, until you configure WAYLETTER_RELAY_*.

Open the dashboard at https://wayletter.waryway.com/wayletter/ and prove a first send. Create or paste an API key, then POST to https://wayletter.waryway.com/v1/send.

You are done when Activity shows the message (sink). Relay is a later choice. The six steps below are the chores.

  1. Sink honesty. Confirm default transport is stored-not-delivered until WAYLETTER_RELAY_*. Longer version: What it is (sink honesty).
  2. API key. Create or paste an API key in the dashboard (Keys tab, or paste in the header). The plaintext secret is shown once.
  3. First send. Copy-paste curl POST /v1/send with Authorization: Bearer and see the message under Activity.
  4. Optional SMTP (dev opt-in / operator). SMTP is off unless you set WAYLETTER_SMTP_ADDR=:2525. Then in a mail app’s outgoing server: host 127.0.0.1, port 2525, username the word apikey, password = the same API key. PLAIN or LOGIN. Skip if you only use curl. This is not the customer send path.
  5. Skip for a first send. Templates, Domain DNS, and Webhooks are their own dashboard tabs — not required to prove a send.
  6. Share it. Create a key for them. Give https://wayletter.waryway.com/wayletter/ plus POST /v1/send with Authorization: Bearer their key (or, if SMTP is opted in as a dev opt-in / operator path, 127.0.0.1:2525, username apikey, password = their key).

What it is (sink honesty)

Wayletter accepts JSON at POST /v1/send with from, personalizations, and content (SMTP AUTH on the same process only if you opt in). It is not an inbox, not a mailbox client, and this round is not a billing SaaS: no dedicated IPs, no public MX.

Default transport is sink. Messages are stored in this process (you can read them under Activity). They are not delivered to the public internet until you configure relay with WAYLETTER_RELAY_*. That is intentional: first send should never surprise a real recipient.

Path is process-root /v1/send (the public apps/wayletter binary). Dashboard lives at /wayletter/. Event stream is GET /wayletter/v1/events/stream.

Create or paste an API key

Open the dashboard, go to Keys (or paste a key in the header). Create one. Copy the plaintext value immediately — it is shown once.

Every HTTP send uses Authorization: Bearer YOUR_API_KEY. SMTP uses that same secret as the password.

First send: curl POST /v1/send

Replace YOUR_API_KEY with the secret you just copied. Then open Activity in the dashboard — the message should appear there (sink stores it; it does not leave the box).

curl -sS -X POST "https://wayletter.waryway.com/v1/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"from":{"email":"from@example.test"},"personalizations":[{"to":[{"email":"to@example.test"}]}],"subject":"Hello","content":[{"type":"text/plain","value":"first send"}]}'
PieceValue
Method / pathPOST /v1/send (process root on the dedicated host)
AuthAuthorization: Bearer YOUR_API_KEY
BodyJSON: from, personalizations, content
Where to lookDashboard Activity

There is one send route. Do not invent a second HTTP path. The customer send path is https://wayletter.waryway.com/v1/send.

Operator / local-dev

This subsection is for operators running a local process, not customers. Default HTTP listen is http://127.0.0.1:8080. If you changed WAYLETTER_HTTP_ADDR, swap the host/port only. Dashboard: http://127.0.0.1:8080/wayletter/. Send: http://127.0.0.1:8080/v1/send.

Optional SMTP :2525 AUTH (dev opt-in / operator)

Skip this if curl already worked. This is a dev opt-in / operator path, not the customer send path. Library and binary leave SMTP empty/off unless WAYLETTER_SMTP_ADDR is set. Port 2525 is a dev opt-in only (WAYLETTER_SMTP_ADDR=:2525). Production SMTP stays off.

To send from Thunderbird, nodemailer, or another mail app after opt-in, fill outgoing server:

Field in the mail appWhat to type
Server / host127.0.0.1 (this computer; same as the dashboard)
Port2525
Usernamethe word apikey — not your email. It is ignored; only the password is checked.
Passwordpaste the same API key
Login methodPLAIN or LOGIN if asked. Encryption can stay off on this local port.

Login is required. This is not an open relay.

Optional templates, DNS, webhooks

None of these are required for a first send. Key + curl + Activity is enough.

Share it

Wayletter is a transactional send service: JSON POST /v1/send with a Bearer API key, not Gmail. Default transport is sink — messages stay in this process (Activity) until someone later sets WAYLETTER_RELAY_*. Hand a teammate https://wayletter.waryway.com/wayletter/, an API key you created for them (not yours), and the HTTP facts below.

Create a key for them on Keys (do not give them yours). Then tell them:

First send is done when Activity shows the message. Relay (WAYLETTER_RELAY_*) is a later choice — until then, sink keeps everything in this process. Client snippets live in apps/wayletter/examples/.