LorryCare API

Official ULIP truck data — FASTag toll crossings, VAHAN, eChallan, E-Way Bill — inside your own software. One key, one wallet, four services. Nobody to call.

Start in three steps

  1. Sign up on lorrycare.com with your mobile (OTP). That account's credit wallet is what the API spends.
  2. Ask for your API key on WhatsApp 73593 04277 or info@lorrycare.com (self-service keys are coming next). Your first key comes with 100 free API credits.
  3. Call any service below with Authorization: Bearer <your key>. Buy credits on the recharge page whenever you like — they never expire.
curl -X POST https://lorrycare.com/api/v1/fastag \
  -H "Authorization: Bearer lc_live_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "vehicle": "MH04AB1234" }'

Check a key without spending anything: GET /api/v1/whoami with the same header — returns your tier, wallet balance and free credits.

Pricing

All prices exclude 18% GST · no setup fee · no refunds

Pay-as-you-go

No fee

credits only

Buy credit packs as you go

up to 30 calls / min

Starter

₹2,499

per month

4,000 credits / month

up to 60 calls / min

annual: pay 11 months, get 12 — ₹27,489/yr

Growth

₹9,999

per month

20,000 credits / month

up to 300 calls / min

annual: pay 11 months, get 12 — ₹1,09,989/yr

Scale

₹24,999

per month

60,000 credits / month

up to 1,000 calls / min

annual: pay 11 months, get 12 — ₹2,74,989/yr

Enterprise

Custom

by contract

More than Scale? Talk to us.

up to 1,000 calls / min

Credits per call, every tier: FASTag 1 · VAHAN 2 · eChallan 2 · E-Way Bill 2. All four services are open on every tier.

Plan credits refill every month and lapse at month end; wallet credits never expire and are used when the plan allowance is finished (or on pay-as-you-go). Free credits are spent first.

You are never charged when the government service is down, when a vehicle has no FASTag crossing, or when a VAHAN / E-Way Bill record does not exist. Per-vehicle fair use: 30 calls an hour on the same truck.

Monthly plans with online payment, invoices and a usage page are being switched on; until then every account is pay-as-you-go.

The four services

FASTag toll crossings

POST /api/v1/fastag · 1 credit

Every toll plaza the truck crossed in the last 72 hours, newest first: plaza name, state, time (IST), direction. When the toll network has nothing new, the last known crossing on record is returned and nothing is charged.

Request body

{ "vehicle": "MH04AB1234", "since": "2026-10-28T00:00:00+05:30" }

"since" is optional — crossings after that time only (last 72 hours otherwise).

Answer (shortened)

{ "success": true,
  "data": { "vehicle_number": "MH04AB1234", "source": "live",
    "latest_crossing": { "toll_plaza": "Khed Shivapur Toll Plaza", "state": "Maharashtra", "crossing_time": "2026-10-29T14:12:40+05:30", "direction": "S" },
    "crossings": [ { "toll_plaza": "Khed Shivapur Toll Plaza", "state": "Maharashtra", "crossing_time": "2026-10-29T14:12:40+05:30", "direction": "S" } ],
    "charged": true, "credit_balance": 2480, "free_credits_remaining": 0 },
  "error": null, "meta": { "timestamp": "2026-10-29T08:43:01.120Z", "request_id": "…" } }

VAHAN — RC details

POST /api/v1/vahan · 2 credits

The registration record: owner name and type, make and model, class, fuel, registration date and validity, insurance (company, policy, valid upto), fitness, pollution certificate, permit (type, authority, validity, national permit dates), tax, RC status, blacklist status, NOC. A vehicle with no VAHAN record is a clean "found: false" answer and is not charged.

Request body

{ "vehicle": "MH04AB1234" }

Answer (shortened)

{ "success": true,
  "data": { "vehicle_number": "MH04AB1234", "owner_name": "…", "make_model": "TATA MOTORS LTD LPT 3118",
    "vehicle_class": "Goods Carrier", "fuel": "DIESEL", "registration_date": "12-Mar-2019",
    "insurance": { "company": "…", "policy_number": "…", "valid_upto": "11-Mar-2027" },
    "fitness": { "valid_upto": "11-Mar-2027" }, "pollution": { "certificate_number": "…", "valid_upto": "…" },
    "permit": { "number": "…", "type": "National Permit", "valid_upto": "…", "national_permit_upto": "…" },
    "registration": { "valid_upto": "…" }, "tax": { "mode": "…", "valid_upto": "…" }, "status": "ACTIVE", "blacklist_status": null,
    "charged": true, "credit_balance": 2478, "free_credits_remaining": 0 },
  "error": null, "meta": { … } }

eChallan — traffic challans

POST /api/v1/echallan · 2 credits

Pending and disposed challans for the vehicle: challan number, date, fine amount, state, the offences (section + description). "No challans" is a valid answer (and is charged, as the government record was checked).

Request body

{ "vehicle": "MH04AB1234" }

Answer (shortened)

{ "success": true,
  "data": { "vehicle_number": "MH04AB1234", "has_challans": true,
    "pending":  [ { "challan_no": "MH123456789", "date": "12-08-2026 10:15:00", "fine_amount": "2000", "offences": [ { "section": "…", "description": "…" } ] } ],
    "disposed": [],
    "charged": true, "credit_balance": 2476, "free_credits_remaining": 0 },
  "error": null, "meta": { … } }

E-Way Bill

POST /api/v1/ewaybill · 2 credits

The bill as the GST system holds it: status, generated date, valid-upto, from and to pincodes, HSN code, and every vehicle entered on the bill (vehicle number, date entered, transport mode). A bill that does not exist is "found: false" and is not charged.

Request body

{ "ewbNo": "101000609218" }

Looked up by the 12-digit E-Way Bill number, not by vehicle.

Answer (shortened)

{ "success": true,
  "data": { "found": true, "ewb_number": "101000609218", "status": "ACT", "status_description": "Active",
    "ewb_date": "2026-10-27T16:30:00+05:30", "valid_upto": "2026-10-30T23:59:00+05:30",
    "from_pincode": "400001", "to_pincode": "781028", "hsn_code": "0902", "vehicle_number": "AS01KC4471",
    "vehicles": [ { "vehicle_no": "AS01KC4471", "entered_date": "2026-10-27T16:30:00+05:30", "trans_mode": "1" } ],
    "charged": true, "credit_balance": 2474, "free_credits_remaining": 0 },
  "error": null, "meta": { … } }

When something goes wrong

Every answer has the same shape: { success, data, error: { code, message }, meta: { request_id, timestamp } }. Quote the request_id if you write to us.

401UNAUTHORIZEDMissing or wrong key. Send Authorization: Bearer lc_live_…
403API_DISABLEDThe account is switched off (or the key has no API account).
403IP_NOT_ALLOWEDThe key has an IP allow-list and this request came from elsewhere.
400INVALID_VEHICLE / INVALID_EWBThe number does not look right. Nothing charged.
402INSUFFICIENT_CREDITSNo credits left. Buy a pack at lorrycare.com/recharge — credits never expire. Nothing charged.
429RATE_LIMIT_EXCEEDEDToo many calls this hour (your tier's limit, or the per-vehicle limit). Retry shortly. Nothing charged.
429CREDIT_CAP_REACHEDYour daily or monthly safety cap. Resets at midnight IST / the 1st. Nothing charged.
502PROVIDER_UNAVAILABLEThe government (ULIP) service is down right now. Nothing charged — retry in a few minutes.
500INTERNAL_ERROROur fault. Nothing charged.

Successful answers and rate-limit rejections carry X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers.

Good to know

Data comes from ULIP (Government of India). It is accurate to what the toll, RC, challan and GST systems hold; when they are down we say so and charge nothing. Expect ~95% availability.

Your key is for your own organisation's software — no resale or onward distribution. Keep the key secret; you can ask for it to be rotated any time. One key per server is a good habit.

Questions: WhatsApp 73593 04277 (messages only) · info@lorrycare.com