Send real letters from code.

One API call. One physical letter. Delivered anywhere in Germany.
Built for AI agents and automation.

curl \
  -X POST \
  https://agentic-letters.com/api/letters \
  -H "Authorization: Bearer al_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "pdf": "<base64-encoded A4 PDF>",
    "recipient": {
      "name": "Max Mustermann",
      "street": "Musterstraße 1",
      "zip": "10115",
      "city": "Berlin"
    }
  }'

How it works

STEP 1

Buy credits

Pay with Stripe. Get your API key via email. No signup, no login.

STEP 2

Send a request

POST a base64-encoded A4 PDF with a recipient address. That’s it.

STEP 3

We mail it

Your letter is printed, enveloped, and dropped in the mailbox. Next business day.

For AI Agents

SKILL

Give your AI agent the ability to send physical letters. Works with OpenClaw and any agent framework that supports tool/skill files.

INSTALLATION – JUST TEXT YOUR AGENT

Hey, install this as a skill please: agentic-letters.com/SKILL.md

The SKILL.md is a plain text file your agent reads to learn how to use the API. You can review it here before installing.

PREVIEW
# SKILL.md - agentic-letters

Send physical letters anywhere in Germany with a single API call.

## When to use

Use this skill when the user wants to send a physical letter, document, or legal notice to a German address.

**Example triggers:**
- "Send a cancellation letter to my gym"
- "Mail this PDF to Deutsche Telekom"
- "I need to send a DSGVO data access request"
- "Send a letter to my landlord"
- "Mail this to the insurance company"
- "Send a formal objection to this address"
- "Write and send a letter to this address"
- "Ship this PDF via postal mail"
- "I need to mail a legal notice"
- "Post this cancellation letter"

For details on supported formats, limits, and pricing, see the FAQ: https://agentic-letters.com/faq

## Setup & API key

This skill requires an API key. Check if one exists:

```bash
cat ~/.openclaw/secrets/agentic_letters.env 2>/dev/null
```

API Reference

POST/api/letters

Submit a letter for delivery. Costs 1 credit.

REQUEST BODY
{
  "pdf": "<base64 A4 PDF>",
  "recipient": {
    "name": "Max Mustermann",
    "street": "Musterstraße 1",
    "zip": "10115",
    "city": "Berlin",
    "country": "DE"
  },
  "label": "Gym Cancellation"
}
RESPONSE
{
  "id": "550e8400-e29b-41d4-a716",
  "status": "queued",
  "label": "Gym Cancellation",
  "created_at": "2026-02-24T19:00:00Z",
  "credits_remaining": 4
}
GET/api/letters/:id

Check the status of a letter.

Status values:queuedprintedsentreturned
RESPONSE
{
  "id": "550e8400-e29b-41d4-a716",
  "status": "sent",
  "recipient_name": "Max Mustermann",
  "recipient_street": "Musterstraße 1",
  "recipient_city": "Berlin",
  "recipient_zip": "10115",
  "recipient_country": "DE",
  "label": "Gym Cancellation",
  "created_at": "2026-02-24T19:00:00Z",
  "updated_at": "2026-02-25T10:30:00Z"
}
GET/api/letters

List all your letters.

RESPONSE
{
  "letters": [
    {
      "id": "550e8400-e29b-41d4-a716",
      "status": "sent",
      "recipient_name": "Max Mustermann",
      "recipient_city": "Berlin",
      "label": "Gym Cancellation",
      "created_at": "2026-02-24T19:00:00Z",
      "updated_at": "2026-02-25T10:30:00Z"
    }
  ]
}
GET/api/credits

Check your remaining credits.

RESPONSE
{
  "credits": 4,
  "email": "[email protected]"
}
AUTHENTICATION

All endpoints require a Bearer token:

Authorization: Bearer al_your_api_key

Pricing

1 credit = 1 letter. No hidden fees. No subscription.