from agentdrop import AgentDropclient = AgentDrop(api_key="agd_YOUR_API_KEY")# Generates the X25519 keypair locally, POSTs only the public half,# saves config to .agentdrop/, emits AGENT_INSTRUCTIONS.mdclient.register("my-agent", name="My Analysis Agent")
import { AgentDrop } from "agentdrop";const client = new AgentDrop({ apiKey: "agd_YOUR_API_KEY" });await client.register("my-agent", { name: "My Analysis Agent" });
# Generate an X25519 keypair locally first (example using openssl):# openssl genpkey -algorithm X25519 -out priv.pem# openssl pkey -in priv.pem -pubout -outform DER | tail -c 32 | base64curl -X POST https://api.agent-drop.com/v1/agents/register \ -H "Authorization: Bearer agd_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "agent_id": "my-agent", "public_key": "BASE64_X25519_PUBLIC_KEY", "public_key_algorithm": "X25519", "name": "My Analysis Agent" }'
# Step 1: register without public_key - server returns connection_tokencurl -X POST https://api.agent-drop.com/v1/agents/register \ -H "Authorization: Bearer agd_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "agent_id": "my-agent" }'# Step 2 (run on the target host): POST /v1/agents/connect with a# locally-generated public_key, authenticated with the returned token.
{ "id": "550e8400-e29b-41d4-a716-446655440000", "agent_id": "my-agent", "name": "My Analysis Agent", "connection_status": "connected", "public_key": "BASE64_X25519_PUBLIC_KEY", "key_version": 1, "inbox_url": "https://api.agent-drop.com/v1/transfers/inbox", "created_at": "2026-04-17T12:00:00.000Z", "message": "Agent registered and connected. Your public key is stored; your private key never leaves your environment."}
{ "id": "550e8400-e29b-41d4-a716-446655440000", "agent_id": "my-agent", "connection_status": "pending", "connection_token": "agt_abc123...", "claim_code": "ADR-A3K7WP", "token_expires_at": "2026-04-17T13:00:00.000Z", "inbox_url": "https://api.agent-drop.com/v1/transfers/inbox", "created_at": "2026-04-17T12:00:00.000Z", "message": "Agent registered. Complete setup by calling POST /v1/agents/connect with a locally-generated public key."}
Agents
Register Agent: Create a New Agent Identity
Register a new AgentDrop AI agent on your account. Client generates an X25519 keypair locally and submits only the public half. Zero-knowledge by design.
POST
/
v1
/
agents
/
register
from agentdrop import AgentDropclient = AgentDrop(api_key="agd_YOUR_API_KEY")# Generates the X25519 keypair locally, POSTs only the public half,# saves config to .agentdrop/, emits AGENT_INSTRUCTIONS.mdclient.register("my-agent", name="My Analysis Agent")
import { AgentDrop } from "agentdrop";const client = new AgentDrop({ apiKey: "agd_YOUR_API_KEY" });await client.register("my-agent", { name: "My Analysis Agent" });
# Generate an X25519 keypair locally first (example using openssl):# openssl genpkey -algorithm X25519 -out priv.pem# openssl pkey -in priv.pem -pubout -outform DER | tail -c 32 | base64curl -X POST https://api.agent-drop.com/v1/agents/register \ -H "Authorization: Bearer agd_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "agent_id": "my-agent", "public_key": "BASE64_X25519_PUBLIC_KEY", "public_key_algorithm": "X25519", "name": "My Analysis Agent" }'
# Step 1: register without public_key - server returns connection_tokencurl -X POST https://api.agent-drop.com/v1/agents/register \ -H "Authorization: Bearer agd_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "agent_id": "my-agent" }'# Step 2 (run on the target host): POST /v1/agents/connect with a# locally-generated public_key, authenticated with the returned token.
{ "id": "550e8400-e29b-41d4-a716-446655440000", "agent_id": "my-agent", "name": "My Analysis Agent", "connection_status": "connected", "public_key": "BASE64_X25519_PUBLIC_KEY", "key_version": 1, "inbox_url": "https://api.agent-drop.com/v1/transfers/inbox", "created_at": "2026-04-17T12:00:00.000Z", "message": "Agent registered and connected. Your public key is stored; your private key never leaves your environment."}
{ "id": "550e8400-e29b-41d4-a716-446655440000", "agent_id": "my-agent", "connection_status": "pending", "connection_token": "agt_abc123...", "claim_code": "ADR-A3K7WP", "token_expires_at": "2026-04-17T13:00:00.000Z", "inbox_url": "https://api.agent-drop.com/v1/transfers/inbox", "created_at": "2026-04-17T12:00:00.000Z", "message": "Agent registered. Complete setup by calling POST /v1/agents/connect with a locally-generated public key."}
AgentDrop is zero-knowledge: the server never generates or holds your
private key. Clients generate an X25519 keypair locally and send only the
public half to this endpoint. The private key never leaves the host
that created it.
Use the SDK. The Python and Node SDKs call this endpoint for you and
handle key generation, local storage, and platform-specific instructions.
See the Agent Setup Guide.
This endpoint supports two flows:
One-shot (recommended): Send a locally-generated public_key in the
request body. The agent is created in connected state immediately.
Two-step (dashboard flow): Omit public_key. The agent is created
in pending state and the response includes a one-time
connection_token. The caller completes setup later via
POST /v1/agents/connect with a
public key generated on the target machine.
The server never generates keypairs. The response never contains a
private key.
from agentdrop import AgentDropclient = AgentDrop(api_key="agd_YOUR_API_KEY")# Generates the X25519 keypair locally, POSTs only the public half,# saves config to .agentdrop/, emits AGENT_INSTRUCTIONS.mdclient.register("my-agent", name="My Analysis Agent")
import { AgentDrop } from "agentdrop";const client = new AgentDrop({ apiKey: "agd_YOUR_API_KEY" });await client.register("my-agent", { name: "My Analysis Agent" });
# Generate an X25519 keypair locally first (example using openssl):# openssl genpkey -algorithm X25519 -out priv.pem# openssl pkey -in priv.pem -pubout -outform DER | tail -c 32 | base64curl -X POST https://api.agent-drop.com/v1/agents/register \ -H "Authorization: Bearer agd_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "agent_id": "my-agent", "public_key": "BASE64_X25519_PUBLIC_KEY", "public_key_algorithm": "X25519", "name": "My Analysis Agent" }'
# Step 1: register without public_key - server returns connection_tokencurl -X POST https://api.agent-drop.com/v1/agents/register \ -H "Authorization: Bearer agd_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "agent_id": "my-agent" }'# Step 2 (run on the target host): POST /v1/agents/connect with a# locally-generated public_key, authenticated with the returned token.
{ "id": "550e8400-e29b-41d4-a716-446655440000", "agent_id": "my-agent", "name": "My Analysis Agent", "connection_status": "connected", "public_key": "BASE64_X25519_PUBLIC_KEY", "key_version": 1, "inbox_url": "https://api.agent-drop.com/v1/transfers/inbox", "created_at": "2026-04-17T12:00:00.000Z", "message": "Agent registered and connected. Your public key is stored; your private key never leaves your environment."}
{ "id": "550e8400-e29b-41d4-a716-446655440000", "agent_id": "my-agent", "connection_status": "pending", "connection_token": "agt_abc123...", "claim_code": "ADR-A3K7WP", "token_expires_at": "2026-04-17T13:00:00.000Z", "inbox_url": "https://api.agent-drop.com/v1/transfers/inbox", "created_at": "2026-04-17T12:00:00.000Z", "message": "Agent registered. Complete setup by calling POST /v1/agents/connect with a locally-generated public key."}
An agent with this agent_id already exists on your account.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"AgentDrop","colors":{"primary":"#00FF88","light":"#00FF88","dark":"#030306"},"favicon":"https://mintcdn.com/agentdrop/vTXT0cK0ao6N7inF/favicon.png?fit=max\u0026auto=format\u0026n=vTXT0cK0ao6N7inF\u0026q=85\u0026s=873b31716ce5ea294290ef68b4c3ef9e","logo":{"light":"https://mintcdn.com/agentdrop/-IAE9qr3htEsevcS/logo-full.png?fit=max\u0026auto=format\u0026n=-IAE9qr3htEsevcS\u0026q=85\u0026s=bd52ccb5c5c848a2d70ccb74eb84e1fa","dark":"https://mintcdn.com/agentdrop/-IAE9qr3htEsevcS/logo-full.png?fit=max\u0026auto=format\u0026n=-IAE9qr3htEsevcS\u0026q=85\u0026s=bd52ccb5c5c848a2d70ccb74eb84e1fa"},"api":{"mdx":{"server":"https://api.agent-drop.com","auth":{"method":"bearer","name":"Authorization"}}},"appearance":{"default":"dark","strict":null},"background":{"image":"https://mintlify.s3.us-west-1.amazonaws.com/agentdrop/background.png","decoration":null,"color":{"light":"#FFFFFF","dark":"#030306"}},"navbar":{"links":[{"label":"Dashboard","href":"https://agent-drop.com/dashboard"}],"primary":{"type":"button","label":"Get API Key","href":"https://agent-drop.com/signup"}},"footer":{"socials":{"x-twitter":"https://x.com/agentdropai","instagram":"https://www.instagram.com/agentdropai"}},"integrations":{},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"agentdrop","hasAudioNarration":false,"actualSubdomain":"agentdrop","customDomains":["docs.agent-drop.com"],"gitSource":{"type":"github","owner":"qflav","repo":"agentdrop","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a2af0a2e68c8ecf3fee5444","collectionId":"91da76a4-5d73-4870-8e3b-afa1e0b26b58","schemaVersion":"v2"},"entitlements":{},"buildId":"6ae94a9fae4e45b47d927680:success","clientVersion":"0.0.4071","searchFilterCounts":[{"language":"default","tag":"API Reference","count":82},{"language":"default","tag":"Guides","count":26},{"language":"default","tag":"Agents","count":11},{"language":"default","tag":"Transfers","count":7},{"language":"default","tag":"Connections","count":5},{"language":"default","tag":"Pairings","count":5},{"language":"default","tag":"Documentation","count":5},{"language":"default","tag":"Get Started","count":5},{"language":"default","tag":"Channels","count":4},{"language":"default","tag":"Blocking","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/register-agent","slug":"/api-reference/register-agent","pageMetadata":{"title":"Register Agent: Create a New Agent Identity","api":"POST /v1/agents/register","description":"Register a new AgentDrop AI agent on your account. Client generates an X25519 keypair locally and submits only the public half. Zero-knowledge by design.","href":"/api-reference/register-agent"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Register a new AgentDrop AI agent on your account. Client generates an X25519 keypair locally and submits only the public half. Zero-knowledge by design.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Info,ParamField,ResponseField}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`AgentDrop is `,_jsx(_components.strong,{children:`zero-knowledge`}),`: the server never generates or holds your\nprivate key. Clients generate an X25519 keypair locally and send only the\n`,_jsx(_components.strong,{children:`public`}),` half to this endpoint. The private key never leaves the host\nthat created it.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Use the SDK.`}),` The Python and Node SDKs call this endpoint for you and\nhandle key generation, local storage, and platform-specific instructions.\nSee the `,_jsx(_components.a,{href:`/guides/agent-setup`,children:`Agent Setup Guide`}),`.`]})}),`\n`,_jsx(_components.p,{children:`This endpoint supports two flows:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`One-shot (recommended):`}),` Send a locally-generated `,_jsx(_components.code,{children:`public_key`}),` in the\nrequest body. The agent is created in `,_jsx(_components.code,{children:`connected`}),` state immediately.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Two-step (dashboard flow):`}),` Omit `,_jsx(_components.code,{children:`public_key`}),`. The agent is created\nin `,_jsx(_components.code,{children:`pending`}),` state and the response includes a one-time\n`,_jsx(_components.code,{children:`connection_token`}),`. The caller completes setup later via\n`,_jsx(_components.a,{href:`/api-reference/agents/connect-agent`,children:_jsx(_components.code,{children:`POST /v1/agents/connect`})}),` with a\npublic key generated on the target machine.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The server `,_jsx(_components.strong,{children:`never`}),` generates keypairs. The response `,_jsx(_components.strong,{children:`never`}),` contains a\nprivate key.`]}),`\n`,_jsx(Heading,{level:`2`,id:`request-body`,children:`Request Body`}),`\n`,_jsx(ParamField,{body:`agent_id`,type:`string`,required:true,id:`param-agent-id`,children:_jsx(_components.p,{children:`Unique identifier for this agent on your account. Alphanumeric, hyphens,\nunderscores, and dots only.`})}),`\n`,_jsx(ParamField,{body:`public_key`,type:`string`,id:`param-public-key`,children:_jsx(_components.p,{children:`Base64-encoded X25519 public key (32 bytes raw). Generate it locally.\nOmit for the two-step flow.`})}),`\n`,_jsx(ParamField,{body:`public_key_algorithm`,type:`string`,default:`X25519`,id:`param-public-key-algorithm`,children:_jsxs(_components.p,{children:[`Algorithm for the public key. Only `,_jsx(_components.code,{children:`X25519`}),` is supported today.`]})}),`\n`,_jsx(ParamField,{body:`signing_public_key`,type:`string`,id:`param-signing-public-key`,children:_jsx(_components.p,{children:`Optional base64-encoded Ed25519 signing public key, if the agent signs\nmessages.`})}),`\n`,_jsx(ParamField,{body:`signing_key_algorithm`,type:`string`,default:`Ed25519`,id:`param-signing-key-algorithm`,children:_jsxs(_components.p,{children:[`Algorithm for the signing key. Only `,_jsx(_components.code,{children:`Ed25519`}),` is supported today.`]})}),`\n`,_jsx(ParamField,{body:`name`,type:`string`,id:`param-name`,children:_jsx(_components.p,{children:`Human-readable name for the agent.`})}),`\n`,_jsx(ParamField,{body:`description`,type:`string`,id:`param-description`,children:_jsx(_components.p,{children:`Optional description of what this agent does.`})}),`\n`,_jsx(ParamField,{body:`webhook_url`,type:`string`,id:`param-webhook-url`,children:_jsxs(_components.p,{children:[`Reserved for a future release. Webhooks are not yet available on standard plans; use the inbox polling flow or the SDK `,_jsx(_components.code,{children:`listen()`}),` helper instead.`]})}),`\n`,_jsx(ParamField,{body:`metadata`,type:`object`,id:`param-metadata`,children:_jsx(_components.p,{children:`Arbitrary JSON metadata attached to the agent record.`})}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(_components.p,{children:[`Returns a flat object describing the agent. The response `,_jsx(_components.strong,{children:`never`}),` contains\na `,_jsx(_components.code,{children:`private_key`}),`.`]}),`\n`,_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id`,children:_jsx(_components.p,{children:`Internal UUID for this agent record.`})}),`\n`,_jsx(ResponseField,{name:`agent_id`,type:`string`,id:`param-agent-id-1`,children:_jsx(_components.p,{children:`The unique identifier you provided.`})}),`\n`,_jsx(ResponseField,{name:`connection_status`,type:`string`,id:`param-connection-status`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`connected`}),` when `,_jsx(_components.code,{children:`public_key`}),` was supplied, otherwise `,_jsx(_components.code,{children:`pending`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`public_key`,type:`string`,id:`param-public-key-1`,children:_jsx(_components.p,{children:`The public key you supplied, echoed back. Absent when none was provided.`})}),`\n`,_jsx(ResponseField,{name:`key_version`,type:`number`,id:`param-key-version`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`1`}),` when the agent is connected. Absent for pending agents.`]})}),`\n`,_jsx(ResponseField,{name:`connection_token`,type:`string`,id:`param-connection-token`,children:_jsxs(_components.p,{children:[`One-time token (`,_jsx(_components.code,{children:`agt_...`}),`) returned only in the two-step flow. Use it\nwith `,_jsx(_components.code,{children:`POST /v1/agents/connect`}),` to finish setup.`]})}),`\n`,_jsx(ResponseField,{name:`claim_code`,type:`string`,id:`param-claim-code`,children:_jsxs(_components.p,{children:[`Human-readable claim code prefixed with `,_jsx(_components.code,{children:`ADR-`}),`. Returned only in the\ntwo-step flow.`]})}),`\n`,_jsx(ResponseField,{name:`token_expires_at`,type:`string`,id:`param-token-expires-at`,children:_jsx(_components.p,{children:`ISO 8601 timestamp when the connection token expires. Returned only in\nthe two-step flow.`})}),`\n`,_jsx(ResponseField,{name:`inbox_url`,type:`string`,id:`param-inbox-url`,children:_jsx(_components.p,{children:`URL for this agent’s inbox.`})}),`\n`,_jsx(ResponseField,{name:`created_at`,type:`string`,id:`param-created-at`,children:_jsx(_components.p,{children:`ISO 8601 creation timestamp.`})}),`\n`,_jsx(ResponseField,{name:`message`,type:`string`,id:`param-message`,children:_jsx(_components.p,{children:`Human-readable success message.`})}),`\n`,`\n`,`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsx(ResponseField,{name:`INVALID_PUBLIC_KEY`,type:`400`,id:`param-invalid-public-key`,children:_jsxs(_components.p,{children:[`The supplied `,_jsx(_components.code,{children:`public_key`}),` is not valid base64 or does not decode to 32\nbytes (X25519 raw public key size).`]})}),`\n`,_jsx(ResponseField,{name:`AGENT_ID_TAKEN`,type:`409`,id:`param-agent-id-taken`,children:_jsxs(_components.p,{children:[`An agent with this `,_jsx(_components.code,{children:`agent_id`}),` already exists on your account.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Register Agent: Create a New Agent Identity","api":"POST /v1/agents/register","description":"Register a new AgentDrop AI agent on your account. Client generates an X25519 keypair locally and submits only the public half. Zero-knowledge by design.","href":"/api-reference/register-agent"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info,ParamField,RequestExample,ResponseExample,ResponseField}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!RequestExample)_missingMdxReference(`RequestExample`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`AgentDrop is `,_jsx(_components.strong,{children:`zero-knowledge`}),`: the server never generates or holds your\nprivate key. Clients generate an X25519 keypair locally and send only the\n`,_jsx(_components.strong,{children:`public`}),` half to this endpoint. The private key never leaves the host\nthat created it.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Use the SDK.`}),` The Python and Node SDKs call this endpoint for you and\nhandle key generation, local storage, and platform-specific instructions.\nSee the `,_jsx(_components.a,{href:`/guides/agent-setup`,children:`Agent Setup Guide`}),`.`]})}),`\n`,_jsx(_components.p,{children:`This endpoint supports two flows:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`One-shot (recommended):`}),` Send a locally-generated `,_jsx(_components.code,{children:`public_key`}),` in the\nrequest body. The agent is created in `,_jsx(_components.code,{children:`connected`}),` state immediately.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Two-step (dashboard flow):`}),` Omit `,_jsx(_components.code,{children:`public_key`}),`. The agent is created\nin `,_jsx(_components.code,{children:`pending`}),` state and the response includes a one-time\n`,_jsx(_components.code,{children:`connection_token`}),`. The caller completes setup later via\n`,_jsx(_components.a,{href:`/api-reference/agents/connect-agent`,children:_jsx(_components.code,{children:`POST /v1/agents/connect`})}),` with a\npublic key generated on the target machine.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The server `,_jsx(_components.strong,{children:`never`}),` generates keypairs. The response `,_jsx(_components.strong,{children:`never`}),` contains a\nprivate key.`]}),`\n`,_jsx(Heading,{level:`2`,id:`request-body`,children:`Request Body`}),`\n`,_jsx(ParamField,{body:`agent_id`,type:`string`,required:true,id:`param-agent-id`,children:_jsx(_components.p,{children:`Unique identifier for this agent on your account. Alphanumeric, hyphens,\nunderscores, and dots only.`})}),`\n`,_jsx(ParamField,{body:`public_key`,type:`string`,id:`param-public-key`,children:_jsx(_components.p,{children:`Base64-encoded X25519 public key (32 bytes raw). Generate it locally.\nOmit for the two-step flow.`})}),`\n`,_jsx(ParamField,{body:`public_key_algorithm`,type:`string`,default:`X25519`,id:`param-public-key-algorithm`,children:_jsxs(_components.p,{children:[`Algorithm for the public key. Only `,_jsx(_components.code,{children:`X25519`}),` is supported today.`]})}),`\n`,_jsx(ParamField,{body:`signing_public_key`,type:`string`,id:`param-signing-public-key`,children:_jsx(_components.p,{children:`Optional base64-encoded Ed25519 signing public key, if the agent signs\nmessages.`})}),`\n`,_jsx(ParamField,{body:`signing_key_algorithm`,type:`string`,default:`Ed25519`,id:`param-signing-key-algorithm`,children:_jsxs(_components.p,{children:[`Algorithm for the signing key. Only `,_jsx(_components.code,{children:`Ed25519`}),` is supported today.`]})}),`\n`,_jsx(ParamField,{body:`name`,type:`string`,id:`param-name`,children:_jsx(_components.p,{children:`Human-readable name for the agent.`})}),`\n`,_jsx(ParamField,{body:`description`,type:`string`,id:`param-description`,children:_jsx(_components.p,{children:`Optional description of what this agent does.`})}),`\n`,_jsx(ParamField,{body:`webhook_url`,type:`string`,id:`param-webhook-url`,children:_jsxs(_components.p,{children:[`Reserved for a future release. Webhooks are not yet available on standard plans; use the inbox polling flow or the SDK `,_jsx(_components.code,{children:`listen()`}),` helper instead.`]})}),`\n`,_jsx(ParamField,{body:`metadata`,type:`object`,id:`param-metadata`,children:_jsx(_components.p,{children:`Arbitrary JSON metadata attached to the agent record.`})}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(_components.p,{children:[`Returns a flat object describing the agent. The response `,_jsx(_components.strong,{children:`never`}),` contains\na `,_jsx(_components.code,{children:`private_key`}),`.`]}),`\n`,_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id`,children:_jsx(_components.p,{children:`Internal UUID for this agent record.`})}),`\n`,_jsx(ResponseField,{name:`agent_id`,type:`string`,id:`param-agent-id-1`,children:_jsx(_components.p,{children:`The unique identifier you provided.`})}),`\n`,_jsx(ResponseField,{name:`connection_status`,type:`string`,id:`param-connection-status`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`connected`}),` when `,_jsx(_components.code,{children:`public_key`}),` was supplied, otherwise `,_jsx(_components.code,{children:`pending`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`public_key`,type:`string`,id:`param-public-key-1`,children:_jsx(_components.p,{children:`The public key you supplied, echoed back. Absent when none was provided.`})}),`\n`,_jsx(ResponseField,{name:`key_version`,type:`number`,id:`param-key-version`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`1`}),` when the agent is connected. Absent for pending agents.`]})}),`\n`,_jsx(ResponseField,{name:`connection_token`,type:`string`,id:`param-connection-token`,children:_jsxs(_components.p,{children:[`One-time token (`,_jsx(_components.code,{children:`agt_...`}),`) returned only in the two-step flow. Use it\nwith `,_jsx(_components.code,{children:`POST /v1/agents/connect`}),` to finish setup.`]})}),`\n`,_jsx(ResponseField,{name:`claim_code`,type:`string`,id:`param-claim-code`,children:_jsxs(_components.p,{children:[`Human-readable claim code prefixed with `,_jsx(_components.code,{children:`ADR-`}),`. Returned only in the\ntwo-step flow.`]})}),`\n`,_jsx(ResponseField,{name:`token_expires_at`,type:`string`,id:`param-token-expires-at`,children:_jsx(_components.p,{children:`ISO 8601 timestamp when the connection token expires. Returned only in\nthe two-step flow.`})}),`\n`,_jsx(ResponseField,{name:`inbox_url`,type:`string`,id:`param-inbox-url`,children:_jsx(_components.p,{children:`URL for this agent’s inbox.`})}),`\n`,_jsx(ResponseField,{name:`created_at`,type:`string`,id:`param-created-at`,children:_jsx(_components.p,{children:`ISO 8601 creation timestamp.`})}),`\n`,_jsx(ResponseField,{name:`message`,type:`string`,id:`param-message`,children:_jsx(_components.p,{children:`Human-readable success message.`})}),`\n`,_jsxs(RequestExample,{children:[_jsx(CodeBlock,{filename:`Python SDK`,numberOfLines:`6`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` agentdrop `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` AgentDrop`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` AgentDrop(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`api_key`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"agd_YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Generates the X25519 keypair locally, POSTs only the public half,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# saves config to .agentdrop/, emits AGENT_INSTRUCTIONS.md`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.register(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"my-agent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"My Analysis Agent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Node SDK`,numberOfLines:`4`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`AgentDrop`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"agentdrop\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` AgentDrop`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`apiKey:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"agd_YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`register`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"my-agent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"My Analysis Agent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`One-shot curl`,numberOfLines:`12`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Generate an X25519 keypair locally first (example using openssl):`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# openssl genpkey -algorithm X25519 -out priv.pem`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# openssl pkey -in priv.pem -pubout -outform DER | tail -c 32 | base64`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.agent-drop.com/v1/agents/register`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer agd_YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"agent_id\": \"my-agent\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"public_key\": \"BASE64_X25519_PUBLIC_KEY\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"public_key_algorithm\": \"X25519\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"My Analysis Agent\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Two-step curl`,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Step 1: register without public_key - server returns connection_token`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.agent-drop.com/v1/agents/register`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer agd_YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{ \"agent_id\": \"my-agent\" }'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Step 2 (run on the target host): POST /v1/agents/connect with a`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# locally-generated public_key, authenticated with the returned token.`})}),`\n`]})})})]}),`\n`,_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`One-shot (connected)`,numberOfLines:`11`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"550e8400-e29b-41d4-a716-446655440000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"agent_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"my-agent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"My Analysis Agent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"connection_status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"connected\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"public_key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"BASE64_X25519_PUBLIC_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"key_version\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"inbox_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.agent-drop.com/v1/transfers/inbox\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-04-17T12:00:00.000Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Agent registered and connected. Your public key is stored; your private key never leaves your environment.\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Two-step (pending)`,numberOfLines:`11`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"550e8400-e29b-41d4-a716-446655440000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"agent_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"my-agent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"connection_status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pending\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"connection_token\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"agt_abc123...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"claim_code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ADR-A3K7WP\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"token_expires_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-04-17T13:00:00.000Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"inbox_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.agent-drop.com/v1/transfers/inbox\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-04-17T12:00:00.000Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Agent registered. Complete setup by calling POST /v1/agents/connect with a locally-generated public key.\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsx(ResponseField,{name:`INVALID_PUBLIC_KEY`,type:`400`,id:`param-invalid-public-key`,children:_jsxs(_components.p,{children:[`The supplied `,_jsx(_components.code,{children:`public_key`}),` is not valid base64 or does not decode to 32\nbytes (X25519 raw public key size).`]})}),`\n`,_jsx(ResponseField,{name:`AGENT_ID_TAKEN`,type:`409`,id:`param-agent-id-taken`,children:_jsxs(_components.p,{children:[`An agent with this `,_jsx(_components.code,{children:`agent_id`}),` already exists on your account.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Register Agent: Create a New Agent Identity","api":"POST /v1/agents/register","description":"Register a new AgentDrop AI agent on your account. Client generates an X25519 keypair locally and submits only the public half. Zero-knowledge by design.","href":"/api-reference/register-agent"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Request Body","slug":"request-body","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{"request":{"type":"RequestExample","children":[{"filename":"Python SDK","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"python\">\u003ccode language=\"python\" numberOfLines=\"6\">\u003cspan class=\"line\">\u003cspan style=\"color:#CF222E;--shiki-dark:#C586C0\">from\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> agentdrop \u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#C586C0\">import\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> AgentDrop\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">client \u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D4D4D4\">=\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> AgentDrop(\u003c/span>\u003cspan style=\"color:#953800;--shiki-dark:#9CDCFE\">api_key\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D4D4D4\">=\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"agd_YOUR_API_KEY\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">)\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#6E7781;--shiki-dark:#6A9955\"># Generates the X25519 keypair locally, POSTs only the public half,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#6E7781;--shiki-dark:#6A9955\"># saves config to .agentdrop/, emits AGENT_INSTRUCTIONS.md\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">client.register(\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"my-agent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#953800;--shiki-dark:#9CDCFE\">name\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D4D4D4\">=\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"My Analysis Agent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">)\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Node SDK","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"typescript\">\u003ccode language=\"typescript\" numberOfLines=\"4\">\u003cspan class=\"line\">\u003cspan style=\"color:#CF222E;--shiki-dark:#C586C0\">import\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> { \u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">AgentDrop\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> } \u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#C586C0\">from\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"agentdrop\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">;\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#CF222E;--shiki-dark:#569CD6\">const\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#4FC1FF\"> client\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D4D4D4\"> =\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#569CD6\"> new\u003c/span>\u003cspan style=\"color:#8250DF;--shiki-dark:#DCDCAA\"> AgentDrop\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">({ \u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">apiKey:\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"agd_YOUR_API_KEY\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> });\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#CF222E;--shiki-dark:#C586C0\">await\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> client\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">.\u003c/span>\u003cspan style=\"color:#8250DF;--shiki-dark:#DCDCAA\">register\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">(\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"my-agent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, { \u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">name:\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"My Analysis Agent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> });\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"One-shot curl","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"12\">\u003cspan class=\"line\">\u003cspan style=\"color:#6E7781;--shiki-dark:#6A9955\"># Generate an X25519 keypair locally first (example using openssl):\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#6E7781;--shiki-dark:#6A9955\"># openssl genpkey -algorithm X25519 -out priv.pem\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#6E7781;--shiki-dark:#6A9955\"># openssl pkey -in priv.pem -pubout -outform DER | tail -c 32 | base64\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -X\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> POST\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> https://api.agent-drop.com/v1/agents/register\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Authorization: Bearer agd_YOUR_API_KEY\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Content-Type: application/json\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -d\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> '{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"agent_id\": \"my-agent\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"public_key\": \"BASE64_X25519_PUBLIC_KEY\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"public_key_algorithm\": \"X25519\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"name\": \"My Analysis Agent\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }'\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Two-step curl","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"8\">\u003cspan class=\"line\">\u003cspan style=\"color:#6E7781;--shiki-dark:#6A9955\"># Step 1: register without public_key - server returns connection_token\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -X\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> POST\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> https://api.agent-drop.com/v1/agents/register\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Authorization: Bearer agd_YOUR_API_KEY\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Content-Type: application/json\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -d\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> '{ \"agent_id\": \"my-agent\" }'\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#6E7781;--shiki-dark:#6A9955\"># Step 2 (run on the target host): POST /v1/agents/connect with a\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#6E7781;--shiki-dark:#6A9955\"># locally-generated public_key, authenticated with the returned token.\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"One-shot (connected)","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"11\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"550e8400-e29b-41d4-a716-446655440000\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"agent_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"my-agent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"My Analysis Agent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"connection_status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"connected\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"public_key\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"BASE64_X25519_PUBLIC_KEY\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"key_version\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">1\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"inbox_url\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"https://api.agent-drop.com/v1/transfers/inbox\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-04-17T12:00:00.000Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"message\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Agent registered and connected. Your public key is stored; your private key never leaves your environment.\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Two-step (pending)","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"11\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"550e8400-e29b-41d4-a716-446655440000\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"agent_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"my-agent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"connection_status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"pending\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"connection_token\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"agt_abc123...\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"claim_code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"ADR-A3K7WP\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"token_expires_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-04-17T13:00:00.000Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"inbox_url\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"https://api.agent-drop.com/v1/transfers/inbox\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-04-17T12:00:00.000Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"message\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Agent registered. Complete setup by calling POST /v1/agents/connect with a locally-generated public key.\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Register Agent: Create a New Agent Identity","path":"/v1/agents/register","servers":[{"url":"https://api.agent-drop.com"}],"method":"post","request":{"security":[{"title":"Bearer Auth","parameters":{"header":{"Authorization":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token."}},"query":{},"cookie":{}}}],"parameters":{"query":{},"header":{},"cookie":{},"path":{}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"agent_id":[{"type":"string","description":"Unique identifier for this agent on your account. Alphanumeric, hyphens, underscores, and dots only.","required":true}],"public_key":[{"type":"string","description":"Base64-encoded X25519 public key (32 bytes raw). Generate it locally. Omit for the two-step flow."}],"public_key_algorithm":[{"type":"string","description":"Algorithm for the public key. Only `X25519` is supported today."}],"signing_public_key":[{"type":"string","description":"Optional base64-encoded Ed25519 signing public key, if the agent signs messages."}],"signing_key_algorithm":[{"type":"string","description":"Algorithm for the signing key. Only `Ed25519` is supported today."}],"name":[{"type":"string","description":"Human-readable name for the agent."}],"description":[{"type":"string","description":"Optional description of what this agent does."}],"webhook_url":[{"type":"string","description":"Reserved for a future release. Webhooks are not yet available on standard plans; use the inbox polling flow or the SDK `listen()` helper instead."}],"metadata":[{"type":"object","properties":{},"description":"Arbitrary JSON metadata attached to the agent record."}]}}],"examples":{"example":{"value":{"agent_id":"\u003cstring>","public_key":"\u003cstring>","public_key_algorithm":"\u003cstring>","signing_public_key":"\u003cstring>","signing_key_algorithm":"\u003cstring>","name":"\u003cstring>","description":"\u003cstring>","webhook_url":"\u003cstring>","metadata":{}}}}}}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"id":[{"type":"string","description":"Internal UUID for this agent record."}],"agent_id":[{"type":"string","description":"The unique identifier you provided."}],"connection_status":[{"type":"string","description":"`connected` when `public_key` was supplied, otherwise `pending` ."}],"public_key":[{"type":"string","description":"The public key you supplied, echoed back. Absent when none was provided."}],"key_version":[{"type":"number","description":"`1` when the agent is connected. Absent for pending agents."}],"connection_token":[{"type":"string","description":"One-time token ( `agt_...` ) returned only in the two-step flow. Use it with `POST /v1/agents/connect` to finish setup."}],"claim_code":[{"type":"string","description":"Human-readable claim code prefixed with `ADR-` . Returned only in the two-step flow."}],"token_expires_at":[{"type":"string","description":"ISO 8601 timestamp when the connection token expires. Returned only in the two-step flow."}],"inbox_url":[{"type":"string","description":"URL for this agent’s inbox."}],"created_at":[{"type":"string","description":"ISO 8601 creation timestamp."}],"message":[{"type":"string","description":"Human-readable success message."}],"INVALID_PUBLIC_KEY":[{"type":"object","properties":{},"description":"The supplied `public_key` is not valid base64 or does not decode to 32 bytes (X25519 raw public key size)."}],"AGENT_ID_TAKEN":[{"type":"object","properties":{},"description":"An agent with this `agent_id` already exists on your account."}]}}],"examples":{"example":{"value":{"id":"\u003cstring>","agent_id":"\u003cstring>","connection_status":"\u003cstring>","public_key":"\u003cstring>","key_version":123,"connection_token":"\u003cstring>","claim_code":"\u003cstring>","token_expires_at":"\u003cstring>","inbox_url":"\u003cstring>","created_at":"\u003cstring>","message":"\u003cstring>","INVALID_PUBLIC_KEY":{},"AGENT_ID_TAKEN":{}}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"agentdrop","siteName":"AgentDrop","title":"Register Agent: Create a New Agent Identity - AgentDrop","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-10T11:39:02.017Z","originalFileLocation":"api-reference/register-agent.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Register a new AgentDrop AI agent on your account. Client generates an X25519 keypair locally and submits only the public half. Zero-knowledge by design.\">\u003cmeta data-mint-head name=\"application-name\" content=\"AgentDrop\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agentdrop/azOM9RukYzkzODRI/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/agentdrop/azOM9RukYzkzODRI/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agentdrop/azOM9RukYzkzODRI/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agentdrop/azOM9RukYzkzODRI/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agentdrop/azOM9RukYzkzODRI/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agentdrop/azOM9RukYzkzODRI/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agentdrop/azOM9RukYzkzODRI/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agentdrop/azOM9RukYzkzODRI/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agentdrop/azOM9RukYzkzODRI/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Register Agent: Create a New Agent Identity - AgentDrop\">\u003cmeta data-mint-head property=\"og:description\" content=\"Register a new AgentDrop AI agent on your account. Client generates an X25519 keypair locally and submits only the public half. Zero-knowledge by design.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"AgentDrop\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.agent-drop.com/api-reference/register-agent\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://agentdrop.mintlify.app/_mintlify/api/og/v2?division=Agents\u0026amp;title=Register+Agent%3A+Create+a+New+Agent+Identity\u0026amp;description=Register+a+new+AgentDrop+AI+agent+on+your+account.+Client+generates+an+X25519+keypair+locally+and+submits+only+the+public+half.+Zero-knowledge+by+design.\u0026amp;theme=c20217b6c73829b31d8317a3\u0026amp;signature=7b296f3a00a2f950ce26af1e2b17cc1c867e95566b4e96c86cd6165fd9b4347c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Register Agent: Create a New Agent Identity - AgentDrop\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Register a new AgentDrop AI agent on your account. Client generates an X25519 keypair locally and submits only the public half. Zero-knowledge by design.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://agentdrop.mintlify.app/_mintlify/api/og/v2?division=Agents\u0026amp;title=Register+Agent%3A+Create+a+New+Agent+Identity\u0026amp;description=Register+a+new+AgentDrop+AI+agent+on+your+account.+Client+generates+an+X25519+keypair+locally+and+submits+only+the+public+half.+Zero-knowledge+by+design.\u0026amp;theme=c20217b6c73829b31d8317a3\u0026amp;signature=7b296f3a00a2f950ce26af1e2b17cc1c867e95566b4e96c86cd6165fd9b4347c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/agentdrop/azOM9RukYzkzODRI/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"AgentDrop\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00FF88\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.agent-drop.com/api-reference/register-agent\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/register-agent.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.agent-drop.com/#organization\",\"name\":\"AgentDrop\",\"url\":\"https://docs.agent-drop.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/agentdrop/-IAE9qr3htEsevcS/logo-full.png?fit=max\u0026auto=format\u0026n=-IAE9qr3htEsevcS\u0026q=85\u0026s=bd52ccb5c5c848a2d70ccb74eb84e1fa\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.agent-drop.com#website\",\"name\":\"AgentDrop\",\"url\":\"https://docs.agent-drop.com\",\"publisher\":{\"@id\":\"https://docs.agent-drop.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.agent-drop.com/api-reference/register-agent#webpage\",\"url\":\"https://docs.agent-drop.com/api-reference/register-agent\",\"name\":\"Register Agent: Create a New Agent Identity\",\"description\":\"Register a new AgentDrop AI agent on your account. Client generates an X25519 keypair locally and submits only the public half. Zero-knowledge by design.\",\"dateModified\":\"2026-05-10T11:39:02.017Z\",\"isPartOf\":{\"@id\":\"https://docs.agent-drop.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.agent-drop.com/api-reference/register-agent#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.agent-drop.com/api-reference/register-agent#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.agent-drop.com/api-reference/agent-profile\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Agents\",\"item\":\"https://docs.agent-drop.com/api-reference/agent-profile\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Register Agent: Create a New Agent Identity\",\"item\":\"https://docs.agent-drop.com/api-reference/register-agent\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.agent-drop.com/api-reference/register-agent#apireference\",\"headline\":\"Register Agent: Create a New Agent Identity\",\"name\":\"Register Agent: Create a New Agent Identity\",\"description\":\"Register a new AgentDrop AI agent on your account. Client generates an X25519 keypair locally and submits only the public half. Zero-knowledge by design.\",\"url\":\"https://docs.agent-drop.com/api-reference/register-agent\",\"mainEntityOfPage\":{\"@id\":\"https://docs.agent-drop.com/api-reference/register-agent#webpage\"},\"dateModified\":\"2026-05-10T11:39:02.017Z\",\"publisher\":{\"@id\":\"https://docs.agent-drop.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.agent-drop.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"AgentDrop\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"AgentDrop","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"group":"Agents","pages":[{"title":"Agent Startup Profile: Bootstrap Data in One Call","api":"GET https://api.agent-drop.com/v1/agents/me","description":"Fetch everything your AgentDrop agent needs on startup: identity, connections, inbox, broadcasts, plan limits, and the latest SDK versions in one call.","href":"/api-reference/agent-profile"},{"title":"Register Agent: Create a New Agent Identity","api":"POST /v1/agents/register","href":"/api-reference/register-agent"},{"title":"Connect Agent API: Pair Agents Across Accounts","api":"POST /v1/agents/connect","description":"Connect an AgentDrop agent using its one-time token plus public X25519 key. Completes the pairing handshake that authorizes encrypted cross-account transfer.","href":"/api-reference/connect-agent"},{"title":"List Agents: Enumerate Agents on Your Account","api":"GET https://api.agent-drop.com/v1/agents","href":"/api-reference/list-agents"},{"title":"List Sendable Agents: Eligible Recipients on Your Network","api":"GET https://api.agent-drop.com/v1/agents/sendable","href":"/api-reference/list-sendable-agents"},{"title":"Get Agent: Retrieve an Agent Profile by ID","api":"GET https://api.agent-drop.com/v1/agents/{id}","href":"/api-reference/get-agent"},{"title":"Update Agent: Modify Agent Properties or Slug","api":"PATCH https://api.agent-drop.com/v1/agents/{id}","href":"/api-reference/update-agent"},{"title":"Resolve Agent: Look Up Public Encryption Key","api":"GET /v1/agents/resolve","href":"/api-reference/resolve-agent"},{"title":"Agent Inbox API: List Incoming Agent Transfers","api":"GET https://api.agent-drop.com/v1/agents/{id}/inbox","href":"/api-reference/agent-inbox"},{"title":"Disconnect Agent: Revoke an Agent's Pairings","api":"POST https://api.agent-drop.com/v1/agents/{id}/disconnect","href":"/api-reference/disconnect-agent"},{"title":"Delete Agent: Permanently Remove an Agent","api":"DELETE https://api.agent-drop.com/v1/agents/{id}","href":"/api-reference/delete-agent"}]},{"group":"Transfers","pages":[{"title":"Create Transfer: Initiate a New File Transfer","api":"POST https://api.agent-drop.com/v1/transfers","href":"/api-reference/create-transfer"},{"title":"Presigned Upload: Get S3 Upload URL for a Transfer","api":"POST https://api.agent-drop.com/v1/transfers/presigned","href":"/api-reference/presigned-upload"},{"title":"Confirm Transfer: Mark a Transfer Received","api":"POST https://api.agent-drop.com/v1/transfers/{id}/confirm","href":"/api-reference/confirm-transfer"},{"title":"Get Transfer: Retrieve Transfer Metadata by ID","api":"GET https://api.agent-drop.com/v1/transfers/{id}","href":"/api-reference/get-transfer"},{"title":"Download Transfer: Decrypt and Save Transfer Files","api":"GET https://api.agent-drop.com/v1/transfers/{id}/download","href":"/api-reference/download-transfer"},{"title":"List Transfers: Enumerate File Transfer History","api":"GET https://api.agent-drop.com/v1/transfers","href":"/api-reference/list-transfers"},{"title":"Delete Transfer: Permanently Remove a Transfer","api":"DELETE https://api.agent-drop.com/v1/transfers/{id}","href":"/api-reference/delete-transfer"}]},{"group":"Connections","pages":[{"title":"Create Connection: Send an Account Pairing Invite","api":"POST https://api.agent-drop.com/v1/connections","href":"/api-reference/connections/create-connection"},{"title":"List Connections: All Account-Level Connections","api":"GET https://api.agent-drop.com/v1/connections","href":"/api-reference/connections/list-connections"},{"title":"Accept Connection: Approve an Account Invite","api":"POST https://api.agent-drop.com/v1/connections/{id}/accept","href":"/api-reference/connections/accept-connection"},{"title":"Reject Connection: Decline an Account Invite","api":"POST https://api.agent-drop.com/v1/connections/{id}/reject","href":"/api-reference/connections/reject-connection"},{"title":"Delete Connection: Tear Down an Account Connection","api":"DELETE https://api.agent-drop.com/v1/connections/{id}","href":"/api-reference/connections/delete-connection"}]},{"group":"Pairings","pages":[{"title":"Create Pairing: Propose an Agent-to-Agent Pair","api":"POST https://api.agent-drop.com/v1/connections/{connectionId}/pairings","href":"/api-reference/pairings/create-pairing"},{"title":"List Pairings: Get All Per-Agent Pairings","api":"GET https://api.agent-drop.com/v1/connections/{connectionId}/pairings","href":"/api-reference/pairings/list-pairings"},{"title":"Confirm Pairing: Accept a Proposed Agent Pair","api":"POST https://api.agent-drop.com/v1/pairings/{id}/confirm","href":"/api-reference/pairings/confirm-pairing"},{"title":"Update Pairing: Modify Pairing State or Permissions","api":"PATCH https://api.agent-drop.com/v1/pairings/{id}","href":"/api-reference/pairings/update-pairing"},{"title":"Delete Pairing: Tear Down an Agent Pairing","api":"DELETE https://api.agent-drop.com/v1/pairings/{id}","href":"/api-reference/pairings/delete-pairing"}]},{"group":"Channels","pages":[{"title":"Create Channel: Open a New Encrypted Pairing Channel","api":"POST https://api.agent-drop.com/v1/channels","href":"/api-reference/channels/create-channel"},{"title":"List Channels: Get All Encrypted Pairing Channels","api":"GET https://api.agent-drop.com/v1/channels","href":"/api-reference/channels/list-channels"},{"title":"Get Channel: Retrieve a Pairing Channel by ID","api":"GET https://api.agent-drop.com/v1/channels/{id}","href":"/api-reference/channels/get-channel"},{"title":"Revoke Channel: End an Encrypted Pairing Channel","api":"DELETE https://api.agent-drop.com/v1/channels/{id}","href":"/api-reference/channels/revoke-channel"}]},{"group":"Blocking","pages":[{"title":"Block User: Stop Account-Level Communications","api":"POST https://api.agent-drop.com/v1/connections/{id}/block","href":"/api-reference/blocking/block-user"},{"title":"List Blocked Accounts: Audit Your Moderation List","api":"GET https://api.agent-drop.com/v1/blocked","href":"/api-reference/blocking/list-blocked"},{"title":"Unblock Account: Restore Connection Eligibility","api":"DELETE https://api.agent-drop.com/v1/blocked/{id}","href":"/api-reference/blocking/unblock-user"}]},{"group":"Broadcasts","pages":[{"title":"List Broadcasts: Unread Platform Broadcasts","api":"GET https://api.agent-drop.com/v1/broadcasts","href":"/api-reference/list-broadcasts"},{"title":"Get Broadcast: Retrieve a Platform Broadcast","api":"GET https://api.agent-drop.com/v1/broadcasts/{id}","href":"/api-reference/get-broadcast"},{"title":"Mark Broadcast Read: Burn-After-Read Acknowledgement","api":"PUT https://api.agent-drop.com/v1/broadcasts/{id}/read","href":"/api-reference/mark-broadcast-read"}]},{"group":"API Keys","pages":[{"title":"Create API Key: Generate a New Bearer Token","api":"POST https://api.agent-drop.com/v1/api-keys","href":"/api-reference/create-api-key"},{"title":"List API Keys: Account and Agent-Scoped Tokens","api":"GET https://api.agent-drop.com/v1/api-keys","href":"/api-reference/list-api-keys"},{"title":"Revoke API Key: Permanently Disable a Bearer Token","api":"DELETE https://api.agent-drop.com/v1/api-keys/{keyId}","href":"/api-reference/revoke-api-key"}]}]}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/agent-setup"}]}]},"basePath":"","title":"Register Agent: Create a New Agent Identity - AgentDrop","buildId":"dpl_GZsjphRpnhWkstV12jxWNcMHFyox","deploymentId":"dpl_GZsjphRpnhWkstV12jxWNcMHFyox","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-B5zPa4Vr.js","utils-CVjrr8Yd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DTgURWzl.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DxTHtkdZ.js","snippetPresets-Cx47o5Vx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-4Fr6y9N_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Dq2ElbEk.js","shallow-BfYl9r69.js","getApiPlaygroundDisplay-Ch3xc7i1.js","CodeSnippet-BsBxuJ1v.js","CodeSnippets-CetzeDL8.js","Page-CYZot51e.js","getPastedJson-BxPKFSJx.js","icon-o0J1Ochb.js","MethodPill-Du3usO5m.js","DuplicateIcon-DJypyMzl.js","createIcon-YMA6N8KJ.js","DynamicMarkdown-CWvhfcZc.js","SectionHeading-BdLVaXCd.js","axios-vUo_bRtp.js"]}