☰  Nucleus API Documentation
Documentation

Build with Nucleus

The unified India data platform — fuel prices, precious metals, train enquiry, PNR status & GST verification. One REST API, zero friction, free forever.

https://apiw.proxynex.pro ⧉ copy
5
Commodities
4
Train services
12+
Endpoints
100%
Free & open
🔗

Base URL

All requests hit this endpoint

Every Nucleus API request is made to the base URL below. All responses are JSON with UTF-8 encoding. CORS is enabled for all origins.

Endpoint
// Base URL for all requests
https://apiw.proxynex.pro
🔑

Authentication

Zero setup

Nucleus is a public API. No API keys, no tokens, no OAuth. Send a GET request, receive JSON. That's it.

No key required
No authentication headers needed
CORS enabled
Access-Control-Allow-Origin: *
HTTPS only
Encrypted transport by default

Fuel & Precious Metals

Crawled 5× daily · 05:30 – 10:30 IST

Petrol, diesel, gold, silver and platinum prices across Indian cities & states. Commodity-agnostic schema — one endpoint, one param.

GET/fuel

Latest prices for all locations. Defaults to petrol.

CORE
GET/fuel?commodity=gold

Switch commodity — petrol · diesel · gold · silver · platinum.

QUERY
GET/fuel?city=mumbai

Single city lookup. Case-insensitive.

FILTER
GET/fuel?type=state

Filter by location type — state or city.

FILTER
GET/fuel/cities

List all available cities for a commodity.

META
GET/fuel/search?q=del

Fuzzy location search — up to 20 matches.

SEARCH
GET/fuel/history?city=mumbai&days=7

Daily price history for trend charts (max 90 days).

TREND
GET/fuel/latest

Crawl status & last-update timestamps.

STATUS
GET/health

Server, database & scheduler health.

OPS

#Query parameters

ParameterValuesDefaultRequiredNotes
commoditypetrol · diesel · gold · silver · platinumpetrolOPTIONALRequired for metals
citymumbai, delhi, kolkata…OPTIONALCase-insensitive
statewest bengal, bihar…OPTIONALFuel only
typecity · stateOPTIONALLocation type filter
qany stringREQUIREDFor /fuel/search
days1–907OPTIONALHistory window

#Examples

GET /fuel?commodity=gold&city=delhi
# Gold in Delhi — 24K / 22K / 18K
{
  "status": "ok",
  "data": [{
    "location": "Delhi",
    "location_type": "city",
    "unit": "per_gram_24k",
    "price": 14437.00,
    "details": {
      "price_22k": 13225,
      "price_18k": 10831
    }
  }]
}
GET /fuel/history?commodity=gold&city=india&days=7
# National gold history — last 7 days
{
  "status": "ok",
  "data": [
    { "date": "2026-08-02", "price": 14422.00 },
    { "date": "2026-08-01", "price": 14422.00 },
    { "date": "2026-07-31", "price": 14386.00 }
  ]
}
🚂

Train Enquiry

Multi-provider failover · high availability

Live Indian Railways data — trains between stations, train information, routes and PNR status with automatic provider failover.

GET/train?from=MMCT&to=NDLS

All trains between two stations (station codes).

CORE
GET/train?from=DDR&to=MMCT&date=20260802

Optional date filter — YYYYMMDD format.

DATE
GET/train/info?number=12951

Train details — name, endpoints, timing, type, classes.

LOOKUP
GET/train/route?number=12301

Station-wise route — timings & coordinates.

ROUTE
GET/train/pnr?number=6705123201

PNR status — train, date, class & passenger-wise status.

PNR10-DIGIT

#Examples

GET /train?from=MMCT&to=NDLS
# Trains between Mumbai Central and New Delhi
{
  "status": "ok",
  "count": 12,
  "trains": [{
    "train_number": "12951",
    "train_name": "NDLS TEJAS RAJ",
    "from": { "name": "Mumbai Central", "code": "MMCT" },
    "to": { "name": "New Delhi", "code": "NDLS" },
    "departure": "17.00",
    "arrival": "08.32",
    "duration": "15.32"
  }]
}

#PNR status

GET /train/pnr?number=6705123201
# Booking status — passenger-wise
{
  "status": "ok",
  "pnr": "6705123201",
  "train_number": "13185",
  "train_name": "GANGA SAGAR EXP",
  "travel_date": "05-08-2026",
  "from": { "code": "ASN", "name": "Asansol Junction" },
  "to": { "code": "JYG", "name": "Jaynagar" },
  "class": "3A",
  "chart_prepared": false,
  "passengers": [
    { "number": 1, "booking_status": "CNF B1 52", "current_status": "CNF" },
    { "number": 2, "booking_status": "CNF B1 51", "current_status": "CAN/MOD" }
  ]
}
ℹ️
PNR uses multi-provider failover — requests automatically route to backup sources if the primary is unreachable. Station codes are 3–4 letters (MMCT, NDLS, DDR).
🧾

GST Verification

Public registry lookup

Verify any GSTIN instantly — legal name, trade name, address, registration status, constitution & GPS coordinates.

GET/gst?number=19HKJPM4450C1Z1

Verify GSTIN — complete taxpayer profile.

CORE15-DIGIT

#Example

GET /gst?number=19HKJPM4450C1Z1
{
  "status": "ok",
  "gstin": "19HKJPM4450C1Z1",
  "trade_name": "GENX COMPUTER",
  "legal_name": "Arnab Modak",
  "registration_status": "Active",
  "registration_date": "22/06/2024",
  "constitution": "Proprietorship",
  "taxpayer_type": "Regular",
  "nature_of_business": ["Retail Business", "Others"],
  "state": "West Bengal",
  "address": "C/O Haradhan Modak, Radhanagar, Ghatal",
  "lat": 22.666033,
  "lon": 87.732022
}
📌
GSTIN format: 15 characters — 2-digit state code + 10-char PAN + entity number + Z + check digit. Malformed input returns 400.
🚗

Vehicle Info (RC)

Multi-source · cached 24h

Full RC lookup by registration number — owner, make, model, fuel, insurance, address & more. Multi-source with automatic failover.

GET/vehicle?number=JH03AH8817

Full vehicle details from registration number.

CORERC

#Example

GET /vehicle?number=JH03AH8817
{
  "status": "ok",
  "registration": "JH03AH8817",
  "vehicle": "Tata Nexon",
  "type": "PRIVATE_CAR",
  "owner": "RAKESH KUMAR SINGH",
  "make": "Tata",
  "model": "Nexon",
  "fuel": "PETROL",
  "color": "ATLAS BLACK",
  "registration_date": "03-Aug-2022",
  "rto": "PALAMU, Jharkhand",
  "insurer": "iffco-tokio",
  "insurance_expiry": "31-Jul-2025",
  "insurance_expired": true,
  "permanent_address": "VILL-JAIDU, Palamu, Jharkhand 822122"
}
ℹ️
Format: AA00XX0000 (state + district + series + number). Engine & chassis numbers are masked. Uses multi-source failover — auto-switches if primary is down. Cached 24h.
📸

Website Screenshots

Headless Chromium · PNG output

Capture any public web page as a PNG image — full-page or viewport. Powered by headless Chromium, zero API key. Pass device for mobile/tablet/desktop viewports.

GET/screenshot?url=https://example.com

Viewport screenshot — returns image/png directly.

CORE
GET/screenshot?url=...&full=true

Full-page capture — entire scrollable page.

FULL
GET/screenshot?url=...&width=900

Custom viewport width (320–2560).

SIZE
GET/screenshot?url=...&wait=3000

Extra wait for JS-heavy sites (0–10000ms).

WAIT

#Parameters

ParameterValuesDefaultRequiredNotes
urlany http(s) URLREQUIREDMust be public, no localhost
width320–25601280OPTIONALViewport width px
height240–2560800OPTIONALViewport height px
fulltrue · falsefalseOPTIONALFull-page capture
wait0–100001500OPTIONALms to wait for JS
deviceiphone14 · pixel8 · galaxy · ipad · tablet · desktop · macbook · fullhd…OPTIONALPreset screen size + mobile UA

#Device presets

DeviceSizeType
iphone14 · iphone13 · iphone12 · iphone390 × 844📱 Phone
pixel8 · pixel7 · android412 × 915📱 Phone
galaxy360 × 800📱 Phone
ipad · tablet768–820 × 1024–1180📲 Tablet
desktop1366 × 768💻 Desktop
macbook1440 × 900💻 Laptop
fullhd1920 × 1080🖥️ Monitor

#Usage

Full-page screenshot
# Returns image/png — use directly in <img> or download
curl "https://apiw.proxynex.pro/screenshot?url=https://examtrend.in&full=true&width=1280" -o page.png

# Mobile device screenshot (iPhone 14 — 390x844 + mobile UA)
curl "https://apiw.proxynex.pro/screenshot?url=https://store.proxynex.pro&device=iphone14" -o mobile.png

# Desktop 1366x768
curl "https://apiw.proxynex.pro/screenshot?url=https://examtrend.in&device=desktop" -o desktop.png

# In HTML
<img src="https://apiw.proxynex.pro/screenshot?url=https://store.proxynex.pro&width=900" />

# Python
import requests
r = requests.get("https://apiw.proxynex.pro/screenshot",
              params={"url": "https://examtrend.in", "full": "true"})
open("shot.png", "wb").write(r.content)
🛡️
SSRF-protected — private/local hosts are blocked. Screenshots are served with a 5-minute cache.
📟

Status codes

HTTP semantics
200 OK
Success — data returned
400 Bad Request
Missing or invalid parameters
404 Not Found
GSTIN / PNR not in registry
500 Internal Error
Upstream provider failure
⏱️

Rate limits

Fair-use policy
Endpoint groupLimitNotes
/fuel*60 req/minDatabase-backed — fast
/train*20 req/minLive upstream fetch
/train/pnr10 req/minMulti-provider failover
/gst10 req/minLive registry lookup
Limits are generous for public use. Need a higher quota? Reach out — we're happy to help.
🧪

API tester

Live playground
Playground — nucleus / api
// Response will appear here…
🚀

Quick start

Integrate in minutes
🟨 JavaScript — fetch
js
const res = await fetch("https://apiw.proxynex.pro/fuel?commodity=gold&city=mumbai");
const data = await res.json();
console.log(data.data[0].price);  // gold ₹/gram
🟩 Node.js
node
const res = await fetch("https://apiw.proxynex.pro/train?from=MMCT&to=NDLS");
const { trains } = await res.json();
trains.forEach(t => console.log(t.train_number, t.train_name));
🐍 Python
py
import requests
r = requests.get("https://apiw.proxynex.pro/fuel",
              params={"commodity": "diesel", "type": "state"}).json()
for row in r["data"]:
    print(row["location"], row["price"])
cURL
sh
curl "https://apiw.proxynex.pro/train/pnr?number=6705123201"
curl "https://apiw.proxynex.pro/gst?number=19HKJPM4450C1Z1"