Skip to main content

POST /flexi/initialize

Create one or more bots in a single group. Returns a sGroupId. Bots stay INITIATED until paymentAddress receives the required SOL, at which point the worker automatically starts them and moves to RUNNING.

Use case

Launch a volume-boost campaign with N bots, each with its own SOL budget and swap/wait-time ranges, sharing one pool and token.

Body

FieldTypeRequiredDescription
aBotsarrayyes1–20 bot configs.
aBots[].nSOLnumberyesSOL budget for this bot.
aBots[].nMinWaitTimeintegernoMin seconds between swaps. Default 0.
aBots[].nMaxWaitTimeintegernoMax seconds between swaps. Must be ≥ nMinWaitTime.
aBots[].nMinSwapSolnumbernoMin SOL per swap. Default 0.3.
aBots[].nMaxSwapSolnumbernoMax SOL per swap. Must be ≥ nMinSwapSol.
sTokenAddressstringyesToken mint.
sPoolIdstringyesPool id.
ePoolChosenenumyesRAYDIUM, METEORA, MOONIT, MOONSHOT, PUMPFUN, PUMPSWAP, LAUNCHLAB, HEAVEN, DBC.
ePaymentModeSOL | TOKENyesFunding currency.
ePaymentTokenQUOTE_TOKEN | BASE_TOKENwhen TOKENWhich side of the pair.
bKeepHolderbooleannoKeep tokens in wallet between swaps. When re-boosting a token that already has bots, an explicit value here is honored; if omitted, the previous bot's setting is inherited.
bGetReactionsbooleannoEnable DEX reaction triggers.
isAfterBondingbooleannoBot starts only after the token migrates from the bonding curve to the target pool.

Response 200

{ "message": "Bot initialized", "sGroupId": "…" }

Errors

StatusMeaning
400Validation error or pool not found for provided id.

Example

curl -X POST "$BASE_URL/flexi/initialize" \
-H "Authorization: Bearer $ACCESS" \
-H "x-user-id: $USER_ID" \
-H "Content-Type: application/json" \
-d '{
"aBots": [ { "nSOL": 5, "nMinWaitTime": 30, "nMaxWaitTime": 120 } ],
"sTokenAddress": "…",
"sPoolId": "…",
"ePoolChosen": "RAYDIUM",
"ePaymentMode": "SOL"
}'