How do I track more than 10 Aramex shipments at once?

aramex.com tracks up to 10 shipment numbers at a time, and Aramex's own tracking API wants your Aramex user name, password, account number, PIN, entity and country code in every request. With lastscanned you send up to 35 Aramex numbers in one GET /v1/track request with ?carrier=aramex and one key, no Aramex account needed. Pro is $4.99/mo for 1,000 unique numbers, then $0.015 each, with no daily limit. A free key tracks 5 numbers a day. With no key you get 1 lookup a day, then pay per request over MPP: $0.50 by card for a 25-number pack, or $0.02 a number in USDC on Tempo.

Try it

curl: three Aramex numbers in one request
curl "https://api.lastscanned.com/v1/track?numbers=34795277683,9688053130,51522728622&carrier=aramex" \
  -H "Authorization: Bearer lsk_live_YOUR_KEY"
Node: a long Aramex list, 35 per request, written out as CSV
// node track-list.mjs < numbers.txt > results.csv   (one number per line)
import { stdin } from "node:process";

let text = "";
for await (const chunk of stdin) text += chunk;
const numbers = [...new Set(text.split(/[\s,]+/).map((n) => n.trim().toUpperCase()).filter(Boolean))];
// e.g. 34795277683, 9688053130, 51522728622

console.log("tracking_number,carrier,status,last_scan_utc,last_scan,location,error");
for (let i = 0; i < numbers.length; i += 35) {
  const batch = numbers.slice(i, i + 35);
  const url = new URL("https://api.lastscanned.com/v1/track");
  url.searchParams.set("numbers", batch.join(","));
  url.searchParams.set("carrier", "aramex");
  const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.LASTSCANNED_KEY}` } });
  if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
  for (const { trackingNumber, result, error } of (await res.json()).results) {
    const last = result?.events?.[0]; // events are newest first
    const row = [trackingNumber, result?.carrier, result?.status, last?.timestamp, last?.description, last?.location, error?.code];
    console.log(row.map((v) => JSON.stringify(v ?? "")).join(","));
  }
}

Ways to track Aramex shipments in bulk

OptionHow it worksPriceNotes
aramex.com trackingUp to 10 shipment numbers at a time.FreeA longer list means batches of 10.
Aramex tracking APIEvery request carries a ClientInfo block with Aramex account credentials.Needs an Aramex accountAramex only.
lastscannedGET /v1/track?numbers=a,b,c&carrier=aramex, up to 35 per request, one Bearer key.Free: 5 numbers a day. Pro: $4.99/mo for 1,000 unique numbers, then $0.015 each, no daily limit.Aramex and 542 other carriers in one response shape.

Carrier limits from Aramex help: track your shipments and Aramex Shipping API connector guide, read on November 3, 2026. They can change.

Details

Why ?carrier=aramex

Aramex numbers are plain digits, which other carriers use too. Naming the carrier sends every number in the request to Aramex. Leave it off only when the list mixes carriers whose numbers detect on their own.

No Aramex account

Aramex's API needs account credentials in each request. Here a lastscanned key is enough, so a marketplace or 3PL can track shipments it did not book.

Watch them instead of polling

POST /v1/watches with trackingNumbers and carrier "aramex" watches up to 100 at once, and a webhook fires on every change.

Cost of a long list

On Pro a number counts once a month, so re-checking the same Aramex shipments every day costs nothing extra.

FAQ

How many Aramex numbers can I track at once on aramex.com?
Up to 10 at a time.
Do I need an Aramex account to track Aramex by API?
For Aramex's own API, yes. For lastscanned, no: one lastscanned key, or no key for one lookup a day.
Why do Aramex numbers need the carrier set?
They are plain digits, so they can't be told apart from other carriers' numbers by format alone. Add ?carrier=aramex.