---
title: "Get deposit status"
method: GET
path: "/v1/deposits/{trackingId}"
tags: ["Deposits"]
---

# Get deposit status

`GET /v1/deposits/{trackingId}`

## Request

- Base URL: `https://api.metalend.tech`
- URL: `https://api.metalend.tech/v1/deposits/{trackingId}`
- Auth: API key in header `X-API-Key` and API key in header `Origin`
- TypeScript: <https://skmtc.dev/metalend/apis/metalend-rebalancing-api/docs/v1/deposits/:trackingId/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieves the current status and details of a deposit transaction using its unique tracking ID.

This endpoint allows you to monitor the progress of a deposit from initiation to completion.
The tracking ID is returned when you create a deposit in UUID format.

Please be aware that if you see failed state, it can be also due to high gas fees, max allowed is 1 USD in gas fees, otherwise it will fail.

**Status Values** (returned in `status`):
- `PROCESSING`: Deposit is queued or being handled on the source chain.
- `BRIDGING` (cross-chain only): Source-side funds movement succeeded and is bridging to the destination chain. Same-chain deposits go straight to final `SUCCESS` or `FAILED` status.
- `SUCCESS`: Deposit has been successfully completed and funds are in the protocol.
- `FAILED`: Deposit transaction has failed (e.g., insufficient gas, transaction reverted).
- `EMERGENCY_WITHDRAW`: Destination-side deposit could not complete; funds were recovered via emergency withdrawal.

The API only exposes the five values above. Any other internal persistence state is mapped to `PROCESSING` for this response until the flow resolves.

**Response Details:**
When successful, the response includes:
- Current deposit status ("SUCCESS")
- Target protocol name (e.g., "Aave", "Morpho", "Euler", "AaveV4") where funds were deposited
- Pool/vault contract address receiving the funds
- Blockchain network where the deposit occurred

**Use Cases:**
- Poll this endpoint to track deposit progress after creation
- Verify successful completion before proceeding with other operations
- Display real-time status updates to users in your application

**Note:** If you receive a error code, the tracking ID is probably invalid or no deposit exists for that ID.

**Rate limiting**: 1 request per 3 seconds per client IP. Excess requests receive HTTP `429` with `Retry-After`, `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` headers (see `RateLimitExceeded` response).

## Path parameters

- `trackingId` string, required

## Response `200`

Deposit status retrieved successfully

- DepositStatusResponse
  - `status` 'PROCESSING' | 'BRIDGING' | 'SUCCESS' | 'FAILED' | 'EMERGENCY_WITHDRAW', required: Current status of the deposit. - `PROCESSING`: Deposit is queued or being handled on the source chain. - `BRIDGING` (cross-chain only): Source-side funds movement succeeded and is bridging to the destination chain. Same-chain deposits go straight to final `SUCCESS` or `FAILED` status. - `SUCCESS`: Deposit has been successfully completed and funds are in the protocol. - `FAILED`: Deposit transaction has failed (e.g., insufficient gas, transaction reverted). - `EMERGENCY_WITHDRAW`: Destination-side deposit could not complete; funds were recovered via emergency withdrawal.
  - `protocol` 'Aave' | 'Morpho' | 'Euler' | 'AaveV4', nullable: Target protocol once known; may be null while still in `PROCESSING`.
  - `pool` string, nullable: Target pool address once known; may be null while still in `PROCESSING`.
  - `chain` string, nullable: Target chain once known; may be null while still in `PROCESSING`.

## Other responses

- `400`: Validation error
- `401`: No authorization header provided
- `404`: Tracking ID not found
- `429`: Too many requests for this endpoint. Limits are enforced per client IP for the public API routes backed by `RebalancerResource` (and related resources using the same filter). Response headers (when throttled): - `Retry-After`: seconds to wait before retrying (matches the rate-limit window duration for that endpoint). - `X-RateLimit-Limit`: maximum requests allowed in the window (e.g. `1`). - `X-RateLimit-Remaining`: remaining requests in the window (`0` when throttled). - `X-RateLimit-Reset`: Unix timestamp (seconds) when the limit window resets. `internalCode` in the JSON body is `THROTTLE_PER_IP` for IP-scoped limits (other values may apply for different scopes in the backend).
- `500`: Internal server error

## Changes

- **2026-10-08** `46926c76ae34`: 1 warning
  - added the new `AaveV4` enum value to the `protocol` response property for the response status `200`

[Operation history](https://skmtc.dev/metalend/apis/metalend-rebalancing-api/changes/v1/deposits/:trackingId/get.md)

---

[API](https://skmtc.dev/metalend/apis/metalend-rebalancing-api.md) - [All operations](https://skmtc.dev/metalend/apis/metalend-rebalancing-api/llms.txt) - [OpenAPI document](https://skmtc.dev/metalend/apis/metalend-rebalancing-api/revisions/46926c76ae34?raw)
