# Endpoints > Every route of the Ora API that an API key can call. Every route the API exposes to a key. All of them require it. Paths are relative to `https://api.useora.xyz`; `{address}` and `{mint}` are a token's mint (Solana) or contract (EVM). ### Account | Method | Path | What it does | |---|---|---| | `GET` | `/auth/me` | Your account, including whether API access is on (`apiAccess`) and whether a key exists (`hasApiKey`). | | `POST` | `/me/api-key` | Creates a new API key and returns it once. Any previous key stops working at once. | | `POST` | `/me/api-key/revoke` | Revokes your API key: every call made with it is refused from then on. | | `POST` | `/me/referral-code` | Sets a custom referral code. | | `GET` | `/me/rewards` | Everything in the Rewards window and on the profile card: points, rank, your rewards on their way and to claim (`balance`), referral earnings and referrals. | | `POST` | `/rewards/claim` | Claims your rewards: sends all of your **Rewards to claim** (your cashback and referral shares that have reached the rewards pool) to your Ora wallet in one transfer, in SOL. The network fee is taken from the amount sent. Returns the transfer's `signature` and the `lamports` sent, or `404` when there is nothing to claim. | | `GET` | `/me/settings` | Your app preferences, as saved by `PUT /me/settings`. | | `PUT` | `/me/settings` | Replaces your app preferences in full (no merge). | | `GET` | `/user/pinned-tokens` | Your pinned tokens. | | `POST` | `/user/pinned-tokens` | Pins a token, or unpins it if it is already pinned. | | `GET` | `/user/tracked-wallets` | The wallets you track. | | `POST` | `/user/tracked-wallets` | Adds wallets to track, several at once. | | `DELETE` | `/user/tracked-wallets/{address}` | Stops tracking a wallet. | | `PATCH` | `/user/tracked-wallets/{address}` | Renames a tracked wallet or changes its emoji. | | `GET` | `/user/tracked-wallets/trades` | Recent trades of the wallets you track. | | `GET` | `/user/tracked-wallets/trades/stream` | Live trades of the wallets you track (stream). | ### Launching | Method | Path | What it does | |---|---|---| | `POST` | `/engine/deploy/plan` | Suggests a wallet and layer layout for a launch, with its full cost and market estimate, in one call. | | `POST` | `/engine/deploy/wallets/add` | Custom wallets: adds holder wallets and returns the recomputed plan (wallets, layers, quotes and estimate). | | `POST` | `/engine/deploy/wallets/allocation` | Custom wallets: sets the allocation of one or more holders and returns the recomputed plan. | | `POST` | `/engine/deploy/wallets/remove` | Custom wallets: removes holders and returns the recomputed plan. | | `GET` | `/engine/launch-bounds` | The minimum Supply Buy % and Dev Buy % a launch must meet. | | `POST` | `/engine/drafts` | Creates a launch draft. | | `GET` | `/engine/drafts/{id}` | Loads a launch draft. | | `PUT` | `/engine/drafts/{id}` | Saves a launch draft. | | `POST` | `/engine/drafts/{id}/archive` | Deletes a launch draft. | | `GET` | `/engine/launches/drafts` | Everything not launched yet: launch drafts, plus token info that was uploaded but never prepared. | | `POST` | `/engine/prepare` | Prepares a launch: creates the token's mint, the draft token and its wallets. | | `POST` | `/engine/{mint}/delete` | Deletes a token that is still being prepared, and its wallets. | | `POST` | `/engine/fund` | Builds the unsigned SOL transfers that fund a launch's wallets, for your wallet to sign. | | `GET` | `/engine/fund/{mint}` | The Private Funding parts recorded for a token. | | `POST` | `/engine/fund/confirm` | Confirms that the funding transactions have landed on-chain. | | `POST` | `/engine/fund/verify` | Checks direct funding from the wallets' balances. | | `POST` | `/engine/launch` | Launches a prepared token on-chain. | | `POST` | `/engine/cancel` | Builds the transactions that recover the SOL from the wallets of a launch that is being prepared, is funded or failed. Partly signed by Ora; your wallet signs the rest. | | `POST` | `/engine/cancel/submit` | Submits the signed cancel transactions. | | `POST` | `/engine/collect` | Builds the transactions that collect a launch's proceeds. Partly signed by Ora; your wallet signs the rest. | | `POST` | `/engine/collect/submit` | Submits the signed collect transactions, for a `collectId`. | | `GET` | `/engine/token/{address}/pre-deploy` | Launch cost estimate of a prepared token that isn't launched yet. | ### Trading | Method | Path | What it does | |---|---|---| | `GET` | `/engine/tokens` | Your tokens, by status. | | `GET` | `/engine/token/{address}` | A token's identity: metadata, supply and launch status. | | `GET` | `/engine/token/{address}/positions` | Your wallets' positions on a token: holdings, SOL balance, realized and unrealized PnL, what active strategies reserve (`lockedTokens`, `lockedQuote`), and `totals`. | | `PATCH` | `/engine/token/{address}/position/wallet-name` | Renames one of a token's wallets (the name shown in the positions table). | | `POST` | `/engine/token/{address}/position/buy` | Buys across several of your wallets. | | `POST` | `/engine/token/{address}/position/sell` | Sells across several of your wallets. | | `POST` | `/engine/token/{address}/position/nuke` | Sells every position at once (emergency exit). | | `POST` | `/engine/token/{address}/position/send/preview` | Quotes a send before you confirm it. | | `POST` | `/engine/token/{address}/position/send` | Sends tokens from one or more of your Ora wallets to up to 5 external addresses. Ora's fee is taken in tokens and sold for SOL in the same bundle. | | `POST` | `/engine/token/{address}/burn` | Burns tokens from one of your wallets. This can't be undone. | | `POST` | `/engine/token/{mint}/lock` | Locks tokens from one of your Ora wallets in a Streamflow time lock. | | `POST` | `/engine/token/{mint}/lock/withdraw` | Releases a lock back to the wallet that created it. | | `GET` | `/engine/token/{mint}/locks` | A token's locks. | | `GET` | `/engine/burns/{mint}` | A token's burn history. | | `GET` | `/engine/sends/{mint}` | A token's send history. | | `GET` | `/engine/token/{address}/creator-rewards` | Creator rewards accumulated for a token. | | `POST` | `/engine/reward-claim` | Claims the creator rewards accumulated in a Pump.fun creator vault. | | `POST` | `/engine/token/{mint}/layers` | Adds a layer of holders to a token you launched (a cleaning), filled evenly with your own aged or imported wallets that no launch holds (`walletIds`). | | `GET` | `/engine/unlock/{mint}` | The token's wallets you can gather SOL from (balance above the reserve, largest first), the amount available in each, the receiving wallet and the allowed range. | | `POST` | `/engine/unlock` | Gathers the SOL amount you choose from a token's wallets into its receiving wallet. Each source wallet pays its own fee. | | `POST` | `/engine/token/{address}/callouts/watch` | Starts or renews the token's Callouts: for a while, its FOMO and Pump.fun callouts are fetched regularly and pushed to you live. | ### Strategies The routes keep their `-sells` names but manage buy strategies too: pass `side: "buy"` when you create one. See [Buy strategies](https://docs.useora.xyz/developers/guides/#buy-strategies). | Method | Path | What it does | |---|---|---| | `GET` | `/engine/strategies` | Every strategy of a token, sell or buy: mirror, TWAP and limit. | | `GET` | `/engine/strategies/limit-sells` | A token's limit sells. | | `POST` | `/engine/strategies/limit-sells` | Creates one or more limit sells for a token, or limit buys with `side: "buy"`. | | `PATCH` | `/engine/strategies/limit-sells/{id}` | Edits a limit sell (only the fields you send). | | `POST` | `/engine/strategies/limit-sells/{id}/enable` | Enables a limit sell. | | `POST` | `/engine/strategies/limit-sells/{id}/disable` | Disables a limit sell. | | `DELETE` | `/engine/strategies/limit-sells/{id}` | Deletes a limit sell. | | `GET` | `/engine/strategies/mirror-sells` | A token's mirror sells. | | `POST` | `/engine/strategies/mirror-sells` | Creates one or more mirror sells for a token, or mirror buys with `side: "buy"`. | | `PATCH` | `/engine/strategies/mirror-sells/{id}` | Edits a mirror sell (only the fields you send). | | `POST` | `/engine/strategies/mirror-sells/{id}/enable` | Enables a mirror sell. | | `POST` | `/engine/strategies/mirror-sells/{id}/disable` | Disables a mirror sell. | | `DELETE` | `/engine/strategies/mirror-sells/{id}` | Deletes a mirror sell. | | `GET` | `/engine/strategies/twap-sells` | A token's TWAP sells. | | `POST` | `/engine/strategies/twap-sells` | Creates one or more TWAP sells for a token, or TWAP buys with `side: "buy"`. | | `PATCH` | `/engine/strategies/twap-sells/{id}` | Edits a TWAP sell (only the fields you send). | | `POST` | `/engine/strategies/twap-sells/{id}/enable` | Enables a TWAP sell. | | `POST` | `/engine/strategies/twap-sells/{id}/disable` | Disables a TWAP sell. | | `DELETE` | `/engine/strategies/twap-sells/{id}` | Deletes a TWAP sell. | ### Portfolio | Method | Path | What it does | |---|---|---| | `GET` | `/portfolio/stats` | Portfolio stats. | | `GET` | `/portfolio/performance` | Portfolio performance over a timeframe (default: all time). | | `GET` | `/portfolio/coins` | Your open coin positions. | | `GET` | `/portfolio/history` | Your closed positions. | | `GET` | `/portfolio/pnl-calendar` | Daily PnL calendar. | | `GET` | `/portfolio/pnl-chart` | Cumulative realized PnL over time, for charts. | | `GET` | `/portfolio/launches` | Your launches, with their balances and the holdings left in their wallets. | | `GET` | `/portfolio/launches-chart` | Number of launches per period, for charts. | | `POST` | `/portfolio/launches/{id}/archive` | Archives a launch, or unarchives it if it is archived. | | `GET` | `/engine/launches/completed` | Every token you created that has a mint, whatever its status (the Launches page). | | `GET` | `/portfolio/wallets` | The wallets of one or more launches, with what each still holds. | | `GET` | `/portfolio/wallets/available` | Your wallets that no launch holds (bought or imported), with their `source` and the `id` that `POST /engine/prepare` takes as `warmWalletId`. | | `POST` | `/portfolio/wallets/import` | Imports wallets from your own private keys (`source: imported`). | | `POST` | `/portfolio/wallets/exit-preview` | Previews, token by token, what `POST /portfolio/wallets/exit` with a `destination` would send through Husher for these wallets, before anything moves. | | `POST` | `/portfolio/wallets/exit` | Withdraws the wallets in `walletAddresses` to the `destination` address through Husher: each wallet pays its own Husher deposit address, and Husher pays `destination` once per token (up to 70 wallets per token, largest first). Always send `destination`. The app's **Consolidate Withdraw** sends them to your Ora wallet. | | `GET` | `/portfolio/wallets/exits` | Your 20 most recent withdrawals from launch wallets, one per token, newest first, with their progress. | ### Marketplace | Method | Path | What it does | |---|---|---| | `GET` | `/portfolio/marketplace/wallets` | Aged wallets for sale: on sale a day after funding with a landed buy, not owned, and not reserved by another buyer. | | `POST` | `/portfolio/marketplace/quote` | Prices aged wallets on one chain and reserves them for you for about 2 minutes. | | `POST` | `/portfolio/marketplace/buy` | Pays a quote: send its deposits signed, in its order and unchanged (otherwise `409`). Ora broadcasts them. | ### Market data and quotes | Method | Path | What it does | |---|---|---| | `GET` | `/engine/token/{address}/metrics` | Token metrics: market cap, price, liquidity and supply. | | `GET` | `/engine/token/{address}/candles` | A page of OHLCV candles, oldest first: up to `limit` (default and maximum 300) candles before `before`, or the latest ones without `before`. | | `GET` | `/engine/token/{address}/live-stats` | Live trading stats for every timeframe (5m, 1h, 6h, 24h) in one response: buys, sells, volume, unique traders, ownership split and price change. | | `GET` | `/engine/token/{address}/trades` | A token's recent trades, newest first, with optional wallet, amount and time filters. | | `GET` | `/engine/token/{address}/holders` | A token's holders, with each one's balance and share of supply, and which wallets are yours. | | `GET` | `/engine/token/{address}/top-traders` | A token's top traders, ranked by PnL. | | `GET` | `/tokens/{mint}/trades` | Public trade feed of a token. | | `GET` | `/tokens/{mint}/holders` | Top holders of a token, largest first, page by page. | | `GET` | `/quote/sol-for-percent` | SOL needed to buy a given % of the supply. | | `GET` | `/quote/tokens-for-sol` | Tokens received for a given amount in base units (lamports on Solana, wei on EVM). | | `GET` | `/launchpads/{protocol}/quotes` | The quote assets a launchpad accepts on its chain, native first. | | `GET` | `/launchpads/pumpfun/charities` | Searches donate.gg's active charities by name, for `pumpfunFeeShares` in `POST /engine/prepare` (`kind: 'charity'`, `charityId` = `id`). | | `GET` | `/market/lighthouse` | Market pulse, as shown in the app's footer. | | `GET` | `/pnl/calendar` | Daily PnL calendar data. | | `GET` | `/pnl/summary` | PnL summary, as shown on a PNL card. | ### Token info | Method | Path | What it does | |---|---|---| | `GET` | `/tokens` | Token info, most recent first. | | `GET` | `/tokens/{id}/image` | A token's processed image, by token info ID. | | `GET` | `/tokens/{id}/banner` | A token's processed banner, by token info ID. | | `GET` | `/tokens/{mint}/logo` | A token's logo, by mint (your tokens only). | | `GET` | `/tokens/{mint}/cover` | A token's banner, by mint (your tokens only). | | `POST` | `/upload` | Uploads token info. | | `POST` | `/upload/{protocol}` | Uploads token info for a launchpad. | | `POST` | `/upload/bags` | Uploads token info for Bags. | ### Streams | Method | Path | What it does | |---|---|---| | `GET` | `/engine/tokens/{mint}/stream` | Everything about one token on one connection: state events, trades, the known wallets holding it, and holder stats. | | `GET` | `/user/tracked-wallets/trades/stream` | Live trades of the wallets you track. | | `GET` | `/sol-usd/events` | SOL/USD price. | | `GET` | `/blockhash/events` | Latest blockhash and block height, about every 220 ms. | | `GET` | `/jito/tip-lamports/events` | Jito tip floor percentiles. | | `GET` | `/jito/tip-accounts/events` | Jito tip account list. | [Signing & Streams](https://docs.useora.xyz/developers/signing-and-streams/#real-time-streams) shows how to read a stream.