curl --request POST \
--url https://api.streamkap.com/sources/cancel_snapshot \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"source_id": "<string>",
"topic_names": [
"<string>"
],
"additional_conditions": [
{
"data_collection": "<string>",
"filter": "<string>"
}
],
"surrogate_key": "<string>"
}
'import requests
url = "https://api.streamkap.com/sources/cancel_snapshot"
payload = {
"source_id": "<string>",
"topic_names": ["<string>"],
"additional_conditions": [
{
"data_collection": "<string>",
"filter": "<string>"
}
],
"surrogate_key": "<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({
source_id: '<string>',
topic_names: ['<string>'],
additional_conditions: [{data_collection: '<string>', filter: '<string>'}],
surrogate_key: '<string>'
})
};
fetch('https://api.streamkap.com/sources/cancel_snapshot', 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://api.streamkap.com/sources/cancel_snapshot",
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([
'source_id' => '<string>',
'topic_names' => [
'<string>'
],
'additional_conditions' => [
[
'data_collection' => '<string>',
'filter' => '<string>'
]
],
'surrogate_key' => '<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://api.streamkap.com/sources/cancel_snapshot"
payload := strings.NewReader("{\n \"source_id\": \"<string>\",\n \"topic_names\": [\n \"<string>\"\n ],\n \"additional_conditions\": [\n {\n \"data_collection\": \"<string>\",\n \"filter\": \"<string>\"\n }\n ],\n \"surrogate_key\": \"<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://api.streamkap.com/sources/cancel_snapshot")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"source_id\": \"<string>\",\n \"topic_names\": [\n \"<string>\"\n ],\n \"additional_conditions\": [\n {\n \"data_collection\": \"<string>\",\n \"filter\": \"<string>\"\n }\n ],\n \"surrogate_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.streamkap.com/sources/cancel_snapshot")
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 \"source_id\": \"<string>\",\n \"topic_names\": [\n \"<string>\"\n ],\n \"additional_conditions\": [\n {\n \"data_collection\": \"<string>\",\n \"filter\": \"<string>\"\n }\n ],\n \"surrogate_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Cancel Snapshot
Cancel an in-progress snapshot with automatic type detection.
This endpoint automatically detects the type of snapshot currently running and uses the appropriate cancellation method:
-
Incremental/Filtered snapshots: Streaming continues. Progress is preserved and can be resumed later.
-
Blocking snapshots: Streaming resumes after cancellation. Partial progress is lost - must re-trigger if needed.
Returns 404 if no snapshot is currently running for the specified source.
curl --request POST \
--url https://api.streamkap.com/sources/cancel_snapshot \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"source_id": "<string>",
"topic_names": [
"<string>"
],
"additional_conditions": [
{
"data_collection": "<string>",
"filter": "<string>"
}
],
"surrogate_key": "<string>"
}
'import requests
url = "https://api.streamkap.com/sources/cancel_snapshot"
payload = {
"source_id": "<string>",
"topic_names": ["<string>"],
"additional_conditions": [
{
"data_collection": "<string>",
"filter": "<string>"
}
],
"surrogate_key": "<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({
source_id: '<string>',
topic_names: ['<string>'],
additional_conditions: [{data_collection: '<string>', filter: '<string>'}],
surrogate_key: '<string>'
})
};
fetch('https://api.streamkap.com/sources/cancel_snapshot', 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://api.streamkap.com/sources/cancel_snapshot",
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([
'source_id' => '<string>',
'topic_names' => [
'<string>'
],
'additional_conditions' => [
[
'data_collection' => '<string>',
'filter' => '<string>'
]
],
'surrogate_key' => '<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://api.streamkap.com/sources/cancel_snapshot"
payload := strings.NewReader("{\n \"source_id\": \"<string>\",\n \"topic_names\": [\n \"<string>\"\n ],\n \"additional_conditions\": [\n {\n \"data_collection\": \"<string>\",\n \"filter\": \"<string>\"\n }\n ],\n \"surrogate_key\": \"<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://api.streamkap.com/sources/cancel_snapshot")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"source_id\": \"<string>\",\n \"topic_names\": [\n \"<string>\"\n ],\n \"additional_conditions\": [\n {\n \"data_collection\": \"<string>\",\n \"filter\": \"<string>\"\n }\n ],\n \"surrogate_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.streamkap.com/sources/cancel_snapshot")
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 \"source_id\": \"<string>\",\n \"topic_names\": [\n \"<string>\"\n ],\n \"additional_conditions\": [\n {\n \"data_collection\": \"<string>\",\n \"filter\": \"<string>\"\n }\n ],\n \"surrogate_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Execute Snapshot Body
Show child attributes
Show child attributes
Column name to use as surrogate primary key for all tables during snapshot chunking. Useful for tables without primary keys or when a more efficient column exists for chunking.
Response
Successful Response
Was this page helpful?