> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canton.network/llms.txt
> Use this file to discover all available pages before exploring further.

# POST /v0/transactions

> **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.

<div class="x2mdx-ref-page x2mdx-ref-page--operation" />

<div className="x2mdx-ref-operation-shell">
  <div className="x2mdx-ref-operation-main">
    <div class="x2mdx-ref-hero">
      <p class="x2mdx-ref-eyebrow">Scan API</p>

      <h1 class="x2mdx-ref-title">POST /v0/transactions</h1>

      <div class="x2mdx-ref-badges">
        <span class="x2mdx-ref-badge x2mdx-ref-badge--protocol">OpenAPI</span>

        <a class="x2mdx-ref-badge x2mdx-ref-badge--changed" href="#history-updated-0-5-12">Updated 0.5.12</a>

        <a class="x2mdx-ref-badge x2mdx-ref-badge--removed" href="#history-deprecated-0-5-10">Deprecated 0.5.10</a>

        <a class="x2mdx-ref-badge x2mdx-ref-badge--removed" href="#history-removed-0-7-0">Removed in 0.7.0</a>
      </div>
    </div>

    <div class="x2mdx-ref-operation-bar">
      <span class="x2mdx-ref-operation-method x2mdx-ref-operation-method--post">POST</span>

      <code>/v0/transactions</code>
    </div>

    <p><strong>Removed in 0.7.0.</strong> Historical definition from 0.6.14.</p>

    **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

    <dl class="x2mdx-ref-meta-grid">
      <div class="x2mdx-ref-meta-item">
        <dt>Operation ID</dt>
        <dd>listTransactionHistory</dd>
      </div>

      <div class="x2mdx-ref-meta-item">
        <dt>Published</dt>
        <dd>0.6.14</dd>
      </div>
    </dl>

    ## Inputs

    <div class="x2mdx-ref-panel">
      <div class="x2mdx-ref-panel-head">
        <h3>Body</h3>
      </div>

      <div class="x2mdx-ref-badges">
        <span class="x2mdx-ref-badge x2mdx-ref-badge--neutral">application/json</span>
      </div>

      <div class="x2mdx-ref-fields">
        <div class="x2mdx-ref-field-row">
          <div class="x2mdx-ref-field-main">
            <code class="x2mdx-ref-field-name">page\_end\_event\_id</code>
            <span class="x2mdx-ref-type-badge">string</span>
          </div>

          <div class="x2mdx-ref-field-description">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.</div>
        </div>

        <div class="x2mdx-ref-field-row">
          <div class="x2mdx-ref-field-main">
            <code class="x2mdx-ref-field-name">sort\_order</code>
            <span class="x2mdx-ref-type-badge">string</span>
          </div>

          <div class="x2mdx-ref-field-description">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.</div>
        </div>

        <div class="x2mdx-ref-field-row">
          <div class="x2mdx-ref-field-main">
            <code class="x2mdx-ref-field-name">page\_size</code>
            <span class="x2mdx-ref-type-badge">integer (int64)</span>

            <span class="x2mdx-ref-required-badge">required</span>
          </div>

          <div class="x2mdx-ref-field-description">The maximum number of transactions returned for this request.</div>
        </div>
      </div>
    </div>

    ## Outputs

    <div class="x2mdx-ref-panel">
      <div class="x2mdx-ref-panel-head">
        <h3>200</h3>
      </div>

      <div class="x2mdx-ref-badges">
        <span class="x2mdx-ref-badge x2mdx-ref-badge--neutral">application/json</span>
      </div>

      <div class="x2mdx-ref-fields">
        <div class="x2mdx-ref-field-row">
          <div class="x2mdx-ref-field-main">
            <code class="x2mdx-ref-field-name">transactions</code>
            <span class="x2mdx-ref-type-badge">TransactionHistoryResponseItem\[]</span>

            <span class="x2mdx-ref-required-badge">required</span>
          </div>
        </div>
      </div>
    </div>

    <div class="x2mdx-ref-panel">
      <div class="x2mdx-ref-panel-head">
        <h3>400</h3>
      </div>

      <div class="x2mdx-ref-badges">
        <span class="x2mdx-ref-badge x2mdx-ref-badge--neutral">application/json</span>
      </div>

      <div class="x2mdx-ref-fields">
        <div class="x2mdx-ref-field-row">
          <div class="x2mdx-ref-field-main">
            <code class="x2mdx-ref-field-name">error</code>
            <span class="x2mdx-ref-type-badge">string</span>

            <span class="x2mdx-ref-required-badge">required</span>
          </div>
        </div>
      </div>
    </div>

    <div class="x2mdx-ref-panel">
      <div class="x2mdx-ref-panel-head">
        <h3>404</h3>
      </div>

      <div class="x2mdx-ref-badges">
        <span class="x2mdx-ref-badge x2mdx-ref-badge--neutral">application/json</span>
      </div>

      <div class="x2mdx-ref-fields">
        <div class="x2mdx-ref-field-row">
          <div class="x2mdx-ref-field-main">
            <code class="x2mdx-ref-field-name">error</code>
            <span class="x2mdx-ref-type-badge">string</span>

            <span class="x2mdx-ref-required-badge">required</span>
          </div>
        </div>
      </div>
    </div>

    <div class="x2mdx-ref-panel">
      <div class="x2mdx-ref-panel-head">
        <h3>500</h3>
      </div>

      <div class="x2mdx-ref-badges">
        <span class="x2mdx-ref-badge x2mdx-ref-badge--neutral">application/json</span>
      </div>

      <div class="x2mdx-ref-fields">
        <div class="x2mdx-ref-field-row">
          <div class="x2mdx-ref-field-main">
            <code class="x2mdx-ref-field-name">error</code>
            <span class="x2mdx-ref-type-badge">string</span>

            <span class="x2mdx-ref-required-badge">required</span>
          </div>
        </div>
      </div>
    </div>

    ## History

    <div class="x2mdx-ref-history" aria-label="Reference history">
      <div class="x2mdx-ref-history-event x2mdx-ref-history-event--removed" id="history-removed-0-7-0">
        <div class="x2mdx-ref-history-event-head">
          <span class="x2mdx-ref-history-event-label">Removed in</span>
          <code class="x2mdx-ref-history-event-version">0.7.0</code>
        </div>

        <p class="x2mdx-ref-history-event-detail">Last available in 0.6.14. Retained for historical reference.</p>
      </div>

      <div class="x2mdx-ref-history-event x2mdx-ref-history-event--changed" id="history-updated-0-5-12">
        <div class="x2mdx-ref-history-event-head">
          <span class="x2mdx-ref-history-event-label">Updated</span>
          <code class="x2mdx-ref-history-event-version">0.5.12</code>
        </div>

        <p class="x2mdx-ref-history-event-detail">The POST /v0/transactions operation changed in this snapshot.</p>
      </div>

      <div class="x2mdx-ref-history-event x2mdx-ref-history-event--deprecated" id="history-deprecated-0-5-10">
        <div class="x2mdx-ref-history-event-head">
          <span class="x2mdx-ref-history-event-label">Deprecated</span>
          <code class="x2mdx-ref-history-event-version">0.5.10</code>
        </div>
      </div>
    </div>
  </div>

  <div className="x2mdx-ref-right-rail" role="complementary" aria-label="Examples and responses">
    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">cURL</span>
        </div>

        ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
        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
        }'
        ```
      </div>
    </div>

    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">Python</span>
        </div>

        ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
        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)
        ```
      </div>
    </div>

    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">JavaScript</span>
        </div>

        ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
        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());
        ```
      </div>
    </div>

    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">PHP</span>
        </div>

        ```php PHP theme={"theme":{"light":"github-light","dark":"github-dark"}}
        <?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;
        ```
      </div>
    </div>

    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">Go</span>
        </div>

        ```go Go theme={"theme":{"light":"github-light","dark":"github-dark"}}
        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))
        }
        ```
      </div>
    </div>

    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">Java</span>
        </div>

        ```java Java theme={"theme":{"light":"github-light","dark":"github-dark"}}
        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());
        ```
      </div>
    </div>

    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">Ruby</span>
        </div>

        ```ruby Ruby theme={"theme":{"light":"github-light","dark":"github-dark"}}
        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
        ```
      </div>
    </div>

    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code x2mdx-ref-rail-code--response">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">200</span>

          <span className="x2mdx-ref-response-label">application/json</span>
        </div>

        ```json 200 theme={"theme":{"light":"github-light","dark":"github-dark"}}
        {
          "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>"
              }
            }
          ]
        }
        ```
      </div>
    </div>

    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code x2mdx-ref-rail-code--response">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">400</span>

          <span className="x2mdx-ref-response-label">application/json</span>
        </div>

        ```json 400 theme={"theme":{"light":"github-light","dark":"github-dark"}}
        {
          "error": "<string>"
        }
        ```
      </div>
    </div>

    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code x2mdx-ref-rail-code--response">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">404</span>

          <span className="x2mdx-ref-response-label">application/json</span>
        </div>

        ```json 404 theme={"theme":{"light":"github-light","dark":"github-dark"}}
        {
          "error": "<string>"
        }
        ```
      </div>
    </div>

    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code x2mdx-ref-rail-code--response">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">500</span>

          <span className="x2mdx-ref-response-label">application/json</span>
        </div>

        ```json 500 theme={"theme":{"light":"github-light","dark":"github-dark"}}
        {
          "error": "<string>"
        }
        ```
      </div>
    </div>
  </div>
</div>
