Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.footstep.ai/llms.txt

Use this file to discover all available pages before exploring further.

Geocode an origin and a destination (address, place name, postcode, or landmark) and route between them. Combines geocoding and routing in a single call so the agent doesn’t need to chain two separate tools. Both origin and destination accept either lat/lon coordinates or a place name / postcode / address string — the string form is geocoded for you.

Example prompts

  • “How do I get from SW1A 1AA to Buckingham Palace?”
  • “Directions from Kings Cross to the British Museum”
  • “Walking route from my hotel at 51.52, -0.13 to the nearest train station”
  • “Find 10 Downing Street and show me how to cycle there from Westminster”

What you get back

The geocoded destination (label, coordinates, country code, place type, confidence), the route (distance, duration, terrain, turn-by-turn steps), and up to three alternative destination matches when the top result wasn’t unambiguous. Alternatives are filtered for usefulness: same country as the primary, above a minimum confidence threshold, and not broader admin areas that already contain the primary (e.g. “London” isn’t returned as an alternative to “Tower Bridge”). Surviving alternatives are sorted by distance from the primary so the most spatially plausible candidates surface first. The geocoder is also biased toward the caller’s origin, so a “Tower Bridge” search from London prefers the actual bridge over namesakes elsewhere. Pass narrative: true for an AI-generated 1-3 sentence summary of the route alongside the structured data. When narrative is included, the response also carries narrative_units (kilometers or miles) telling you which units the summary used. All numeric route fields are always in meters / seconds regardless.

Tips for landmark origins and destinations

  • Qualify with city context"Big Ben, London" resolves more reliably than "Big Ben".
  • Plain street addresses and postcodes don’t need extra context.
  • Coords win when you have them — pass { "lat": ..., "lon": ... } whenever the caller already has a precise location (e.g. a GPS fix or a click on the map).

Map rendering

Responses include a render envelope with a linestring layer for the route plus point layers for the origin (labelled with the geocoded name, or “Start” for coord-only origins) and the matched destination. Pass compact: true for summary-only responses. See response defaults & controls and render envelopes.

Example response

{
  "structuredContent": {
    "destination": {
      "name": "London Bridge",
      "label": "London Bridge, London, England, United Kingdom",
      "coordinates": { "lat": 51.508, "lng": -0.087 },
      "place_type": "venue"
    },
    "route": { "distance_meters": 4312, "duration_seconds": 723 },
    "render": [
      { "kind": "linestring", "label": "Route", "data": {/* GeoJSON */}, "bbox": [/* … */] },
      { "kind": "point", "label": "Start: SW1A 1AA", "data": {/* FeatureCollection */}, "bbox": [/* … */] },
      { "kind": "point", "label": "Destination: London Bridge", "data": {/* FeatureCollection */}, "bbox": [/* … */] }
    ]
  }
}