PumpRugdocs

HomeDocumentation › API reference

API reference

Authentication

Log in or register to receive a JSON Web Token, then send it on every authenticated request:

Authorization: <token>
Authorization: Bearer <token>   // both accepted

Tokens expire (3 days by default). A missing or invalid token returns 401; a disabled account returns 403.

Account

MethodPathPurpose
GET/api/auth/statusServer capabilities: signups open, invite required, Google availability
POST/api/auth/registerCreate an account (username, email, password)
POST/api/auth/loginExchange credentials for a token
POST/api/auth/googleSign up or sign in with a Google ID token
POST/api/auth/google/linkLink Google to the account you are logged into
POST/api/auth/google/unlinkUnlink Google (refused if it would lock you out)
GET/api/auth/meYour identity and counts
GET/api/auth/profileAccount, wallet, aggregate stats and launch history
POST/api/auth/passwordSet or change your password
POST/api/auth/main-wallet/generateMint a fresh funding wallet (refused if you have one, unless replace:true)
POST/api/auth/main-wallet/exportReveal your funding wallet's private key — needs your account password, throttled
POST/api/auth/main-wallet/withdrawSend SOL out — {to, amount} or {to, all:true}; password-checked, refused mid-campaign
POST/api/auth/main-walletImport a funding wallet you already own (key stored encrypted)
GET/api/auth/main-walletIts address and balance — never the key
DELETE/api/auth/main-walletForget the stored key (refused on a funded wallet without confirm:true)

Launches

MethodPathPurpose
GET/api/launchYour launches, newest first
GET/api/launch/:idOne launch plus its wallet addresses and balances
POST/api/launchCreate a launch (multipart: metadata, config, image)
POST/api/launch/:id/startFund, launch and bundle-buy. Returns immediately; progress streams over the socket
POST/api/launch/:id/sellSell every wallet, then sweep
POST/api/launch/:id/rebuyRetry buys for a created token whose bundle never landed
POST/api/launch/:id/sweepPull leftover SOL from this launch's wallets
POST/api/launch/recoverSweep every un-recovered wallet across all your launches
GET/api/launch/preflightCheck RPC, wallet, IPFS and pump.fun. Spends nothing

Campaigns

MethodPathPurpose
GET/api/campaign/tokensYour token queue, in launch order
POST/api/campaign/tokensAdd a token to the queue
POST/api/campaign/tokens/samplesFill the queue with the 5 bundled sample tokens (skips ones you already have)
PUT/api/campaign/tokens/:idEdit a queued token
DELETE/api/campaign/tokens/:idRemove one
GET/api/campaignCampaign config and live state
PUT/api/campaignUpdate shared config
POST/api/campaign/startLaunch the queue in sequence
POST/api/campaign/stopHalt after the token in flight
POST/api/campaign/sell-stopPanic: stop, sell everything, sweep it all home
POST/api/campaign/reset-queueSet queue statuses back to pending

Live updates

Connect with socket.io, passing your token in the handshake:

io(location.origin, { auth: { token } })

An unauthenticated connection is refused. Events: launchUpdate for launch progress, campaign for queue progress. You receive only your own.

Errors

Errors are JSON: { "ok": false, "error": "..." }. 401 unauthenticated, 403 forbidden or disabled, 404 not yours or not found, 409 conflict (name or email taken), 429 rate-limited or at a per-user ceiling, 413 image too large.