Get Transfer
curl --request GET \
--url https://api.agent-drop.com/v1/transfers/{id} \
--header 'Authorization: <authorization>'import requests
url = "https://api.agent-drop.com/v1/transfers/{id}"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.agent-drop.com/v1/transfers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.agent-drop.com/v1/transfers/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.agent-drop.com/v1/transfers/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.agent-drop.com/v1/transfers/{id}")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agent-drop.com/v1/transfers/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "<string>",
"sender": "<string>",
"recipient": "<string>",
"files": [
{}
],
"max_downloads": 123,
"downloads": 123,
"url": "<string>",
"api_url": "<string>",
"mode": "<string>",
"total_size": 123,
"file_count": 123,
"message": {},
"auto_delete": true,
"is_encrypted": true,
"expires_at": "<string>",
"created_at": "<string>"
}Transfers
Get Transfer: Retrieve Transfer Metadata by ID
Retrieve full metadata for an AgentDrop transfer: status, recipient agent, files, expiry, max-downloads, and Shield scan results. Bearer-auth required.
GET
/
v1
/
transfers
/
{id}
Get Transfer
curl --request GET \
--url https://api.agent-drop.com/v1/transfers/{id} \
--header 'Authorization: <authorization>'import requests
url = "https://api.agent-drop.com/v1/transfers/{id}"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.agent-drop.com/v1/transfers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.agent-drop.com/v1/transfers/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.agent-drop.com/v1/transfers/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.agent-drop.com/v1/transfers/{id}")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agent-drop.com/v1/transfers/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "<string>",
"sender": "<string>",
"recipient": "<string>",
"files": [
{}
],
"max_downloads": 123,
"downloads": 123,
"url": "<string>",
"api_url": "<string>",
"mode": "<string>",
"total_size": 123,
"file_count": 123,
"message": {},
"auto_delete": true,
"is_encrypted": true,
"expires_at": "<string>",
"created_at": "<string>"
}Retrieve the status, metadata, and file list for a specific transfer. Use this to check if a transfer is still active before downloading.
Request
Headers
string
required
Bearer token. Example:
Bearer agd_live_xxxxxxxxxxxxxxxxxxxxPath Parameters
string
required
The transfer ID. Example:
tr_abc123Response
string
Unique transfer ID.
string
Current status:
active, expired, deleted, or downloaded.string
The sender identifier.
string
The recipient identifier.
array
Array of file objects with
name, size, and type.integer
Maximum allowed downloads.
integer
Number of times this transfer has been downloaded.
string
Human-readable URL for the transfer.
string
Direct API URL for programmatic access.
string
Transfer mode. One of:
agent-to-agent, agent-to-human, human-to-agent.integer
Total size of all files in bytes.
integer
Number of files in the transfer.
string|null
Optional message attached to the transfer, or
null if none was provided.boolean
Whether the transfer will be automatically deleted after first download.
boolean
Whether the files are end-to-end encrypted.
string
ISO 8601 expiry timestamp.
string
ISO 8601 creation timestamp.
Examples
curl -X GET https://api.agent-drop.com/v1/transfers/tr_abc123 \
-H "Authorization: Bearer agd_live_xxxxxxxxxxxxxxxxxxxx"
response = requests.get(
"https://api.agent-drop.com/v1/transfers/tr_abc123",
headers={"Authorization": "Bearer agd_live_xxxxxxxxxxxxxxxxxxxx"},
)
transfer = response.json()
print(transfer["status"]) # "active"
const response = await fetch(
"https://api.agent-drop.com/v1/transfers/tr_abc123",
{
headers: { Authorization: "Bearer agd_live_xxxxxxxxxxxxxxxxxxxx" },
}
);
const transfer = await response.json();
console.log(transfer.status); // "active"
Response
{
"id": "tr_abc123",
"status": "active",
"mode": "agent-to-agent",
"sender": "data-pipeline",
"recipient": "analysis-agent",
"url": "https://agent-drop.com/t/tr_abc123",
"api_url": "https://api.agent-drop.com/v1/transfers/tr_abc123/download",
"files": [
{ "name": "report.pdf", "size": 1048576, "type": "application/pdf" }
],
"max_downloads": 10,
"downloads": 2,
"total_size": 1048576,
"file_count": 1,
"message": null,
"auto_delete": true,
"is_encrypted": true,
"expires_at": "2026-03-23T12:00:00Z",
"created_at": "2026-03-22T12:00:00Z"
}
Errors
| Status | Code | Description |
|---|---|---|
401 | UNAUTHORIZED | Invalid or missing API key |
404 | NOT_FOUND | Transfer does not exist or has been deleted |
