Getting started
End-to-end walkthrough, zero to a launched token with volume boost.
0. Set variables
export BASE_URL="https://api.orbitt.pro/api/v1"
export API_KEY="<your client API key>"
x-user-id is the end-user identifier. Pick a
different id per end-user (1–256 chars [A-Za-z0-9_-]): their DB id,
username, opaque uuid, whatever your system uses. Examples below use
<user-id> as a placeholder.
1. Issue an access token
curl -X POST "$BASE_URL/auth/api/token" \
-H "x-api-key: $API_KEY"
{
"accessToken": "eyJhbGciOi…",
"refreshToken": "…",
"expiresIn": 900,
"tokenType": "Bearer"
}
export ACCESS="eyJhbGciOi…"
Use Authorization: Bearer $ACCESS on every other request. When the
access expires (15 min), call /auth/api/refresh with the
refreshToken.
2. Generate additional wallets
Every user automatically gets a primary wallet on first call. For snipers, add more:
curl -X POST "$BASE_URL/wallets/create" \
-H "Authorization: Bearer $ACCESS" \
-H "x-user-id: <user-id>" \
-H "Content-Type: application/json" \
-d '{ "count": 3 }'
{ "wallets": ["Pubkey1…", "Pubkey2…", "Pubkey3…"] }
Fund the wallets you'll use (creator + snipers) with SOL from your own source.
3. Launch a PumpFun token with snipes
curl -X POST "$BASE_URL/token/create" \
-H "Authorization: Bearer $ACCESS" \
-H "x-user-id: <user-id>" \
-H "Content-Type: application/json" \
-d @- <<'JSON'
{
"ePoolType": "PUMPFUN",
"sTokenName": "MyToken",
"sTokenSymbol": "MTK",
"sTokenImageBase64": "<base64 PNG/JPEG, under 2MB>",
"sTokenDescription": "Short description.",
"sTwitterLink": "https://x.com/mytoken",
"sWebsiteLink": "https://mytoken.example",
"sTelegramLink": "https://t.me/mytoken",
"sCreatorWallet": "<creator wallet>",
"aSnipers": [
{ "sWalletAddress": "<sniper 1>", "nSnipeSolAmount": 0.1 },
{ "sWalletAddress": "<sniper 2>", "nSnipeSolAmount": 0.1 }
],
"nTokenAllocationPercentage": 10
}
JSON
{ "botId": "66a9ff…", "eStatus": "2", "message": "Bot creation accepted" }
4. Poll creation status
curl "$BASE_URL/token/creation-status/66a9ff…" \
-H "Authorization: Bearer $ACCESS" \
-H "x-user-id: <user-id>"
Keep polling until eStatus is 3 (completed) or 9 (failed). The
response includes sTokenAddress, sPoolId, per-sniper signatures
and sniped amounts.
5. Claim creator rewards
Once traders swap on the pool, creator fees accumulate (bonding curve
- post-graduation PumpSwap AMM). Withdraw them:
curl -X POST "$BASE_URL/token/claim-rewards" \
-H "Authorization: Bearer $ACCESS" \
-H "x-user-id: <user-id>" \
-H "Content-Type: application/json" \
-d '{ "sTokenAddress": "<token mint>" }'
Response includes sRewardsRecipient — the wallet that received the
lamports.
6. Run a volume bot
See Flexi for details; in short:
curl -X POST "$BASE_URL/flexi/initialize" \
-H "Authorization: Bearer $ACCESS" \
-H "x-user-id: <user-id>" \
-H "Content-Type: application/json" \
-d @- <<'JSON'
{
"aBots": [ { "nSOL": 5, "nMinWaitTime": 30, "nMaxWaitTime": 120 } ],
"sTokenAddress": "<token mint>",
"sPoolId": "<pool id>",
"ePoolChosen": "PUMPFUN",
"ePaymentMode": "SOL"
}
JSON
Fund the address returned by GET /flexi/paymentaddress and the bot
starts trading.