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

POST /v0/transactions

Scan API

POST /v0/transactions

POST/v0/transactions

Removed in 0.7.0. Historical definition from 0.6.14.

Deprecated with known bugs that will not be fixed, use /v2/updates instead. Lists transactions, by default in ascending order, paged, from ledger begin or optionally starting after a provided event id.

Protocol Details

Inputs

Body

application/json
page_end_event_idstring
Note that all transactions carry some monotonically-increasing event_id. Omit this page_end_event_id to start reading the first page, from the beginning or the end of the ledger, depending on the sort_order column. A subsequent request can fill the page_end_event_id with the last event_id of the TransactionHistoryResponse to continue reading in the same sort_order. The transaction with event_id == page_end_event_id will be skipped in the next response, making it possible to continuously read pages in the same sort_order.
sort_orderstring
Sort order for the transactions. For ascending order, from beginning to the end of the ledger, use “asc”. For descending order, from end to beginning of the ledger, use “desc”. “asc” is used if the sort_order is omitted.
page_sizeinteger (int64)required
The maximum number of transactions returned for this request.

Outputs

200

application/json
transactionsTransactionHistoryResponseItem[]required

400

application/json
errorstringrequired

404

application/json
errorstringrequired

500

application/json
errorstringrequired

History

Removed in0.7.0

Last available in 0.6.14. Retained for historical reference.

Updated0.5.12

The POST /v0/transactions operation changed in this snapshot.

Deprecated0.5.10
cURL
cURL
curl --request POST \
  --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/transactions' \
  --header 'Content-Type: application/json' \
  --data '{
  "page_end_event_id": "<string>",
  "sort_order": "asc",
  "page_size": 123
}'
Python
Python
import json
import requests

url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/transactions"
headers = {'Content-Type': 'application/json'}
payload = json.loads(r'''{
  "page_end_event_id": "<string>",
  "sort_order": "asc",
  "page_size": 123
}''')
response = requests.request(
    "POST", url, headers=headers, json=payload
)

print(response.text)
JavaScript
JavaScript
const response = await fetch('https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/transactions', {
  method: 'POST',
  headers: {
  "Content-Type": "application/json"
},
  body: JSON.stringify({
  "page_end_event_id": "<string>",
  "sort_order": "asc",
  "page_size": 123
}),
});

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

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

$response = curl_exec($curl);
echo $response;
Go
Go
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/transactions", bytes.NewBufferString(`{
  "page_end_event_id": "<string>",
  "sort_order": "asc",
  "page_size": 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))
}
Java
Java
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/transactions"))
    .header("Content-Type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("""
{
  "page_end_event_id": "<string>",
  "sort_order": "asc",
  "page_size": 123
}
"""))
    .build();
var response = HttpClient.newHttpClient().send(
    request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Ruby
Ruby
require 'net/http'
require 'uri'

uri = URI('https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/transactions')
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
  "page_end_event_id": "<string>",
  "sort_order": "asc",
  "page_size": 123
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end
puts response.body
200application/json
200
{
  "transactions": [
    {
      "transaction_type": "transfer",
      "event_id": "<string>",
      "offset": "<string>",
      "date": "2026-01-01T00:00:00Z",
      "domain_id": "<string>",
      "round": 123,
      "transfer": {
        "sender": {
          "party": "<string>",
          "input_amulet_amount": "<string>",
          "input_app_reward_amount": "<string>",
          "input_validator_reward_amount": "<string>",
          "input_sv_reward_amount": "<string>",
          "input_validator_faucet_amount": "<string>",
          "sender_change_fee": "<string>",
          "sender_change_amount": "<string>",
          "sender_fee": "<string>",
          "holding_fees": "<string>"
        },
        "receivers": [
          {
            "party": "<string>",
            "amount": "<string>",
            "receiver_fee": "<string>"
          }
        ],
        "balance_changes": [
          {
            "party": "<string>",
            "change_to_initial_amount_as_of_round_zero": "<string>",
            "change_to_holding_fees_rate": "<string>"
          }
        ],
        "description": "<string>",
        "transferInstructionReceiver": "<string>",
        "transferInstructionAmount": "<string>",
        "transferInstructionCid": "<string>",
        "transfer_kind": "create_transfer_instruction"
      },
      "mint": {
        "amulet_owner": "<string>",
        "amulet_amount": "<string>"
      },
      "tap": {
        "amulet_owner": "<string>",
        "amulet_amount": "<string>"
      },
      "abort_transfer_instruction": {
        "abort_kind": "withdraw",
        "transfer_instruction_cid": "<string>"
      }
    }
  ]
}
400application/json
400
{
  "error": "<string>"
}
404application/json
404
{
  "error": "<string>"
}
500application/json
500
{
  "error": "<string>"
}