Apply a previewed sync rule
curl --request PATCH \
--url https://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rules": {
"outgoing": {
"mode": "all"
},
"incoming": {
"mode": "all"
}
},
"previewToken": "<string>"
}
'import requests
url = "https://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider}"
payload = {
"rules": {
"outgoing": { "mode": "all" },
"incoming": { "mode": "all" }
},
"previewToken": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
rules: {outgoing: {mode: 'all'}, incoming: {mode: 'all'}},
previewToken: '<string>'
})
};
fetch('https://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider}', 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://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'rules' => [
'outgoing' => [
'mode' => 'all'
],
'incoming' => [
'mode' => 'all'
]
],
'previewToken' => '<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://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider}"
payload := strings.NewReader("{\n \"rules\": {\n \"outgoing\": {\n \"mode\": \"all\"\n },\n \"incoming\": {\n \"mode\": \"all\"\n }\n },\n \"previewToken\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"rules\": {\n \"outgoing\": {\n \"mode\": \"all\"\n },\n \"incoming\": {\n \"mode\": \"all\"\n }\n },\n \"previewToken\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rules\": {\n \"outgoing\": {\n \"mode\": \"all\"\n },\n \"incoming\": {\n \"mode\": \"all\"\n }\n },\n \"previewToken\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"isActive": true,
"rules": {
"outgoing": {
"mode": "all"
},
"incoming": {
"mode": "all"
}
},
"labels": [
{
"id": "<string>",
"name": "<string>",
"color": "<string>"
}
],
"missingLabels": [
"<string>"
],
"total": 123,
"matching": 123,
"willCreate": 123,
"willPause": 123,
"needsReview": 123,
"paused": 123,
"matchingTasks": [
{
"id": "<string>",
"number": 123,
"title": "<string>"
}
],
"pausedNextCursor": "<string>",
"pausedTasks": [
{
"id": "<string>",
"number": 123,
"title": "<string>",
"linkId": "<string>",
"url": "<string>",
"eligible": true
}
],
"previewToken": "<string>"
}<string><string><string><string>Integration sync
Apply a previewed sync rule
Save shared integration rules only if the preview is still current. Excluded links are paused, never deleted. Newly matching unlinked tasks are exported through the integration event path. Paused links require explicit review to resume.
PATCH
/
integration-sync
/
project
/
{projectId}
/
{provider}
Apply a previewed sync rule
curl --request PATCH \
--url https://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rules": {
"outgoing": {
"mode": "all"
},
"incoming": {
"mode": "all"
}
},
"previewToken": "<string>"
}
'import requests
url = "https://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider}"
payload = {
"rules": {
"outgoing": { "mode": "all" },
"incoming": { "mode": "all" }
},
"previewToken": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
rules: {outgoing: {mode: 'all'}, incoming: {mode: 'all'}},
previewToken: '<string>'
})
};
fetch('https://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider}', 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://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'rules' => [
'outgoing' => [
'mode' => 'all'
],
'incoming' => [
'mode' => 'all'
]
],
'previewToken' => '<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://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider}"
payload := strings.NewReader("{\n \"rules\": {\n \"outgoing\": {\n \"mode\": \"all\"\n },\n \"incoming\": {\n \"mode\": \"all\"\n }\n },\n \"previewToken\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"rules\": {\n \"outgoing\": {\n \"mode\": \"all\"\n },\n \"incoming\": {\n \"mode\": \"all\"\n }\n },\n \"previewToken\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cloud.kaneo.app/api/integration-sync/project/{projectId}/{provider}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rules\": {\n \"outgoing\": {\n \"mode\": \"all\"\n },\n \"incoming\": {\n \"mode\": \"all\"\n }\n },\n \"previewToken\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"isActive": true,
"rules": {
"outgoing": {
"mode": "all"
},
"incoming": {
"mode": "all"
}
},
"labels": [
{
"id": "<string>",
"name": "<string>",
"color": "<string>"
}
],
"missingLabels": [
"<string>"
],
"total": 123,
"matching": 123,
"willCreate": 123,
"willPause": 123,
"needsReview": 123,
"paused": 123,
"matchingTasks": [
{
"id": "<string>",
"number": 123,
"title": "<string>"
}
],
"pausedNextCursor": "<string>",
"pausedTasks": [
{
"id": "<string>",
"number": 123,
"title": "<string>",
"linkId": "<string>",
"url": "<string>",
"eligible": true
}
],
"previewToken": "<string>"
}<string><string><string><string>Authorizations
API key or session token (Bearer)
Path Parameters
Minimum string length:
1Available options:
github, gitea, gitlab Body
application/json
Response
Saved rules and current scope
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
⌘I