LogoLogo
Back to AppHelp Center
  • Getting Started
    • Welcome
  • OrdinalsBot API
    • Overview
    • Libraries
    • Template-App
    • Signet
    • Testnet
    • Fractal
    • Getting Prices
      • Getting Prices (Legacy)
    • Create a Direct Inscription Order
    • Create a Managed Inscription Order
    • Get Order Status
    • Create a Collection
    • Create a Collection Order
    • Create Text Inscription Order
    • Search Inscriptions
    • Check Rare Sats Inventory
    • Referral Scheme
    • Transaction Accelerator
    • Burning Assets
    • Webhooks
    • Order States
    • Order Types
  • Runes
    • Etch
    • Mint
    • Launchpad
      • Create
      • Mint
      • Get Launchpad
    • Airdrop
  • Token Pay
    • What is TokenPay?
    • API Docs
      • API reference
        • Order
        • Create payment psbt
        • Create burn rune psbt
        • Validate burn rune tx
        • Create burn inscription psbt
        • Utils
          • Checktx
          • Submittx
          • Finalize psbt
        • User
          • Withdrawal
          • Order
            • Rune
          • Account
            • Withdraw
            • Balance
      • Specification
  • Marketplace
    • User Guide: Pre-Inscribed Launchpad API
    • API Docs
    • Editions Launchpad
  • Launchpad API
    • Create Marketplace
    • Create a new Launchpad
    • Retrieve Launch PSBT
    • Confirm Launch
    • Check Allocation
    • Check for Padding Outputs
    • Setup Padding Outputs
    • Create buy offer
    • Confirm buy offer
    • Get Launch Info
  • Sat Scanner API
    • Find Special Ranges
    • Find Special Ranges UTXO
    • Supported Satributes
  • Sat Extractor
    • Extract
  • BRC20 / BRC2.0PROG
    • OPI API
    • Bitcoin Remix
  • SNS API
    • SNS API
  • Mempool API
    • Mempool API
  • TAP PROTOCOL
    • Tap Reader API
  • UTXO
    • Split
  • User Guide
    • Inscribe your first Ordinal
    • Receiving Payments
  • Knowledge Base
    • Ordinals
      • What is an Ordinal?
      • Satoshi Rarity
      • What are BRC-20 Tokens?
      • Image Optimisation
      • Pixel Art
    • Bitcoin
      • Unspent Transaction Output (UTXO)
  • Official Links
    • Twitter
    • Discord
Powered by GitBook
On this page
  1. Marketplace

API Docs

Marketplace for inscriptions, runes, brc20 and everything else!

PreviousUser Guide: Pre-Inscribed Launchpad APINextEditions Launchpad

Last updated 5 months ago

Retrieve marketplace details

get

Retrieves information about the marketplace. Requires an API key for access.

Header parameters
x-api-keystringRequired

API key required for accessing marketplace details.

Example: your-api-key
Responses
200
Marketplace details retrieved successfully
application/json
401
Unauthorized - API key missing or invalid
application/json
get
GET /marketplace/marketplaces HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Accept: */*
{
  "id": "3b32e70e-6802-42e7-a7d3-056ad909ebd7",
  "api_key": "9571e8be-a77e-41c4-afcb-76440fd27a48",
  "name": "Test marketplace 04",
  "marketplace_maker_fee": 499,
  "marketplace_taker_fee": 499,
  "marketplace_fee_btc_address_id": 1,
  "launchpad_maker_fee": 599,
  "launchpad_taker_fee": 599,
  "launchpad_fee_btc_address_id": 1,
  "url": "https://domain.com",
  "description": "abc",
  "rate_limit_level": null
}

Get PSBT status for a launchpad

get

Retrieves the current PSBT status and data for a specific launchpad.

Path parameters
idintegerRequired

The unique identifier of the launchpad phase psbt.

Header parameters
x-api-keystringRequired

API key required for authorization.

Responses
200
PSBT status retrieved successfully.
application/json
404
Launchpad not found.
get
GET /marketplace/launchpads/psbt/{id} HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Accept: */*
{
  "id": 1,
  "phase_id": 1,
  "batch_number": 1,
  "status": "unsigned",
  "inscription_count": 2,
  "psbt": "cHNi.....ZUEAAA=="
}

Get allocation for a specific address

get

Retrieves the allocation details for a given address in a launchpad phase.

Path parameters
idintegerRequired

Launchpad ID.

takerOrdinalAddressstringRequired

Bitcoin address to check allocation for.

Header parameters
x-api-keystringRequired

API key required for authorization.

Responses
200
Allocation details retrieved successfully.
application/json
get
GET /marketplace/launchpads/{id}/allocation/{takerOrdinalAddress} HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Accept: */*
200

Allocation details retrieved successfully.

{
  "status": "success",
  "message": "Phases fetched successfully",
  "phases": [
    {
      "id": 2,
      "is_public": 0,
      "total_allocation": 5,
      "remaining_allocation": 5
    }
  ],
  "has_public_phases": true
}

Get launchpad details

get

Retrieves detailed information about a specific launchpad.

Path parameters
idintegerRequired

Launchpad ID.

Header parameters
x-api-keystringRequired

API key required for authorization.

Responses
200
Launchpad details retrieved successfully.
application/json
get
GET /marketplace/launchpads/{id} HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Accept: */*
200

Launchpad details retrieved successfully.

{
  "id": 1,
  "maker_payment_address_id": 1,
  "marketplace_id": "text",
  "status": "text",
  "failed_reason": "text",
  "total_inscriptions": 1,
  "remaining_inscriptions": 1,
  "meta_data": "text",
  "phases": [
    {
      "id": 1,
      "launchpad_id": 1,
      "name": "text",
      "phase_number": 1,
      "start_date": 1729621800,
      "end_date": 1729621810,
      "status": "text",
      "is_public": true,
      "price": 1,
      "psbts": [
        {
          "id": 1,
          "status": "text",
          "phase_id": 1,
          "batch_number": 1,
          "inscription_count": 1
        }
      ]
    }
  ]
}
  • POSTOnboard a new collection
  • GETGet collection details by slug. Returns up to 1k items!
  • POSTCreate a marketplace
  • GETRetrieve marketplace details
  • POSTGet all listings
  • POSTCreate listings for sale
  • PUTConfirm listings with signed PSBT
  • POSTUpdate listing price
  • DELETEDelete a listing from the marketplace
  • PUTConfirm the deletion of a listing
  • POSTCreate a buy offer for a listing
  • POSTBroadcast transaction and update listing status
  • POSTTransfer one or more ordinals
  • PUTCheck for padding outputs
  • POSTSelect padding outputs
  • POSTSetup padding outputs
  • POSTCreate a new launchpad
  • GETGet PSBT status for a launchpad
  • PUTConfirm and sign PSBT for a launchpad
  • POSTCreate a buy offer for a launchpad inscription
  • PUTSubmit a signed buy offer to complete the purchase
  • GETGet allocation for a specific address
  • GETGet launchpad details
  • POSTGet all launchpads

Get collection details by slug. Returns up to 1k items!

get

Retrieve metadata and items for a specific NFT collection based on the provided slug. Returns up to 1k items!

Path parameters
slugstringRequired

The slug of the collection to retrieve.

Example: satoshibles-the-ordinals
Responses
200
Collection details retrieved successfully
application/json
404
Collection not found
application/json
get
GET /marketplace/collection/{slug} HTTP/1.1
Host: api.ordinalsbot.com
Accept: */*
{
  "meta": {
    "description": "Satoshi has come home to Bitcoin! The Ordinals collection by OG NFT project Satoshibles are a limited edition collection of 100 ordinals, featuring all new traits from the original artist Ayyoub Bouzerda. This collection is a tribute to Satoshi and the enduring legacy of Bitcoin. Don't miss your chance to own a piece of history!",
    "discord_link": "https://discord.com/invite/7Wm9Jg8MkW",
    "icon": "https://turbo.ordinalswallet.com/inscription/preview/3542f12dbe5fe3bd7fd622d1bb54994432e9a9184d24ff62ceb83234383b558ei0",
    "inscription_icon": "3542f12dbe5fe3bd7fd622d1bb54994432e9a9184d24ff62ceb83234383b558ei0",
    "name": "Satoshibles: The Ordinals",
    "slug": "satoshibles-the-ordinals",
    "twitter_link": "https://twitter.com/satoshibles",
    "website_link": "https://satoshibles.com",
    "telegram_link": "https://t.me/satoshibles",
    "instagram_link": "https://instagram.com/satoshibles",
    "banner_image": "https://example.com/banner.jpg"
  },
  "data": [
    {
      "id": "8e7ba76e0c06ff5f43f50371bce849ae4e88dd36e1c0629e1a6f4383d1b0e679i0",
      "meta": {
        "attributes": [
          {
            "trait_type": "background",
            "value": "orange"
          }
        ],
        "name": "Satoshibles: The Ordinals #1"
      }
    }
  ]
}

Onboard a new collection

post

Onboard a new NFT collection with detailed metadata and item information.

Body
Responses
200
Collection onboarded successfully
application/json
post
POST /marketplace/collection/onboard HTTP/1.1
Host: api.ordinalsbot.com
Content-Type: application/json
Accept: */*
Content-Length: 1157

{
  "meta": {
    "description": "Satoshi has come home to Bitcoin! The Ordinals collection by OG NFT project Satoshibles are a limited edition collection of 100 ordinals, featuring all new traits from the original artist Ayyoub Bouzerda. This collection is a tribute to Satoshi and the enduring legacy of Bitcoin. Don't miss your chance to own a piece of history!",
    "discord_link": "https://discord.com/invite/7Wm9Jg8MkW",
    "icon": "https://turbo.ordinalswallet.com/inscription/preview/3542f12dbe5fe3bd7fd622d1bb54994432e9a9184d24ff62ceb83234383b558ei0",
    "inscription_icon": "3542f12dbe5fe3bd7fd622d1bb54994432e9a9184d24ff62ceb83234383b558ei0",
    "name": "Satoshibles: The Ordinals",
    "slug": "satoshibles-the-ordinals",
    "twitter_link": "https://twitter.com/satoshibles",
    "website_link": "https://satoshibles.com",
    "telegram_link": "https://t.me/satoshibles",
    "instagram_link": "https://instagram.com/satoshibles",
    "banner_image": "https://example.com/banner.jpg",
    "extra_metadata": {
      "key": "value"
    }
  },
  "data": [
    {
      "id": "8e7ba76e0c06ff5f43f50371bce849ae4e88dd36e1c0629e1a6f4383d1b0e679i0",
      "meta": {
        "attributes": [
          {
            "trait_type": "background",
            "value": "orange"
          }
        ],
        "name": "Satoshibles: The Ordinals #1"
      }
    }
  ]
}
200

Collection onboarded successfully

{
  "message": "Collection onboarded successfully"
}

Create a marketplace

post

Creates a new marketplace with configurable fees and payout addresses.

Header parameters
x-api-keystringRequired

API key for authorization.

Example: your-api-key
Body
sellerFeenumber · floatOptional

Seller fee percentage as a non-negative float.

Example: 1.5
buyerFeenumber · floatOptional

Buyer fee percentage as a non-negative float.

Example: 1
btcFeePayoutAddressstringOptional

BTC address where fees will be paid.

Example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
launchpadSellerFeenumber · floatOptional

Seller fee percentage specifically for launchpad as a non-negative float.

Example: 2
launchpadBuyerFeenumber · floatOptional

Buyer fee percentage specifically for launchpad as a non-negative float.

Example: 1.8
launchpadBtcFeePayoutAddressstringOptional

BTC address where launchpad fees will be paid.

Example: 1BoatSLRHtKNngkdXEeobR76b53LETtpyT
marketPlaceMakerFeenumber · floatOptional

Maker fee percentage for marketplace as a non-negative float.

Example: 0.5
marketPlaceTakerFeenumber · floatOptional

Taker fee percentage for marketplace as a non-negative float.

Example: 0.75
marketPlaceFeeBtcAddressstringOptional

BTC address for marketplace fees.

Example: 1Examp1eBTCAddr3ssPlaceTakerFee
launchpadMakerFeenumber · floatOptional

Maker fee percentage for launchpad as a non-negative float.

Example: 0.4
launchpadTakerFeenumber · floatOptional

Taker fee percentage for launchpad as a non-negative float.

Example: 0.6
launchpadFeeBtcAddressstringOptional

BTC address for launchpad fees.

Example: 1LaunchBTCAddr3ssFee
urlstring · uriOptional

URL for the marketplace.

Example: https://example.com
descriptionstringOptional

A brief description of the marketplace.

Example: A marketplace for digital assets.
rateLimitLevelinteger · int32Optional

Rate limit level as a non-negative integer.

Example: 5
Responses
201
Marketplace created successfully
application/json
400
Invalid input, validation errors
application/json
post
POST /marketplace/marketplaces/create HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 511

{
  "sellerFee": 1.5,
  "buyerFee": 1,
  "btcFeePayoutAddress": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
  "launchpadSellerFee": 2,
  "launchpadBuyerFee": 1.8,
  "launchpadBtcFeePayoutAddress": "1BoatSLRHtKNngkdXEeobR76b53LETtpyT",
  "marketPlaceMakerFee": 0.5,
  "marketPlaceTakerFee": 0.75,
  "marketPlaceFeeBtcAddress": "1Examp1eBTCAddr3ssPlaceTakerFee",
  "launchpadMakerFee": 0.4,
  "launchpadTakerFee": 0.6,
  "launchpadFeeBtcAddress": "1LaunchBTCAddr3ssFee",
  "url": "https://example.com",
  "description": "A marketplace for digital assets.",
  "rateLimitLevel": 5
}
{
  "message": "Marketplace created successfully"
}

Get all listings

post

Retrieves a list of listings based on filter, pagination, and sorting options.

Body
pageinteger · min: 1Optional

The page number for pagination (optional)

Example: 1
itemsPerPageinteger · min: 1Optional

Number of items per page (optional)

Example: 10
sortstring · enumOptional

Sort listings by this field (optional)

Example: pricePossible values:
Responses
200
Successfully retrieved the listings.
application/json
401
Unauthorized - API key missing or invalid.
application/json
post
POST /marketplace/listings HTTP/1.1
Host: api.ordinalsbot.com
Content-Type: application/json
Accept: */*
Content-Length: 75

{
  "filter": {
    "status": "broadcast"
  },
  "page": 1,
  "itemsPerPage": 10,
  "sort": "price"
}
{
  "results": [
    {
      "id": 1,
      "utxo_id": 1,
      "price": 1,
      "psbt": "text",
      "side": "text",
      "maker_payment_address_id": 1,
      "maker_ordinal_address_id": 1,
      "merged_psbt": "text",
      "status": "text",
      "maker_output_value": 1,
      "index_in_maker_psbt": 1,
      "marketplace_id": "text",
      "marketplace_maker_fee": 1,
      "marketplace_taker_fee": 1,
      "platform_maker_fee": 1,
      "platform_taker_fee": 1,
      "platform_fee_btc_address_id": 1,
      "marketplace_fee_btc_address_id": 1,
      "timestamp": "2025-05-17T02:33:44.406Z",
      "maker_payment": {
        "id": 1,
        "address": "text",
        "public_key": "text"
      },
      "utxos": {
        "utxo": "text",
        "utxo_contents": [
          {
            "inscriptions": {
              "inscription_id": "text"
            }
          }
        ]
      }
    }
  ],
  "count": 1,
  "currentPage": 1,
  "totalPages": 1,
  "totalItems": 1
}

Create listings for sale

post

List one or more items for sale on the marketplace. The endpoint returns a Partially Signed Bitcoin Transaction (PSBT) for the owner to sign. The buyer must supply a UTXO covering the listing price and any applicable fees. The seller's signature is required only during listing creation, while only the buyer's signature is needed to complete the purchase.

Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
makerPaymentAddressstringOptional

Bitcoin address for receiving payments.

Example: 2NA......V75C
makerPaymentPublicKeystringOptional

Public key associated with the payment address.

Example: 029......cf37
makerOrdinalAddressstringOptional

Ordinal address for the maker.

Example: e58......88a26
makerOrdinalPublicKeystringOptional

Public key associated with the Ordinal.

Example: 594......702e
Responses
200
Listings created successfully with a PSBT for the owner to sign.
application/json
400
Bad Request - Validation error in the request payload.
application/json
401
Unauthorized - API key missing or invalid.
application/json
post
POST /marketplace/listings/create HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 210

{
  "makerPaymentAddress": "2NA......V75C",
  "makerPaymentPublicKey": "029......cf37",
  "makerOrdinalAddress": "e58......88a26",
  "makerOrdinalPublicKey": "594......702e",
  "utxos": [
    {
      "utxo": "ead......63d8:1",
      "price": "1520"
    }
  ]
}
{
  "psbt": "cHni.....AAAAA=",
  "listingIds": [
    1,
    2,
    3
  ]
}

Confirm listings with signed PSBT

put

Confirms a listing by saving the signed Partially Signed Bitcoin Transaction (PSBT) in the listing database. This is the final step in the listing creation process after signing the PSBT returned by the listings/create endpoint.

Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
listingIdsinteger[]Optional

Array of listing IDs to confirm.

Example: [1,2,3]
signedPSBTstringOptional

Signed Partially Signed Bitcoin Transaction.

Example: cHNi.....ZUEAAA==
Responses
200
Confirmation successful, PSBT is updated.
application/json
401
Unauthorized - API key missing or invalid.
application/json
put
PUT /marketplace/listings/confirm HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 55

{
  "listingIds": [
    1,
    2,
    3
  ],
  "signedPSBT": "cHNi.....ZUEAAA=="
}
{
  "message": "Signed PSBT is updated successfully"
}

Update listing price

post

Updates the price of a listing on the marketplace. Returns a Partially Signed Bitcoin Transaction (PSBT) for the owner to sign.

Path parameters
idintegerRequired

The unique identifier of the listing to update.

Example: 1
Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
priceintegerOptional

New price for the listing in Satoshis.

Example: 15
signedPSBTstringOptional

Signed Partially Signed Bitcoin Transaction.

Example: cHNi.....ZUEAAA==
makerPaymentAddressstringOptional

Bitcoin address for receiving payments.

Example: 2NA......V75C
makerPaymentPublicKeystringOptional

Public key associated with the payment address.

Example: 029......cf37
makerOrdinalPublicKeystringOptional

Public key associated with the Ordinal.

Example: 594......702e
Responses
200
Listing updated successfully, with a PSBT for the owner to sign.
application/json
400
Bad Request - Validation error in the request payload.
application/json
401
Unauthorized - API key missing or invalid.
application/json
post
POST /marketplace/listings/{id}/relist HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 163

{
  "price": 15,
  "signedPSBT": "cHNi.....ZUEAAA==",
  "makerPaymentAddress": "2NA......V75C",
  "makerPaymentPublicKey": "029......cf37",
  "makerOrdinalPublicKey": "594......702e"
}
{
  "psbt": "cHni.....AAAAA=",
  "listingId": 1
}

Delete a listing from the marketplace

delete

Removes a listing from the marketplace and returns a Partially Signed Bitcoin Transaction (PSBT) that must be signed by the owner.

Path parameters
idintegerRequired

The unique identifier of the listing to delete.

Example: 1
Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
makerPaymentAddressstringOptional

Bitcoin address for receiving payments.

Example: 2NA......V75C
makerPaymentPublicKeystringOptional

Public key associated with the payment address.

Example: 029......cf37
feeRateintegerOptional

Fee rate in Satoshis per byte (optional).

Example: 3
Responses
200
Listing deleted successfully with a PSBT for the owner to sign.
application/json
500
Internal Server Error - An unexpected error occurred.
application/json
delete
DELETE /marketplace/listings/{id} HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 91

{
  "makerPaymentAddress": "2NA......V75C",
  "makerPaymentPublicKey": "029......cf37",
  "feeRate": 3
}
{
  "psbtBase64": "cHni.....AAAAA=",
  "makerOrdinalInputIndices": [
    0
  ],
  "makerPaymentInputIndices": [
    1,
    2
  ]
}

Confirm the deletion of a listing

put

Finalize the deletion of a listing by saving the signed Partially Signed Bitcoin Transaction (PSBT) and removing the listing from the database. This is the final step in the deletion process after signing the PSBT returned by the marketplace/listings/{id} endpoint.

Path parameters
idintegerRequired

The unique identifier of the listing to confirm deletion.

Example: 1
Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
makerPaymentAddressstringOptional

Bitcoin address for receiving payments.

Example: 2NA......V75C
signedPSBTstringOptional

Signed Partially Signed Bitcoin Transaction.

Example: cHNi.....ZUEAAA==
Responses
200
Listing delisted successfully.
application/json
500
Internal Server Error - An unexpected error occurred.
application/json
put
PUT /marketplace/listings/{id}/confirm-delist HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 72

{
  "makerPaymentAddress": "2NA......V75C",
  "signedPSBT": "cHNi.....ZUEAAA=="
}
{
  "txId": "aa1c27........2767",
  "message": "Record successfully delisted"
}

Create a buy offer for a listing

post

Creates a transaction to purchase a listing on the marketplace. Returns a base64-encoded Partially Signed Bitcoin Transaction (PSBT) and input indices that the buyer must sign to complete the purchase.

Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
idsarrayOptional

Unique identifiers of the listing to purchase.

Example: [1,2]
takerPaymentAddressstringOptional

Bitcoin address for the buyer's payment.

Example: 2N6......nbKL
takerPaymentPublicKeystringOptional

Public key associated with the buyer's payment address.

Example: 033......5c05
takerOrdinalAddressstringOptional

Ordinal address for the buyer.

Example: e58......88a26
satScanbooleanOptional

Flag to indicate if we should scan the payment utxos for rare sats

Example: false
Responses
200
Buy offer created successfully, with a PSBT for the buyer to sign.
application/json
400
Bad Request - Validation error in the request payload.
application/json
401
Unauthorized - API key missing or invalid.
application/json
post
POST /marketplace/listings/offers HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 146

{
  "ids": [
    1,
    2
  ],
  "takerPaymentAddress": "2N6......nbKL",
  "takerPaymentPublicKey": "033......5c05",
  "takerOrdinalAddress": "e58......88a26",
  "satScan": false
}
{
  "psbt": "cHni.....AAAAA=",
  "inputIndices": [
    0,
    1,
    3,
    4
  ]
}

Broadcast transaction and update listing status

post

Broadcasts the transaction to the network and updates the listing status.

Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
idsinteger[]Optional

Array of listing IDs to broadcast.

Example: [1,2]
psbtstringOptional

Base64-encoded Partially Signed Bitcoin Transaction (PSBT) to broadcast.

Example: cHNi.....ZUEAAA
takerPaymentAddressstringOptional

Bitcoin address for the buyer's payment.

Example: 2N6......nbKL
takerOrdinalAddressstringOptional

Ordinal address for the buyer.

Example: e58......88a26
Responses
200
Transaction broadcast successfully, with updated listing status.
application/json
500
Internal Server Error - An unexpected error occurred.
application/json
post
POST /marketplace/listings/broadcast HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 115

{
  "ids": [
    1,
    2
  ],
  "psbt": "cHNi.....ZUEAAA",
  "takerPaymentAddress": "2N6......nbKL",
  "takerOrdinalAddress": "e58......88a26"
}
{
  "txId": "aa1c27........2767"
}

Transfer one or more ordinals

post

Transfers one or more ordinals, generating a Partially Signed Bitcoin Transaction (PSBT) that must be signed by the owner.

Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
makerPaymentAddressstringOptional

Bitcoin address for the maker's payment.

Example: 2N6.....nbKL
makerPaymentPublicKeystringOptional

Public key associated with the maker's payment address.

Example: 033.....5c05
makerOrdinalPublicKeystringOptional

Public key associated with the maker's ordinal.

Example: e58.....88a26
feeRateintegerOptional

Fee rate in Satoshis per byte.

Example: 1
Responses
200
Ordinal transfer transaction created successfully, with a PSBT for the owner to sign.
application/json
500
Internal Server Error - An unexpected error occurred.
application/json
post
POST /marketplace/inscriptions/transfer HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 211

{
  "transfer": [
    {
      "ordinalId": "8c5.....2ci0",
      "receiverOrdinalAddress": "tb1.....3yk3"
    }
  ],
  "makerPaymentAddress": "2N6.....nbKL",
  "makerPaymentPublicKey": "033.....5c05",
  "makerOrdinalPublicKey": "e58.....88a26",
  "feeRate": 1
}
{
  "psbtBase64": "cHni.....AAAAA=",
  "makerOrdinalInputIndices": [
    0
  ],
  "makerPaymentInputIndices": [
    1,
    2
  ]
}

Check for padding outputs

put

Checks if padding outputs exist for a given Bitcoin address.

Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
addressstringOptional

Bitcoin address to check for padding outputs.

Example: 2N6......bKL
numberOfOutputsintegerOptional

Optional number of outputs to create.

Example: 3
Responses
200
Check completed successfully, indicating if padding outputs are present.
application/json
500
Internal Server Error - An unexpected error occurred.
application/json
put
PUT /marketplace/inscriptions/confirm-padding HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 46

{
  "address": "2N6......bKL",
  "numberOfOutputs": 3
}
{
  "paddingOutputsExist": true,
  "requiredDummyOutputs": 3,
  "additionalOutputsNeeded": 0
}

Select padding outputs

post

Selects padding outputs associated with a given Bitcoin address.

Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
addressstringOptional

Bitcoin address to select padding outputs.

Example: 2N6......bKL
Responses
200
List of selected padding outputs.
application/json
500
Internal Server Error - An unexpected error occurred.
application/json
post
POST /marketplace/inscriptions/select-padding HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 26

{
  "address": "2N6......bKL"
}
[
  {
    "txid": "f50......1b38b",
    "vout": 0,
    "status": {
      "confirmed": true,
      "block_height": 3124442,
      "block_hash": "000.....589ae",
      "block_time": 1728662165
    },
    "value": 600
  }
]

Setup padding outputs

post

Sets up padding outputs for a given Bitcoin address.

Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
addressstringOptional

Bitcoin address to set up padding outputs.

Example: 2N6......bKL
publicKeystringOptional

Public key associated with the Bitcoin address.

Example: 033......05c05
feeRateintegerOptional

Fee rate in Satoshis per byte.

Example: 28
numberOfOutputsintegerOptional

Optional number of outputs to create.

Example: 3
Responses
200
Padding outputs setup successfully, returning a PSBT and input indices.
application/json
500
Internal Server Error - An unexpected error occurred.
application/json
post
POST /marketplace/inscriptions/setup-padding HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 88

{
  "address": "2N6......bKL",
  "publicKey": "033......05c05",
  "feeRate": 28,
  "numberOfOutputs": 3
}
{
  "psbt": "cHNid......AAAAAAA=",
  "inputIndices": [
    0,
    1
  ]
}

Create a new launchpad

post

Creates a new launchpad with specified phases and configuration.

Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
slugstringRequired

The slug of the launchpad.

Example: satoshibles-the-ordinals
makerPaymentAddressstringRequired

Bitcoin address for receiving payments

Example: 2N6ZePLQrKtix9bJBfznsykxKX1XtirnbKL
makerPaymentPublicKeystringRequired

Public key associated with the payment address

Example: 033528dc4c9fd062e63d2a8d5f8b2e3c3b8312ae7c1d3c4a41a9dc4eefa4205c05
makerOrdinalAddressstringRequired

Maker ordinal address

Example: bc1q...
makerOrdinalPublicKeystringRequired

Public key associated with the ordinals

Example: e581edf3a948470930171a3e676490a8f7953a3698044c14b4d75ffeabc88a26
Responses
200
Launchpad created successfully
application/json
400
Bad Request - Validation error in the request payload
application/json
post
POST /marketplace/launchpads/create HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 1598

{
  "slug": "satoshibles-the-ordinals",
  "makerPaymentAddress": "2N6ZePLQrKtix9bJBfznsykxKX1XtirnbKL",
  "makerPaymentPublicKey": "033528dc4c9fd062e63d2a8d5f8b2e3c3b8312ae7c1d3c4a41a9dc4eefa4205c05",
  "makerOrdinalAddress": "bc1q...",
  "makerOrdinalPublicKey": "e581edf3a948470930171a3e676490a8f7953a3698044c14b4d75ffeabc88a26",
  "data": [
    {
      "id": "8e7ba76e0c06ff5f43f50371bce849ae4e88dd36e1c0629e1a6f4383d1b0e679i0",
      "meta": {
        "attributes": [
          {
            "trait_type": "background",
            "value": "orange"
          }
        ],
        "name": "Satoshibles: The Ordinals #1"
      }
    }
  ],
  "meta": {
    "description": "Satoshi has come home to Bitcoin! The Ordinals collection by OG NFT project Satoshibles are a limited edition collection of 100 ordinals, featuring all new traits from the original artist Ayyoub Bouzerda. This collection is a tribute to Satoshi and the enduring legacy of Bitcoin. Don't miss your chance to own a piece of history!",
    "discord_link": "https://discord.com/invite/7Wm9Jg8MkW",
    "icon": "https://turbo.ordinalswallet.com/inscription/preview/3542f12dbe5fe3bd7fd622d1bb54994432e9a9184d24ff62ceb83234383b558ei0",
    "inscription_icon": "3542f12dbe5fe3bd7fd622d1bb54994432e9a9184d24ff62ceb83234383b558ei0",
    "name": "Satoshibles: The Ordinals",
    "slug": "satoshibles-the-ordinals",
    "twitter_link": "https://twitter.com/satoshibles",
    "website_link": "https://satoshibles.com",
    "telegram_link": "https://t.me/satoshibles",
    "instagram_link": "https://instagram.com/satoshibles",
    "banner_image": "https://example.com/banner.jpg"
  },
  "phases": [
    {
      "name": "Whitelist Sale",
      "startDate": 1712044800,
      "endDate": 1712131200,
      "price": 100000,
      "isPublic": false,
      "allowList": [
        {
          "address": "bc1q...",
          "allocation": 5
        }
      ]
    }
  ]
}
{
  "launchpadId": 1,
  "status": "pending"
}

Confirm and sign PSBT for a launchpad

put

Confirms and updates the signed PSBT for a specific launchpad.

Path parameters
idintegerRequired

The unique identifier of the launchpad phase psbt.

Header parameters
x-api-keystringRequired

API key required for authorization.

Body
signedPSBTstringOptional

Base64-encoded signed PSBT.

Example: cHNi.....ZUEAAA==
Responses
200
PSBT signed successfully.
application/json
put
PUT /marketplace/launchpads/psbt/{id}/confirm HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 34

{
  "signedPSBT": "cHNi.....ZUEAAA=="
}
200

PSBT signed successfully.

{
  "message": "Signed PSBT is updated successfully"
}

Create a buy offer for a launchpad inscription

post

Creates a new buy offer for an inscription in an active launchpad phase.

Header parameters
x-api-keystringRequired

API key required for authorization.

Body
idintegerOptional

Launchpad ID.

Example: 1
takerPaymentAddressstringOptional

Bitcoin address for receiving change.

Example: bc1q...
takerPaymentPublicKeystringOptional

Public key for the payment address.

Example: 02ab...
takerOrdinalAddressstringOptional

Bitcoin address for receiving the inscription.

Example: bc1q...
feeRateinteger · min: 1Optional

Fee rate in sats/vB.

Example: 5
satScanbooleanOptional

wether to use the sat scanner to scan inputs

Example: false
Responses
200
Offer created successfully.
application/json
post
POST /marketplace/launchpads/offers HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 134

{
  "id": 1,
  "takerPaymentAddress": "bc1q...",
  "takerPaymentPublicKey": "02ab...",
  "takerOrdinalAddress": "bc1q...",
  "feeRate": 5,
  "satScan": false
}
200

Offer created successfully.

{
  "id": 1,
  "phaseId": 1,
  "batchId": 1,
  "psbt": "text",
  "inputIndices": [
    1
  ]
}

Submit a signed buy offer to complete the purchase

put

Completes the purchase of a launchpad listing by submitting a signed Partially Signed Bitcoin Transaction (PSBT) to the marketplace.

Path parameters
idintegerRequired

The unique identifier of the buy offer to submit.

Example: 1
Header parameters
x-api-keystringRequired

API key required for authorization.

Example: your-api-key
Body
signedPSBTstringOptional

Base64-encoded signed Partially Signed Bitcoin Transaction (PSBT) for the purchase.

Example: cHNi.....ZUEAAA==
Responses
200
Purchase completed successfully.
application/json
500
Internal Server Error - An unexpected error occurred.
application/json
put
PUT /marketplace/launchpads/offers/{id}/submit HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 34

{
  "signedPSBT": "cHNi.....ZUEAAA=="
}
{
  "txId": "aa1c27........2767"
}

Get all launchpads

post

Retrieves a list of all launchpads with optional filtering.

Header parameters
x-api-keystringRequired

API key required for authorization.

Body
pageinteger · min: 1Optional

The page number for pagination (optional)

Example: 1
itemsPerPageinteger · min: 1Optional

Number of items per page (optional)

Example: 10
sortstring · enumOptional

Sort listings by this field (optional)

Example: idPossible values:
Responses
200
List of launchpads retrieved successfully.
application/json
post
POST /marketplace/launchpads HTTP/1.1
Host: api.ordinalsbot.com
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 69

{
  "filter": {
    "status": "active"
  },
  "page": 1,
  "itemsPerPage": 10,
  "sort": "id"
}
200

List of launchpads retrieved successfully.

{
  "data": [
    {
      "id": 1,
      "status": "text",
      "phases": []
    }
  ],
  "count": 1
}