Skip to main content

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.