MessNoMore Data Tools

MessNoMore Data Tools › Track Mobile Plan Prices in Malaysia, Singapore & Australia

How do you compare and track SIM-only and prepaid plan prices in Malaysia, Singapore and Australia?

Updated · By Wong Xian Qi

The official source for mobile plan prices is each carrier's own plan page, so comparing plans means opening every carrier's site and converting each price to the same billing period yourself. Mobile Plans Tracker, an Apify Actor, reads those public pages for 12 carriers in Malaysia, Singapore and Australia once a week and returns one table with every plan priced per month and in US dollars, plus what changed since your last run.

Where do mobile plan prices officially come from?

From the carriers. These are the public plan pages the Actor reads:

If you are choosing one plan for yourself, these pages and a calculator are enough. Read the carrier's own terms for any promotion before you sign up.

Why is comparing mobile plans by hand slow?

How do you compare plans with different billing cycles?

Convert every price to one month of 30.44 days: divide the price by the length of the cycle in days and multiply by 30.44. The Actor stores the result in priceMonthly and converts it to US dollars in priceMonthlyUsd. It always uses the ongoing price, never the first-month deal. Rows from the same run:

CarrierPlanPriceCyclePer monthUSD per monthData per cycle
Telstra (AU)$54 Pre-Paid Mobile PlanAUD 5428 daysAUD 58.7040.9635 GB
amaysim (AU)30GB Data PlanAUD 2528 daysAUD 27.1818.9730 GB
Lebara (AU)$200 SIM PlanAUD 200365 daysAUD 16.6811.64180 GB
Felix Mobile (AU)25GBAUD 301 monthAUD 30.0020.9325 GB
Circles.Life (SG)Circles PlusSGD 181 monthSGD 18.0014.06300 GB
Tune Talk (MY)Epik 25+MYR 27512 monthsMYR 22.925.61480 GB

The cross-country USD comparison returns this view for all 122 plans in the data.

How do you get mobile plans as JSON?

Choose countries (MY, SG, AU) or specific carriers, the planTypes you want (postpaid, prepaid, sim_only), and cap the output with maxPlans. Each row has the plan name and type, price and billingCycle, promoPrice, priceMonthly and priceMonthlyUsd, dataGB and promoDataGB, 5G, unlimited calls, contract length, short roaming and promotion summaries, the source page and a stable planKey. An AI model lists the plans on each page, and every plan is checked against the page text (price with its currency sign, data amount and plan name); plans that fail the check are dropped. One row from the run above:

[
  {
    "country": "AU",
    "carrierId": "au-telstra",
    "carrier": "Telstra",
    "source": "preset",
    "carrierStatus": "ok",
    "planName": "$54 Pre-Paid Mobile Plan",
    "planKey": "au-telstra:prepaid:54-pre-paid-mobile-plan:28d",
    "type": "prepaid",
    "price": 54,
    "promoPrice": 15,
    "billingCycle": "28 days",
    "priceMonthly": 58.7,
    "priceMonthlyUsd": 40.96,
    "currency": "AUD",
    "dataGB": 35,
    "promoDataGB": 75,
    "dataUnlimited": false,
    "unlimitedCalls": true,
    "fiveG": null,
    "contractMonths": 0,
    "roaming": "Capped international call minutes per zone + 100 texts",
    "promo": "Sale — Now $15 until 2 November. Physical SIM only; future recharges full price",
    "change": "unchanged",
    "sourceUrl": "https://www.telstra.com.au/mobile-phones/prepaid-mobiles/offers-and-rates",
    "scrapedAt": "2026-10-14T10:51:03.442Z"
  }
]
curl -X POST "https://api.apify.com/v2/acts/messnomore~mobile-plans-tracker/run-sync-get-dataset-items" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"countries": ["SG"], "planTypes": ["sim_only"], "compareWithPrevious": true}'

How do you track mobile plan price changes every week?

Keep compareWithPrevious on. Each row is labelled price_down, price_up, new, removed, data_up, data_down, promo_changed or unchanged, with the previous price and data next to the new ones. Your run saves what it delivered in a key-value store in your own Apify account, and the next run compares with it; a first run compares with the previous weekly check. Turn on onlyChanged and schedule the Actor weekly to get only what moved. Carriers without changes are not charged, so a quiet week costs the $0.00005 start fee.

How much does it cost?

With the plan counts of 14 October 2026: all Malaysian plans (3 carriers, 37 plans) cost about $0.34, Singapore SIM-only plans (3 carriers, 23 plans) about $0.27, Australian prepaid plans (5 carriers, 45 plans) about $0.48, Australian SIM-only plans (3 carriers, 11 plans) about $0.21, and all 12 carriers (122 plans) about $1.21. Apify Bronze, Silver and Gold subscribers get lower prices. maxPlans and the maximum cost per run cap your spend.

Which carriers are covered, and what is missing?

FAQ

Is there an API for mobile plan prices in Malaysia, Singapore or Australia?

For 12 carriers, yes. Mobile Plans Tracker on Apify returns the postpaid, prepaid and SIM-only plans of Tune Talk, redONE, U Mobile, SIMBA, Circles.Life, Zero1, amaysim, Coles Mobile, Telstra, Vodafone, Felix Mobile and Lebara as JSON, CSV or Excel, read from the carriers' own plan pages once a week.

How do I compare a 28-day plan with a monthly plan?

Convert both to the same period. Multiply the 28-day price by 30.44 and divide by 28: a $54 plan that renews every 28 days costs about $58.70 per month, because it renews about 13 times a year. The Actor does this for every plan in the priceMonthly field.

How often do mobile plan prices change?

Often enough that a hand-made table goes stale: several introductory offers in the data carry an end date only a few weeks away. The Actor checks the preset carriers once a week, and scrapedAt shows when each plan's page was last read.

What is the difference between price and promoPrice?

price is what the plan costs after any sale or introductory offer ends, and priceMonthly is based on it. promoPrice is the lower price the carrier shows now, such as a first-recharge or first-month deal, or null when there is none.

Can I track a carrier that is not on the list?

Yes, as a custom URL: up to 10 public plan pages per run (3 on the Apify free plan), up to 3 pages per site. The pages must show their plans without JavaScript, and sites whose terms forbid automated reading are refused.

Is it legal to collect mobile plan prices?

The Actor reads only public plan pages that carriers publish for customers, respects robots.txt and each site's terms, identifies itself with an honest User-Agent and reads the preset carriers once a week. Plan prices are product information, not personal data.