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.

Research Preview — Predictions are generated from behavioural models that have not yet been fully validated against real-world outcomes. Access is granted on request — contact support@footstep.ai.
Pinpoint where to look first when someone goes missing. Given a last known position, a behavioural profile (age, condition, possible intent), and a search area, returns a probability-ranked grid covering that area — so search teams can prioritise the highest-likelihood ground. Supports three area types: circle (centre + radius), polygon (GeoJSON), or buffered path (LineString + buffer). Weather is fetched automatically unless overridden or disabled.

Example prompts

  • “Predict the most likely locations for a despondent 75-year-old last seen heading south from this point”
  • “Run a prediction for a dementia patient, age 80, in this 2km radius area”
  • “Generate a search priority map for this polygon area, the subject was last seen at 10pm”
  • “Predict with heavy rain and strong wind conditions for this search area”

What you get back

A rich response (default) returns the following keys in structuredContent:
  • top_results — the top 50 H3 hexagons ranked by score (highest first). Each row carries hex, score, and the cell centroid as lat / lng so the result can be chained directly into search_places, reverse_geocode, get_directions, etc. without a separate hex-to-coordinates step.
  • cells — every scored hex (the full grid). Each row carries hex and score. Suppress with include_hexes: false if you don’t need the full surface in the structured response — the rendered hex layer in render is independent of this field.
  • summaryhex_count (total hexes scored) and processing_time_ms.
  • coveragetop_n (how many rows are in top_results), total_count (how many were scored), coverage_percent (score mass held by the returned rows), and truncated (false when every scored hex was returned). Use coverage_percent to gauge how concentrated the prediction is — a high value means the top hexes hold most of the likelihood; a low value means the search area is genuinely diffuse.
  • render — a single h3-cells layer ready to drop into a map. style_hints.value_range carries [min, max] so the renderer can pick a colour scale. See render envelopes.

Response controls

FlagDefaultEffect
include_hexestrueIncludes the full hex grid as cells. Set to false to keep only top_results in the structured response (the render envelope still carries the full grid).
include_rendertrueIncludes the render envelope. Set to false for text-only callers that won’t render the result.
compactfalseWhen true, omits both the full grid (cells) and the render envelope, leaving only top_results, summary, and coverage. The compact response is what every existing chaining flow needs.
LLM agents that don’t render maps and only want to chain into other tools should pass compact: true. Renderer clients should leave the defaults.

Example response

{
  "structuredContent": {
    "profile": "despondent",
    "summary": { "hex_count": 8910, "processing_time_ms": 1234 },
    "coverage": { "top_n": 50, "total_count": 8910, "coverage_percent": 87.4, "truncated": true },
    "top_results": [
      { "hex": "8c194ad14da43ff", "score": 0.91, "lat": 51.502341, "lng": -0.123456 }
    ],
    "cells": [
      { "hex": "8c194ad14da43ff", "score": 0.91 },
      { "hex": "8c194ad14da45ff", "score": 0.42 }
    ],
    "render": [
      {
        "kind": "h3-cells",
        "label": "Prediction",
        "data": [
          { "hex": "8c194ad14da43ff", "value": 0.91 }
        ],
        "bbox": [/* … */],
        "style_hints": { "value_range": [0.02, 0.91] }
      }
    ]
  }
}