---
title: "Bridge status"
method: GET
path: "/crosschain/status"
tags: ["Bridge"]
---

# Bridge status

`GET /crosschain/status`

## Request

- Base URL: `https://api.getchord.xyz/v1`
- URL: `https://api.getchord.xyz/v1/crosschain/status`
- Auth: none declared

Status of a bridge by its request id or deposit hash: `waiting` · `depositing` · `pending` · `submitted` · `success` · `delayed` · `refund` · `failure` · `unknown`.

## Query parameters

- `requestId` string, required
- `provider` 'lifi' | 'relay'
- `fromChain` integer
- `toChain` integer

## Response `200`

- object
  - `status` 'waiting' | 'depositing' | 'pending' | 'submitted' | 'success' | 'delayed' | 'refund' | 'failure' | 'unknown'
  - `substatus` string
  - `inTxHashes` string[]
  - `txHashes` string[]
  - `explorerLink` string
  - `updatedAt` integer: Unix time, milliseconds — when the server built this answer.

## Other responses

- `400`: Invalid parameters — `error` names the check that failed (`INVALID_PARAMS`, `BAD_ADDRESS`, `BAD_LIMIT`, `BAD_HOURS`, …).
- `429`: Over the per-minute limit (`RATE_LIMIT_EXCEEDED`). Read `X-RateLimit-Reset` and back off.
- `502`: The routing engine or an upstream did not answer (`ENGINE_ERROR`, `ROUTE_ERROR`).
- `503`: The lane behind this endpoint is not ready or not enabled here (`NOT_READY`, `CHAIN_NOT_ENABLED`, `NOT_ENABLED`, `*_UNAVAILABLE`). Retry later; do not treat it as an empty answer.

---

[API](https://skmtc.dev/getchord/apis/chord-api.md) · [All operations](https://skmtc.dev/getchord/apis/chord-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getchord/apis/chord-api/revisions/d3bc4640fea0?raw)
