Get approval
curl --request GET \
--url https://app.kosli.com/api/v2/approvals/{org}/{flow_name}/{approval_number} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.kosli.com/api/v2/approvals/{org}/{flow_name}/{approval_number}"
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/approvals/{org}/{flow_name}/{approval_number}', 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/approvals/{org}/{flow_name}/{approval_number}",
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/approvals/{org}/{flow_name}/{approval_number}"
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/approvals/{org}/{flow_name}/{approval_number}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.kosli.com/api/v2/approvals/{org}/{flow_name}/{approval_number}")
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{
"approvals": [
{
"approval_url": "undefined",
"approved_by": "external://External",
"comment": "",
"state": "APPROVED",
"timestamp": 1756281574.9707942
}
],
"artifact_name": "a.really.long/name/mimicing/docker@sha256:0fcd25440a99c80ac8df15ca3c5df095a791e7b01fbcb2ac60e9994f1c1e8f4d",
"base_artifact": "5e2ec37f5b16b662e197a7de71173aac545437f5dab6d0ce452f71dd472a77b2",
"created_at": 1756281574.9707942,
"description": "",
"environment": "staging",
"last_modified_at": 1756281574.9707942,
"release_number": 1,
"src_commit_list": [
{
"artifact_fingerprints": [
"37bb572099c4e464b18ad5262620f2ebb257db68bd076dd28d2de4a5905a875e",
"b82d50a10366965e923fb348c684d8fc7dfa65c104b594ba5613df1efe012c30"
],
"commit_sha": "8a0075843a3f94226938bb87c81785c2be0e9d48"
}
],
"state": "APPROVED",
"target_artifact": "5e2ec37f5b16b662e197a7de71173aac545437f5dab6d0ce452f71dd472a77b2",
"user_data": {}
}Get approval
Get an approval record.
GET
/
approvals
/
{org}
/
{flow_name}
/
{approval_number}
Get approval
curl --request GET \
--url https://app.kosli.com/api/v2/approvals/{org}/{flow_name}/{approval_number} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.kosli.com/api/v2/approvals/{org}/{flow_name}/{approval_number}"
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/approvals/{org}/{flow_name}/{approval_number}', 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/approvals/{org}/{flow_name}/{approval_number}",
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/approvals/{org}/{flow_name}/{approval_number}"
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/approvals/{org}/{flow_name}/{approval_number}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.kosli.com/api/v2/approvals/{org}/{flow_name}/{approval_number}")
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{
"approvals": [
{
"approval_url": "undefined",
"approved_by": "external://External",
"comment": "",
"state": "APPROVED",
"timestamp": 1756281574.9707942
}
],
"artifact_name": "a.really.long/name/mimicing/docker@sha256:0fcd25440a99c80ac8df15ca3c5df095a791e7b01fbcb2ac60e9994f1c1e8f4d",
"base_artifact": "5e2ec37f5b16b662e197a7de71173aac545437f5dab6d0ce452f71dd472a77b2",
"created_at": 1756281574.9707942,
"description": "",
"environment": "staging",
"last_modified_at": 1756281574.9707942,
"release_number": 1,
"src_commit_list": [
{
"artifact_fingerprints": [
"37bb572099c4e464b18ad5262620f2ebb257db68bd076dd28d2de4a5905a875e",
"b82d50a10366965e923fb348c684d8fc7dfa65c104b594ba5613df1efe012c30"
],
"commit_sha": "8a0075843a3f94226938bb87c81785c2be0e9d48"
}
],
"state": "APPROVED",
"target_artifact": "5e2ec37f5b16b662e197a7de71173aac545437f5dab6d0ce452f71dd472a77b2",
"user_data": {}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Response
200 - application/json
Successful Response
Get approval response.
The approval number
The base artifact fingerprint
The name/identifier of the artifact
The target artifact fingerprint
Description for the approval
List of commits with their artifact fingerprints
Show child attributes
Show child attributes
Timestamp when the approval was created
Timestamp when the approval was last modified
Overall approval state
Available options:
APPROVED, UNAPPROVED, PENDING List of individual approvals
Show child attributes
Show child attributes
Environment the approval is valid for
Additional user data
Last modified on June 18, 2026