> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agent-drop.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Transfers: Enumerate File Transfer History

> List AgentDrop transfers your account has sent or received with pagination and filters for status, recipient, and date. Returns newest-first paginated results.

Retrieve a paginated list of all transfers associated with your account.

## Request

### Headers

<ParamField header="Authorization" type="string" required>
  Bearer token. Example: `Bearer agd_live_xxxxxxxxxxxxxxxxxxxx`
</ParamField>

### Query Parameters

<ParamField query="offset" type="integer" default="0">
  Number of transfers to skip. Used for offset-based pagination.
</ParamField>

<ParamField query="limit" type="integer" default="20">
  Number of transfers to return. Maximum: 100.
</ParamField>

<ParamField query="status" type="string">
  Filter by transfer status. One of: `active`, `expired`, `deleted`.
</ParamField>

<ParamField query="mode" type="string">
  Filter by transfer mode. One of: `agent-to-agent`, `agent-to-human`, `human-to-agent`.
</ParamField>

## Response

<ResponseField name="transfers" type="array">
  Array of transfer objects.
</ResponseField>

<ResponseField name="offset" type="integer">
  Current offset.
</ResponseField>

<ResponseField name="limit" type="integer">
  Number of items returned.
</ResponseField>

<ResponseField name="total" type="integer">
  Total number of transfers matching the query.
</ResponseField>

<ResponseField name="has_more" type="boolean">
  Whether there are more transfers beyond this page.
</ResponseField>

## Examples

<CodeGroup>
  ```bash curl theme={null}
  curl -X GET "https://api.agent-drop.com/v1/transfers?offset=0&limit=10" \
    -H "Authorization: Bearer agd_live_xxxxxxxxxxxxxxxxxxxx"
  ```

  ```python Python theme={null}
  response = requests.get(
      "https://api.agent-drop.com/v1/transfers",
      headers={"Authorization": "Bearer agd_live_xxxxxxxxxxxxxxxxxxxx"},
      params={"offset": 0, "limit": 10},
  )

  data = response.json()
  for transfer in data["transfers"]:
      print(f"{transfer['id']} - {transfer['status']}")
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    "https://api.agent-drop.com/v1/transfers?offset=0&limit=10",
    {
      headers: { Authorization: "Bearer agd_live_xxxxxxxxxxxxxxxxxxxx" },
    }
  );

  const { transfers, has_more } = await response.json();
  transfers.forEach((t) => console.log(`${t.id} - ${t.status}`));
  ```
</CodeGroup>

### Response

```json theme={null}
{
  "transfers": [
    {
      "id": "tr_abc123",
      "status": "active",
      "mode": "agent-to-agent",
      "sender": "research-agent",
      "recipient": "report-agent",
      "files": [{ "name": "data.csv", "size": 245760, "type": "text/csv" }],
      "is_encrypted": true,
      "auto_delete": true,
      "downloads": 0,
      "max_downloads": 10,
      "total_size": 245760,
      "file_count": 1,
      "created_at": "2026-03-22T12:00:00Z",
      "expires_at": "2026-03-23T12:00:00Z"
    },
    {
      "id": "tr_def456",
      "status": "expired",
      "mode": "agent-to-human",
      "sender": "scraper-agent",
      "recipient": "indexer-agent",
      "files": [{ "name": "pages.json", "size": 512000, "type": "application/json" }],
      "is_encrypted": false,
      "auto_delete": false,
      "downloads": 3,
      "max_downloads": 10,
      "total_size": 512000,
      "file_count": 1,
      "created_at": "2026-03-20T08:00:00Z",
      "expires_at": "2026-03-21T08:00:00Z"
    }
  ],
  "total": 2,
  "offset": 0,
  "limit": 10,
  "has_more": false
}
```

<Note>
  This endpoint returns transfers sent **by** your account. To check incoming transfers for an agent, use `GET /v1/agents/{id}/inbox`.
</Note>

## Errors

| Status | Code           | Description                |
| ------ | -------------- | -------------------------- |
| `401`  | `UNAUTHORIZED` | Invalid or missing API key |
