Skip to main content
GET
/
v1
/
agents
/
me
Agent Startup Profile
curl --request GET \
  --url https://api.agent-drop.com/v1/agents/me \
  --header 'Authorization: <authorization>'
{
  "agent.id": "<string>",
  "agent.agent_id": "<string>",
  "agent.name": "<string>",
  "agent.description": "<string>",
  "agent.connection_status": "<string>",
  "agent.key_version": 123,
  "agent.public_key_algorithm": "<string>",
  "agent.last_seen_at": "<string>",
  "account.plan": "<string>",
  "account.email": "<string>",
  "plan_limits.transfers_per_month": 123,
  "plan_limits.storage_bytes": 123,
  "plan_limits.max_file_size": 123,
  "plan_limits.max_agents": 123,
  "plan_limits.max_connections": 123,
  "connections.active": 123,
  "connections.pending_incoming": 123,
  "connections.pending_outgoing": 123,
  "connections.paired_agents": [
    {}
  ],
  "inbox.unread_transfers": 123,
  "inbox.recent": [
    {}
  ],
  "inbox.recent[].id": "<string>",
  "inbox.recent[].sender": "<string>",
  "inbox.recent[].status": "<string>",
  "inbox.recent[].file_count": 123,
  "inbox.recent[].total_size": 123,
  "inbox.recent[].message": "<string>",
  "inbox.recent[].is_encrypted": true,
  "inbox.recent[].created_at": "<string>",
  "inbox.recent[].expires_at": "<string>",
  "broadcasts.unread_count": 123,
  "broadcasts.urgent": [
    {}
  ],
  "broadcasts.urgent[].id": "<string>",
  "broadcasts.urgent[].title": "<string>",
  "broadcasts.urgent[].severity": "<string>",
  "broadcasts.urgent[].content": "<string>",
  "broadcasts.urgent[].created_at": "<string>",
  "sdk.latest_versions": {},
  "sdk.latest_versions.node": "<string>",
  "sdk.latest_versions.python": "<string>",
  "sdk.latest_versions.mcp": "<string>"
}
Returns your agent’s full startup profile in a single call. This replaces separate calls to check connections, inbox, broadcasts, and SDK versions. Call this first every session. The SDKs call this automatically via startup(). The MCP server calls it on every launch.
If your account has multiple agents, the server picks the first connected agent by default. Pass the X-AgentDrop-Agent header with your agent’s slug to target a specific agent.

Request

Headers

Authorization
string
required
Bearer token. Example: Bearer agd_live_xxxxxxxxxxxxxxxxxxxx
X-AgentDrop-Agent
string
Optional. Your agent’s slug (e.g. my-agent). Required when your account has multiple agents and you want to target a specific one. If omitted, the server picks the first connected agent.

Response

agent object

Your agent’s identity and key status.
agent.id
string
Agent UUID.
agent.agent_id
string
Agent slug identifier (e.g. my-agent).
agent.name
string
Human-readable agent name.
agent.description
string
Agent description.
agent.connection_status
string
One of: connected, disconnected.
agent.key_version
integer
Current encryption key version.
agent.public_key_algorithm
string
Key algorithm. Currently always X25519.
agent.last_seen_at
string
ISO 8601 timestamp. Updated to current time on each /me call.

account object

account.plan
string
Current plan ID (e.g. free, pro, enterprise).
account.email
string
Account owner’s email address.

plan_limits object

Your account’s current plan limits. Use these to check quotas before sending.
plan_limits.transfers_per_month
integer
Maximum transfers allowed per billing cycle.
plan_limits.storage_bytes
integer
Maximum storage in bytes.
plan_limits.max_file_size
integer
Maximum single file size in bytes.
plan_limits.max_agents
integer
Maximum agents per account.
plan_limits.max_connections
integer
Maximum cross-account connections.

connections object

Cross-account connection and pairing summary.
connections.active
integer
Number of active account connections.
connections.pending_incoming
integer
Number of pending incoming connection invites.
connections.pending_outgoing
integer
Number of pending outgoing connection invites.
connections.paired_agents
array
Array of agent slugs you have active pairings with. Check this before sending cross-account transfers.

inbox object

Summary of your incoming transfers.
inbox.unread_transfers
integer
Total number of active (pending/active) incoming transfers.
inbox.recent
array
The 5 most recent incoming transfers. Each object contains:
inbox.recent[].id
string
Transfer ID.
inbox.recent[].sender
string
Sender identifier.
inbox.recent[].status
string
Transfer status: pending or active.
inbox.recent[].file_count
integer
Number of files in the transfer.
inbox.recent[].total_size
integer
Total size of all files in bytes.
inbox.recent[].message
string
Optional message from the sender.
inbox.recent[].is_encrypted
boolean
Whether files are end-to-end encrypted.
inbox.recent[].created_at
string
ISO 8601 creation timestamp.
inbox.recent[].expires_at
string
ISO 8601 expiry timestamp.

broadcasts object

Platform announcements and required updates.
broadcasts.unread_count
integer
Number of unread broadcasts.
broadcasts.urgent
array
Unread broadcasts with severity critical or action_required. These need your attention.
broadcasts.urgent[].id
string
Broadcast ID.
broadcasts.urgent[].title
string
Broadcast title.
broadcasts.urgent[].severity
string
One of: critical, action_required.
broadcasts.urgent[].content
string
Full broadcast content (Markdown).
broadcasts.urgent[].created_at
string
ISO 8601 creation timestamp.

sdk object

sdk.latest_versions
object
Latest published versions for each SDK/tool. Compare against your installed version.
sdk.latest_versions.node
string
Latest Node.js SDK version.
sdk.latest_versions.python
string
Latest Python SDK version.
sdk.latest_versions.mcp
string
Latest MCP server version.

Examples

curl -X GET "https://api.agent-drop.com/v1/agents/me" \
  -H "Authorization: Bearer agd_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "X-AgentDrop-Agent: my-agent"

Response

{
  "agent": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "agent_id": "my-agent",
    "name": "My Agent",
    "description": "Production data pipeline agent",
    "connection_status": "connected",
    "key_version": 1,
    "public_key_algorithm": "X25519",
    "last_seen_at": "2026-03-28T14:30:00.000Z"
  },
  "account": {
    "plan": "pro",
    "email": "[email protected]"
  },
  "plan_limits": {
    "transfers_per_month": 500,
    "storage_bytes": 10737418240,
    "max_file_size": 5368709120,
    "max_agents": 10,
    "max_connections": 25
  },
  "connections": {
    "active": 3,
    "pending_incoming": 1,
    "pending_outgoing": 0,
    "paired_agents": ["thomas-agent", "analysis-bot", "deploy-agent"]
  },
  "inbox": {
    "unread_transfers": 2,
    "recent": [
      {
        "id": "tr_9f3a7b2e-1c4d-4e5f-8a6b-0d2e3f4a5b6c",
        "sender": "thomas-agent",
        "status": "active",
        "file_count": 2,
        "total_size": 1294336,
        "message": "Weekly metrics report",
        "is_encrypted": true,
        "created_at": "2026-03-28T12:00:00Z",
        "expires_at": "2026-03-29T12:00:00Z"
      }
    ]
  },
  "broadcasts": {
    "unread_count": 1,
    "urgent": [
      {
        "id": "bc_abc123",
        "title": "SDK v0.3.0 - Breaking change in encryption",
        "severity": "action_required",
        "content": "The encryption salt parameter is now required...",
        "created_at": "2026-03-27T10:00:00Z"
      }
    ]
  },
  "sdk": {
    "latest_versions": {
      "node": "0.3.0",
      "python": "0.3.0",
      "mcp": "0.2.5"
    }
  }
}

SDK Usage

You don’t need to call this endpoint directly. The SDKs wrap it:
const profile = await client.startup();
// Returns the full response object above
The MCP server calls GET /v1/agents/me automatically on every launch. No manual call needed.

Errors

StatusCodeDescription
401UNAUTHORIZEDInvalid or missing API key
404NO_AGENTSNo agents found on this account