Satflow Marketplace API
The Satflow Marketplace API allows anyone with a valid key to interact with Satflow to manage item listings and bids, make purchases, and explore activity on the platform.
The API supports the following:
- Item and collection details: Get information about items, collections and wallets on Satflow.
- Listing items for sale: Create and manage listings for selling items on Satflow.
- Bidding on items: Create and manage bids on items, collections and traits, and accept bids on items you own.
- Purchasing items: Buy listed items.
- Listing, bid and sales data: Retrieve current listings and bids, and historical sales.
A great open source example on how to use the Satflow endpoints can be found in our open source market maker repo, Satflow Market Maker.
Authentication
Obtaining an API Key
This API requires an API key for authentication. You can request an API key on Google Forms.
Once you obtain your API key you will be required to add the x-api-key header with your unique API key to your request.
curl -X 'GET' \
'https://api.satflow.com/v1/collection-stats?collectionId=YOUR_COLLECTION_ID' \
-H 'accept: application/json' \
-H 'x-api-key: YOUR_API_KEY'Endpoints
| Network | Base URL | Documentation |
|---|---|---|
| BTC Mainnet | https://api.satflow.com/v1 | docs.satflow.com |
Every path in this reference is relative to the base URL: GET /item is https://api.satflow.com/v1/item.
Errors
A request that fails returns a JSON body with error, a message saying what went wrong, and usually code. Many errors also carry an errorCode that names the case, and details; the endpoint pages and the guides list them.
| Status | Meaning |
|---|---|
| 400 | The request is not valid, for example a JSON body that cannot be parsed. The message says what to change. |
| 402 | The wallet paying for the transaction does not have enough funds. |
| 403 | A signature or wallet credential does not verify. A request without a valid x-api-key returns 403 with {"message": "Forbidden"}. |
| 404 | Not found, or no longer available. |
| 409 | The order or transaction is not in a state that allows the request, usually because it changed. Fetch it again before you retry. |
| 413 | The request is too large (a JSON body is limited to 100 KB), or the wallet it reads is too large for the endpoint. |
| 422 | The wallet has too many outputs to read right now. |
| 429 | Too many requests. Wait retryAfterMs milliseconds, when the response gives it, before sending again. |
| 500 | Something failed on Satflow's side. |
| 503 | A service Satflow depends on is unavailable or slow. Try again later. |
Rate Limits
| API Tier | Rate Limit |
|---|---|
| Partner | Depends on requirements |
What's New
API changes are announced in the Changelog.
Issues & Feature Requests
For issue reports and feature requests, please contact support on Discord.

