openapi: 3.0.3 info: contact: {} title: Ledger API version: v1.9.3 servers: - url: / paths: /_info: get: operationId: getInfo responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ConfigInfoResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Show server information tags: - Server /{ledger}/_info: get: operationId: getLedgerInfo parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/LedgerInfoResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Get information about a ledger tags: - Ledger /{ledger}/accounts: get: description: "List accounts from a ledger, sorted by address in descending order." operationId: listAccounts parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: | The maximum number of results to return per page. example: 100 explode: true in: query name: pageSize required: false schema: default: 15 format: int64 maximum: 1000 minimum: 1 type: integer style: form - deprecated: true description: | The maximum number of results to return per page. Deprecated, please use `pageSize` instead. example: 100 explode: true in: query name: page_size required: false schema: default: 15 format: int64 maximum: 1000 minimum: 1 type: integer style: form - description: "Pagination cursor, will return accounts after given address,\ \ in descending order." explode: true in: query name: after required: false schema: example: users:003 type: string style: form - description: Filter accounts by address pattern (regular expression placed between ^ and $). explode: true in: query name: address required: false schema: example: users:.+ type: string style: form - description: Filter accounts by metadata key value pairs. Nested objects can be used as seen in the example below. example: "metadata[key]=value1&metadata[a.nested.key]=value2" explode: true in: query name: metadata required: false schema: properties: {} type: object style: deepObject - description: Filter accounts by their balance (default operator is gte) explode: true in: query name: balance required: false schema: example: 2400 format: int64 minimum: 0 type: integer style: form - description: | Operator used for the filtering of balances can be greater than/equal, less than/equal, greater than, less than, equal or not. explode: true in: query name: balanceOperator required: false schema: enum: - gte - lte - gt - lt - e - ne example: gte type: string style: form - deprecated: true description: | Operator used for the filtering of balances can be greater than/equal, less than/equal, greater than, less than, equal or not. Deprecated, please use `balanceOperator` instead. explode: true in: query name: balance_operator required: false schema: enum: - gte - lte - gt - lt - e - ne example: gte type: string style: form - description: | Parameter used in pagination requests. Maximum page size is set to 15. Set to the value of next for the next page of results. Set to the value of previous for the previous page of results. No other parameters can be set when this parameter is set. explode: true in: query name: cursor required: false schema: example: aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ== type: string style: form - deprecated: true description: | Parameter used in pagination requests. Maximum page size is set to 15. Set to the value of next for the next page of results. Set to the value of previous for the previous page of results. No other parameters can be set when this parameter is set. Deprecated, please use `cursor` instead. explode: true in: query name: pagination_token required: false schema: example: aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ== type: string style: form responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/AccountsCursorResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: List accounts from a ledger tags: - Accounts head: operationId: countAccounts parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: Filter accounts by address pattern (regular expression placed between ^ and $). explode: true in: query name: address required: false schema: example: users:.+ type: string style: form - description: Filter accounts by metadata key value pairs. Nested objects can be used as seen in the example below. example: "metadata[key]=value1&metadata[a.nested.key]=value2" explode: true in: query name: metadata required: false schema: properties: {} type: object style: deepObject responses: "200": description: OK headers: Count: explode: false schema: format: int64 minimum: 0 type: integer style: simple default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Count the accounts from a ledger tags: - Accounts /{ledger}/accounts/{address}: get: operationId: getAccount parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: | Exact address of the account. It must match the following regular expressions pattern: ``` ^\w+(:\w+)*$ ``` explode: false in: path name: address required: true schema: example: users:001 type: string style: simple responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/AccountResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Get account by its address tags: - Accounts /{ledger}/accounts/{address}/metadata: post: operationId: addMetadataToAccount parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: | Exact address of the account. It must match the following regular expressions pattern: ``` ^\w+(:\w+)*$ ``` explode: false in: path name: address required: true schema: example: users:001 type: string style: simple requestBody: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/Metadata' description: metadata required: true responses: "204": description: No Content default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Add metadata to an account tags: - Accounts /{ledger}/mapping: get: operationId: getMapping parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/MappingResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Get the mapping of a ledger tags: - Mapping put: operationId: updateMapping parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple requestBody: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/Mapping' required: true responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/MappingResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Update the mapping of a ledger tags: - Mapping /{ledger}/script: post: deprecated: true description: | This route is deprecated, and has been merged into `POST /{ledger}/transactions`. operationId: runScript parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: Set the preview mode. Preview mode doesn't add the logs to the database or publish a message to the message broker. explode: true in: query name: preview required: false schema: example: true type: boolean style: form requestBody: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/Script' required: true responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ScriptResponse' description: | On success, it will return a 200 status code, and the resulting transaction under the `transaction` field. On failure, it will also return a 200 status code, and the following fields: - `details`: contains a URL. When there is an error parsing Numscript, the result can be difficult to read—the provided URL will render the error in an easy-to-read format. - `errorCode` and `error_code` (deprecated): contains the string code of the error - `errorMessage` and `error_message` (deprecated): contains a human-readable indication of what went wrong, for example that an account had insufficient funds, or that there was an error in the provided Numscript. summary: Execute a Numscript tags: - Script /{ledger}/stats: get: description: | Get statistics from a ledger. (aggregate metrics on accounts and transactions) operationId: readStats parameters: - description: name of the ledger explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/StatsResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Get statistics from a ledger tags: - Stats /{ledger}/transactions: get: description: "List transactions from a ledger, sorted by txid in descending\ \ order." operationId: listTransactions parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: | The maximum number of results to return per page. example: 100 explode: true in: query name: pageSize required: false schema: default: 15 format: int64 maximum: 1000 minimum: 1 type: integer style: form - deprecated: true description: | The maximum number of results to return per page. Deprecated, please use `pageSize` instead. example: 100 explode: true in: query name: page_size required: false schema: default: 15 format: int64 maximum: 1000 minimum: 1 type: integer style: form - description: "Pagination cursor, will return transactions after given txid\ \ (in descending order)." explode: true in: query name: after required: false schema: example: "1234" type: string style: form - description: Find transactions by reference field. explode: true in: query name: reference required: false schema: example: ref:001 type: string style: form - description: "Filter transactions with postings involving given account, either\ \ as source or destination (regular expression placed between ^ and $)." explode: true in: query name: account required: false schema: example: users:001 type: string style: form - description: Filter transactions with postings involving given account at source (regular expression placed between ^ and $). explode: true in: query name: source required: false schema: example: users:001 type: string style: form - description: Filter transactions with postings involving given account at destination (regular expression placed between ^ and $). explode: true in: query name: destination required: false schema: example: users:001 type: string style: form - description: | Filter transactions that occurred after this timestamp. The format is RFC3339 and is inclusive (for example, "2023-01-02T15:04:01Z" includes the first second of 4th minute). explode: true in: query name: startTime required: false schema: format: date-time type: string style: form - deprecated: true description: | Filter transactions that occurred after this timestamp. The format is RFC3339 and is inclusive (for example, "2023-01-02T15:04:01Z" includes the first second of 4th minute). Deprecated, please use `startTime` instead. explode: true in: query name: start_time required: false schema: format: date-time type: string style: form - description: | Filter transactions that occurred before this timestamp. The format is RFC3339 and is exclusive (for example, "2023-01-02T15:04:01Z" excludes the first second of 4th minute). explode: true in: query name: endTime required: false schema: format: date-time type: string style: form - deprecated: true description: | Filter transactions that occurred before this timestamp. The format is RFC3339 and is exclusive (for example, "2023-01-02T15:04:01Z" excludes the first second of 4th minute). Deprecated, please use `endTime` instead. explode: true in: query name: end_time required: false schema: format: date-time type: string style: form - description: | Parameter used in pagination requests. Maximum page size is set to 15. Set to the value of next for the next page of results. Set to the value of previous for the previous page of results. No other parameters can be set when this parameter is set. explode: true in: query name: cursor required: false schema: example: aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ== type: string style: form - deprecated: true description: | Parameter used in pagination requests. Maximum page size is set to 15. Set to the value of next for the next page of results. Set to the value of previous for the previous page of results. No other parameters can be set when this parameter is set. Deprecated, please use `cursor` instead. explode: true in: query name: pagination_token required: false schema: example: aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ== type: string style: form - description: Filter transactions by metadata key value pairs. Nested objects can be used as seen in the example below. example: "metadata[key]=value1&metadata[a.nested.key]=value2" explode: true in: query name: metadata required: false schema: properties: {} type: object style: deepObject responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/TransactionsCursorResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: List transactions from a ledger tags: - Transactions head: operationId: countTransactions parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: Filter transactions by reference field. explode: true in: query name: reference required: false schema: example: ref:001 type: string style: form - description: "Filter transactions with postings involving given account, either\ \ as source or destination (regular expression placed between ^ and $)." explode: true in: query name: account required: false schema: example: users:001 type: string style: form - description: Filter transactions with postings involving given account at source (regular expression placed between ^ and $). explode: true in: query name: source required: false schema: example: users:001 type: string style: form - description: Filter transactions with postings involving given account at destination (regular expression placed between ^ and $). explode: true in: query name: destination required: false schema: example: users:001 type: string style: form - description: | Filter transactions that occurred after this timestamp. The format is RFC3339 and is inclusive (for example, "2023-01-02T15:04:01Z" includes the first second of 4th minute). explode: true in: query name: startTime required: false schema: format: date-time type: string style: form - deprecated: true description: | Filter transactions that occurred after this timestamp. The format is RFC3339 and is inclusive (for example, "2023-01-02T15:04:01Z" includes the first second of 4th minute). Deprecated, please use `startTime` instead. explode: true in: query name: start_time required: false schema: format: date-time type: string style: form - description: | Filter transactions that occurred before this timestamp. The format is RFC3339 and is exclusive (for example, "2023-01-02T15:04:01Z" excludes the first second of 4th minute). explode: true in: query name: endTime required: false schema: format: date-time type: string style: form - deprecated: true description: | Filter transactions that occurred before this timestamp. The format is RFC3339 and is exclusive (for example, "2023-01-02T15:04:01Z" excludes the first second of 4th minute). Deprecated, please use `endTime` instead. explode: true in: query name: end_time required: false schema: format: date-time type: string style: form - description: Filter transactions by metadata key value pairs. Nested objects can be used as seen in the example below. example: "metadata[key]=value1&metadata[a.nested.key]=value2" explode: true in: query name: metadata required: false schema: properties: {} type: object style: deepObject responses: "200": description: OK headers: Count: explode: false schema: format: int64 minimum: 0 type: integer style: simple default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Count the transactions from a ledger tags: - Transactions post: operationId: createTransaction parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: Set the preview mode. Preview mode doesn't add the logs to the database or publish a message to the message broker. explode: true in: query name: preview required: false schema: example: true type: boolean style: form requestBody: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/PostTransaction' description: | The request body must contain at least one of the following objects: - `postings`: suitable for simple transactions - `script`: enabling more complex transactions with Numscript required: true responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/TransactionsResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Create a new transaction to a ledger tags: - Transactions /{ledger}/transactions/{txid}: get: operationId: getTransaction parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: Transaction ID. explode: false in: path name: txid required: true schema: example: 1234 format: int64 minimum: 0 type: integer style: simple responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/TransactionResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Get transaction from a ledger by its ID tags: - Transactions /{ledger}/transactions/{txid}/metadata: post: operationId: addMetadataOnTransaction parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: Transaction ID. explode: false in: path name: txid required: true schema: example: 1234 format: int64 minimum: 0 type: integer style: simple requestBody: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/Metadata' description: metadata responses: "204": description: No Content default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Set the metadata of a transaction by its ID tags: - Transactions /{ledger}/transactions/{txid}/revert: post: operationId: revertTransaction parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: Transaction ID. explode: false in: path name: txid required: true schema: example: 1234 format: int64 minimum: 0 type: integer style: simple responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/TransactionResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Revert a ledger transaction by its ID tags: - Transactions /{ledger}/transactions/batch: post: operationId: CreateTransactions parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple requestBody: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/Transactions' required: true responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/TransactionsResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Create a new batch of transactions to a ledger tags: - Transactions /{ledger}/balances: get: operationId: getBalances parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: "Filter balances involving given account, either as source or\ \ destination." explode: true in: query name: address required: false schema: example: users:001 type: string style: form - description: "Pagination cursor, will return accounts after given address,\ \ in descending order." explode: true in: query name: after required: false schema: example: users:003 type: string style: form - description: | Parameter used in pagination requests. Maximum page size is set to 15. Set to the value of next for the next page of results. Set to the value of previous for the previous page of results. No other parameters can be set when this parameter is set. explode: true in: query name: cursor required: false schema: example: aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ== type: string style: form - deprecated: true description: |- Parameter used in pagination requests. Set to the value of next for the next page of results. Set to the value of previous for the previous page of results. Deprecated, please use `cursor` instead. explode: true in: query name: pagination_token required: false schema: example: aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ== type: string style: form responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/BalancesCursorResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Get the balances from a ledger's account tags: - Balances /{ledger}/aggregate/balances: get: operationId: getBalancesAggregated parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: "Filter balances involving given account, either as source or\ \ destination." explode: true in: query name: address required: false schema: example: users:001 type: string style: form responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/AggregateBalancesResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: Get the aggregated balances from selected accounts tags: - Balances /{ledger}/logs: get: description: "List the logs from a ledger, sorted by ID in descending order." operationId: listLogs parameters: - description: Name of the ledger. explode: false in: path name: ledger required: true schema: example: ledger001 type: string style: simple - description: | The maximum number of results to return per page. example: 100 explode: true in: query name: pageSize required: false schema: default: 15 format: int64 maximum: 1000 minimum: 1 type: integer style: form - deprecated: true description: | The maximum number of results to return per page. Deprecated, please use `pageSize` instead. example: 100 explode: true in: query name: page_size required: false schema: default: 15 format: int64 maximum: 1000 minimum: 1 type: integer style: form - description: "Pagination cursor, will return the logs after a given ID. (in\ \ descending order)." explode: true in: query name: after required: false schema: example: "1234" type: string style: form - description: | Filter transactions that occurred after this timestamp. The format is RFC3339 and is inclusive (for example, "2023-01-02T15:04:01Z" includes the first second of 4th minute). explode: true in: query name: startTime required: false schema: format: date-time type: string style: form - deprecated: true description: | Filter transactions that occurred after this timestamp. The format is RFC3339 and is inclusive (for example, "2023-01-02T15:04:01Z" includes the first second of 4th minute). Deprecated, please use `startTime` instead. explode: true in: query name: start_time required: false schema: format: date-time type: string style: form - description: | Filter transactions that occurred before this timestamp. The format is RFC3339 and is exclusive (for example, "2023-01-02T15:04:01Z" excludes the first second of 4th minute). explode: true in: query name: endTime required: false schema: format: date-time type: string style: form - deprecated: true description: | Filter transactions that occurred before this timestamp. The format is RFC3339 and is exclusive (for example, "2023-01-02T15:04:01Z" excludes the first second of 4th minute). Deprecated, please use `endTime` instead. explode: true in: query name: end_time required: false schema: format: date-time type: string style: form - description: | Parameter used in pagination requests. Maximum page size is set to 15. Set to the value of next for the next page of results. Set to the value of previous for the previous page of results. No other parameters can be set when this parameter is set. explode: true in: query name: cursor required: false schema: example: aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ== type: string style: form - deprecated: true description: | Parameter used in pagination requests. Maximum page size is set to 15. Set to the value of next for the next page of results. Set to the value of previous for the previous page of results. No other parameters can be set when this parameter is set. Deprecated, please use `cursor` instead. explode: true in: query name: pagination_token required: false schema: example: aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ== type: string style: form responses: "200": content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/LogsCursorResponse' description: OK default: content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ErrorResponse' description: Error summary: List the logs from a ledger tags: - Logs components: schemas: AccountsCursorResponse: example: cursor: next: "" previous: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= data: - metadata: admin: true a: nested: key: value address: users:001 type: virtual - metadata: admin: true a: nested: key: value address: users:001 type: virtual hasMore: false pageSize: 15 properties: cursor: $ref: '#/components/schemas/AccountsCursorResponse_cursor' required: - cursor type: object BalancesCursorResponse: example: cursor: next: "" previous: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= data: - account1: USD: 100 EUR: 23 account2: CAD: 20 JPY: 21 - account1: USD: 100 EUR: 23 account2: CAD: 20 JPY: 21 hasMore: false pageSize: 15 properties: cursor: $ref: '#/components/schemas/BalancesCursorResponse_cursor' required: - cursor type: object TransactionsCursorResponse: example: cursor: next: "" previous: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= data: - reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN txid: 0 postCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 preCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 timestamp: 2000-01-23T04:56:07.000+00:00 - reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN txid: 0 postCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 preCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 timestamp: 2000-01-23T04:56:07.000+00:00 hasMore: false pageSize: 15 properties: cursor: $ref: '#/components/schemas/TransactionsCursorResponse_cursor' required: - cursor type: object LogsCursorResponse: example: cursor: next: "" previous: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= data: - date: 2000-01-23T04:56:07.000+00:00 data: "{}" id: 1234 type: NEW_TRANSACTION hash: 9ee060170400f556b7e1575cb13f9db004f150a08355c7431c62bc639166431e - date: 2000-01-23T04:56:07.000+00:00 data: "{}" id: 1234 type: NEW_TRANSACTION hash: 9ee060170400f556b7e1575cb13f9db004f150a08355c7431c62bc639166431e hasMore: false pageSize: 15 properties: cursor: $ref: '#/components/schemas/LogsCursorResponse_cursor' required: - cursor type: object AccountResponse: example: data: metadata: admin: true a: nested: key: value balances: COIN: 100 address: users:001 volumes: COIN: input: 100 output: 0 type: virtual properties: data: $ref: '#/components/schemas/AccountWithVolumesAndBalances' required: - data type: object AggregateBalancesResponse: example: data: USD: 100 EUR: 12 properties: data: additionalProperties: format: int64 minimum: 0 type: integer example: USD: 100 EUR: 12 type: object required: - data type: object Config: example: storage: driver: driver ledgers: - ledgers - ledgers properties: storage: $ref: '#/components/schemas/LedgerStorage' required: - storage type: object LedgerStorage: example: driver: driver ledgers: - ledgers - ledgers properties: driver: type: string ledgers: items: type: string type: array required: - driver - ledgers type: object Metadata: additionalProperties: {} example: admin: true a: nested: key: value nullable: true type: object ConfigInfo: example: server: server config: storage: driver: driver ledgers: - ledgers - ledgers version: version properties: config: $ref: '#/components/schemas/Config' server: type: string version: type: string required: - config - server - version type: object ScriptResponse: example: errorMessage: account had insufficient funds errorCode: INSUFFICIENT_FUND details: https://play.numscript.org/?payload=eyJlcnJvciI6ImFjY291bnQgaGFkIGluc3VmZmljaWVudCBmdW5kcyJ9 transaction: reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN txid: 0 postCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 preCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 timestamp: 2000-01-23T04:56:07.000+00:00 properties: errorCode: $ref: '#/components/schemas/ErrorsEnum' errorMessage: example: account had insufficient funds type: string details: example: https://play.numscript.org/?payload=eyJlcnJvciI6ImFjY291bnQgaGFkIGluc3VmZmljaWVudCBmdW5kcyJ9 type: string transaction: $ref: '#/components/schemas/Transaction' type: object Account: example: metadata: admin: true a: nested: key: value address: users:001 type: virtual properties: address: example: users:001 type: string type: example: virtual type: string metadata: example: admin: true a: nested: key: value properties: {} type: object required: - address type: object AccountWithVolumesAndBalances: example: metadata: admin: true a: nested: key: value balances: COIN: 100 address: users:001 volumes: COIN: input: 100 output: 0 type: virtual properties: address: example: users:001 type: string type: example: virtual type: string metadata: example: admin: true a: nested: key: value properties: {} type: object volumes: additionalProperties: additionalProperties: format: int64 minimum: 0 type: integer type: object example: COIN: input: 100 output: 0 type: object balances: additionalProperties: format: int64 minimum: 0 type: integer example: COIN: 100 type: object required: - address type: object AccountsBalances: additionalProperties: $ref: '#/components/schemas/AssetsBalances' example: account1: USD: 100 EUR: 23 account2: CAD: 20 JPY: 21 type: object AssetsBalances: additionalProperties: format: int64 minimum: 0 type: integer example: USD: 100 EUR: 12 type: object Contract: example: expr: "{}" account: users:001 properties: account: example: users:001 type: string expr: type: object required: - accounts - expr type: object Mapping: example: contracts: - expr: "{}" account: users:001 - expr: "{}" account: users:001 nullable: true properties: contracts: items: $ref: '#/components/schemas/Contract' type: array required: - contracts type: object Posting: example: amount: 100 destination: users:002 source: users:001 asset: COIN properties: amount: example: 100 format: int64 minimum: 0 type: integer asset: example: COIN type: string destination: example: users:002 type: string source: example: users:001 type: string required: - amount - asset - destination - source type: object Script: example: reference: order_1234 metadata: admin: true a: nested: key: value plain: "vars {\naccount $user\n}\nsend [COIN 10] (\n\tsource = @world\n\t\ destination = $user\n)\n" vars: vars: user: users:042 properties: plain: example: "vars {\naccount $user\n}\nsend [COIN 10] (\n\tsource = @world\n\ \tdestination = $user\n)\n" type: string vars: example: vars: user: users:042 properties: {} type: object reference: description: Reference to attach to the generated transaction example: order_1234 type: string metadata: additionalProperties: {} example: admin: true a: nested: key: value nullable: true type: object required: - plain type: object Transaction: example: reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN txid: 0 postCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 preCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 timestamp: 2000-01-23T04:56:07.000+00:00 properties: timestamp: format: date-time type: string postings: items: $ref: '#/components/schemas/Posting' type: array reference: example: ref:001 type: string metadata: additionalProperties: {} example: admin: true a: nested: key: value nullable: true type: object txid: format: int64 minimum: 0 type: integer preCommitVolumes: additionalProperties: $ref: '#/components/schemas/Volumes' example: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 type: object postCommitVolumes: additionalProperties: $ref: '#/components/schemas/Volumes' example: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 type: object required: - postings - timestamp - txid type: object TransactionData: example: reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN timestamp: 2000-01-23T04:56:07.000+00:00 properties: postings: items: $ref: '#/components/schemas/Posting' type: array reference: example: ref:001 type: string metadata: additionalProperties: {} example: admin: true a: nested: key: value nullable: true type: object timestamp: format: date-time type: string required: - postings type: object Transactions: example: transactions: - reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN timestamp: 2000-01-23T04:56:07.000+00:00 - reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN timestamp: 2000-01-23T04:56:07.000+00:00 properties: transactions: items: $ref: '#/components/schemas/TransactionData' type: array required: - transactions type: object PostTransaction: example: reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN script: plain: "vars {\naccount $user\n}\nsend [COIN 10] (\n\tsource = @world\n\t\ destination = $user\n)\n" vars: vars: user: users:042 timestamp: 2000-01-23T04:56:07.000+00:00 properties: timestamp: format: date-time type: string postings: items: $ref: '#/components/schemas/Posting' type: array script: $ref: '#/components/schemas/PostTransaction_script' reference: example: ref:001 type: string metadata: additionalProperties: {} example: admin: true a: nested: key: value nullable: true type: object type: object Stats: example: accounts: 0 transactions: 0 properties: accounts: format: int64 minimum: 0 type: integer transactions: format: int64 minimum: 0 type: integer required: - accounts - transactions type: object Log: example: date: 2000-01-23T04:56:07.000+00:00 data: "{}" id: 1234 type: NEW_TRANSACTION hash: 9ee060170400f556b7e1575cb13f9db004f150a08355c7431c62bc639166431e properties: id: example: 1234 format: int64 minimum: 0 type: integer type: enum: - NEW_TRANSACTION - SET_METADATA type: string data: properties: {} type: object hash: example: 9ee060170400f556b7e1575cb13f9db004f150a08355c7431c62bc639166431e type: string date: format: date-time type: string required: - data - date - hash - id - type type: object TransactionsResponse: example: data: - reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN txid: 0 postCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 preCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 timestamp: 2000-01-23T04:56:07.000+00:00 - reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN txid: 0 postCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 preCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 timestamp: 2000-01-23T04:56:07.000+00:00 properties: data: items: $ref: '#/components/schemas/Transaction' type: array required: - data type: object TransactionResponse: example: data: reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN txid: 0 postCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 preCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 timestamp: 2000-01-23T04:56:07.000+00:00 properties: data: $ref: '#/components/schemas/Transaction' required: - data type: object StatsResponse: example: data: accounts: 0 transactions: 0 properties: data: $ref: '#/components/schemas/Stats' required: - data type: object MappingResponse: example: data: contracts: - expr: "{}" account: users:001 - expr: "{}" account: users:001 properties: data: $ref: '#/components/schemas/Mapping' type: object ConfigInfoResponse: example: data: server: server config: storage: driver: driver ledgers: - ledgers - ledgers version: version properties: data: $ref: '#/components/schemas/ConfigInfo' required: - data type: object Volume: example: input: 100 output: 20 balance: 80 properties: input: format: int64 type: integer output: format: int64 type: integer balance: format: int64 type: integer required: - input - output type: object Volumes: additionalProperties: $ref: '#/components/schemas/Volume' example: USD: input: 100 output: 10 balance: 90 EUR: input: 100 output: 10 balance: 90 type: object AggregatedVolumes: additionalProperties: $ref: '#/components/schemas/Volumes' example: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 type: object ErrorResponse: properties: errorCode: $ref: '#/components/schemas/ErrorsEnum' errorMessage: example: "[INSUFFICIENT_FUND] account had insufficient funds" type: string details: example: https://play.numscript.org/?payload=eyJlcnJvciI6ImFjY291bnQgaGFkIGluc3VmZmljaWVudCBmdW5kcyJ9 type: string required: - error_code type: object ErrorsEnum: enum: - INTERNAL - INSUFFICIENT_FUND - VALIDATION - CONFLICT - NO_SCRIPT - COMPILATION_FAILED - METADATA_OVERRIDE example: INSUFFICIENT_FUND type: string LedgerInfoResponse: example: data: name: ledger001 storage: migrations: - date: 2000-01-23T04:56:07.000+00:00 name: migrations:001 state: to do version: 11 - date: 2000-01-23T04:56:07.000+00:00 name: migrations:001 state: to do version: 11 properties: data: $ref: '#/components/schemas/LedgerInfo' LedgerInfo: example: name: ledger001 storage: migrations: - date: 2000-01-23T04:56:07.000+00:00 name: migrations:001 state: to do version: 11 - date: 2000-01-23T04:56:07.000+00:00 name: migrations:001 state: to do version: 11 properties: name: example: ledger001 type: string storage: $ref: '#/components/schemas/LedgerInfo_storage' type: object MigrationInfo: example: date: 2000-01-23T04:56:07.000+00:00 name: migrations:001 state: to do version: 11 properties: version: example: 11 format: int64 minimum: 0 type: integer name: example: migrations:001 type: string date: format: date-time type: string state: enum: - to do - done type: string type: object AccountsCursorResponse_cursor: example: next: "" previous: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= data: - metadata: admin: true a: nested: key: value address: users:001 type: virtual - metadata: admin: true a: nested: key: value address: users:001 type: virtual hasMore: false pageSize: 15 properties: pageSize: example: 15 format: int64 maximum: 1000 minimum: 1 type: integer hasMore: example: false type: boolean previous: example: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= type: string next: example: "" type: string data: items: $ref: '#/components/schemas/Account' type: array required: - data - hasMore - pageSize type: object BalancesCursorResponse_cursor: example: next: "" previous: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= data: - account1: USD: 100 EUR: 23 account2: CAD: 20 JPY: 21 - account1: USD: 100 EUR: 23 account2: CAD: 20 JPY: 21 hasMore: false pageSize: 15 properties: pageSize: example: 15 format: int64 maximum: 1000 minimum: 1 type: integer hasMore: example: false type: boolean previous: example: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= type: string next: example: "" type: string data: items: $ref: '#/components/schemas/AccountsBalances' type: array required: - data - hasMore - pageSize type: object TransactionsCursorResponse_cursor: example: next: "" previous: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= data: - reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN txid: 0 postCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 preCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 timestamp: 2000-01-23T04:56:07.000+00:00 - reference: ref:001 metadata: admin: true a: nested: key: value postings: - amount: 100 destination: users:002 source: users:001 asset: COIN - amount: 100 destination: users:002 source: users:001 asset: COIN txid: 0 postCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 preCommitVolumes: orders:1: USD: input: 100 output: 10 balance: 90 orders:2: USD: input: 100 output: 10 balance: 90 timestamp: 2000-01-23T04:56:07.000+00:00 hasMore: false pageSize: 15 properties: pageSize: example: 15 format: int64 maximum: 1000 minimum: 1 type: integer hasMore: example: false type: boolean previous: example: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= type: string next: example: "" type: string data: items: $ref: '#/components/schemas/Transaction' type: array required: - data - hasMore - pageSize type: object LogsCursorResponse_cursor: example: next: "" previous: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= data: - date: 2000-01-23T04:56:07.000+00:00 data: "{}" id: 1234 type: NEW_TRANSACTION hash: 9ee060170400f556b7e1575cb13f9db004f150a08355c7431c62bc639166431e - date: 2000-01-23T04:56:07.000+00:00 data: "{}" id: 1234 type: NEW_TRANSACTION hash: 9ee060170400f556b7e1575cb13f9db004f150a08355c7431c62bc639166431e hasMore: false pageSize: 15 properties: pageSize: example: 15 format: int64 maximum: 1000 minimum: 1 type: integer hasMore: example: false type: boolean previous: example: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= type: string next: example: "" type: string data: items: $ref: '#/components/schemas/Log' type: array required: - data - hasMore - pageSize type: object PostTransaction_script: example: plain: "vars {\naccount $user\n}\nsend [COIN 10] (\n\tsource = @world\n\t\ destination = $user\n)\n" vars: vars: user: users:042 properties: plain: example: "vars {\naccount $user\n}\nsend [COIN 10] (\n\tsource = @world\n\ \tdestination = $user\n)\n" type: string vars: example: vars: user: users:042 properties: {} type: object required: - plain type: object LedgerInfo_storage: example: migrations: - date: 2000-01-23T04:56:07.000+00:00 name: migrations:001 state: to do version: 11 - date: 2000-01-23T04:56:07.000+00:00 name: migrations:001 state: to do version: 11 properties: migrations: items: $ref: '#/components/schemas/MigrationInfo' type: array type: object