curl --request GET \
--url https://{workspace}.klef.ai/api/sync-plans/{id}/operations \
--cookie klef.session=import requests
url = "https://{workspace}.klef.ai/api/sync-plans/{id}/operations"
headers = {"cookie": "klef.session="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: 'klef.session='}};
fetch('https://{workspace}.klef.ai/api/sync-plans/{id}/operations', 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://{workspace}.klef.ai/api/sync-plans/{id}/operations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "klef.session=",
]);
$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://{workspace}.klef.ai/api/sync-plans/{id}/operations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "klef.session=")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{workspace}.klef.ai/api/sync-plans/{id}/operations")
.header("cookie", "klef.session=")
.asString();require 'uri'
require 'net/http'
url = URI("https://{workspace}.klef.ai/api/sync-plans/{id}/operations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cookie"] = 'klef.session='
response = http.request(request)
puts response.read_body{
"results": [
{
"workerName": "<string>",
"operation": {
"id": "<string>",
"connectionId": "<string>",
"targetSystem": "adp_workforce_now",
"kind": "create",
"workerId": "<string>",
"workerVersion": 123,
"externalUserId": "<string>",
"policies": [
"<string>"
],
"cause": "declared",
"causeDetail": "<string>",
"isUndo": true,
"before": "<string>",
"after": "<string>",
"record": "<string>",
"status": "pending",
"blockedReason": "<string>",
"skippedReason": "<string>",
"skippedAfterOperationId": "<string>",
"error": "<string>",
"executedAt": "2023-11-07T05:31:56Z",
"effects": [
{
"id": "<string>",
"kind": "account_created",
"path": "<string>",
"elementKey": "<string>",
"before": null,
"after": null
}
]
},
"fieldLabels": {}
}
],
"facets": {
"kinds": [
{
"value": "create",
"count": 123
}
],
"systems": [
{
"value": "adp_workforce_now",
"count": 123
}
],
"causes": [
{
"value": "declared",
"count": 123
}
],
"statuses": [
{
"value": "pending",
"count": 123
}
]
},
"errors": [
{
"errorCode": "validation_error",
"errorMessage": "<string>",
"target": "<string>"
}
],
"pagination": {
"nextCursor": 123,
"limit": 123,
"hasMore": true,
"total": 123
}
}{
"result": "<unknown>",
"errors": [
{
"errorCode": "validation_error",
"errorMessage": "<string>",
"target": "<string>"
}
]
}{
"result": "<unknown>",
"errors": [
{
"errorCode": "validation_error",
"errorMessage": "<string>",
"target": "<string>"
}
]
}{
"result": "<unknown>",
"errors": [
{
"errorCode": "validation_error",
"errorMessage": "<string>",
"target": "<string>"
}
]
}{
"result": "<unknown>",
"errors": [
{
"errorCode": "validation_error",
"errorMessage": "<string>",
"target": "<string>"
}
]
}Search sync plan operations
curl --request GET \
--url https://{workspace}.klef.ai/api/sync-plans/{id}/operations \
--cookie klef.session=import requests
url = "https://{workspace}.klef.ai/api/sync-plans/{id}/operations"
headers = {"cookie": "klef.session="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: 'klef.session='}};
fetch('https://{workspace}.klef.ai/api/sync-plans/{id}/operations', 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://{workspace}.klef.ai/api/sync-plans/{id}/operations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "klef.session=",
]);
$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://{workspace}.klef.ai/api/sync-plans/{id}/operations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "klef.session=")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{workspace}.klef.ai/api/sync-plans/{id}/operations")
.header("cookie", "klef.session=")
.asString();require 'uri'
require 'net/http'
url = URI("https://{workspace}.klef.ai/api/sync-plans/{id}/operations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cookie"] = 'klef.session='
response = http.request(request)
puts response.read_body{
"results": [
{
"workerName": "<string>",
"operation": {
"id": "<string>",
"connectionId": "<string>",
"targetSystem": "adp_workforce_now",
"kind": "create",
"workerId": "<string>",
"workerVersion": 123,
"externalUserId": "<string>",
"policies": [
"<string>"
],
"cause": "declared",
"causeDetail": "<string>",
"isUndo": true,
"before": "<string>",
"after": "<string>",
"record": "<string>",
"status": "pending",
"blockedReason": "<string>",
"skippedReason": "<string>",
"skippedAfterOperationId": "<string>",
"error": "<string>",
"executedAt": "2023-11-07T05:31:56Z",
"effects": [
{
"id": "<string>",
"kind": "account_created",
"path": "<string>",
"elementKey": "<string>",
"before": null,
"after": null
}
]
},
"fieldLabels": {}
}
],
"facets": {
"kinds": [
{
"value": "create",
"count": 123
}
],
"systems": [
{
"value": "adp_workforce_now",
"count": 123
}
],
"causes": [
{
"value": "declared",
"count": 123
}
],
"statuses": [
{
"value": "pending",
"count": 123
}
]
},
"errors": [
{
"errorCode": "validation_error",
"errorMessage": "<string>",
"target": "<string>"
}
],
"pagination": {
"nextCursor": 123,
"limit": 123,
"hasMore": true,
"total": 123
}
}{
"result": "<unknown>",
"errors": [
{
"errorCode": "validation_error",
"errorMessage": "<string>",
"target": "<string>"
}
]
}{
"result": "<unknown>",
"errors": [
{
"errorCode": "validation_error",
"errorMessage": "<string>",
"target": "<string>"
}
]
}{
"result": "<unknown>",
"errors": [
{
"errorCode": "validation_error",
"errorMessage": "<string>",
"target": "<string>"
}
]
}{
"result": "<unknown>",
"errors": [
{
"errorCode": "validation_error",
"errorMessage": "<string>",
"target": "<string>"
}
]
}Authorizations
Cookie-based session. Obtain by completing the /auth/login/{provider} OAuth flow; the /auth/callback response sets the klef.session cookie that subsequent requests send automatically.
Path Parameters
Query Parameters
Filter by any of these operation kinds.
What change the operation proposes against the target system, or against the record.
create, update, set_link, set_grants, forget, set_claims, adopt, detach, set_elements, end_element, reset_password Filter by any of these target systems.
An external system a workspace can connect to.
adp_workforce_now, oracle_fusion, microsoft_entra, gusto, microsoft365, google_workspace, oracle_oci, worker_model, aws, azure, aws_identity_center, bamboo_hr, slack, github, github_enterprise, salesforce, hubspot, box, linear, dropbox, openai, anthropic, one_password, keeper, bitwarden, atlassian, notion Filter by any of these causes.
Why a plan proposes an operation.
declared, released, worker_left_segment, target_left_policy, policy_deleted, worker_gone, account_gone, matched, unlinked, rehired, manually_requested Filter by any of these statuses.
Per-operation execution state, recorded when the plan runs.
pending, succeeded, failed, blocked, skipped, retrying Filter by any of these worker ids.
Case-insensitive match on the worker's name.
100Response
OK
The envelope for a collection response with the counts each of its filters offers: facets.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Cursor-pagination metadata shared across every paged read. nextCursor is the offset of the next page, null on the last page.
Show child attributes
Show child attributes
Was this page helpful?