curl --request POST \
--url https://api.aisa.one/apis/v1/graphhopper/matrix-post \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"points": [
[
123
]
],
"profile": "car",
"out_arrays": [
"times",
"distances"
]
}
'import requests
url = "https://api.aisa.one/apis/v1/graphhopper/matrix-post"
payload = {
"points": [[123]],
"profile": "car",
"out_arrays": ["times", "distances"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({points: [[123]], profile: 'car', out_arrays: ['times', 'distances']})
};
fetch('https://api.aisa.one/apis/v1/graphhopper/matrix-post', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/graphhopper/matrix-post",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'points' => [
[
123
]
],
'profile' => 'car',
'out_arrays' => [
'times',
'distances'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/graphhopper/matrix-post"
payload := strings.NewReader("{\n \"points\": [\n [\n 123\n ]\n ],\n \"profile\": \"car\",\n \"out_arrays\": [\n \"times\",\n \"distances\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/graphhopper/matrix-post")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"points\": [\n [\n 123\n ]\n ],\n \"profile\": \"car\",\n \"out_arrays\": [\n \"times\",\n \"distances\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/graphhopper/matrix-post")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"points\": [\n [\n 123\n ]\n ],\n \"profile\": \"car\",\n \"out_arrays\": [\n \"times\",\n \"distances\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"info": {
"took": 123,
"copyrights": [
"<string>"
]
},
"hints": [
{
"message": "<string>",
"details": "<string>",
"point_pairs": [
[
123
]
],
"invalid_to_points": [
123
],
"invalid_from_points": [
123
]
}
],
"times": [
[
123
]
],
"weights": [
[
123
]
],
"distances": [
[
123
]
]
}Calculate Matrix
curl --request POST \
--url https://api.aisa.one/apis/v1/graphhopper/matrix-post \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"points": [
[
123
]
],
"profile": "car",
"out_arrays": [
"times",
"distances"
]
}
'import requests
url = "https://api.aisa.one/apis/v1/graphhopper/matrix-post"
payload = {
"points": [[123]],
"profile": "car",
"out_arrays": ["times", "distances"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({points: [[123]], profile: 'car', out_arrays: ['times', 'distances']})
};
fetch('https://api.aisa.one/apis/v1/graphhopper/matrix-post', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/graphhopper/matrix-post",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'points' => [
[
123
]
],
'profile' => 'car',
'out_arrays' => [
'times',
'distances'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/graphhopper/matrix-post"
payload := strings.NewReader("{\n \"points\": [\n [\n 123\n ]\n ],\n \"profile\": \"car\",\n \"out_arrays\": [\n \"times\",\n \"distances\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/graphhopper/matrix-post")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"points\": [\n [\n 123\n ]\n ],\n \"profile\": \"car\",\n \"out_arrays\": [\n \"times\",\n \"distances\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/graphhopper/matrix-post")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"points\": [\n [\n 123\n ]\n ],\n \"profile\": \"car\",\n \"out_arrays\": [\n \"times\",\n \"distances\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"info": {
"took": 123,
"copyrights": [
"<string>"
]
},
"hints": [
{
"message": "<string>",
"details": "<string>",
"point_pairs": [
[
123
]
],
"invalid_to_points": [
123
],
"invalid_from_points": [
123
]
}
],
"times": [
[
123
]
],
"weights": [
[
123
]
],
"distances": [
[
123
]
]
}Request contract
- Method and path: POST /apis/v1/graphhopper/matrix-post
- Availability: enabled
- Request URL template:
https://api.aisa.one/apis/v1/graphhopper/matrix-post - Runtime facts: 6a72f8e2fa7fb1c29379e3b24b3a247c8428a3b6ed621b3f84f84e75cb0de2bc
{
"operationId": "graphhopper.matrix-post",
"method": "POST",
"path": "/apis/v1/graphhopper/matrix-post",
"servers": [
{
"url": "https://api.aisa.one"
}
],
"parameters": [],
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"points": {
"items": {
"type": "array",
"items": {
"type": "number"
}
},
"maxItems": 20,
"minItems": 2,
"type": "array",
"description": "Coordinates for symmetric matrix as [longitude, latitude]."
},
"profile": {
"enum": [
"car"
],
"type": "string",
"description": "Routing profile ID (e.g. 'car', 'bike', 'foot')."
},
"curbsides": {
"type": "array",
"items": {
"enum": [
"any",
"left",
"right"
],
"type": "string"
},
"description": "Curbside per point ('any','left','right') for symmetrical."
},
"fail_fast": {
"type": "boolean",
"default": true,
"description": "If false, return null for unreachable entries and include hints."
},
"to_points": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
},
"description": "Destination coordinates as [longitude, latitude]. Provide with from_points."
},
"out_arrays": {
"type": "array",
"items": {
"enum": [
"weights",
"times",
"distances"
],
"type": "string"
},
"examples": [
[
"times",
"distances"
]
],
"description": "Which matrices to include."
},
"from_points": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
},
"description": "Origin coordinates as [longitude, latitude]. Provide with to_points."
},
"point_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Hint per point for snapping preference (symmetrical)."
},
"to_curbsides": {
"type": "array",
"items": {
"enum": [
"any",
"left",
"right"
],
"type": "string"
},
"description": "Curbside per destination ('any','left','right')."
},
"from_curbsides": {
"type": "array",
"items": {
"enum": [
"any",
"left",
"right"
],
"type": "string"
},
"description": "Curbside per origin ('any','left','right')."
},
"to_point_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Hint per destination for snapping preference."
},
"from_point_hints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Hint per origin for snapping preference."
},
"snap_preventions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Feature types to avoid for snapping (e.g. 'toll', 'ferry')."
}
},
"required": [
"out_arrays",
"points",
"profile"
]
}
}
}
},
"x-aisa-status": "enabled",
"x-aisa-pricing": {
"cost_contract": "response_units",
"customer_multiplier": 1.0,
"customer_pricing": "provider_cost_multiplier",
"estimate_source": "unavailable",
"estimate_unavailable_reason": "reference_request_unavailable",
"evidence_source": "response_body",
"maximum_units": 10000000,
"unit": "provider_credit",
"unit_rate_usd": 1e-06
},
"components": {
"securitySchemes": {
"bearerAuth": {
"scheme": "bearer",
"type": "http"
}
}
}
}
Cost and request rules
A request reference price is not currently available; use a request quote where supported. Declared unit rate: $0.000001 USD per provider_credit. Account-specific pricing and final settlement may differ. Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.- Declared unit rate (USD): 1e-06
- Billing unit: provider_credit
- Cost contract: response_units
- Published reference multiplier: 1.0
- Declared maximum count/units: 10000000
- Settlement evidence source: response_body
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Coordinates for symmetric matrix as [longitude, latitude].
2 - 20 elementsRouting profile ID (e.g. 'car', 'bike', 'foot').
car Which matrices to include.
weights, times, distances ["times", "distances"]
Curbside per point ('any','left','right') for symmetrical.
any, left, right If false, return null for unreachable entries and include hints.
Destination coordinates as [longitude, latitude]. Provide with from_points.
Origin coordinates as [longitude, latitude]. Provide with to_points.
Hint per point for snapping preference (symmetrical).
Curbside per destination ('any','left','right').
any, left, right Curbside per origin ('any','left','right').
any, left, right Hint per destination for snapping preference.
Hint per origin for snapping preference.
Feature types to avoid for snapping (e.g. 'toll', 'ferry').