How Long Do Purchased Points and Miles Take to Post
Last updated: November 11, 2026
Wondering how long it takes for purchased miles to post? AwardWallet measures these times rather than estimating them. We buy points in these programs ourselves and record exactly when the balance updates. We also learn from AwardWallet members who buy points and have a balance watch enabled. Balance watch checks the account at least hourly, and members often refresh manually far more frequently, which lets us pin down the moment points land to within minutes. Averaging across many purchases is why you'll see figures like 24 minutes rather than round numbers.
"Posting" means the points appear in your account balance, not just the purchase confirmation. Across 40+ airline and hotel programs, times range from immediate to two days: Radisson averages about 24 minutes, and IHG, Southwest, and Flying Blue are typically instant, while Qantas, TAP, and SAS can take two days. Note that these are purchase times, not transfer times, which measure moving points between programs. Programs marked "Unknown" do not have enough data yet.
Frequently Asked Questions
q: How long do purchased points take to post?
a: It depends on the program. Some post immediately, while others take up to two days. AwardWallet measures posting times across 40+ airline and hotel programs.
q: Do purchased miles post instantly?
a: Several programs post purchased points immediately, but many take several hours and a few take one to two days. Check the specific program before buying points for a booking you need to make right away.
q: Why do some programs show Unknown?
a: Unknown means AwardWallet does not yet have enough measured purchases for that program to publish a reliable average.
Developer access: Mile Purchase Times API
Build with AwardWallet's measured posting times. Use our public endpoints to fetch how long purchased points take to land across 40+ airline and hotel programs.
Endpoints
-
API (OpenAPI 3.1):
https://loyalty.awardwallet.com/v1/mile-purchase-times/openapi-3.1.0.yml
Usage & attribution (rules of engagement)
You're free to use this data in your products as long as you clearly attribute AwardWallet, link to this page, and keep our links live:
- Include this line: “Purchase times are measured and managed by AwardWallet.”
- Link: https://awardwallet.com/mile-purchase-times
- If you display this data, you must also display AwardWallet's links (the buy_url field) as active, clickable links. Removing, rewriting, or cloaking them is not permitted.
Data details
- Unit: hours (durations may include a decimal part; 0 = immediate, null = not enough data yet)
- Shape: single programs[] array, one object per program (flat, no card scoping)
- Each program includes provider_id, provider, duration, deal, guide_url, buy_url
- deal is null when no promotion is running
Caching
- Responses include ETag and meta.data_hash for cache validation.
- We recommend respecting Cache-Control and using conditional requests.
Examples
API (OpenAPI 3.1)
curl -s https://loyalty.awardwallet.com/v1/mile-purchase-times/list \
-H 'Accept: application/json'
JavaScript (fetch)
const res = await fetch('https://loyalty.awardwallet.com/v1/mile-purchase-times/list', {
headers: { 'Accept': 'application/json' }
});
const data = await res.json();
/* Example filter: programs posting within an hour */
const fast = data.programs.filter(p =>
p.duration.max_hours !== null && p.duration.max_hours <= 1
);
Conditional fetch with ETag
curl 'https://loyalty.awardwallet.com/v1/mile-purchase-times/list' -v -H 'If-None-Match: "your-saved-etag-from-last-fetch"' -q
The server will return '304 Not Modified' with an empty body if there is no new data, and '200 OK' with the new data if there is new data.
Versioning
- Current version: v1 (/v1/…).
- If the schema changes, we’ll introduce /v2 and keep /v1 available for a deprecation window.