All notes

Billing · October 2, 2026

Pay for Pigeon with Stripe

Pro plans are charged through Stripe Checkout. The free plan stays available, and a paid plan raises the monthly email cap on the same account.

Open Settings, then Plan. Free is $0 and includes 3,000 emails a month. Pro 50,000 is $20 a month. Pro 100,000 is $35 a month. Both Pro plans drop the daily cap and allow 10 domains.

Upgrade

  1. Sign in and open Settings.
  2. Under Plan, press Choose $20 or Choose $35.
  3. Stripe Checkout collects the card and sends you back to Settings.
  4. The current plan line shows Pro, and the monthly cap matches the price you picked.

Use case: a launch that will pass 3,000 emails

A signup spike on the free plan stops at 100 emails in a UTC day and 3,000 in the month. Move to Pro 50,000 before the launch if you expect more than that. Turn on Pay as you go on the same page if you want Pro to keep sending after the included amount, at $0.90 per 1,000. Leave it off and sending pauses at the plan cap.

Change the card or the plan

Manage billing opens the Stripe customer portal after the first successful checkout. Update the card there. Charge overage now invoices unbilled Pro overage once it is at least $0.50. Smaller leftovers stay on the account until they reach that amount.

What the app checks

Pigeon stores the Stripe customer and subscription on the team. A paid Checkout session sets the plan to pro_50 or pro_100 and marks the subscription active. Sending uses that plan for the daily cap, the monthly cap, and the domain limit. You do not put a Stripe secret in your own app to send mail. Mail still uses a Pigeon API key.

shell
# Mail is unchanged after you upgrade.
curl -X POST https://pigeonfs.com/api/emails \
  -H "Authorization: Bearer pg_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Billing <billing@yourdomain.com>",
    "to": ["customer@example.com"],
    "subject": "Your receipt",
    "html": "<p>Thanks for the order.</p>"
  }'
Start on the free plan Send from an editor after the plan is active