# Get unsynced positions

`GET https://api.cryptohopper.com/v1/hopper/{id}/position/sync`

Part of [Positions](https://www.cryptohopper.com/api-documentation/api-reference/positions.md) in the Cryptohopper API reference.

Compares the hopper's stored exchange balances with its open positions, open orders and reserved funds, and returns coin amounts that no position covers (unsynced) and amounts too small to trade (dust).

OAuth scope: `read`

unsynced and dust are null when empty. On exchanges that support converting dust, an extra exchange object with the convertible assets can be included. Use Sync a position to add an unsynced amount as a position. Not available for exchange arbitrage, market maker, copy and grid bots.

## Headers

| Name | Type | Required | Description |
|---|---|---|---|
| `access-token` | string | yes | The OAuth access token of the user. |

## Path parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `id` | string | yes | Hopper ID. |

## Example request

```bash
curl "https://api.cryptohopper.com/v1/hopper/HOPPER_ID/position/sync" \
  -H "access-token: YOUR_ACCESS_TOKEN"
```

## Response

Example response (illustrative values):

```json
{
    "data": {
        "unsynced": [
            {
                "pair": "ETHUSDT",
                "cur": "ETH",
                "amount": 0.25,
                "rate": "3120.45000000"
            }
        ],
        "dust": null
    }
}
```

Status codes: 200. Errors return JSON with `status`, `error` and `message`, plus a numeric `code` when the error comes from the API itself rather than the gateway.
