Extract, then plan

Command

Talk through origin, destination, vias, and how it should move. With Review modes on, Command suggests rail, sea, and road before Plan routes. Catalog search still has to identify every place. Plan then charts the sea, rail, and road legs on the existing journey. The same query is a public Command API.

Ambiguous names stay on this page with suggestions. Say the next place — or go — when the draft looks right. No invented UN/LOCODEs. Overview only — not navigational advice.

Public API

Command API

The same catalog extraction as this page, without a browser session. GET or POST /api/command with a natural-language query. Catalog search still has to identify every place. No invented UN/LOCODEs. Overview only — not navigational advice.

Open to automated callers: robots.txt allows /api/command, and every reply carries Access-Control-Allow-Origin: * so browser-based agents can read it. No key or session. Rate limited to 10 requests per minute per IP.

format=json

Identified points, suggested modes, calculated sea/land legs, and a Plan link. Default.

format=image

PNG satellite overview of those legs. Add stats for the planning-estimate card.

format=link

Absolute Plan URL and /plan path for the first and last places.

Examples

Query is q or query on GET, query or command on POST. map, png, and screenshot also mean image; url means link.

curl -sS "https://ocean.nomap.app/api/command?q=Oakland+to+Qingdao&format=json"
curl -sS "https://ocean.nomap.app/api/command?q=Oakland+to+Qingdao&format=image" \
  -o map.png
curl -sS "https://ocean.nomap.app/api/command?q=Rome+to+Stockholm+via+Paris+and+Berlin&format=image&stats=all" \
  -o card.png
curl -sS "https://ocean.nomap.app/api/command?q=Oakland+to+Qingdao&format=link"
curl -sS "https://ocean.nomap.app/api/command" \
  -H "content-type: application/json" \
  -d '{"query":"Oakland to Qingdao","format":"json"}'

All parameters

Every image panel on, plus the POST conversation fields. stats=all is the same card as listing each flag. picks, followUp, and prior are how this page continues an unresolved name; they are valid on a resolved query and ignored when unused.

curl -sS "https://ocean.nomap.app/api/command?q=Oakland+to+Qingdao&format=image&distance=1&time=1&fuel=1&emissions=1&cost=1&highlights=1&countries=1&profile=1&legend=1&assumptions=1&options=1&alerts=1" \
  -o card.png
curl -sS "https://ocean.nomap.app/api/command" \
  -H "content-type: application/json" \
  -d '{
  "query": "Oakland to Qingdao",
  "format": "image",
  "stats": [
    "distance",
    "time",
    "fuel",
    "emissions",
    "cost",
    "highlights",
    "countries",
    "profile",
    "legend",
    "assumptions",
    "options",
    "alerts"
  ],
  "distance": true,
  "time": true,
  "fuel": true,
  "emissions": true,
  "cost": true,
  "highlights": true,
  "countries": true,
  "profile": true,
  "legend": true,
  "assumptions": true,
  "options": true,
  "alerts": true,
  "picks": [
    {
      "id": "usoak",
      "query": "Oakland",
      "name": "Oakland",
      "country": "United States"
    }
  ],
  "followUp": "by sea",
  "prior": "Oakland to Qingdao"
}'

Open the card with every stats flag · Open the Rome → Stockholm stats card · Oakland → Qingdao · map only

Image stats

stats=all turns every panel on. stats=none (the default) keeps the 1280×720 map. Comma lists and boolean flags work together: stats=all&tolls=0 drops cost. Road-only cards use Google Maps Routes when a key is configured, otherwise a driving-car corridor and published car factors.

OptionAlsoShows
fuelLPer100Km0–200User-supplied consumption factor; fuel = km × factor / 100
co2GPerKm0–10000User-supplied emissions factor; kg = km × factor / 1000
distancekmSum of calculated hop kilometres
timeduration, etaRouter duration, or km/day defaults
fuel—Road: provider fuel estimate or supplied fuelLPer100Km. Sea: labelled MPP estimate
emissionsco2, carbonRoad: supplied co2GPerKm × distance. Otherwise explicitly unavailable
costtollsRoad-only: Google Maps / ORS tolls. Otherwise USD freight band
highlightswaypointsNumbered catalog places
countries—Unique waypoint countries, not geometry crossed
profileelevationSampled Terrarium terrain; unavailable if sampling is incomplete
legendtrafficRoad-only: traffic colour key (live overlay unavailable). Mixed: mode colours
assumptionsvehicleActual routing profile and supplied factors; HGV restrictions are not verified
optionsalternativesCalculated route / legs; QR opens the actual Plan link
alertsnotesHop errors only

Conversation fields

POST can continue an unresolved command the same way this page does. picks are up to six { id, query, name?, country? } suggestion choices. followUp (400 characters) and prior (1,500 characters) carry the next turn and the working command.

Responses

  • 200 — JSON for json/link;image/png for image.
  • 400 — missing or oversized query, or invalid JSON.
  • 422 — place still unresolved. Same warning, suggestions, draft, and workingCommand as this page.
  • 429 — 10 requests per minute per client.

Query maximum is 1,500 characters. Image generation can take up to a minute. Tiles © Esri World Imagery.