---
updatedAt: 2026-07-02T02:03:59.000Z
agentTools:
  projectIndex: https://docs.zerohash.com/llms.txt
---

# List account movements

Retrieves the history of each itemized movement that has been applied to an account to lead up to its current balance.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "zerohash API",
    "description": "\n### Authentication\n\nzerohash Uses HMAC SHA-256 verification to ensure the authenticity of API requests, follow instructions by link [https://docs.zerohash.com/reference/api-authentication](https://docs.zerohash.com/reference/api-authentication)\n\n<a href=\"/zh-swagger.json\">Download zerohash OpenAPI Schema as JSON</a>\n",
    "version": "1.7.0"
  },
  "servers": [
    {
      "url": "https://api.cert.zerohash.com",
      "description": "Certification API server"
    }
  ],
  "x-readme": {
    "proxy-enabled": false
  },
  "tags": [
    {
      "name": "Accounts",
      "description": "Create and Manage Accounts"
    }
  ],
  "paths": {
    "/accounts/{account_id}/movements": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "List account movements",
        "description": "Retrieves the history of each itemized movement that has been applied to an account to lead up to its current balance.",
        "parameters": [
          {
            "$ref": "#/components/parameters/Signature"
          },
          {
            "$ref": "#/components/parameters/Timestamp"
          },
          {
            "name": "account_id",
            "in": "path",
            "description": "This parameter enables the filtering of movements based on the associated account_id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Filters for a specific page (pagination)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "movement_timestamp[gt]",
            "in": "query",
            "description": "Filters for movements with a timestamp greater than the provided value, which can be defined in milliseconds or nanoseconds",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "movement_timestamp[gte]",
            "in": "query",
            "description": "Filters for movements with a timestamp greater than or equal to the provided value, which can be defined in milliseconds or nanoseconds",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "movement_timestamp[e]",
            "in": "query",
            "description": "Filters for movements with a timestamp that is equal to the provided value, which can be defined in milliseconds or nanoseconds",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "movement_timestamp[lt]",
            "in": "query",
            "description": "Filters for movements with a timestamp less than the provided value, which can be defined in milliseconds or nanoseconds",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "movement_timestamp[lte]",
            "in": "query",
            "description": "Filters for movements with a timestamp less than or equals the provided value, which can be defined in milliseconds or nanoseconds",
            "required": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "parent_link_id",
            "in": "query",
            "description": "Filters for movements that are tagged with a specific parent_link_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved paginated list of account movements with optional filters: page, movement_timestamp filters, parent_link_id.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAccountMovementsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Code400"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Code403"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Code404"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Code500"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Code503"
                }
              }
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "apiKey": [],
      "apiPassphrase": []
    }
  ],
  "components": {
    "securitySchemes": {
      "apiKey": {
        "type": "apiKey",
        "description": "Your API public key. See the [Authentication guide](https://docs.zerohash.com/reference/api-authentication) for how to obtain keys.",
        "in": "header",
        "name": "X-SCX-API-KEY"
      },
      "apiPassphrase": {
        "type": "apiKey",
        "description": "The passphrase associated with your API key, set when the key was created.",
        "in": "header",
        "name": "X-SCX-PASSPHRASE"
      }
    },
    "parameters": {
      "Signature": {
        "name": "X-SCX-SIGNED",
        "in": "header",
        "description": "HMAC-SHA256 signature of the request, base64-encoded. See the [Authentication guide](https://docs.zerohash.com/reference/api-authentication) for the exact signing formula.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "Timestamp": {
        "name": "X-SCX-TIMESTAMP",
        "in": "header",
        "description": "Current Unix timestamp in seconds. Must be within 60 seconds of server time or the request is rejected.",
        "required": true,
        "schema": {
          "type": "string",
          "example": "1678901234"
        }
      }
    },
    "schemas": {
      "Code400": {
        "type": "object",
        "description": "Request was rejected by validation or a downstream service. `errors` is an array of human-readable messages; each entry describes a single validation failure or business-rule violation.",
        "required": [
          "errors"
        ],
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "body/amount must be >= 0",
              "body/asset is required"
            ]
          }
        }
      },
      "Code403": {
        "type": "object",
        "description": "Authentication or authorization failed. `error` is always `true`; `message` explains which check failed (missing API key, bad signature, insufficient permission, etc.).",
        "required": [
          "error",
          "message"
        ],
        "properties": {
          "error": {
            "type": "boolean",
            "example": true
          },
          "message": {
            "type": "string",
            "example": "This api key does not have write permission to this endpoint"
          }
        }
      },
      "Code404": {
        "type": "object",
        "description": "The requested resource does not exist or is not visible to the caller.",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "Not Found"
          }
        }
      },
      "Code500": {
        "type": "object",
        "description": "An unexpected error occurred on the server. The request can be retried after a short delay, but the same inputs may reproduce the error.",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "Internal Server Error"
          }
        }
      },
      "Code503": {
        "type": "object",
        "description": "A downstream dependency was unavailable, timed out, or returned a retryable error. Safe to retry; the response carries a `zh-allow-retry: true` header.",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "Service Unavailable"
          }
        }
      },
      "AccountMovementsEntity": {
        "type": "object",
        "title": "Movements Entity",
        "description": "Entity schema for an itemized account movement.",
        "properties": {
          "order_id": {
            "type": "number",
            "description": "Sequence order of the movement within its run. Only present when enabled for the requesting platform.",
            "example": 123
          },
          "run_id": {
            "type": "string",
            "description": "A unique ID for the run that produced this movement.",
            "example": "500"
          },
          "movement_timestamp": {
            "type": "number",
            "format": "int64",
            "description": "Unix timestamp in milliseconds indicating when the movement was applied.",
            "example": 1777911679783
          },
          "movement_id": {
            "type": "string",
            "format": "uuid",
            "description": "A unique ID for the specific account movement.",
            "example": "ab938734-0aa6-4378-baa1-2cc56aeee757"
          },
          "movement_type": {
            "type": "string",
            "description": "The type of movement.",
            "example": "transfer",
            "enum": [
              "initial_margin",
              "deposit",
              "execution_fee",
              "final_settlement",
              "final_settlement_default",
              "final_settlement_default_fallback",
              "final_settlement_default_partial",
              "final_settlement_outstanding",
              "interest_payment",
              "collateralize_loan",
              "loan_collateral_return",
              "network_fee",
              "otc_final_settlement",
              "principal_swap",
              "repayment",
              "transfer",
              "variation_margin",
              "variation_margin_call",
              "withdrawal",
              "withdrawal_confirmed",
              "withdrawal_pending",
              "commission",
              "bank_fee",
              "transaction_fee"
            ]
          },
          "trade_id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Unique identifier of the trade that resulted in the movement, when the movement was due to a trade. Equal to the `trade_id` field returned by the `/trades` endpoint. Returns null when the movement is not trade-related.",
            "example": "3ad29e08-8b4f-435b-89aa-17b7a298b350"
          },
          "deposit_reference_id": {
            "type": "string",
            "nullable": true,
            "description": "External identifier associated with the deposit, when the movement was due to a deposit. Equal to the `reference_id` field returned by the `/deposits` endpoint. Returns null when the movement is not a deposit.",
            "example": null
          },
          "withdrawal_request_id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Withdrawal request ID, when the movement was due to a withdrawal. Equal to the `id` field returned by the `/withdrawals/requests` endpoint. Returns null when the movement is not a withdrawal.",
            "example": null
          },
          "change": {
            "type": "string",
            "description": "Signed decimal change to the account balance due to this movement, expressed as a string to preserve precision.",
            "example": "-14.77"
          },
          "parent_link_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of the parent transaction that produced this movement (e.g. the trade ID for trade-settlement movements). Returns null when the movement has no linked parent transaction.",
            "example": "3ad29e08-8b4f-435b-89aa-17b7a298b350"
          },
          "origin": {
            "type": "string",
            "enum": [
              null,
              "rest_api",
              "sdk",
              "secondary"
            ],
            "nullable": true,
            "description": "Indicates how the movement was initiated: via the REST API, SDK, or Secondary Portal. Returns null for movements without a recorded origin (e.g. automated system-generated movements).",
            "example": "rest_api"
          }
        }
      },
      "GetAccountMovementsResponse": {
        "type": "object",
        "title": "Get Account Movements Response",
        "description": "Response schema for retrieving account movements information.",
        "properties": {
          "message": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountMovementsEntity"
            }
          },
          "page": {
            "type": "number",
            "example": 1
          },
          "total_pages": {
            "type": "number",
            "example": 1
          }
        }
      }
    }
  }
}
```