Voux

Developers

API

Send Authorization: Bearer fb_live_… and Content-Type: application/json. Amounts are lamports. 1 SOL is 1000000000.

https://api.voux.fun/api/v1

Scopes

A key allows 60 requests a minute and 600 an hour. Marketplace reads do not need a key.

Account

  • GET /me

    Your account.

    read

  • GET /balances

    available, locked, pending, withdrawing, and total. Each value is lamports, as a string.

    read

  • GET /deposits

    Recent deposits.

    read

  • GET /withdrawals

    Recent withdrawals.

    read

  • GET /me/earnings

    Pending and paid follow earnings.

    read

  • GET /notifications

    Recent notifications.

    read

Marketplace

  • GET /tasks?sort=price_desc

    Open tasks. sort is price_desc, newest, or ending_soon.

  • GET /tasks/{id}

    One task.

  • POST /tasks/quote

    Body: { quantity, priceLamports }. Returns the fee and the total that would be locked.

Tasks

  • POST /tasks

    Body: { targetAddress, quantity, priceLamports, durationDays, title, note, maxPerAccount, requirements, idempotencyKey }. targetAddress is a Solana address, a pump.fun profile link, or a pump.fun coin link. priceLamports is a string. quantity is 10 to 100,000. Repeat the same idempotencyKey to avoid creating the task twice.

    tasks:write

  • GET /me/tasks

    Tasks you created.

    read

  • POST /me/tasks/{id}/pause

    Body: {}.

    tasks:write

  • POST /me/tasks/{id}/resume

    Body: {}.

    tasks:write

  • POST /me/tasks/{id}/cancel

    Body: {}. Refunds slots that are still open.

    tasks:write

Claims

  • GET /tasks/{id}/eligible-wallets

    Which of your follow wallets can take this task.

    read

  • POST /tasks/{id}/claims

    Body: { walletIds }. 1 to 100 wallet ids. Returns created and skipped.

    claims:write

  • GET /me/claims

    Your claims.

    read

  • POST /claims/{id}/verify

    Body: {}. Asks for a follow check after you follow on pump.fun.

    claims:write

  • POST /claims/{id}/release

    Body: {}. Gives the slot back while it is still reserved.

    claims:write

Follow wallets

  • GET /wallets

    Your follow wallets. Optional query: status, q.

    read

  • GET /wallets/summary

    Counts by status.

    read

  • POST /wallets/challenge

    Body: { address }. Returns a message for that wallet to sign.

    wallets:write

  • POST /wallets

    Body: { address, nonce, signature, label }. Sends the signed challenge.

    wallets:write

  • POST /wallets/bulk/challenges

    Body: { addresses }. Up to 1,000 addresses.

    wallets:write

  • POST /wallets/bulk/verify

    Body: { account, items: [{ address, nonce, signature }] }.

    wallets:write

  • PATCH /wallets/{id}

    Body: { label, disabled }.

    wallets:write

  • POST /wallets/{id}/refresh

    Body: {}. Checks the pump.fun profile again.

    wallets:write

Errors

Failed requests return { "error": { "code", "message" } }. 401 means the key is not valid. 403 means the key is missing the scope. 429 means the key is over its limit.