Retrieve billing
GET /billing
The plan, this period's usage, payment state, add-ons and any pending change.
Request
curl -X GET "https://api.rasket.com/billing" \
-H "Authorization: Bearer $RASKET_API_KEY" \
-H "User-Agent: acme-billing/1.0"const response = await fetch("https://api.rasket.com/billing", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.RASKET_API_KEY}`,
"User-Agent": "acme-billing/1.0",
},
});
const data = await response.json();import os
import requests
response = requests.get(
"https://api.rasket.com/billing",
headers={
"Authorization": f"Bearer {os.environ['RASKET_API_KEY']}",
"User-Agent": "acme-billing/1.0",
},
)
print(response.json())Response 200
{
"object": "billing",
"plan": {
"code": "pro_50k",
"name": "Pro 50k",
"monthly_price_cents": 2000,
"included_emails": 50000,
"overage_per_1000_cents": 60
},
"effective_plan_code": "pro_50k",
"subscription": {
"status": "active",
"current_period_start": "2026-09-01T00:00:00.000Z",
"current_period_end": "2026-10-01T00:00:00.000Z",
"invoicing": "automatic",
"latest_invoice_status": "paid",
"trial_ends_at": null
},
"usage": {
"period_start": "2026-09-01",
"period_end": "2026-10-01",
"emails": 12840,
"included_emails": 50000,
"emails_today": 412,
"day_start": "2026-09-14",
"daily_limit": 10000,
"monthly_limit": 50000,
"marketing_emails": 0,
"marketing_included_emails": 10000,
"marketing_contacts_included": 1000,
"marketing_addon_code": null
},
"pay_as_you_go": {
"enabled": false
},
"payment_method": {
"present": true,
"brand": "visa",
"last4": "4242"
},
"addons": [],
"pending_change": null,
"payment_state": null,
"checkout_available": false,
"paid_plan": true,
"storage_addon_purchase": "add_item",
"inbox_seats": {
"code": "inbox_seat",
"quantity": 0,
"included": 3
},
"dedicated_ip": {
"recommended_min_daily": 5000,
"avg_daily_sends_30d": 412
}
}payment_methodsays whether a card is on file and shows its brand and last four digits. The card itself never leaves the payment provider.usage.emails_todaycounts today's sends againstusage.daily_limit, the most this team can send today. The count starts again at 00:00 UTC.daily_limitisnullwhen there is no daily limit.usage.monthly_limitis the most this team can send this month before a send is refused. It can differ fromusage.included_emails, the plan's allowance, when a limit was set for the team or the sending tier's cap is lower than the plan.nullwhen nothing caps the month.checkout_availableistruewhen the team has no subscription yet, soPOST /billing/checkoutis the way to start one.paid_planis the other question: a team can hold a subscription for inbox storage alone while still on the free plan.usage.marketing_*is the marketing meter, its own pool: campaign recipients never count againstusage.emails, andPOST /emailsnever counts againstmarketing_emails.inbox_seatscounts Inbox mailboxes past the ones the plan includes;dedicated_ipputs the volume a dedicated IP is recommended from beside this team's own 30-day daily average.storage_addon_purchasesays how to buy inbox storage right now —add_itemthroughPOST /billing/addons,checkoutthroughPOST /billing/checkoutwithaddon_code,heldwhen the team already has it, orunavailablewhen it cannot be bought at the moment. Both purchase calls answer503 service_unavailablewhile it isunavailable, before anything is charged or recorded.