thinair-co · Schema

DirectionsRequest

Routing request — origin + destination (free text or coordinate pair), optional waypoints, costing model, and per-mode parameters. Traffic is post-route ETA enrichment only; it does not change the selected path.

Companyfleet-managementtelematicslogisticscomplianceAPI

Properties

Name Type Description
origin object Free-text address ('Houston, TX', '4131 Center St, Houston, TX 77007') OR a coordinate pair { lat, lon }.
destination object Free-text address ('Houston, TX', '4131 Center St, Houston, TX 77007') OR a coordinate pair { lat, lon }.
via array Intermediate stops in order. Same shape as origin/destination. Up to 48 waypoints (max 50 total locations).
alternates integer Number of genuine motorized alternate routes to request (0, 1, or 2). Positive values require no via waypoints.
costing string Transport mode. Default: auto.
preset string Routing preset — one of: car_default, truck_53, truck_box26, truck_tanker, truck_flatbed, truck_step_deck, truck_auto_carrier, truck_sprinter, truck_double, truck_oversize, motorcycle, scooter, bike,
vehicle_profile string Truck dimension profile (10): DRY_VAN_53, FLATBED_48, FLATBED_40, STEP_DECK, TANKER, BOX_TRUCK_26, AUTO_CARRIER, SPRINTER_VAN, DOUBLE_TRAILER, OVERSIZE. Sets height/weight/length/axles. Distinct from
truck_height number Truck height (m)
truck_weight number Truck weight (metric tons)
truck_width number
truck_length number
hazmat boolean Routing avoids hazmat-restricted roads when true.
axle_load number
axle_count integer
top_speed number
use_highways number
use_ferry number
avoid_tolls boolean
include_traffic boolean Apply post-route live-traffic ETA enrichment. Default: true. Traffic does not change the returned path (path_influenced=false); truck adjustments are slowdown-only.
include_weather boolean
include_elevation boolean When true, include available route elevation fields. Point elevation may be returned for the origin and destination. Cumulative gain/loss is returned only when route-profile elevation is available. De
units string Distance units. Default: miles. Accepts 'km'/'mi' as aliases.
depart_at string Departure time (ISO 8601). Default: now.
include_geometry string Route geometry shape control. "none" returns origin/destination Points only. "encoded" returns an encoded polyline6 string in a top-level `geometry` field plus origin/destination Points (≈95% smaller
View JSON Schema on GitHub

JSON Schema

thinair-co-directions-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/thinair-co/json-schema/thinair-co-directions-request-schema.json",
  "title": "DirectionsRequest",
  "description": "Routing request — origin + destination (free text or coordinate pair), optional waypoints, costing model, and per-mode parameters. Traffic is post-route ETA enrichment only; it does not change the selected path.",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/geo-thinair-co-openapi.json#/components/schemas/DirectionsRequest",
  "type": "object",
  "properties": {
    "origin": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        {
          "type": "object",
          "properties": {
            "lat": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            },
            "lon": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            }
          },
          "required": [
            "lat",
            "lon"
          ]
        }
      ],
      "description": "Free-text address ('Houston, TX', '4131 Center St, Houston, TX 77007') OR a coordinate pair { lat, lon }."
    },
    "destination": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        },
        {
          "type": "object",
          "properties": {
            "lat": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            },
            "lon": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            }
          },
          "required": [
            "lat",
            "lon"
          ]
        }
      ],
      "description": "Free-text address ('Houston, TX', '4131 Center St, Houston, TX 77007') OR a coordinate pair { lat, lon }."
    },
    "via": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          {
            "type": "object",
            "properties": {
              "lat": {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              "lon": {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              }
            },
            "required": [
              "lat",
              "lon"
            ]
          }
        ],
        "description": "Free-text address ('Houston, TX', '4131 Center St, Houston, TX 77007') OR a coordinate pair { lat, lon }."
      },
      "maxItems": 48,
      "description": "Intermediate stops in order. Same shape as origin/destination. Up to 48 waypoints (max 50 total locations)."
    },
    "alternates": {
      "type": "integer",
      "minimum": 0,
      "maximum": 2,
      "description": "Number of genuine motorized alternate routes to request (0, 1, or 2). Positive values require no via waypoints."
    },
    "costing": {
      "type": "string",
      "enum": [
        "auto",
        "truck",
        "bicycle",
        "pedestrian",
        "motorcycle"
      ],
      "description": "Transport mode. Default: auto."
    },
    "preset": {
      "type": "string",
      "maxLength": 64,
      "description": "Routing preset — one of: car_default, truck_53, truck_box26, truck_tanker, truck_flatbed, truck_step_deck, truck_auto_carrier, truck_sprinter, truck_double, truck_oversize, motorcycle, scooter, bike, walk, transit. Sets costing AND dimensions together. NOTE: these are NOT the `vehicle_profile` names — passing a vehicle_profile id here is not recognised and currently falls back to a CAR route."
    },
    "vehicle_profile": {
      "type": "string",
      "maxLength": 64,
      "description": "Truck dimension profile (10): DRY_VAN_53, FLATBED_48, FLATBED_40, STEP_DECK, TANKER, BOX_TRUCK_26, AUTO_CARRIER, SPRINTER_VAN, DOUBLE_TRAILER, OVERSIZE. Sets height/weight/length/axles. Distinct from `preset`, which also sets costing."
    },
    "truck_height": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 30,
      "description": "Truck height (m)"
    },
    "truck_weight": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 200,
      "description": "Truck weight (metric tons)"
    },
    "truck_width": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 10
    },
    "truck_length": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 60
    },
    "hazmat": {
      "type": "boolean",
      "description": "Routing avoids hazmat-restricted roads when true."
    },
    "axle_load": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "axle_count": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 20
    },
    "top_speed": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 300
    },
    "use_highways": {
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "use_ferry": {
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "avoid_tolls": {
      "type": "boolean"
    },
    "include_traffic": {
      "type": "boolean",
      "description": "Apply post-route live-traffic ETA enrichment. Default: true. Traffic does not change the returned path (path_influenced=false); truck adjustments are slowdown-only."
    },
    "include_weather": {
      "type": "boolean"
    },
    "include_elevation": {
      "type": "boolean",
      "description": "When true, include available route elevation fields. Point elevation may be returned for the origin and destination. Cumulative gain/loss is returned only when route-profile elevation is available. Default: false (an extra upstream lookup, opt-in only)."
    },
    "units": {
      "type": "string",
      "enum": [
        "miles",
        "kilometers"
      ],
      "description": "Distance units. Default: miles. Accepts 'km'/'mi' as aliases."
    },
    "depart_at": {
      "type": "string",
      "format": "date-time",
      "description": "Departure time (ISO 8601). Default: now."
    },
    "include_geometry": {
      "type": "string",
      "enum": [
        "none",
        "encoded",
        "full"
      ],
      "description": "Route geometry shape control. \"none\" returns origin/destination Points only. \"encoded\" returns an encoded polyline6 string in a top-level `geometry` field plus origin/destination Points (≈95% smaller than raw GeoJSON; decode with @mapbox/polyline at precision 6). \"full\" emits decoded coordinates as a LineString in `geojson.features[0]`. When omitted (default), small routes use \"full\" and long routes auto-downgrade to \"encoded\" with a `geometry_truncated` warning."
    }
  },
  "required": [
    "origin",
    "destination"
  ]
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/thinair-co-directions-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.