Skip to content
CCPEDIAby Unity Nodes
Documentation/Canton Network Docs/Splice APIsScan APIsScan APIView on Canton Network Docs

POST /v0/backfilling/migration-info

POST
/
api
/
scan
/
v0
/
backfilling
/
migration-info
Try it
cURL
Python
JavaScript
PHP
Go
Java
Ruby
curl --request POST \
  --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info' \
  --header 'Content-Type: application/json' \
  --data '{
  "migration_id": 123
}'
import json
import requests

url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info"
headers = {'Content-Type': 'application/json'}
payload = json.loads(r'''{
  "migration_id": 123
}''')
response = requests.request(
    "POST", url, headers=headers, json=payload
)

print(response.text)
const response = await fetch('https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info', {
  method: 'POST',
  headers: {
  "Content-Type": "application/json"
},
  body: JSON.stringify({
  "migration_id": 123
}),
});

console.log(await response.text());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'JSON'
{
  "migration_id": 123
}
JSON,
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json"
    ],
]);

$response = curl_exec($curl);
echo $response;
package main

import (
  "bytes"
  "fmt"
  "io"
  "net/http"
)

func main() {
  req, _ := http.NewRequest("POST", "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info", bytes.NewBufferString(`{
  "migration_id": 123
}`))
  req.Header.Set("Content-Type", "application/json")
  response, _ := http.DefaultClient.Do(req)
  defer response.Body.Close()
  body, _ := io.ReadAll(response.Body)
  fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

var request = HttpRequest.newBuilder()
    .uri(URI.create("https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info"))
    .header("Content-Type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("""
{
  "migration_id": 123
}
"""))
    .build();
var response = HttpClient.newHttpClient().send(
    request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'

uri = URI('https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info')
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
  "migration_id": 123
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end
puts response.body
200
404
{
  "previous_migration_id": 123,
  "record_time_range": [
    {
      "synchronizer_id": "<string>",
      "min": "2026-01-01T00:00:00Z",
      "max": "2026-01-01T00:00:00Z"
    }
  ],
  "last_import_update_id": "<string>",
  "complete": false,
  "import_updates_complete": false
}
{
  "error": "<string>"
}

List all previous synchronizer migrations in this Splice network’s history.

OpenAPI
cURL
Python
JavaScript
PHP
Go
Java
Ruby
curl --request POST \
  --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info' \
  --header 'Content-Type: application/json' \
  --data '{
  "migration_id": 123
}'
import json
import requests

url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info"
headers = {'Content-Type': 'application/json'}
payload = json.loads(r'''{
  "migration_id": 123
}''')
response = requests.request(
    "POST", url, headers=headers, json=payload
)

print(response.text)
const response = await fetch('https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info', {
  method: 'POST',
  headers: {
  "Content-Type": "application/json"
},
  body: JSON.stringify({
  "migration_id": 123
}),
});

console.log(await response.text());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'JSON'
{
  "migration_id": 123
}
JSON,
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json"
    ],
]);

$response = curl_exec($curl);
echo $response;
package main

import (
  "bytes"
  "fmt"
  "io"
  "net/http"
)

func main() {
  req, _ := http.NewRequest("POST", "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info", bytes.NewBufferString(`{
  "migration_id": 123
}`))
  req.Header.Set("Content-Type", "application/json")
  response, _ := http.DefaultClient.Do(req)
  defer response.Body.Close()
  body, _ := io.ReadAll(response.Body)
  fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

var request = HttpRequest.newBuilder()
    .uri(URI.create("https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info"))
    .header("Content-Type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("""
{
  "migration_id": 123
}
"""))
    .build();
var response = HttpClient.newHttpClient().send(
    request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'

uri = URI('https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/backfilling/migration-info')
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
  "migration_id": 123
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end
puts response.body
200
404
{
  "previous_migration_id": 123,
  "record_time_range": [
    {
      "synchronizer_id": "<string>",
      "min": "2026-01-01T00:00:00Z",
      "max": "2026-01-01T00:00:00Z"
    }
  ],
  "last_import_update_id": "<string>",
  "complete": false,
  "import_updates_complete": false
}
{
  "error": "<string>"
}

Body

application/json
migration_id
number
required
OpenAPI type: integer (int64).

Responses

200

ok
application/json
previous_migration_id
integer (int64)
The migration id that was active before the given migration id, if any.
record_time_range
RecordTimeRange[]
required
All domains for which there are updates in the given migration id, along with the record time of the newest and oldest update associated with each domain

Show child attributes

synchronizer_id
string
required
min
string (date-time)
required
max
string (date-time)
required
last_import_update_id
string
The update id of the last import update (where import updates are sorted by update id, ascending) for the given migration id, if any
complete
boolean
required
True if this scan has all non-import updates for given migration id
import_updates_complete
boolean
True if this scan has all import updates for the given migration id

404

not found
application/json
error
string
required