Skip to main content
Ark uses a prepaid credit system for billing. You purchase credits in advance, and credits are deducted as you send emails. This applies to both the REST API and SMTP.

Pricing

MetricCost
Per 1,000 emails$0.50
Per email$0.0005
Per recipient billing: You’re charged per recipient, not per API call. An email to 3 recipients counts as 3 emails.

Example Costs

EmailsCost
1,000$0.50
10,000$5.00
100,000$50.00
1,000,000$500.00

Welcome Credit

All new organizations receive $5.00 in welcome credits - enough to send approximately 10,000 emails. This lets you fully evaluate Ark before adding payment details.

How Credits Work

1

Reserve

When you send an email, credits are reserved immediately before the email is processed.
2

Send

The email is sent to recipients.
3

Confirm or Refund

If sending succeeds, the reserved credits are deducted. If sending fails immediately (e.g., Postal rejection), credits are refunded.
Bounces are still charged: If an email is accepted by our system but later bounces (e.g., mailbox full, user doesn’t exist), you’re still charged. This is standard practice as the email was transmitted successfully.

Balance Checks

REST API

Balance is checked when you call the send endpoint. If insufficient, you’ll receive a 402 response:
{
  "success": false,
  "error": {
    "code": "insufficient_balance",
    "message": "Insufficient credit balance",
    "suggestion": "Add credits at https://arkhq.io/org/billing"
  }
}

SMTP

Balance is checked when the DATA command completes. If insufficient:
452 Insufficient credit balance. Add credits to continue.

Auto-Recharge

Enable auto-recharge to avoid interruptions:
SettingDescriptionDefault
EnabledWhether auto-recharge is activeOff
ThresholdBalance that triggers recharge$2.00
AmountHow much to add when triggered$10.00
When your balance drops below the threshold, we automatically charge your saved payment method.
Recommended settings: For production workloads, enable auto-recharge with a threshold that covers at least one day of typical sending volume.

Fail-Open Design

Ark’s billing system is designed to fail open - if our billing service is temporarily unavailable, emails are accepted rather than rejected. This ensures:
  • Your email sending isn’t interrupted by transient billing issues
  • High availability for critical transactional emails
  • You’re only charged for emails we can successfully bill
If the billing system is down, we queue billing records and process them when service is restored. You may see delayed balance updates in rare cases.

Managing Your Balance

Check Balance

View your current balance at arkhq.io/org/billing.

Add Credits

  1. Go to Billing in your dashboard
  2. Click Add Credits
  3. Select an amount (5,5, 10, 20,20, 50, or $100)
  4. Complete payment via Stripe

Transaction History

View all billing transactions in your dashboard:
  • Credit purchases
  • Auto-recharge events
  • Usage charges (per API call or SMTP session)
  • Refunds

Payment Methods

We accept:
  • Credit cards (Visa, Mastercard, American Express)
  • Debit cards
Payment is processed securely via Stripe. Card details are never stored on our servers.

Managing Cards

  • Add cards via the Billing page
  • Set a default card for auto-recharge
  • Remove cards anytime via Stripe Customer Portal

Invoices & Receipts

Access invoices and receipts through the Stripe Customer Portal:
  1. Go to Billing in your dashboard
  2. Click View Invoices or Stripe Portal
  3. Download PDF invoices for any transaction

Error Handling

Billing Errors

ErrorHTTP StatusCauseSolution
billing_not_configured402No billing accountSet up billing in dashboard
insufficient_balance402Balance too lowAdd credits
billing_error500System errorRetry (fails open)

SDK Handling

import ark
from ark import Ark

client = Ark()

try:
    email = client.emails.send(
        from_="[email protected]",
        to=["[email protected]"],
        subject="Hello",
        html="<p>Hello!</p>"
    )
except ark.BadRequestError as e:
    if e.code == "insufficient_balance":
        # Balance too low - add credits or wait for auto-recharge
        print(f"Add credits: {e.suggestion}")

FAQ

If you’re sending a batch and your balance runs out, emails that haven’t been processed yet will fail with insufficient_balance. Successfully queued emails will still be sent.
Yes, sandbox emails count against your credit balance. The welcome credit covers extensive sandbox testing.
Credits are non-refundable but never expire. Contact support for special circumstances.
Multiply your monthly email volume by $0.0005. For example:
  • 50,000 emails/month = $25/month
  • 500,000 emails/month = $250/month
The minimum credit purchase is $5.00 (10,000 emails).

Next Steps