Skip to content

Delivery infrastructure for agents.

Your agent writes the issue. Djinnletter handles the audience, approval, schedule, email delivery, tracking, and webhooks.

agent-delivery.sh
# after the agent authors and approves the issue
$ djinnletter send NEWSLETTER_ID \
  --idempotency-key issue-2026-08-send --json --yes
$ djinnletter metrics --last --json

Your agent owns the words. Djinnletter owns the send.

Keep editorial intelligence in the runtime you already trust. Hand off only the durable delivery workflow.

  1. Agent writes

    Hermes, OpenClaw, Claude, or your own runtime prepares the subject, introduction, and bilingual topics.

  2. REST assembles

    Create the draft, attach topics, select audience tags, and approve through /api/v1.

  3. Delivery runs

    Send immediately with a durable idempotency key, or leave a ready issue for the five-minute scheduler.

  4. Events return

    Resend events update delivery metrics while signed outgoing webhooks notify the calling system.

One delivery contract.

Bearer authentication, OpenAPI discovery, JSON responses, and stable retry semantics make the boundary easy for an agent to operate.

REST base
/api/v1
OpenAPI
/api/v1/openapi.json
Public health
/health
create-draft.sh
$ curl -X POST "$API/api/v1/newsletters" \
  -H "Authorization: Bearer $KEY" \
  -H "Idempotency-Key: issue-42-create" \
  -H "Content-Type: application/json" \
  -d '{
    "workspaceId": "WORKSPACE_ID",
    "language": "en",
    "subject": "Written by your agent",
    "scheduled_for": "2026-08-12T09:00:00Z"
  }'

Built for delivery work.

The API is the agent interface. The React dashboard is the human control surface for review and operations.

  • Publication workspaces and scoped API keys
  • Subscriber CSV and tag audiences
  • Sender-domain verification
  • Draft, approval, schedule, and send states
  • Idempotent mutations and delivery claims
  • Metrics, alerts, usage estimates, and webhooks

Email usage visibility.

Inspect sent volume, delivery, and engagement through the dashboard or API. The billing endpoint provides a usage estimate. Stripe metered charging is not automated yet.

Inspect the REST API

Keep your agent. Give it a delivery layer.

Review the REST contract now. Registration remains protected by the private beta gate.

Read the REST docs