Catalog PyPI
PACKAGE EXPLORERView in registry

agentletter

PyPI

The physical-mail API for AI agents. Send a real, tracked, compliant letter with one call.

agentsaiapidirect-maillettersmailmcpusps
Versions collected1
Direct dependencies1From release 0.1.0
Last observed20 Oct, 22:34 UTC

README

Version 0.1.0 documentation

Agent Letter — Python SDK

The physical-mail API for AI agents. Send a real, tracked, compliant letter with one call — the postal equivalent of giving an agent an email address.

Private beta. Request access at agentletter.dev.

Install

pip install agentletter

Quickstart

from agentletter import AgentLetter

client = AgentLetter()  # reads AGENTLETTER_API_KEY from the environment

letter = client.send(
    to={
        "name": "Jane Doe",
        "line1": "1 Market St",
        "city": "San Francisco",
        "state": "CA",
        "zip": "94105",
    },
    body=pdf_bytes,     # PDF bytes — or html="..." / template="..."
    certified=True,     # proof of delivery
)

print(letter.id, letter.status)  # "ltr_9f2a"  "in_transit"

Set your key once:

export AGENTLETTER_API_KEY="sk_live_..."

Sending content

Provide exactly one of:

client.send(to=addr, body=pdf_bytes)                       # a PDF
client.send(to=addr, html="<h1>Notice</h1>...")            # rendered HTML
client.send(to=addr, template="tmpl_123",
            variables={"name": "Jane", "amount": "$420"})  # a saved template

Typed addresses are supported too:

from agentletter import Address

client.send(
    to=Address(name="Jane Doe", line1="1 Market St",
               city="San Francisco", state="CA", zip="94105"),
    body=pdf_bytes,
)

Tracking

letter = client.get("ltr_9f2a")
print(letter.status, letter.tracking_number, letter.expected_delivery)

Async

import asyncio
from agentletter import AsyncAgentLetter

async def main():
    async with AsyncAgentLetter() as client:
        letter = await client.send(to=addr, body=pdf_bytes, certified=True)
        print(letter.id)

asyncio.run(main())

Errors

All errors subclass AgentLetterError:

from agentletter import AgentLetterError, AuthenticationError, RateLimitError

try:
    client.send(to=addr, body=pdf_bytes)
except AuthenticationError:
    ...   # bad / missing key
except RateLimitError:
    ...   # back off and retry
except AgentLetterError as e:
    print(e.status_code, e.message)

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.015 Jun 20261

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
noetiq/agentletter

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:34 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:b66aacc2cbc22fad590e40c1880f631fbdcf5cd95e4aed075ea45a465f34f249