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
| Field | Type | Required | Description |
|---|---|---|---|
aBots | array | yes | 1–20 bot configs. |
aBots[].nSOL | number | yes | SOL budget for this bot. |
aBots[].nMinWaitTime | integer | no | Min seconds between swaps. Default 0. |
aBots[].nMaxWaitTime | integer | no | Max seconds between swaps. Must be ≥ nMinWaitTime. |
aBots[].nMinSwapSol | number | no | Min SOL per swap. Default 0.3. |
aBots[].nMaxSwapSol | number | no | Max SOL per swap. Must be ≥ nMinSwapSol. |
sTokenAddress | string | yes | Token mint. |
sPoolId | string | yes | Pool id. |
ePoolChosen | enum | yes | RAYDIUM, METEORA, MOONIT, MOONSHOT, PUMPFUN, PUMPSWAP, LAUNCHLAB, HEAVEN, DBC. |
ePaymentMode | SOL | TOKEN | yes | Funding currency. |
ePaymentToken | QUOTE_TOKEN | BASE_TOKEN | when TOKEN | Which side of the pair. |
bKeepHolder | boolean | no | Keep 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. |
bGetReactions | boolean | no | Enable DEX reaction triggers. |
isAfterBonding | boolean | no | Bot starts only after the token migrates from the bonding curve to the target pool. |
Response 200
{ "message": "Bot initialized", "sGroupId": "…" }
Errors
| Status | Meaning |
|---|---|
400 | Validation 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"
}'