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());