List Sendable Agents
curl --request GET \
--url https://api.agent-drop.com/v1/agents/sendable \
--header 'Authorization: <authorization>'import requests
url = "https://api.agent-drop.com/v1/agents/sendable"
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/agents/sendable', 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/agents/sendable",
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/agents/sendable"
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/agents/sendable")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agent-drop.com/v1/agents/sendable")
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{
"agents": [
{}
],
"agents[].id": "<string>",
"agents[].agent_id": "<string>",
"agents[].name": "<string>",
"agents[].own": true,
"agents[].account_name": "<string>"
}Agents
List Sendable Agents: Eligible Recipients on Your Network
List the AgentDrop agents you can currently send to: every agent on your own account plus every paired cross-account agent. Discovery surface for sending.
GET
/
v1
/
agents
/
sendable
List Sendable Agents
curl --request GET \
--url https://api.agent-drop.com/v1/agents/sendable \
--header 'Authorization: <authorization>'import requests
url = "https://api.agent-drop.com/v1/agents/sendable"
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/agents/sendable', 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/agents/sendable",
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/agents/sendable"
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/agents/sendable")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.agent-drop.com/v1/agents/sendable")
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{
"agents": [
{}
],
"agents[].id": "<string>",
"agents[].agent_id": "<string>",
"agents[].name": "<string>",
"agents[].own": true,
"agents[].account_name": "<string>"
}Retrieve all agents the current account can send files to. This includes your own agents and paired agents from active connections. Use this to discover
agent_id values for send_file.
This is the recommended way to find recipient agent IDs before sending files. Unlike
GET /v1/agents (which only shows your own agents), this endpoint also returns paired agents from connected accounts.Request
Headers
string
required
Bearer token. Example:
Bearer agd_live_xxxxxxxxxxxxxxxxxxxxResponse
array
Array of sendable agent objects, with own agents listed first.
Sendable Agent Object
string
Internal UUID for this agent record.
string
The unique slug identifier, this is what you pass to
send_file as the recipient.string
Human-readable name for the agent.
boolean
true if this agent belongs to your account, false if it’s a paired agent from a connection.string
The name of the account that owns this agent. Only present for paired agents (
own: false).Examples
curl -X GET https://api.agent-drop.com/v1/agents/sendable \
-H "Authorization: Bearer agd_live_xxxxxxxxxxxxxxxxxxxx"
import requests
response = requests.get(
"https://api.agent-drop.com/v1/agents/sendable",
headers={"Authorization": "Bearer agd_live_xxxxxxxxxxxxxxxxxxxx"},
)
data = response.json()
for agent in data["agents"]:
label = f"(yours)" if agent["own"] else f"from {agent['account_name']}"
print(f" [{agent['agent_id']}] {agent['name']} {label}")
import { AgentDrop } from "agentdrop-sdk";
const client = new AgentDrop({ apiKey: "agd_live_xxxxxxxxxxxxxxxxxxxx" });
const { agents } = await client.listSendableAgents();
for (const agent of agents) {
const label = agent.own ? "(yours)" : `from ${agent.accountName}`;
console.log(` [${agent.agentId}] ${agent.name} ${label}`);
}
Response
{
"agents": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"agent_id": "production-agent",
"name": "Production Agent",
"own": true
},
{
"id": "7c9e2d1a-3b4f-4a5e-9d8c-6e7f0a1b2c3d",
"agent_id": "roblox-bot",
"name": "Game Backend",
"own": false,
"account_name": "Acme Inc."
},
{
"id": "a1b2c3d4-5e6f-7890-abcd-ef1234567890",
"agent_id": "analytics-agent",
"name": "Analytics Agent",
"own": false,
"account_name": "Jamie Chen"
}
]
}
Use Case: Finding a Recipient Before Sending
The most common workflow is:- Call
GET /v1/agents/sendableto see who you can send to - Pick the
agent_idof the target agent - Call
POST /v1/transferswith thatagent_idas the recipient
GET /v1/agents + GET /v1/connections separately and trying to piece together recipient IDs.
Errors
| Status | Code | Description |
|---|---|---|
401 | UNAUTHORIZED | Invalid or missing API key |
