Guide
Build a transit assistant
Go from public discovery to a real route query with copy-paste examples in curl, Python, and JavaScript.
1. Read public context
Start with metro context so the assistant knows which city systems matter.
curl
curl https://smartapis.net/v1/agent/context/chicago
Python
import urllib.request
with urllib.request.urlopen("https://smartapis.net/v1/agent/context/chicago", timeout=30) as resp:
print(resp.read().decode("utf-8"))
JavaScript
const response = await fetch('https://smartapis.net/v1/agent/context/chicago');
console.log(await response.json());
2. Check plans
Coverage and pricing stay visible before purchase, which is part of the product contract.
curl
curl https://smartapis.net/v1/billing/plans
3. Query routes
Use a client key with `transit:read` to search route records inside a supported metro.
curl
curl -H "X-API-Key: $SMARTAPIS_API_KEY" \
"https://smartapis.net/v1/transit/routes?region_id=chicago-metro&q=train&limit=5"
Python
import os, urllib.parse, urllib.request
params = urllib.parse.urlencode({"region_id": "chicago-metro", "q": "train", "limit": 5})
request = urllib.request.Request(
f"https://smartapis.net/v1/transit/routes?{params}",
headers={"X-API-Key": os.environ["SMARTAPIS_API_KEY"]},
)
with urllib.request.urlopen(request, timeout=30) as resp:
print(resp.read().decode("utf-8"))
JavaScript
const response = await fetch(
'https://smartapis.net/v1/transit/routes?region_id=chicago-metro&q=train&limit=5',
{ headers: { 'X-API-Key': process.env.SMARTAPIS_API_KEY } }
);
console.log(await response.json());