curl --request POST \
--url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events' \
--header 'Content-Type: application/json' \
--data '{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}'
import json
import requests
url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events"
headers = {'Content-Type': 'application/json'}
payload = json.loads(r'''{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}''')
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/events', {
method: 'POST',
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}),
});
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/events',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => <<<'JSON'
{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}
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/events", bytes.NewBufferString(`{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}`))
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/events"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}
"""))
.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/events')
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(request)
end
puts response.body
{
"events": [
{
"update": {
"update_id": "<string>",
"migration_id": 123,
"workflow_id": "<string>",
"record_time": "<string>",
"synchronizer_id": "<string>",
"effective_at": "<string>",
"root_event_ids": [
"<string>"
],
"events_by_id": {},
"external_transaction_hash": "<string>"
},
"verdict": {
"update_id": "<string>",
"migration_id": 123,
"domain_id": "<string>",
"record_time": "<string>",
"finalization_time": "<string>",
"submitting_parties": [
"<string>"
],
"submitting_participant_uid": "<string>",
"verdict_result": "VERDICT_RESULT_UNSPECIFIED",
"mediator_group": 123,
"transaction_views": {
"views": [
{
"view_id": 123,
"informees": [
"<string>"
],
"confirming_parties": [
"<object>"
],
"sub_views": [
123
],
"view_hash": "<string>"
}
],
"root_views": [
123
]
}
},
"traffic_summary": {
"total_traffic_cost": 123,
"envelope_traffic_summaries": [
{
"traffic_cost": 123,
"view_ids": [
123
]
}
]
},
"app_activity_records": {
"round_number": 123,
"records": [
{
"party": "<string>",
"weight": 123
}
]
}
}
]
}
{
"error": "<string>"
}
{
"error": "<string>"
}
POST /v0/events
Returns the event history in ascending order, paged, from ledger begin or optionally starting after a record time. An event bears some combination of a transaction, a contract reassignment, and a verdict. Events are ordered lexicographically by (migration id, record time). For a given migration id, each event has a unique record time.
curl --request POST \
--url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events' \
--header 'Content-Type: application/json' \
--data '{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}'
import json
import requests
url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events"
headers = {'Content-Type': 'application/json'}
payload = json.loads(r'''{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}''')
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/events', {
method: 'POST',
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}),
});
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/events',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => <<<'JSON'
{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}
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/events", bytes.NewBufferString(`{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}`))
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/events"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}
"""))
.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/events')
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(request)
end
puts response.body
{
"events": [
{
"update": {
"update_id": "<string>",
"migration_id": 123,
"workflow_id": "<string>",
"record_time": "<string>",
"synchronizer_id": "<string>",
"effective_at": "<string>",
"root_event_ids": [
"<string>"
],
"events_by_id": {},
"external_transaction_hash": "<string>"
},
"verdict": {
"update_id": "<string>",
"migration_id": 123,
"domain_id": "<string>",
"record_time": "<string>",
"finalization_time": "<string>",
"submitting_parties": [
"<string>"
],
"submitting_participant_uid": "<string>",
"verdict_result": "VERDICT_RESULT_UNSPECIFIED",
"mediator_group": 123,
"transaction_views": {
"views": [
{
"view_id": 123,
"informees": [
"<string>"
],
"confirming_parties": [
"<object>"
],
"sub_views": [
123
],
"view_hash": "<string>"
}
],
"root_views": [
123
]
}
},
"traffic_summary": {
"total_traffic_cost": 123,
"envelope_traffic_summaries": [
{
"traffic_cost": 123,
"view_ids": [
123
]
}
]
},
"app_activity_records": {
"round_number": 123,
"records": [
{
"party": "<string>",
"weight": 123
}
]
}
}
]
}
{
"error": "<string>"
}
{
"error": "<string>"
}
Returns the event history in ascending order, paged, from ledger begin or optionally starting after a record time. An event bears some combination of a transaction, a contract reassignment, and a verdict. Events are ordered lexicographically by (migration id, record time). For a given migration id, each event has a unique record time.
curl --request POST \
--url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events' \
--header 'Content-Type: application/json' \
--data '{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}'
import json
import requests
url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events"
headers = {'Content-Type': 'application/json'}
payload = json.loads(r'''{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}''')
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/events', {
method: 'POST',
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}),
});
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/events',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => <<<'JSON'
{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}
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/events", bytes.NewBufferString(`{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}`))
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/events"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}
"""))
.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/events')
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
"after": {
"after_migration_id": 123,
"after_record_time": "<string>"
},
"page_size": 123,
"daml_value_encoding": "compact_json"
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(request)
end
puts response.body
{
"events": [
{
"update": {
"update_id": "<string>",
"migration_id": 123,
"workflow_id": "<string>",
"record_time": "<string>",
"synchronizer_id": "<string>",
"effective_at": "<string>",
"root_event_ids": [
"<string>"
],
"events_by_id": {},
"external_transaction_hash": "<string>"
},
"verdict": {
"update_id": "<string>",
"migration_id": 123,
"domain_id": "<string>",
"record_time": "<string>",
"finalization_time": "<string>",
"submitting_parties": [
"<string>"
],
"submitting_participant_uid": "<string>",
"verdict_result": "VERDICT_RESULT_UNSPECIFIED",
"mediator_group": 123,
"transaction_views": {
"views": [
{
"view_id": 123,
"informees": [
"<string>"
],
"confirming_parties": [
"<object>"
],
"sub_views": [
123
],
"view_hash": "<string>"
}
],
"root_views": [
123
]
}
},
"traffic_summary": {
"total_traffic_cost": 123,
"envelope_traffic_summaries": [
{
"traffic_cost": 123,
"view_ids": [
123
]
}
]
},
"app_activity_records": {
"round_number": 123,
"records": [
{
"party": "<string>",
"weight": 123
}
]
}
}
]
}
{
"error": "<string>"
}
{
"error": "<string>"
}
Body
UpdateHistoryRequestAfter.The events returned will either have a higher migration id or the same migration id and a record_time greater than the migration id and record time specified.Show child attributes
Show child attributes
integer (int64).The migration id from which to start returning transactions. This is inclusive.integer (int32).The maximum number of events returned for this request.Minimum: 1; Maximum: 1000.DamlValueEncoding.How daml values should be encoded in the response. “compact_json” is a compact, human-readable JSON encoding. It is the same encoding as the one used in the HTTP JSON API or the JavaScript codegen. “protobuf_json” is a verbose JSON encoding that is more difficult to parse, but contains type information, i.e., the values can be parsed losslessly without having access to the Daml source code. Optional and defaults to “compact_json”.Allowed values: compact_json, protobuf_json.Responses
200
okShow child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
getTime for all Daml executed as part of this transaction, both by the submitting participant and all confirming participants.events_by_id object.root_event_ids or child_event_ids in ExercisedEvent herein, which are sorted in the order as they occurred in the transaction.Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
events_by_id if this is part of a TreeEvent.Show child attributes
Show child attributes
Show child attributes
Show child attributes
VERDICT_RESULT_UNSPECIFIED, VERDICT_RESULT_ACCEPTED, VERDICT_RESULT_REJECTED.Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
400
bad request500
internal server errorHistory
0.6.10The POST /v0/events operation changed in this snapshot.
0.6.0The POST /v0/events operation changed in this snapshot.
0.5.17The POST /v0/events operation changed in this snapshot.
0.5.15The POST /v0/events operation changed in this snapshot.
0.5.10