Payment History
Get your GetXAPI payment and top-up history via API. Free endpoint, 30 requests/min.
/account/paymentsThis endpoint is free (no credits deducted). Rate limited to 30 requests per minute per API key.
Notes
- Returns your payment history, sorted by most recent first.
- Uses the same
Authorization: Bearer <API_KEY>header as the Twitter endpoints. - Free to call, no credits consumed.
- Two kinds of credit. A top-up adds permanent wallet credits (
credits_added). A plan grants expiring plan credits (plan_credits_added). A plan payment therefore showscredits_added: 0— that is correct, not a bug.
Response (200)
{
"payments": [
{
"amount": 15,
"status": "completed",
"created_at": "2026-08-01T00:17:02.346Z",
"type": "plan",
"plan": "pro_sub",
"credits_added": 0,
"plan_credits_added": 40,
"plan_credits_added_estimated": false
},
{
"amount": 10,
"status": "completed",
"created_at": "2026-03-18T00:17:02.346Z",
"type": "topup",
"plan": null,
"credits_added": 10,
"plan_credits_added": null,
"plan_credits_added_estimated": false
}
]
}| Field | Type | Description |
|---|---|---|
amount | number | Payment amount ($) |
status | string | pending, partial, completed, expired, failed, or refunded. Only completed granted anything |
created_at | string | Payment date (ISO 8601) |
type | string | topup, plan, or monitoring |
plan | string | null | Plan id for plan and monitoring payments, else null |
credits_added | number | Permanent wallet credits added. 0 on plan payments |
plan_credits_added | number | null | Expiring plan credits granted. null when nothing was granted |
plan_credits_added_estimated | boolean | true if the figure was derived rather than recorded. See below |
plan_credits_added is null unless the payment completed. Crypto checkouts create a row
before payment arrives, and expired or failed payments never granted anything, so those rows
report null rather than the amount they would have granted. Top-ups are also null — they add
wallet credits, reported in credits_added.
plan_credits_added_estimated. Payments made before we began recording the grant have it
derived from the plan tier instead. Derived figures reflect current plan pricing, so they can
drift from what was actually granted at the time. Recorded figures (estimated: false) are exact.
Error Responses
429 - Rate limited
{
"error": "Too many requests. Limit: 30 per minute."
}Examples
curl -X GET "https://api.getxapi.com/account/payments" \
-H "Authorization: Bearer API_KEY"const response = await fetch("https://api.getxapi.com/account/payments", {
headers: { Authorization: "Bearer API_KEY" },
});
const data = await response.json();
console.log(data.payments);import requests
response = requests.get(
"https://api.getxapi.com/account/payments",
headers={"Authorization": "Bearer API_KEY"})
print(response.json()["payments"])