Skip to main content

Create Token | Meteora API

Launch tokens on Meteora Launchpad in a single request. It works just like Create Token on Pump.fun, except every token is launched on a config β€” it sets the fees, quote mint, supply, and bonding curve.

Endpoint​

POST https://api.pumpapi.io

Parameters​

ParameterRequiredDescription
poolYes"meteora-launchpad"
launchpadConfigYesConfig address. Take it from any Meteora Launchpad event in the Data Stream or create your own. The config also sets the quote token, so no quoteMint is needed
nameYesToken name
symbolYesToken ticker symbol
amountNoDev buy on launch, in the config's quote token (usually SOL)

Everything else β€” imageURL, description, website, telegram, x, uri, mintRef, Jito Bundles, Actions and local transactions β€” works the same as on Pump.fun.

No quoteMint β€” you always create with the config's quote token.

Basic Example​

import requests

url = "https://api.pumpapi.io"

data = {
"privateKey": "base58_private_key", # or use "apiKey": "your_api_key" instead β€” generate one at pumpapi.io/trade-api (πŸ”‘ spoiler)
"action": "create",
"pool": "meteora-launchpad",
"launchpadConfig": "CnjeHETJWUCa54c8fnFyu3Kgquba7F7qmuBvu6rwhrrr",
"name": "PumpApi",
"symbol": "PAPI",
"imageURL": "https://pumpapi.io/img/pumpapi_logo.webp",
"amount": 0.1, # dev buy
}

response = requests.post(url, json=data)
print(response.json())

The address of the new token comes back in createdMints.


Create Your Own Config​

Want your own curve, supply or fees? Create a config and launch tokens on it. All fields are optional β€” this alone creates a config with a Pump.fun-like curve on SOL:

{
"privateKey": "base58_private_key", // or use "apiKey": "your_api_key" instead
"action": "createConfig",
}

Send it the same way as the Basic Example. The address of the new config comes back in createdLaunchpadConfigs.

ParameterDefaultDescription
quoteMintSOLQuote token of the curve. For USDC use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. With any quote other than SOL, initialMarketCap and migrationMarketCap are required
supply1000000000Total supply of every token on this config
initialMarketCap28 SOLMarket cap at launch, in the quote token
migrationMarketCap410 SOLMarket cap at which the curve ends and the token migrates to a Meteora DAMM v2 pool. With the defaults the curve raises ~85 SOL
poolFeeRate0.01 (1%)Trading fee on the curve
creatorFeeShare"50%"Part of the trading fee paid to the token creator instead of you
poolFeeRateAfterMigration0.0025 (0.25%)Trading fee in the pool after migration, from 0.1% to 10%
migrationFee"0%"Part of the raised quote that goes to you at migration instead of into the pool, up to 50%
creatorMigrationFeeShare"0%"Part of migrationFee paid to the token creator
poolCreationFee0Fee in SOL paid by anyone who launches a token on your config
creatorLockedLiquidityAfterMigration"0%"Pool liquidity locked for the creator: earns fees, can't be withdrawn
creatorUnlockedLiquidityAfterMigration"0%"Pool liquidity the creator can withdraw
platformUnlockedLiquidityAfterMigration"0%"Pool liquidity you can withdraw
platformFeeAddressyour walletWallet that receives your share
poolYes"meteora-launchpad"

Liquidity you don't hand out stays locked for you: it earns pool fees but can't be withdrawn.

A config can't be changed after it's created.


Config and Token in One Transaction​

Set launchpadConfigRef on createConfig and use it on create instead of launchpadConfig β€” just like mintRef. Works in Jito Bundles too.

{
"actions": [
{
"privateKey": "base58_private_key",
"action": "createConfig",
"quoteMint": "So11111111111111111111111111111111111111112",
"launchpadConfigRef": "0", // temporary reference for the new config
"supply": 1000,
"pool": "meteora-launchpad"
},
{
"privateKey": "base58_private_key",
"action": "create",
"pool": "meteora-launchpad",
"launchpadConfigRef": "0", // reuse it instead of launchpadConfig
"name": "PumpApi",
"symbol": "PAPI",
"imageURL": "https://pumpapi.io/img/pumpapi_logo.webp",
"amount": 0.1
}
]
}

Example Response​

For createConfig:

{
"signature": "33C8iFBVSuCtioGkoykyuZmBM5qKZe5HNZKXAm7mBbTFnQ7SaktZKwpZMNfZZxAZLeEwnSj43xPRhQXVEGEBBYTz",
"err": "",
"timestamp": 1790154524625,
"createdLaunchpadConfigs": ["CnjeHETJWUCa54c8fnFyu3Kgquba7F7qmuBvu6rwhrrr"]
}

Need help? Join our Telegram group.