This is the only partner endpoint that is not JSON. The token image is a required
file part, so the request must be multipart.
Fields
All amounts are integer strings in base units.The First Buy
The first buy is optional, and there are two mutually exclusive ways to ask for one. Sending bothinitialBuySol and initialBuyTokens is rejected.
A first buy can never exceed 2.5% of supply, and the two modes handle that
ceiling differently:
When a clamp happens the response says so, and you should read
initialBuyPlan.expectedSolIn rather than assuming your requested amount was
spent.
clampReasons lists every limit that tied for binding, so it can hold more than
one entry.
At launch both balances are zero, so a first buy clamped by the supply cap
reports
token_balance and net_bought together.
Your client’s maxTradeLamports and daily volume cap do not apply to a first
buy. The curve already bounds it at 2.5% of supply, which is a tighter and more
meaningful limit than a configured ceiling.
Launch Limits
Two per-creator restrictions are checked before anything is uploaded. Both belong to the connected user, not to your app.launch_identity_limit_reached may quote a bypass fee. To take it, resend the
request with maxBypassFeeLamports set to at least the quoted
totalBypassFeeLamports. Sending a lower value, or omitting it, keeps the
rejection.
Request
cURL
TypeScript
Response
initialBuyPlan is null when no first buy was requested. When one was, the
launch and the buy are submitted as a bundle and signatures carries both.
status is submitted, not confirmed. Poll
GET /partner/v1/transactions/{signature}/status for
the outcome.
Errors
See Errors for the shared response shape.