Skip to main content
POST
/
api
/
ledger
/
v2
/
{ledger}
/
_bulk
Bulk request
curl --request POST \
  --url http://localhost/api/ledger/v2/{ledger}/_bulk \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
[
  {
    "action": "<string>",
    "ik": "<string>",
    "data": {
      "metadata": {
        "admin": "true"
      },
      "timestamp": "2023-11-07T05:31:56Z",
      "postings": [
        {
          "amount": 100,
          "asset": "COIN",
          "destination": "users:002",
          "source": "users:001"
        }
      ],
      "script": {
        "plain": "vars {\naccount $user\n}\nsend [COIN 10] (\n\tsource = @world\n\tdestination = $user\n)\n",
        "vars": {
          "user": "users:042"
        }
      },
      "runtime": "experimental-interpreter",
      "reference": "ref:001",
      "accountMetadata": {},
      "force": true
    }
  }
]
'
{
  "data": [
    {
      "responseType": "<string>",
      "logID": 123,
      "data": {
        "timestamp": "2023-11-07T05:31:56Z",
        "postings": [
          {
            "amount": 100,
            "asset": "COIN",
            "destination": "users:002",
            "source": "users:001"
          }
        ],
        "metadata": {
          "admin": "true"
        },
        "id": 1,
        "reverted": true,
        "insertedAt": "2023-11-07T05:31:56Z",
        "updatedAt": "2023-11-07T05:31:56Z",
        "reference": "ref:001",
        "revertedAt": "2023-11-07T05:31:56Z",
        "preCommitVolumes": {
          "orders:1": {
            "USD": {
              "input": 100,
              "output": 10,
              "balance": 90
            }
          },
          "orders:2": {
            "USD": {
              "input": 100,
              "output": 10,
              "balance": 90
            }
          }
        },
        "postCommitVolumes": {
          "orders:1": {
            "USD": {
              "input": 100,
              "output": 10,
              "balance": 90
            }
          },
          "orders:2": {
            "USD": {
              "input": 100,
              "output": 10,
              "balance": 90
            }
          }
        },
        "preCommitEffectiveVolumes": {
          "orders:1": {
            "USD": {
              "input": 100,
              "output": 10,
              "balance": 90
            }
          },
          "orders:2": {
            "USD": {
              "input": 100,
              "output": 10,
              "balance": 90
            }
          }
        },
        "postCommitEffectiveVolumes": {
          "orders:1": {
            "USD": {
              "input": 100,
              "output": 10,
              "balance": 90
            }
          },
          "orders:2": {
            "USD": {
              "input": 100,
              "output": 10,
              "balance": 90
            }
          }
        }
      }
    }
  ],
  "errorCode": "VALIDATION",
  "errorMessage": "[VALIDATION] invalid 'cursor' query param"
}
Execute multiple ledger operations in a single request. Supports creating transactions, adding metadata, and reverting transactions in batch.

Parameters

ledger: The name of the ledger. (e.g., ledger001) continueOnFailure: When true, continues processing remaining operations even if one fails. atomic: When true, all operations succeed or fail together as a single transaction. (e.g., true) parallel: When true, processes operations in parallel for better performance. Not compatible with atomic.

Request Body

Array of bulk operations to execute.

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

ledger
string
required

Name of the ledger.

Example:

"ledger001"

Query Parameters

continueOnFailure
boolean

Continue on failure

Example:

true

atomic
boolean

Make bulk atomic

Example:

true

parallel
boolean

Process bulk elements in parallel

Example:

true

Body

application/json
action
string
required
ik
string
data
object

Response

OK

data
object[]
errorCode
enum<string>
Available options:
INTERNAL,
INSUFFICIENT_FUND,
VALIDATION,
CONFLICT,
COMPILATION_FAILED,
METADATA_OVERRIDE,
NOT_FOUND,
REVERT_OCCURRING,
ALREADY_REVERT,
NO_POSTINGS,
LEDGER_NOT_FOUND,
IMPORT,
TIMEOUT,
BULK_SIZE_EXCEEDED,
INTERPRETER_PARSE,
INTERPRETER_RUNTIME,
LEDGER_ALREADY_EXISTS,
OUTDATED_SCHEMA
Example:

"VALIDATION"

errorMessage
string
Example:

"[VALIDATION] invalid 'cursor' query param"