{"callable":true,"canonicalCall":{"contentType":"application/json","endpoint":"https://x402vip.com/api/tools/google-maps-traffic","method":"POST"},"links":{"catalogSearch":"https://x402vip.com/api/catalog/search?q=google-maps-traffic","catalogSummary":"https://x402vip.com/api/catalog.summary.json","mcp":"https://x402vip.com/mcp","openapi":"https://x402vip.com/api/catalog/openapi.json","serviceLLMs":"https://x402vip.com/services/google-maps-traffic/llms.txt"},"message":"This GET/HEAD response is a no-payment discovery probe. Use the declared method to receive HTTP 402 payment requirements, then retry the same request after payment.","nextActions":["If this service matches the task, call the canonical endpoint with the declared method and valid JSON input to receive HTTP 402 payment requirements.","If this service is not a fit, search /api/catalog/search?q=\u003ctask\u003e and inspect services[].whyMatched before choosing a tool.","If no published service fits, submit /api/agent-demand or POST /api/planned-services/request-access for a planned candidate."],"payment":{"flow":{"type":"http-402","createPayment":{"method":"POST","url":"https://x402vip.com/api/payments","bodySchema":{"properties":{"providerId":{"type":"string"},"serviceId":{"description":"Use the canonical service id from the catalog. Legacy internal ids remain accepted for backward compatibility.","type":"string"}},"required":["serviceId"],"type":"object"},"responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"verifyPayment":{"method":"GET","url":"https://x402vip.com/api/payments/{paymentId}","responseSchema":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"}},"token":{"header":"X-Payment-Token","mcpArgument":"paymentToken","httpUsage":"Send the paid token in the X-Payment-Token request header when calling /api/tools/*.","mcpUsage":"Pass the paid token as the paymentToken argument when calling the MCP tool."},"requiredResponse":{"status":402,"contentType":"application/json","headers":{"PAYMENT-REQUIRED":"base64/json paymentRequired","X-Payment-Required":"true","X-Payment-Token":"payment.token","X402-Guarantee":"base64url/json XIAO escrow guarantee"},"bodySchema":{"properties":{"accepts":{"items":{"type":"object"},"type":"array"},"error":{"type":"string"},"extensions":{"type":"object"},"payment":{"properties":{"amountCents":{"type":"integer"},"amountMicros":{"type":"integer"},"billingMode":{"type":"string"},"clientId":{"type":"string"},"currency":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"},"internalServiceId":{"description":"Legacy internal service id, included only for backward compatibility.","type":"string"},"maxCalls":{"type":"integer"},"paidAt":{"format":"date-time","type":"string"},"payTo":{"type":"string"},"paymentId":{"type":"string"},"provider":{"type":"string"},"providerId":{"type":"string"},"remainingCalls":{"type":"integer"},"serviceId":{"description":"Canonical public service id.","type":"string"},"status":{"type":"string"},"token":{"type":"string"},"usedCalls":{"type":"integer"}},"type":"object"},"paymentFlow":{"type":"object"},"resource":{"type":"object"},"retry":{"type":"object"},"type":{"const":"payment_required","type":"string"},"x402Version":{"type":"integer"}},"required":["type","error","payment","paymentFlow","retry"],"type":"object"},"x402Version":2,"x402Header":"PAYMENT-REQUIRED","paymentAsset":"XIAO","paymentNetwork":"xiao:internal"},"retry":{"when":"Retry after opening xiaopay.top, obtaining XIAO, and creating one XIAO accepts[] guarantee or after payment.status is paid and the token has remaining calls.","http":["Call the paid /api/tools/* endpoint once and read accepts[] from the HTTP 402 response body or PAYMENT-REQUIRED header.","Open https://xiaopay.top to obtain XIAO, then create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","Retry the exact same request with X402-Guarantee set to the base64url guarantee JSON.","Use POST /api/payments with serviceId when you need a reusable payment token, then retry with X-Payment-Token set to payment.token."],"mcp":["Call the tool without paymentToken to receive payment_required structuredContent.","XIAO-capable agents should open xiaopay.top, obtain XIAO, create the AI wallet guarantee, and call the underlying HTTP endpoint with X402-Guarantee.","Clients that use paymentToken can complete or verify payment.paymentId, then call the same MCP tool again with paymentToken set to payment.token."],"examples":{"mcp":["Call tool timestamp with no paymentToken.","After payment is complete, call timestamp again with paymentToken=\u003cpayment.token\u003e."],"paymentToken":["curl -X POST https://example.com/api/payments -H 'Content-Type: application/json' -d '{\"serviceId\":\"timestamp\"}'","curl -H 'X-Payment-Token: \u003cpayment.token\u003e' https://example.com/api/tools/timestamp"],"xiao":["curl -i https://example.com/api/tools/timestamp","Open https://xiaopay.top, obtain XIAO, and create an AI wallet guarantee for merchant_id=aivps.lat and merchant_order_id=payment.paymentId.","curl -H 'X402-Guarantee: \u003cbase64url-guarantee-json\u003e' https://example.com/api/tools/timestamp"]},"failures":["payment required","payment token expired","payment token has no remaining calls","api key required","api key is not allowed to call this service"]}},"paymentHeader":"X-Payment-Token","provider":"x402_xiao_wallet","providerId":"xiao-wallet","x402Header":"PAYMENT-SIGNATURE"},"pricing":{"amountCents":1,"amountMicros":10000,"currency":"XIAO","policyId":"google-maps-traffic","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"schemaVersion":"server402.service-discovery.v1","schemas":{"input":{"properties":{"computeAlternativeRoutes":{"default":false,"type":"boolean"},"departureTime":{"description":"RFC3339 timestamp or now.","type":"string"},"destination":{"description":"Waypoint for Google Routes API. Provide exactly one of address, placeId, or location.latLng. Strings are treated as addresses.","properties":{"address":{"description":"Free-form address or place description.","type":"string"},"location":{"properties":{"heading":{"description":"Optional heading in degrees when using latLng.","maximum":360,"minimum":0,"type":"integer"},"latLng":{"properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":["latitude","longitude"],"type":"object"}},"type":"object"},"placeId":{"description":"Google Place ID.","type":"string"},"sideOfRoad":{"description":"Whether the waypoint should be on the road side.","type":"boolean"},"vehicleStopover":{"description":"Whether the waypoint is a stopover.","type":"boolean"},"via":{"description":"Whether the waypoint is a pass-through point.","type":"boolean"}},"type":"object"},"extraComputations":{"items":{"enum":["TOLLS","TRAFFIC_ON_POLYLINE","HTML_FORMATTED_NAVIGATION_INSTRUCTIONS"],"type":"string"},"type":"array"},"intermediates":{"description":"Optional intermediate waypoints in travel order.","items":{"description":"Waypoint for Google Routes API. Provide exactly one of address, placeId, or location.latLng. Strings are treated as addresses.","properties":{"address":{"description":"Free-form address or place description.","type":"string"},"location":{"properties":{"heading":{"description":"Optional heading in degrees when using latLng.","maximum":360,"minimum":0,"type":"integer"},"latLng":{"properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":["latitude","longitude"],"type":"object"}},"type":"object"},"placeId":{"description":"Google Place ID.","type":"string"},"sideOfRoad":{"description":"Whether the waypoint should be on the road side.","type":"boolean"},"vehicleStopover":{"description":"Whether the waypoint is a stopover.","type":"boolean"},"via":{"description":"Whether the waypoint is a pass-through point.","type":"boolean"}},"type":"object"},"type":"array"},"languageCode":{"default":"en-US","description":"BCP-47 locale used for route labels.","type":"string"},"origin":{"description":"Waypoint for Google Routes API. Provide exactly one of address, placeId, or location.latLng. Strings are treated as addresses.","properties":{"address":{"description":"Free-form address or place description.","type":"string"},"location":{"properties":{"heading":{"description":"Optional heading in degrees when using latLng.","maximum":360,"minimum":0,"type":"integer"},"latLng":{"properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":["latitude","longitude"],"type":"object"}},"type":"object"},"placeId":{"description":"Google Place ID.","type":"string"},"sideOfRoad":{"description":"Whether the waypoint should be on the road side.","type":"boolean"},"vehicleStopover":{"description":"Whether the waypoint is a stopover.","type":"boolean"},"via":{"description":"Whether the waypoint is a pass-through point.","type":"boolean"}},"type":"object"},"regionCode":{"description":"Optional ISO 3166-1 alpha-2 region code.","type":"string"},"routeModifiers":{"properties":{"avoidFerries":{"type":"boolean"},"avoidHighways":{"type":"boolean"},"avoidIndoor":{"type":"boolean"},"avoidTolls":{"type":"boolean"}},"type":"object"},"routingPreference":{"default":"TRAFFIC_AWARE_OPTIMAL","enum":["TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"type":"string"},"trafficModel":{"default":"BEST_GUESS","enum":["BEST_GUESS","OPTIMISTIC","PESSIMISTIC"],"type":"string"},"travelMode":{"default":"DRIVE","enum":["DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"type":"string"},"units":{"default":"METRIC","enum":["METRIC","IMPERIAL"],"type":"string"}},"required":["origin","destination"],"type":"object"},"inputUrl":"https://x402vip.com/schemas/services/google-maps-traffic/invoke.input.schema.json","output":{"properties":{"agent_id":{"type":"string"},"compute_alternative_routes":{"type":"boolean"},"departure_time":{"type":"string"},"destination":{"type":"object"},"fallback_info":{"type":"object"},"geocoding_results":{"type":"object"},"intermediates":{"items":{"type":"object"},"type":"array"},"language_code":{"type":"string"},"notes":{"items":{"type":"string"},"type":"array"},"origin":{"type":"object"},"region_code":{"type":"string"},"request_id":{"type":"string"},"route_count":{"type":"integer"},"route_modifiers":{"type":"object"},"routes":{"items":{"properties":{"description":{"type":"string"},"distance_meters":{"type":"integer"},"distance_text":{"type":"string"},"duration_seconds":{"type":"integer"},"duration_text":{"type":"string"},"legs":{"items":{"type":"object"},"type":"array"},"localized_values":{"type":"object"},"optimized_intermediate_waypoint_indexes":{"items":{"type":"integer"},"type":"array"},"polyline":{"type":"object"},"route_index":{"type":"integer"},"route_labels":{"items":{"type":"string"},"type":"array"},"static_duration_seconds":{"type":"integer"},"static_duration_text":{"type":"string"},"traffic_delay_seconds":{"type":"integer"},"travel_advisory":{"type":"object"},"warning_messages":{"items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"routing_preference":{"type":"string"},"source":{"type":"string"},"source_urls":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"},"traffic_enabled":{"type":"boolean"},"traffic_model":{"type":"string"},"travel_mode":{"type":"string"},"units":{"type":"string"}},"required":["status","agent_id","request_id","origin","destination","travel_mode","routing_preference","routes","source","source_urls"],"type":"object"},"outputUrl":"https://x402vip.com/schemas/services/google-maps-traffic/invoke.output.schema.json"},"service":{"id":"google-maps-traffic","name":"Google Maps Traffic","description":"Use this paid XIAO Google Maps Routes API service for route planning, driving directions, traffic-aware ETA, travel time, static travel time, traffic delay, route distance, legs, steps, and polyline output between an origin and destination. Strong keywords include map query, route lookup, driving directions, traffic-aware ETA, drive time, commute time, Google Maps Routes API, 地图查询, 谷歌地图, 路线查询, 路线规划, 导航路线, 驾车路线, 实时路况, 交通情况, 堵车, 开车多久, and 从A到B怎么走. It requires origin and destination. It supports addresses, Google Place IDs, and latitude/longitude waypoints. Unpaid calls return HTTP 402 before Google execution. This endpoint does not support standalone nearby search, POI/business search, place details, store hours, reviews, map tiles, or geocoding-only lookup.","endpoint":"/api/tools/google-maps-traffic","method":"POST","auth_type":"api_key + x402_xiao_wallet http_402","billing_method":"per_call","pricing":{"amountCents":1,"amountMicros":10000,"currency":"XIAO","policyId":"google-maps-traffic","settleMode":"settle_first","billingMode":"per_call","maxCalls":1,"allowReuse":false,"bindClient":true},"input_schema":{"properties":{"computeAlternativeRoutes":{"default":false,"type":"boolean"},"departureTime":{"description":"RFC3339 timestamp or now.","type":"string"},"destination":{"description":"Waypoint for Google Routes API. Provide exactly one of address, placeId, or location.latLng. Strings are treated as addresses.","properties":{"address":{"description":"Free-form address or place description.","type":"string"},"location":{"properties":{"heading":{"description":"Optional heading in degrees when using latLng.","maximum":360,"minimum":0,"type":"integer"},"latLng":{"properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":["latitude","longitude"],"type":"object"}},"type":"object"},"placeId":{"description":"Google Place ID.","type":"string"},"sideOfRoad":{"description":"Whether the waypoint should be on the road side.","type":"boolean"},"vehicleStopover":{"description":"Whether the waypoint is a stopover.","type":"boolean"},"via":{"description":"Whether the waypoint is a pass-through point.","type":"boolean"}},"type":"object"},"extraComputations":{"items":{"enum":["TOLLS","TRAFFIC_ON_POLYLINE","HTML_FORMATTED_NAVIGATION_INSTRUCTIONS"],"type":"string"},"type":"array"},"intermediates":{"description":"Optional intermediate waypoints in travel order.","items":{"description":"Waypoint for Google Routes API. Provide exactly one of address, placeId, or location.latLng. Strings are treated as addresses.","properties":{"address":{"description":"Free-form address or place description.","type":"string"},"location":{"properties":{"heading":{"description":"Optional heading in degrees when using latLng.","maximum":360,"minimum":0,"type":"integer"},"latLng":{"properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":["latitude","longitude"],"type":"object"}},"type":"object"},"placeId":{"description":"Google Place ID.","type":"string"},"sideOfRoad":{"description":"Whether the waypoint should be on the road side.","type":"boolean"},"vehicleStopover":{"description":"Whether the waypoint is a stopover.","type":"boolean"},"via":{"description":"Whether the waypoint is a pass-through point.","type":"boolean"}},"type":"object"},"type":"array"},"languageCode":{"default":"en-US","description":"BCP-47 locale used for route labels.","type":"string"},"origin":{"description":"Waypoint for Google Routes API. Provide exactly one of address, placeId, or location.latLng. Strings are treated as addresses.","properties":{"address":{"description":"Free-form address or place description.","type":"string"},"location":{"properties":{"heading":{"description":"Optional heading in degrees when using latLng.","maximum":360,"minimum":0,"type":"integer"},"latLng":{"properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":["latitude","longitude"],"type":"object"}},"type":"object"},"placeId":{"description":"Google Place ID.","type":"string"},"sideOfRoad":{"description":"Whether the waypoint should be on the road side.","type":"boolean"},"vehicleStopover":{"description":"Whether the waypoint is a stopover.","type":"boolean"},"via":{"description":"Whether the waypoint is a pass-through point.","type":"boolean"}},"type":"object"},"regionCode":{"description":"Optional ISO 3166-1 alpha-2 region code.","type":"string"},"routeModifiers":{"properties":{"avoidFerries":{"type":"boolean"},"avoidHighways":{"type":"boolean"},"avoidIndoor":{"type":"boolean"},"avoidTolls":{"type":"boolean"}},"type":"object"},"routingPreference":{"default":"TRAFFIC_AWARE_OPTIMAL","enum":["TRAFFIC_UNAWARE","TRAFFIC_AWARE","TRAFFIC_AWARE_OPTIMAL"],"type":"string"},"trafficModel":{"default":"BEST_GUESS","enum":["BEST_GUESS","OPTIMISTIC","PESSIMISTIC"],"type":"string"},"travelMode":{"default":"DRIVE","enum":["DRIVE","BICYCLE","WALK","TWO_WHEELER","TRANSIT"],"type":"string"},"units":{"default":"METRIC","enum":["METRIC","IMPERIAL"],"type":"string"}},"required":["origin","destination"],"type":"object"},"output_schema":{"properties":{"agent_id":{"type":"string"},"compute_alternative_routes":{"type":"boolean"},"departure_time":{"type":"string"},"destination":{"type":"object"},"fallback_info":{"type":"object"},"geocoding_results":{"type":"object"},"intermediates":{"items":{"type":"object"},"type":"array"},"language_code":{"type":"string"},"notes":{"items":{"type":"string"},"type":"array"},"origin":{"type":"object"},"region_code":{"type":"string"},"request_id":{"type":"string"},"route_count":{"type":"integer"},"route_modifiers":{"type":"object"},"routes":{"items":{"properties":{"description":{"type":"string"},"distance_meters":{"type":"integer"},"distance_text":{"type":"string"},"duration_seconds":{"type":"integer"},"duration_text":{"type":"string"},"legs":{"items":{"type":"object"},"type":"array"},"localized_values":{"type":"object"},"optimized_intermediate_waypoint_indexes":{"items":{"type":"integer"},"type":"array"},"polyline":{"type":"object"},"route_index":{"type":"integer"},"route_labels":{"items":{"type":"string"},"type":"array"},"static_duration_seconds":{"type":"integer"},"static_duration_text":{"type":"string"},"traffic_delay_seconds":{"type":"integer"},"travel_advisory":{"type":"object"},"warning_messages":{"items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"},"routing_preference":{"type":"string"},"source":{"type":"string"},"source_urls":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"},"traffic_enabled":{"type":"boolean"},"traffic_model":{"type":"string"},"travel_mode":{"type":"string"},"units":{"type":"string"}},"required":["status","agent_id","request_id","origin","destination","travel_mode","routing_preference","routes","source","source_urls"],"type":"object"},"tags":["paid","xiao","google","google-maps","maps","routes","directions","traffic","eta","navigation","route-planning","route-lookup","map-query","maps-query","commute","live-traffic","road-traffic","traffic-data","drive-time","driving-time","travel-time","traffic-delay","estimated-arrival","semantic:google-maps-traffic","intent:route-planning","intent:traffic-aware-eta","intent:driving-directions","intent:map-query","intent:navigation-route","input:origin","input:destination","output:duration","output:traffic-delay","output:distance"],"category":"maps-routes"},"status":"discovery_only","type":"paid_service_discovery"}
