Download trail status PDF
curl --request GET \
--url https://app.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf', 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.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf",
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.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf"
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.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf")
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"<string>"{
"message": "Input payload validation failed",
"errors": {
"email": "Field must be a valid email address",
"name": "Field cannot be empty"
}
}{
"message": "Flow or trail not found, or no status recorded by `at`"
}Download trail status PDF
Download the trail’s compliance status at a point in time as a PDF, stamped with the time that status was recorded.
GET
/
trails
/
{org}
/
{flow_name}
/
{trail_name}
/
status_pdf
Download trail status PDF
curl --request GET \
--url https://app.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf', 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.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf",
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.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf"
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.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.kosli.com/api/v2/trails/{org}/{flow_name}/{trail_name}/status_pdf")
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"<string>"{
"message": "Input payload validation failed",
"errors": {
"email": "Field must be a valid email address",
"name": "Field cannot be empty"
}
}{
"message": "Flow or trail not found, or no status recorded by `at`"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Name of a flow in the org
Pattern:
^[a-zA-Z0-9][a-zA-Z0-9\.\-_~]*$Name of a trail in the flow
Pattern:
^[a-zA-Z0-9][a-zA-Z0-9\.\-_~]*$Query Parameters
Download the status as it stood at this Unix time, from the newest change recorded at or before it. Omit for the trail's latest status.
Response
PDF of the trail's compliance status at a point in time
The response is of type file.