Travel time and distance between two places with live traffic, from the Google R
Travel time and distance between two places with live traffic, from the Google Routes API at call time: duration with traffic, duration without, the delay between them, distance, Google's localized texts, route description, warnings and advisory. Places are addresses, place names or "lat,lng". Input: origin, destination; optional travel_mode (DRIVE, TWO_WHEELER, WALK, BICYCLE, TRANSIT), departure_time (RFC 3339, future; omit to leave now), traffic (aware, optimal, none).
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://hubvibe-io.com/work/traffic/route
| Category | Everything else |
|---|---|
| Provider host | hubvibe-io.com |
| Networks | eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-27 | valid payment request | 402 | $0.1 | 833 ms |
Example input (from the provider)
{
"body": {
"destination": "Oakland City Hall, Oakland, CA",
"origin": "Ferry Building, San Francisco, CA",
"traffic": "aware",
"travel_mode": "DRIVE"
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"departure_time": {
"description": "RFC 3339 departure time in the future (2026-09-27T16:30:00Z); omit to leave now.",
"format": "date-time",
"type": "string"
},
"destination": {
"description": "Where the trip ends: an address, a place name, or \"lat,lng\".",
"maxLength": 300,
"minLength": 1,
"type": "string"
},
"origin": {
"description": "Where the trip starts: an address, a place name, or \"lat,lng\".",
"maxLength": 300,
"minLength": 1,
"type": "string"
},
"traffic": {
"description": "aware (default): live traffic; optimal: live traffic with the best route quality, slower; none: no traffic.",
"enum": [
"aware",
"optimal",
"none"
],
"type": "string"
},
"travel_mode": {
"description": "Default DRIVE. Traffic applies to DRIVE and TWO_WHEELER only.",
"enum": [
"DRIVE",
"TWO_WHEELER",
"WALK",
"BICYCLE",
"TRANSIT"
],
"type": "string"
}
},
"required": [
"origin",
"destination"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "The 200 body of every paid /work call. `result` is the worker's own output (its schema is per route); everything else is the same on every /work route. A receipt for the job is at `receipt_url`.",
"properties": {
"billing_warning": {
"description": "Present only when the charge was recorded with a caveat.",
"examples": [
"settlement pending"
],
"type": "string"
},
"price_usd": {
"description": "What this call cost, in USD.",
"examples": [
0.02
],
"type": "number"
},
"provenance": {
"description": "How the result was produced: which providers ran and how long each took.",
"properties": {
"attempts": {
"description": "Provider attempts made, including retries and failovers.",
"examples": [
1
],
"type": "integer"
},
"elapsed_ms": {
"description": "Wall-clock milliseconds for the whole job.",
"examples": [
340
],
"type": "integer"
},
"providers_used": {
"description": "Providers that served the job.",
"examples": [
[
"coinbase-advanced-trade-public"
]
],
"items": {
"description": "Provider name.",
"examples": [
"coinbase-advanced-trade-public"
],
"type": "string"
},
"type": "array"
},
"steps": {
"description": "Every step the job ran, in order.",
"items": {
"description": "One step of the job.",
"properties": {
"ms": {
"description": "Milliseconds the step took.",
"examples": [
312
],
"type": "integer"
},
"ok": {
"description": "Whether the step succeeded.",
"examples": [
true
],
"type": "boolean"
},
"provider": {
"description": "Provider that served the step.",
"examples": [
"coinbase-advanced-trade-public"
],
"type": "string"
},
"reason": {
"description": "Failure reason, on a failed step.",
"examples": [
"provider_timeout"
],
"type": "string"
},
"step": {
"description": "Step name inside the worker.",
"examples": [
"quote"
],
"type": "string"
}
},
"required": [
"step",