# PennyPost > The affordable email API. Transactional email for software: $9/month sends > 30,000 emails, free tier of 3,000/month per project domain, instant self-serve > signup with a test key, live key issued automatically on domain verification. Base API URL: https://api.pennypost.io Sign up / dashboard: https://app.pennypost.io Node SDK: `npm install pennypost` ## Docs - [API documentation](https://pennypost.io/docs.md): quickstart, auth, send, logs, suppressions, domains, errors, sending policy - [Pricing](https://pennypost.io/pricing.md): plans, overage, comparison table ## Key facts - Send: POST /v1/emails with Bearer pp_live_/pp_test_ key; `to` is always an array (max 50); response lists accepted/suppressed/quarantined/failed per recipient; Idempotency-Key header supported. - Test mode: pp_test_ keys never deliver real mail, skip domain verification and caps, rows marked "mode":"test". - Logs searchable 30 days on every plan; suppressions automatic on hard bounce/complaint, manageable via /v1/suppressions. - Enforcement is automated and always explained: warn → restrict (new-recipient quarantine only; existing recipients keep flowing) → pause, with reasons. - Acceptable use: opt-in email only; cold outreach and purchased lists are banned (https://pennypost.io/terms). - Coming soon: Broadcasts (unlimited contacts, pay per send) and a machine- payable agent lane (HTTP 402, a penny a send). Early-access waitlists: POST /v1/waitlist {"product":"broadcasts"|"agents","email":...}. ## Legal - [Terms](https://pennypost.io/terms) - [Privacy](https://pennypost.io/privacy)