# Bridge transfer status

Endpoint reference for the 1delta API. Index: https://docs.1delta.io/llms.txt · every endpoint: https://docs.1delta.io/llms-full.txt

---

### GET /v1/data/bridge/status

- operationId: `bridge-transfer-status`
- docs: https://docs.1delta.io/1delta-api/bridge-transfer-status/
- markdown: https://docs.1delta.io/1delta-api/bridge-transfer-status.md
- tags: Data › Bridge

Bridge transfer status

Tracks a bridge transfer started via `/v1/actions/swap/x-chain` by polling the bridge's own tracking API. `status` is one of `PENDING`, `DONE`, `FAILED`, `TRANSFER_REFUNDED`, `INVALID`, `NOT_FOUND`, `PARTIAL_SUCCESS`. `NOT_FOUND` is normal in the first seconds after submission (indexer lag) — keep polling. `toHash` is the destination-chain transaction when the tracker exposes it. Responses are not cached.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `bridge` | query | string | yes | The `bridge` value from the executed quote |
| `fromChainId` | query | string | yes | Source chain ID of the transfer |
| `toChainId` | query | string | yes | Destination chain ID |
| `txHash` | query | string | no | Source-chain transaction hash of the executed bridge transaction (required unless `orderId`) |
| `tokenIn` | query | string | no | Bridged input token address — REQUIRED for Stargate (pool-keyed tracker), ignored by most bridges |
| `tokenOut` | query | string | no | Bridged output token address — REQUIRED for Stargate |
| `orderId` | query | string | no | Intent order id for order-based bridges (Mayan) |

**Response `200`** — Transfer status

| Field | Type | Description |
| --- | --- | --- |
| `success` | boolean |  |
| `data` | object | Informational payload. `null` when the endpoint only builds calldata. |
| `data.bridge` | string |  |
| `data.status` | "PENDING" \| "DONE" \| "FAILED" \| "TRANSFER_REFUNDED" \| "INVALID" \| "NOT_FOUND" \| … (7 values) |  |
| `data.message` | string |  |
| `data.fromHash` | string |  |
| `data.toHash` | string | Destination-chain tx hash when known |
| `data.details` | object | The tracker's raw response payload |

**Example response**

```json
{
  "success": true,
  "data": {
    "bridge": "string",
    "status": "PENDING",
    "message": "string",
    "fromHash": "string",
    "toHash": "string"
  }
}
```

**Response `400`** — Validation error

**Response `429`** — Rate limited. Unauthenticated callers share a per-IP budget; send an `x-api-key` header to lift it. Retry with exponential backoff.

**Response `500`** — Unexpected server error. Safe to retry with backoff.

**Response `502`** — An upstream data source or protocol origin failed (`error.code` is `ORIGIN_FAILED`). `error.details` carries the per-origin status. This is also what a missing or malformed required parameter currently returns, rather than a 400.
