curl --request GET \
--url https://app.kardinal.ai/api/v2/plans \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.kardinal.ai/api/v2/plans"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.kardinal.ai/api/v2/plans', 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://app.kardinal.ai/api/v2/plans",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.kardinal.ai/api/v2/plans"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.kardinal.ai/api/v2/plans")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.kardinal.ai/api/v2/plans")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "4cbd0ab8-282c-4b30-b981-29e1ed8a2016",
"agencyId": "BLD1234567_production",
"version": 1,
"status": {
"waitingRoom": {
"waitingVersion": 1,
"runningVersion": 1
},
"creation": {
"waitingVersion": 1,
"runningVersion": 1
},
"optimization": {
"waitingVersion": 1,
"runningVersion": 1
}
}
}
],
"agencyId": "BLD1234567_production",
"paging": {
"total": 1,
"totalPages": 1,
"page": 1,
"itemsPerPage": 20
}
}Retrieve the list of plans, in a light representation
Retrieving a collection of plans is always paginated:
- if
pageis absent, its default value is used, - if
itemsPerPageis absent, its default value is used, - so if both are absent, the first page is returned, with the default number of items.
curl --request GET \
--url https://app.kardinal.ai/api/v2/plans \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.kardinal.ai/api/v2/plans"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.kardinal.ai/api/v2/plans', 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://app.kardinal.ai/api/v2/plans",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.kardinal.ai/api/v2/plans"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.kardinal.ai/api/v2/plans")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.kardinal.ai/api/v2/plans")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "4cbd0ab8-282c-4b30-b981-29e1ed8a2016",
"agencyId": "BLD1234567_production",
"version": 1,
"status": {
"waitingRoom": {
"waitingVersion": 1,
"runningVersion": 1
},
"creation": {
"waitingVersion": 1,
"runningVersion": 1
},
"optimization": {
"waitingVersion": 1,
"runningVersion": 1
}
}
}
],
"agencyId": "BLD1234567_production",
"paging": {
"total": 1,
"totalPages": 1,
"page": 1,
"itemsPerPage": 20
}
}Authorizations
JWT bearer token, sent as Authorization: Bearer <token>. Two kinds of token are accepted:
- A session token (1 hour), obtained through the interactive Console login flow. Used to sign in to the Console; not meant to be used against this API.
- A long-term API token (366 days), obtained once via the Console and meant to be stored by your integration. It is the credential recommended for backend use, since it does not depend on repeating the interactive login flow.
Query Parameters
The page number of a paginated list of records.
x >= 11
The number of items per page in a paginated list of records.
1 <= x <= 10030
Indicates if and how archived items should be part of the result.
excluded, included, only Response
Plan collection response in a light representation.
A page of light-representation plans, as returned by the plan-listing endpoint.
Plans on this page.
Show child attributes
Show child attributes
Identifier of the Kardinal tenant/account the plan is scoped to, derived automatically from the access token used to make the request.
Modelling pitfall. Not a physical-depot or site partition key. A single fleet based at several physical depots is still one
Plan; do not split it into severalPlanobjects just because resources have differentdeparture/arrivalpositions.
^BLD[0-9]{7}_[a-zA-Z0-9-._~:@!$,]+$"BLD1234567_production"
Pagination metadata attached to a paged list response.
Show child attributes
Show child attributes
Was this page helpful?

