> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.0x.org/api-reference/cross-chain-ap-is/cross-chain/cross-chain-get-status/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.0x.org/_mcp/server. # getStatus GET https://api.0x.org/cross-chain/status Get the status of a cross chain transaction Reference: https://docs.0x.org/api-reference/cross-chain-ap-is/cross-chain/cross-chain-get-status ## Request ### Query parameters - `originChain` (string, required) — The origin chain where the cross-chain transaction was initiated - `originTxHash` (string, required) — The transaction hash on the origin chain to track. Format varies by chain type (32-byte hex for EVM/HyperCore, base58 signature for Solana, 64-char hex for Tron) - `quoteId` (string, optional) — The quote ID associated with the cross-chain transaction ### Headers - `0x-api-key` (string, required) — Visit dashboard.0x.org to get your API Key ## Response ### 200 Successful response - `status` (enum, required) — The current status of the cross-chain transaction - Allowed values: `origin_tx_pending`, `origin_tx_succeeded`, `origin_tx_confirmed`, `origin_tx_reverted`, `bridge_pending`, `bridge_filled`, `bridge_failed`, `unknown` - `steps` (list of CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItems, required) — The steps involved in the cross-chain transaction - `failure` (CrossChainStatusGetResponsesContentApplicationJsonSchemaFailure, required, nullable) — The failure context for the cross-chain transaction - `transactions` (list of CrossChainStatusGetResponsesContentApplicationJsonSchemaTransactionsItems, required) — List of all blockchain transactions involved in this cross-chain swap, across multiple chains - `zid` (string, required) — The unique ZeroEx identifier of the request - `bridge` (string, optional) — The bridge provider handling the cross-chain transfer ## Errors ### 400 Bad Request Error 400 error response - `CrossChain::getStatusRequestBadRequestError` ### 404 Not Found Error 404 error response - `CrossChain::getStatusRequestNotFoundError` ### 500 Internal Server Error 500 error response - `CrossChain::getStatusRequestInternalServerError` ## Types ### CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItems ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailure The failure context for the cross-chain transaction - `reason` (string, required) — The reason for the failure - `status` (enum, required) — The status of the failure - Allowed values: `refund_pending`, `refund_succeeded`, `manual_action_required`, `no_actions_required`, `failed` - `transactions` (list of CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureTransactionsItems, required) — The transactions involved in the failure - `recovery` (CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecovery, required, nullable) — The recovery step for the failure ### CrossChainStatusGetResponsesContentApplicationJsonSchemaTransactionsItems - `chainId` (double, required) — The chain ID where this transaction occurred - `chain` (string, required) — The name of the chain where this transaction occurred - `txHash` (string, required, nullable) — The transaction hash on this specific chain - `timestamp` (integer, required) — Unix timestamp when this transaction was confirmed on-chain ### INPUT_INVALID - `name` (enum, required) - Allowed values: `INPUT_INVALID` - `message` (string, required) - `data` (InputInvalidData, required) ### BRIDGE_UNKNOWN - `name` (enum, required) - Allowed values: `BRIDGE_UNKNOWN` - `message` (string, required) - `data` (BridgeUnknownData, required) ### TRANSACTION_NOT_FOUND - `name` (enum, required) - Allowed values: `TRANSACTION_NOT_FOUND` - `message` (string, required) - `data` (TransactionNotFoundData, required) ### BRIDGE_PROVIDER_ERROR - `name` (enum, required) - Allowed values: `BRIDGE_PROVIDER_ERROR` - `message` (string, required) - `data` (BridgeProviderErrorData, required) ### INTERNAL_SERVER_ERROR - `name` (enum, required) - Allowed values: `INTERNAL_SERVER_ERROR` - `message` (string, required) - `data` (InternalServerErrorData, required) ### UNCATEGORIZED - `name` (enum, required) - Allowed values: `UNCATEGORIZED` - `message` (string, required) - `data` (UncategorizedData, required) ### CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItems0 - `chainId` (double, required) — The chain ID where this step will be executed - `sellToken` (string, required) — The input token address for this step - `buyToken` (string, required) — The output token address for this step - `amount` (string, required) — The amount of tokens for this step in token base units - `transactions` (list of CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf0TransactionsItems, required) — The transactions involved in this step - `type` (enum, required) - Allowed values: `wrap` ### CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItems1 - `chainId` (double, required) — The chain ID where this step will be executed - `sellToken` (string, required) — The input token address for this step - `buyToken` (string, required) — The output token address for this step - `amount` (string, required) — The amount of tokens for this step in token base units - `transactions` (list of CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf1TransactionsItems, required) — The transactions involved in this step - `type` (enum, required) - Allowed values: `unwrap` ### CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItems2 - `chainId` (double, required) — The chain ID where this swap will be executed - `sellToken` (string, required) — The input token address for this swap - `buyToken` (string, required) — The output token address for this swap - `sellAmount` (string, required) — The input amount for this swap in token base units - `minBuyAmount` (string, required) — The minimum output amount for this swap in token base units - `quotedBuyAmount` (string, required) — The quoted output amount for this swap in token base units - `estimatedTimeSeconds` (integer, required, nullable) — Estimated time for this swap step to complete - `transactions` (list of CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf2TransactionsItems, required) — The transactions involved in this step - `type` (enum, required) - Allowed values: `swap` ### CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItems3 - `bridge` (string, required) — The bridge provider - `originChainId` (double, required) — The origin chain ID - `destinationChainId` (double, required) — The destination chain ID - `sellToken` (CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf3SellToken, required) — The input token address for this bridge - `buyToken` (CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf3BuyToken, required) — The output token address for this bridge - `sellAmount` (string, required) — The input amount for this bridge in token base units - `minBuyAmount` (string, required) — The minimum output amount for this bridge in token base units - `quotedBuyAmount` (string, required) — The quoted output amount for this bridge in token base units - `settledBuyAmount` (CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf3SettledBuyAmount, required, nullable) — The settled output amount for this bridge in token base units - `estimatedTimeSeconds` (integer, required, nullable) — Estimated time for this bridge step to complete - `transactions` (list of CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf3TransactionsItems, required) — The transactions involved in this step - `type` (enum, required) - Allowed values: `bridge` ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureTransactionsItems - `chainId` (double, required) — The chain ID where this transaction occurred - `chain` (string, required) — The name of the chain where this transaction occurred - `txHash` (string, required, nullable) — The transaction hash on this specific chain - `timestamp` (integer, required) — Unix timestamp when this transaction was confirmed on-chain ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecovery The recovery step for the failure - `chainId` (double, required) — The chain ID where this recovery step will be executed - `token` (CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryToken, required) — The token address of the funds to be recovered - `amount` (string, required) — The amount of tokens to be recovered in token base units - `estimatedTimeSeconds` (integer, required, nullable) — Estimated time for this recovery step to finish, measured from when the recovery process begins - `deadline` (integer, required, nullable) — The deadline timestamp of which the funds are available for recovery, if applicable. Not initiating the recovery process within this deadline may result in funds being forever lost - `manualTransaction` (CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransaction, required, nullable) — The manual transaction for submission, if applicable. This transaction may be submitted by anyone to initiate the recovery process - `settledAmount` (CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoverySettledAmount, required, nullable) — The actual settled refund amount in token base units ### InputInvalidData - `zid` (string, required) — The unique ZeroEx identifier of the request - `details` (list of InputInvalidDataDetailsItems, required) — The list of invalid inputs ### BridgeUnknownData - `zid` (string, required) — The unique ZeroEx identifier of the request - `originChain` (string, required) — The origin chain of the transaction - `originTxHash` (string, required) — The hash of the transaction on the origin chain ### TransactionNotFoundData - `zid` (string, required) — The unique ZeroEx identifier of the request - `originChain` (string, required) - `originTxHash` (string, required) — The hash of the transaction on the origin chain ### BridgeProviderErrorData - `zid` (string, required) — The unique ZeroEx identifier of the request - `bridge` (string, required) — The bridge provider ### InternalServerErrorData - `zid` (string, required) — The unique ZeroEx identifier of the request ### UncategorizedData - `zid` (string, required) — The unique ZeroEx identifier of the request ### CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf0TransactionsItems - `chainId` (double, required) — The chain ID where this transaction occurred - `chain` (string, required) — The name of the chain where this transaction occurred - `txHash` (string, required, nullable) — The transaction hash on this specific chain - `timestamp` (integer, required) — Unix timestamp when this transaction was confirmed on-chain ### CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf1TransactionsItems - `chainId` (double, required) — The chain ID where this transaction occurred - `chain` (string, required) — The name of the chain where this transaction occurred - `txHash` (string, required, nullable) — The transaction hash on this specific chain - `timestamp` (integer, required) — Unix timestamp when this transaction was confirmed on-chain ### CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf2TransactionsItems - `chainId` (double, required) — The chain ID where this transaction occurred - `chain` (string, required) — The name of the chain where this transaction occurred - `txHash` (string, required, nullable) — The transaction hash on this specific chain - `timestamp` (integer, required) — Unix timestamp when this transaction was confirmed on-chain ### CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf3SellToken The input token address for this bridge ### CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf3BuyToken The output token address for this bridge ### CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf3SettledBuyAmount The settled output amount for this bridge in token base units ### CrossChainStatusGetResponsesContentApplicationJsonSchemaStepsItemsOneOf3TransactionsItems - `chainId` (double, required) — The chain ID where this transaction occurred - `chain` (string, required) — The name of the chain where this transaction occurred - `txHash` (string, required, nullable) — The transaction hash on this specific chain - `timestamp` (integer, required) — Unix timestamp when this transaction was confirmed on-chain ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryToken The token address of the funds to be recovered ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransaction The manual transaction for submission, if applicable. This transaction may be submitted by anyone to initiate the recovery process ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoverySettledAmount The actual settled refund amount in token base units ### InputInvalidDataDetailsItems - `field` (string, required) — The input field name - `reason` (string, required) — The validation failure reason ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransaction0 - `chainType` (enum, required) — The blockchain type for Ethereum-compatible chains - Allowed values: `evm` - `details` (CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransactionOneOf0Details, required) ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransaction1 - `chainType` (enum, required) — The blockchain type for Solana Virtual Machine - Allowed values: `svm` - `details` (CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransactionOneOf1Details, required) ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransaction2 - `chainType` (enum, required) — The blockchain type for Tron Virtual Machine - Allowed values: `tvm` - `details` (CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransactionOneOf2Details, required) ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransactionOneOf0Details - `to` (string, required) — The contract address to send the transaction to on the EVM chain - `data` (string, required) — The calldata containing execution details for the EVM transaction - `gas` (CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransactionOneOf0DetailsGas, required, nullable) — The estimated gas limit required for successful transaction execution - `gasPrice` (CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransactionOneOf0DetailsGasPrice, required, nullable) — The gas price in wei for the EVM transaction - `value` (string, required) — The amount of native currency in wei to send with the transaction ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransactionOneOf1Details - `serializedTransaction` (string, required) — The base64-encoded serialized Solana transaction ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransactionOneOf2Details - `to` (string, required) — The Tron contract address to interact with - `data` (string, required) — The calldata for the Tron smart contract call - `value` (string, required) — The amount of TRX in sun to send with the transaction - `ownerAddress` (string, required) — The Tron address of the transaction sender - `memo` (string, optional) — Optional memo attached to the Tron transaction ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransactionOneOf0DetailsGas The estimated gas limit required for successful transaction execution ### CrossChainStatusGetResponsesContentApplicationJsonSchemaFailureRecoveryManualTransactionOneOf0DetailsGasPrice The gas price in wei for the EVM transaction ## Examples **Response** ```json { "status": "bridge_filled", "steps": [ { "chainId": 8453, "sellToken": "0x4200000000000000000000000000000000000006", "buyToken": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "amount": 1, "transactions": [ { "chainId": 8453, "chain": "string", "txHash": "0xe347e66b1d9793a11a962c1483f9eef03272c362c41dc1f21c87577ef5ec1a7c", "timestamp": 1754335333 } ], "type": "wrap" }, { "chainId": 1.1, "sellToken": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "buyToken": "0xaf88d065e77c8cc2239327c5edb3a432268e5831", "amount": 1, "transactions": [ { "chainId": 8453, "chain": "base", "txHash": "0xe347e66b1d9793a11a962c1483f9eef03272c362c41dc1f21c87577ef5ec1a7c", "timestamp": 1754335333 }, { "chainId": 42161, "chain": "arbitrum", "txHash": "0xb8f4da7b2f3244d1d3174687cea1b8403e263f86ead168a841caf142b491ed5b", "timestamp": 1754335360 } ], "type": "wrap" } ], "failure": null, "transactions": [ { "chainId": 8453, "chain": "base", "txHash": "0xe347e66b1d9793a11a962c1483f9eef03272c362c41dc1f21c87577ef5ec1a7c", "timestamp": 1754335333 }, { "chainId": 42161, "chain": "arbitrum", "txHash": "0xb8f4da7b2f3244d1d3174687cea1b8403e263f86ead168a841caf142b491ed5b", "timestamp": 1754335360 } ], "zid": "0x1e452d8e6b4ce52de314dcb4", "bridge": "stargate" } ``` **SDK Code** ```python Cross-Chain_crossChain::getStatus_example import requests url = "https://api.0x.org/cross-chain/status" querystring = {"originChain":"8453","originTxHash":"0xe347e66b1d9793a11a962c1483f9eef03272c362c41dc1f21c87577ef5ec1a7c"} headers = {"0x-api-key": "0x-api-key"} response = requests.get(url, headers=headers, params=querystring) print(response.json()) ``` ```javascript Cross-Chain_crossChain::getStatus_example const url = 'https://api.0x.org/cross-chain/status?originChain=8453&originTxHash=0xe347e66b1d9793a11a962c1483f9eef03272c362c41dc1f21c87577ef5ec1a7c'; const options = {method: 'GET', headers: {'0x-api-key': '0x-api-key'}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Cross-Chain_crossChain::getStatus_example package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.0x.org/cross-chain/status?originChain=8453&originTxHash=0xe347e66b1d9793a11a962c1483f9eef03272c362c41dc1f21c87577ef5ec1a7c" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("0x-api-key", "0x-api-key") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Cross-Chain_crossChain::getStatus_example require 'uri' require 'net/http' url = URI("https://api.0x.org/cross-chain/status?originChain=8453&originTxHash=0xe347e66b1d9793a11a962c1483f9eef03272c362c41dc1f21c87577ef5ec1a7c") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["0x-api-key"] = '0x-api-key' response = http.request(request) puts response.read_body ``` ```java Cross-Chain_crossChain::getStatus_example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.0x.org/cross-chain/status?originChain=8453&originTxHash=0xe347e66b1d9793a11a962c1483f9eef03272c362c41dc1f21c87577ef5ec1a7c") .header("0x-api-key", "0x-api-key") .asString(); ``` ```php Cross-Chain_crossChain::getStatus_example request('GET', 'https://api.0x.org/cross-chain/status?originChain=8453&originTxHash=0xe347e66b1d9793a11a962c1483f9eef03272c362c41dc1f21c87577ef5ec1a7c', [ 'headers' => [ '0x-api-key' => '0x-api-key', ], ]); echo $response->getBody(); ``` ```csharp Cross-Chain_crossChain::getStatus_example using RestSharp; var client = new RestClient("https://api.0x.org/cross-chain/status?originChain=8453&originTxHash=0xe347e66b1d9793a11a962c1483f9eef03272c362c41dc1f21c87577ef5ec1a7c"); var request = new RestRequest(Method.GET); request.AddHeader("0x-api-key", "0x-api-key"); IRestResponse response = client.Execute(request); ``` ```swift Cross-Chain_crossChain::getStatus_example import Foundation let headers = ["0x-api-key": "0x-api-key"] let request = NSMutableURLRequest(url: NSURL(string: "https://api.0x.org/cross-chain/status?originChain=8453&originTxHash=0xe347e66b1d9793a11a962c1483f9eef03272c362c41dc1f21c87577ef5ec1a7c")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` > Developer documentation for the 0x API. Embed swaps in your onchain app. Access 10+ million tokens with liquidity from 150+ exchanges with a single API.