Build an agent on the API
How an AI agent finds the API, signs in with a key a person gives it, and trades safely with dry runs and retry keys.
This page is for AI agents and the people who build them. It shows where everything lives, how to sign in, and a safe way to trade. Every docs page is also plain Markdown: add .md to its address.
Where everything is#
| What | Where |
|---|---|
agents.txt | https://vortexdeployer.com/agents.txt — one short file with the addresses, the key rules and what an agent may fetch on the site. |
llms.txt | https://vortexdeployer.com/llms.txt — a list of every docs page with one line about each. API pages come first. |
llms-full.txt | https://vortexdeployer.com/llms-full.txt — every docs page in one file. |
| A page as Markdown | Its address plus .md, like https://vortexdeployer.com/docs/api/trading.md. |
| API index | GET https://api.vortexdeployer.com/api/v1 — JSON with the addresses in this table. No key needed. |
| OpenAPI document | https://api.vortexdeployer.com/api/v1/openapi.json — every REST call with its operationId, fields and the scope it needs (x-scope). |
| MCP server | https://api.vortexdeployer.com/api/v1/mcp — the same calls as tools. See MCP for AI agents. |
| Live streams | wss://api.vortexdeployer.com/ws — trades, PnL, balances and tasks as they happen. See Live streams. |
With only the REST address, an agent can read the index, fetch the OpenAPI document and start.
On the website, an agent may fetch /docs, /docs/*.md, /llms.txt, /llms-full.txt, /agents.txt and /robots.txt. The rest of the site is the signed-in app. Use the API for that.
Sign in#
A person makes an API key in the app at https://vortexdeployer.com/developers and gives it to the agent. The key works until its owner revokes it.
- REST and MCP: send
Authorization: Bearer vd_…on every call. - Streams: put the key in
tokenon each subscribe. - First call:
GET https://api.vortexdeployer.com/api/v1/me. It shows the key's scopes, its max per buy, its daily cap, its wallet list and whether it is a sandbox key. Plan within these limits.
Do not sign in, register or click through the app for someone. Keys are made by a person and handed to you.
The one exception is an MCP client that can only use OAuth, like a Claude.ai connector. It runs the OAuth flow, and the person picks a key on the consent page. The token then follows that key's rules.
A 401 means the key is gone or wrong. Stop, do not retry, and tell the key's owner.
Trade safely#
Every call acts as the key's owner, with real money.
- Ask for the smallest key.
readto look and report.tradewith a max per buy and a daily cap to trade.launchonly to launch.streamonly for live streams. See API overview & keys. - Try it first. Send
"dryRun": trueonbuy,sellandtrade/batch. A dry run runs every check and shows what would happen, but sends nothing.POST /launchis a dry run unless you send"dryRun": false. - Send an
Idempotency-Keyon every buy, sell, batch and launch. An idempotency key is a name you choose for one operation. If the line drops, send the same call with the same key. You get the first answer back, never a second trade. - Expect long calls to be cut. A launch or a batch that waits can take longer than the connection stays open, about 100 seconds. The work goes on. Ask again with the same key to get the result. A batch with long waits between wallets becomes a task and answers at once.
- Watch the rate headers.
X-RateLimit-RemainingandX-RateLimit-Resetcome on every read. A429hasretryAfterSeconds. Wait that long. - Check
code, noterror.codenever changes. Theerrortext is for people and can change.
amountSol is a JSON number in the chain's coin, like 0.25. Token amounts are strings in base units, like "3500000000". A sell can use percentage instead. Never guess a token's decimals. Read them from the balance answers.
A loop that works#
GET /me— what may this key do?GET /walletsandGET /wallets/balances— which wallets, and what do they hold?- For a launch:
GET /launchpads, thenGET /launchpads/:launchpad/quotes. Copy thequoteTokenandpairTokenan entry gives. - Send the call with
"dryRun": true. Show the person what would happen. - Send it for real with a new
Idempotency-Key. If the answer gets lost, send it again with the same key. - Follow the result live with
txs:<mint>andpnl:<mint>on the stream, instead of asking again and again.
Read Limits, retries & errors for what each answer and error code means.
MCP or REST?#
- MCP suits assistants like Claude and Cursor. Each tool comes with its description and fields, so there is nothing to code. Read-only tools are marked as such.
- REST suits your own code. You can make a typed client in any language from the OpenAPI document.
- Streams are always the WebSocket. MCP has no stream tools.
Get help#
The key's owner can ask for help in the app at https://vortexdeployer.com/support or on Telegram at https://t.me/DeployOnVortexBot. Give support the traceId from the answer.