curl --request POST \
--url https://api.example.com/v0/operations/{operation_id}/pause \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"idempotency_key": "<string>"
}
'import requests
url = "https://api.example.com/v0/operations/{operation_id}/pause"
payload = { "idempotency_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({idempotency_key: '<string>'})
};
fetch('https://api.example.com/v0/operations/{operation_id}/pause', 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.example.com/v0/operations/{operation_id}/pause",
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([
'idempotency_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.example.com/v0/operations/{operation_id}/pause"
payload := strings.NewReader("{\n \"idempotency_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.example.com/v0/operations/{operation_id}/pause")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idempotency_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v0/operations/{operation_id}/pause")
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 \"idempotency_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"operation_id": "<string>",
"kind": "<string>",
"state": "queued",
"counters": {},
"errors": [
{
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"trace_id": "<string>",
"span_id": "<string>",
"field": "<string>",
"resync_url": "<string>"
}
],
"progress": 0.5,
"previous_operation_id": "<string>",
"corpus_id": "<string>",
"result": {
"projection_generation_id": "<string>"
},
"admin": {
"target": "<string>",
"plan_id": "<string>",
"previous_plan_id": "<string>",
"served_space_id": "<string>",
"previous_space_id": "<string>"
},
"backfill": {
"registration_id": "<string>",
"spaces": [
"<string>"
],
"estimate": {
"registration_id": "<string>",
"spaces": [
"<string>"
],
"versions": 1,
"segments": 1,
"input_tokens": 1,
"estimated_seconds": 1,
"duration_basis": "rate",
"confirmation_required": true,
"estimated_cost_usd": 1
},
"accepted_after": "2023-11-07T05:31:56Z",
"accepted_before": "2023-11-07T05:31:56Z",
"plan_id": "<string>",
"checkpoint": "<string>"
},
"quarantine_reprocess": {
"plan_id": "<string>",
"estimate": {
"versions": 1,
"stages": {
"normalization": 1,
"ingestion": 1
},
"codes": {}
},
"plugin": "<string>",
"code": "<string>",
"quarantined_after": "2023-11-07T05:31:56Z",
"quarantined_before": "2023-11-07T05:31:56Z",
"from_stage": "normalization"
}
}{
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"trace_id": "<string>",
"span_id": "<string>",
"field": "<string>",
"resync_url": "<string>"
}Pause operation
Holds a backfill until it is resumed. A queued or running backfill becomes paused and makes no progress, keeping its checkpoint and the Pipeline Plan it is pinned to. Nothing committed is undone. Any other state is returned unchanged, so repeating the request is safe. Only backfills pause.
curl --request POST \
--url https://api.example.com/v0/operations/{operation_id}/pause \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"idempotency_key": "<string>"
}
'import requests
url = "https://api.example.com/v0/operations/{operation_id}/pause"
payload = { "idempotency_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({idempotency_key: '<string>'})
};
fetch('https://api.example.com/v0/operations/{operation_id}/pause', 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.example.com/v0/operations/{operation_id}/pause",
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([
'idempotency_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.example.com/v0/operations/{operation_id}/pause"
payload := strings.NewReader("{\n \"idempotency_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.example.com/v0/operations/{operation_id}/pause")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idempotency_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v0/operations/{operation_id}/pause")
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 \"idempotency_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"operation_id": "<string>",
"kind": "<string>",
"state": "queued",
"counters": {},
"errors": [
{
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"trace_id": "<string>",
"span_id": "<string>",
"field": "<string>",
"resync_url": "<string>"
}
],
"progress": 0.5,
"previous_operation_id": "<string>",
"corpus_id": "<string>",
"result": {
"projection_generation_id": "<string>"
},
"admin": {
"target": "<string>",
"plan_id": "<string>",
"previous_plan_id": "<string>",
"served_space_id": "<string>",
"previous_space_id": "<string>"
},
"backfill": {
"registration_id": "<string>",
"spaces": [
"<string>"
],
"estimate": {
"registration_id": "<string>",
"spaces": [
"<string>"
],
"versions": 1,
"segments": 1,
"input_tokens": 1,
"estimated_seconds": 1,
"duration_basis": "rate",
"confirmation_required": true,
"estimated_cost_usd": 1
},
"accepted_after": "2023-11-07T05:31:56Z",
"accepted_before": "2023-11-07T05:31:56Z",
"plan_id": "<string>",
"checkpoint": "<string>"
},
"quarantine_reprocess": {
"plan_id": "<string>",
"estimate": {
"versions": 1,
"stages": {
"normalization": 1,
"ingestion": 1
},
"codes": {}
},
"plugin": "<string>",
"code": "<string>",
"quarantined_after": "2023-11-07T05:31:56Z",
"quarantined_before": "2023-11-07T05:31:56Z",
"from_stage": "normalization"
}
}{
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"trace_id": "<string>",
"span_id": "<string>",
"field": "<string>",
"resync_url": "<string>"
}Authorizations
Response
Successful response
Administrative execution only. Retries keep identity. Intentional terminal rerun has a new ID and previous_operation_id. Cancellation does not promise universal rollback; already-terminal state and racing completion may win. projection_rebuild, retrieval_configuration and backfill Operations require corpus_id; when succeeded they require result naming the activated logical generation, or for a backfill the generation it filled. A backfill also carries backfill, and its counters versions_in_scope, versions_done, versions_skipped (with skipped_) and segments. A quarantine_reprocess carries corpus_id and quarantine_reprocess, and its counters versions_in_scope, versions_recovered, versions_quarantined and versions_skipped (with skipped_); it has no result. Only a backfill and a quarantine_reprocess can be paused. vector_space_promotion, plugin_activation and plugin_rollback carry admin, with no corpus_id. Their counters records_scanned, versions_missing and segments_missing describe the preflight; required_missing excludes gaps retained from an earlier rollback. Success publishes routing; rollback recovery continues in the background after success.