Approval Request API
Search Approval Requests
Search approval requests with filters such as resource type, result status, and date range.
POST
/
v2
/
approval-requests
/
search
Search Approval Requests
curl --request POST \
--url https://public.api.serval.com/v2/approval-requests/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"teamId": "<string>",
"results": [],
"createdAfter": "<string>",
"createdBefore": "<string>",
"pageSize": 123,
"pageToken": "<string>"
}
'import requests
url = "https://public.api.serval.com/v2/approval-requests/search"
payload = {
"teamId": "<string>",
"results": [],
"createdAfter": "<string>",
"createdBefore": "<string>",
"pageSize": 123,
"pageToken": "<string>"
}
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({
teamId: '<string>',
results: [],
createdAfter: '<string>',
createdBefore: '<string>',
pageSize: 123,
pageToken: '<string>'
})
};
fetch('https://public.api.serval.com/v2/approval-requests/search', 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://public.api.serval.com/v2/approval-requests/search",
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([
'teamId' => '<string>',
'results' => [
],
'createdAfter' => '<string>',
'createdBefore' => '<string>',
'pageSize' => 123,
'pageToken' => '<string>'
]),
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://public.api.serval.com/v2/approval-requests/search"
payload := strings.NewReader("{\n \"teamId\": \"<string>\",\n \"results\": [],\n \"createdAfter\": \"<string>\",\n \"createdBefore\": \"<string>\",\n \"pageSize\": 123,\n \"pageToken\": \"<string>\"\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://public.api.serval.com/v2/approval-requests/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"teamId\": \"<string>\",\n \"results\": [],\n \"createdAfter\": \"<string>\",\n \"createdBefore\": \"<string>\",\n \"pageSize\": 123,\n \"pageToken\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public.api.serval.com/v2/approval-requests/search")
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 \"teamId\": \"<string>\",\n \"results\": [],\n \"createdAfter\": \"<string>\",\n \"createdBefore\": \"<string>\",\n \"pageSize\": 123,\n \"pageToken\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"accessRequestTimeAllocationId": "<string>",
"workflowRunId": "<string>",
"id": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"approverJustificationMode": "<string>"
}
],
"nextPageToken": "<string>"
}{
"message": "<string>",
"detail": {
"type": "<string>",
"value": "<string>",
"debug": {}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
The ID of the team. Required.
Filter by resource type (allocation or workflow run).
Available options:
APPROVAL_REQUEST_RESOURCE_TYPE_UNSPECIFIED, APPROVAL_REQUEST_RESOURCE_TYPE_ACCESS_ALLOCATION, APPROVAL_REQUEST_RESOURCE_TYPE_WORKFLOW_RUN Filter by result statuses (multiple allowed).
Available options:
APPROVAL_REQUEST_RESULT_UNSPECIFIED, PENDING, APPROVED, DENIED, TIMEDOUT, CANCELED Filter by requests created after this timestamp (RFC3339 format).
Filter by requests created before this timestamp (RFC3339 format).
Maximum number of results to return. Default is 1000, maximum is 5000.
Token for pagination. Leave empty for the first request.
Was this page helpful?
⌘I
Search Approval Requests
curl --request POST \
--url https://public.api.serval.com/v2/approval-requests/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"teamId": "<string>",
"results": [],
"createdAfter": "<string>",
"createdBefore": "<string>",
"pageSize": 123,
"pageToken": "<string>"
}
'import requests
url = "https://public.api.serval.com/v2/approval-requests/search"
payload = {
"teamId": "<string>",
"results": [],
"createdAfter": "<string>",
"createdBefore": "<string>",
"pageSize": 123,
"pageToken": "<string>"
}
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({
teamId: '<string>',
results: [],
createdAfter: '<string>',
createdBefore: '<string>',
pageSize: 123,
pageToken: '<string>'
})
};
fetch('https://public.api.serval.com/v2/approval-requests/search', 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://public.api.serval.com/v2/approval-requests/search",
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([
'teamId' => '<string>',
'results' => [
],
'createdAfter' => '<string>',
'createdBefore' => '<string>',
'pageSize' => 123,
'pageToken' => '<string>'
]),
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://public.api.serval.com/v2/approval-requests/search"
payload := strings.NewReader("{\n \"teamId\": \"<string>\",\n \"results\": [],\n \"createdAfter\": \"<string>\",\n \"createdBefore\": \"<string>\",\n \"pageSize\": 123,\n \"pageToken\": \"<string>\"\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://public.api.serval.com/v2/approval-requests/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"teamId\": \"<string>\",\n \"results\": [],\n \"createdAfter\": \"<string>\",\n \"createdBefore\": \"<string>\",\n \"pageSize\": 123,\n \"pageToken\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public.api.serval.com/v2/approval-requests/search")
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 \"teamId\": \"<string>\",\n \"results\": [],\n \"createdAfter\": \"<string>\",\n \"createdBefore\": \"<string>\",\n \"pageSize\": 123,\n \"pageToken\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"accessRequestTimeAllocationId": "<string>",
"workflowRunId": "<string>",
"id": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"approverJustificationMode": "<string>"
}
],
"nextPageToken": "<string>"
}{
"message": "<string>",
"detail": {
"type": "<string>",
"value": "<string>",
"debug": {}
}
}
