Artem API DOCS
v1.0.0
Artem External Deploy API v1.0.0
Token deployment API for external integrations.
Servers
wss://artemtracker.io/external/ws Production WebSocket
https://artemtracker.io/external Production HTTPS
Authentication
INFO How to get an API key
1
Log in to Artem
Visit artemtracker.io and sign in with your Twitter / X account.
2
Open Deploy Settings
Navigate to Settings → API in your dashboard. This is where your API keys are managed.
3
Add a wallet
Import a Solana wallet via private key in the Wallets page. This wallet will be used to sign and broadcast your deploy transactions.
4
Generate your API key
Click Generate key next to the wallet you want to use. The key is tied to that specific wallet and shown only once — copy and store it immediately.
Your API key format
artem_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Never expose your API key in frontend code. Use it only from backend services, bots, or server-side scripts.
Endpoints
POST /deploy Deploy Token via HTTPS

Deploy tokens by sending a JSON POST request. Same functionality as WebSocket but via REST API.

Request Body Schema
NameTypeRequiredDefaultDescription
api_keystringrequiredYour wallet API key
access_tokenstringrequiredJWT session token — links the deploy to your Artem account
namestringrequiredToken name (max 32 chars)
symbolstringrequiredToken symbol / ticker (max 13 chars)
platformstringrequiredTarget launchpad: pump | bonk | bags
wallet_pubkeystringrequiredPublic key of the signing wallet
descriptionstringoptionalToken description shown on the explorer
twitterstringoptionalTwitter/X URL linked to the token
websitestringoptionalWebsite URL
telegramstringoptionalTelegram group or channel URL
amountnumberoptional0Dev buy amount in SOL at launch (0 = no dev buy)
imgUristringoptionalPre-uploaded IPFS image URI. If provided, skips the image upload step
metadataUristringoptionalPre-uploaded IPFS metadata URI. If provided, skips all IPFS upload steps
image_base64stringoptionalBase64-encoded image data. Used when no IPFS URI is provided
slippagenumberoptional10Slippage tolerance in % for the dev buy transaction
priority_feenumberoptional0.0001Transaction priority fee in SOL
bribe_feenumberoptional0.001Jito bribe / tip in SOL for bundle transactions
bundlearrayoptionalArray of bundle wallet buy objects { wallet_id, sol_amount }
sniperarrayoptionalArray of sniper wallet objects { wallet_id, sol_amount }
Example request
POST https://artemtracker.io/external/deploy Content-Type: application/json { "api_key": "artem_sk_xxxx", "access_token": "your_jwt_session_token", "name": "My Token", "symbol": "MTK", "platform": "pump", "wallet_pubkey": "YourSolanaPublicKeyHere", "description": "The best token on Solana", "twitter": "https://x.com/mytoken", "website": "https://mytoken.io", "amount": 0.5, "slippage": 10, "priority_fee": 0.0001, "bribe_fee": 0.001 }
Responses
200 Deploy Success
{ "ok": true, "mint": "7xKpQz3mNvLj9R2eAb5Cd8Ef1Gh4Ji6Kl0Mn2Op3Qr", "signature": "5N3bVzWqr...", "time_ms": 1842, "platform": "pump" }
400 Deploy Error
{ "ok": false, "error": "Error description here" }
401 Validation Error
{ "ok": false, "error": "api_key is required and must be a non-empty string" }
503 Service Unavailable
{ "ok": false, "error": "Deploy server not connected. Please try again later." }
WSS /ws Deploy Token via WebSocket

Connect once and deploy multiple tokens without re-establishing connections. Ideal for bots and high-frequency workflows. Supports real-time deploy status callbacks.

JavaScript example
// 1. Connect const ws = new WebSocket('wss://artemtracker.io/external/ws'); // 2. Authenticate on open ws.onopen = () => ws.send(JSON.stringify({ type: 'auth', api_key: 'artem_sk_xxxx', access_token: 'your_jwt_session_token' })); // 3. Send deploy command — same fields as POST /deploy ws.send(JSON.stringify({ type: 'deploy', name: 'My Token', symbol: 'MTK', platform: 'pump', wallet_pubkey: 'YourSolanaPublicKeyHere', amount: 0.5, description: 'The best token on Solana', twitter: 'https://x.com/mytoken', slippage: 10, priority_fee: 0.0001, bribe_fee: 0.001 })); // 4. Receive real-time status updates ws.onmessage = ({ data }) => { const msg = JSON.parse(data); // Intermediate status events during deploy // { type: 'deploy_status', step: 'ipfs'|'tx'|'sign'|'broadcast', message: '...' } // Final result // { type: 'deploy_result', ok: true, mint: '...', signature: '...', time_ms: 1842 } // { type: 'deploy_result', ok: false, error: 'Error description' } }; ws.onerror = (e) => console.error('WS error', e); ws.onclose = ({ code, reason }) => console.log('WS closed', code, reason);
WebSocket message types
typeDirectionDescription
authClient → ServerAuthenticate the connection with your api_key and access_token
deployClient → ServerTrigger a token deploy — accepts all same fields as POST /deploy
deploy_statusServer → ClientIntermediate progress update. Fields: step, message
deploy_resultServer → ClientFinal result. Fields: ok, mint, signature, time_ms, error
pingClient → ServerKeepalive ping — server responds with pong
GET /health Health Check
API operational — all systems nominal

Use this endpoint to verify server availability before initiating deploy workflows. No authentication required.

Request
GET https://artemtracker.io/external/health
Response 200 — All systems OK
{ "ok": true, "version": "1.0.0", "rpc": "helius-ok", "pumpportal": "ok", "uptime_pct": 99.97, "latency_ms": 12 }
Response 503 — Degraded
{ "ok": false, "rpc": "degraded", "pumpportal": "ok", "error": "RPC connection timeout" }
Platform Parameters
INFO Pump.fun Mode Parameters

When using platform: "pump" you can include these additional parameters.

NameTypeDefaultDescription
amountnumber0Dev buy amount in SOL at launch. 0 = no dev buy
slippagenumber10Slippage tolerance in % for the dev buy transaction
priority_feenumber0.0001Transaction priority fee in SOL
bribe_feenumber0.001Jito tip / bribe in SOL for bundle transactions
cashback_modebooleanfalseEnable Cashback mode — 0% creator fees
agent_buybackbooleanfalseEnable Creator Mode — auto buyback using 100% of creator fees (flywheel)
fee_splitarrayArray of fee recipients — wallet address, percentage, type. Configured via Fee Split settings
auto_trade.buyobjectAuto action triggered when a new tweet is deployed. Fields: enabled, action, pct, slip, delay
auto_trade.sellobjectAuto sell action after deploy. Same fields as buy. Actions: insta_sell, limit_sell, insta_buy, none
bundlearrayBundle wallets: { wallet_id, sol_amount }. Each wallet buys at launch in the same Jito bundle
sniperarraySniper wallets: { wallet_id, sol_amount }. Snipe immediately after launch block
Fee Split format

The fee_split array contains recipient objects. Each recipient must specify one identifier and a percentage:

FieldTypeDescription
addressstringSolana wallet address (base58)
percentagenumberShare of fees in % — all recipients must sum to exactly 10%
typestringsol — direct wallet | github — GitHub username resolved to PDA | twitter — X handle resolved to PDA
Important: All recipient percentages must sum to exactly 10 (10%). No more, no less.
Example — Pump.fun with fee split and bundle
{ "api_key": "artem_sk_xxxx", "access_token": "your_jwt_token", "name": "My Pump Token", "symbol": "PUMP", "platform": "pump", "wallet_pubkey": "YourPublicKey", "amount": 0.5, "cashback_mode": false, "agent_buyback": false, "fee_split": [ { "address": "wallet_pubkey_1", "percentage": 5, "type": "sol" }, { "address": "myGithubUser", "percentage": 3, "type": "github" }, { "address": "myTwitterHandle", "percentage": 2, "type": "twitter" } ], "bundle": [ { "wallet_id": "wallet_001", "sol_amount": 0.3 }, { "wallet_id": "wallet_002", "sol_amount": 0.2 } ] }
INFO Bonk / USD1 Mode Parameters COMING SOON

Bonk.fun and USD1 platform support is currently in development. Parameters will mirror Pump.fun with an additional quote_currency field.

INFO Bags Mode Parameters COMING SOON

Bags platform support is currently in development. Will include liquidity pool configuration and automatic LP management. Available in API v1.2.

INFO Bundle Mode Parameters COMING SOON

Bundle mode is currently accessible via the Artem dashboard only. Full API control of bundle parameters will be available in the next release. For now, bundle wallets can be passed as an array via the bundle field in the main deploy request.

Security
Security Notes
  • Never share your API key — It controls your wallet and has full deploy permissions
  • Use HTTPS/WSS only — All connections must use TLS. Plain HTTP requests are rejected
  • Validate responses — Always check the ok field before proceeding with on-chain actions
  • Rate limiting — Don't spam requests. Implement exponential backoff on 429 errors