REST API for integrating with the Orbis NFT Marketplace. Discover collections, fetch listings, read activity, and build buy transactions for NFTs listed on Orbis. Designed for marketplace aggregators, wallets, and analytics platforms.
https://www.orbisonsol.io/api/mp-public
X-API-Key header with every request.
Request access below to get started.
All API requests require an API key passed via the X-API-Key header:
X-API-Key: orbis_pk_your_api_key_here
Requests without a valid API key will receive a 401 Unauthorized response.
The same X-API-Key also authorizes server-to-server calls to our protected Solana RPC proxies for use cases that need raw on-chain data not covered by /api/mp-public:
/api/solana-rpc Standard JSON-RPC + Helius DAS methods (getBalance, getAsset, searchAssets, getAssetsByOwner, sendTransaction, etc.). POST only./api/helius-proxy Helius enhanced API helpers (getAsset, getAssetsByOwner, getAssetProof, getAssetsByGroup, getBalance, etc.). POST only.Send requests exactly as you would to Helius — include the X-API-Key header. Rate limited to 60 requests per minute per IP. Browser traffic from gotmlabz.io / orbisonsol.io uses a separate session-cookie path and does not consume your API key's rate budget.
curl -X POST "https://www.orbisonsol.io/api/solana-rpc" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc":"2.0","id":1,"method":"getBalance","params":["YOUR_WALLET"]}'
All endpoints use the action query parameter to specify the operation. Responses follow a consistent format:
{
"success": true,
"data": { ... },
"meta": {
"timestamp": 1707900000000,
"source": "orbis",
"count": 10
}
}
Error responses return success: false with an error message:
{
"success": false,
"error": "collectionId is required"
}
Returns all enabled collections on the Orbis marketplace with their stats.
curl -H "X-API-Key: YOUR_API_KEY" \ "https://www.orbisonsol.io/api/mp-public?action=collections"
{
"success": true,
"data": [
{
"id": "abc123",
"name": "Example Collection",
"pathname": "example-collection",
"collectionAddress": "ExAm...",
"logo": "https://arweave.net/.../logo.png",
"banner": "https://arweave.net/.../banner.png",
"stats": {
"floorPrice": 1.5,
"volume24h": 42.8,
"volumeAll": 1250.3,
"listed": 45,
"supply": 5000,
"owners": 2100
}
}
],
"meta": { "timestamp": 1707900000000, "source": "orbis", "count": 1 }
}
Returns details and stats for a single collection.
| Parameter | Type | Description |
|---|---|---|
| id optional | string | Internal collection ID |
| pathname optional | string | Collection URL pathname (e.g. "gainz") |
| collectionAddress optional | string | On-chain collection address (Solana mint). Recommended for external integrations. |
curl -H "X-API-Key: YOUR_API_KEY" \ "https://www.orbisonsol.io/api/mp-public?action=collection&pathname=example-collection"
{
"success": true,
"data": {
"id": "abc123",
"name": "Example Collection",
"pathname": "example-collection",
"collectionAddress": "ExAm...",
"logo": "https://arweave.net/.../logo.png",
"banner": "https://arweave.net/.../banner.png",
"description": "A collection of 5000 unique NFTs.",
"programId": "2kmsyJ3oZHpk1Qwp4U5X4nm7KPBJrbaXdKyZYc166s6Q",
"stats": {
"floorPrice": 1.5,
"topOffer": 1.2,
"volume24h": 42.8,
"volumeAll": 1250.3,
"listed": 45,
"supply": 5000,
"owners": 2100,
"marketCap": 7500
}
},
"meta": { "timestamp": 1707900000000, "source": "orbis" }
}
Returns active listings for a collection. Supports sorting and pagination.
| Parameter | Type | Description |
|---|---|---|
| collectionId optional | string | Internal collection ID (use collectionId or collectionAddress) |
| collectionAddress optional | string | On-chain collection address (recommended) |
| sort optional | string | priceLow, priceHigh, or recentlyListed (default) |
| limit optional | number | Results per page, 1-100 (default: 50) |
| offset optional | number | Number of results to skip (default: 0) |
curl -H "X-API-Key: YOUR_API_KEY" \ "https://www.orbisonsol.io/api/mp-public?action=listings&collectionAddress=YOUR_COLLECTION_ADDRESS&sort=priceLow&limit=20"
{
"success": true,
"data": [
{
"mint": "NfTm1nT...",
"name": "Example #1234",
"image": "https://arweave.net/.../1234.png",
"priceSol": 1.5,
"seller": "SelL3r...",
"source": "gotm",
"rarityRank": 42,
"attributes": [
{ "trait_type": "Background", "value": "Blue" },
{ "trait_type": "Eyes", "value": "Laser" }
],
"listedAt": 1707900000000
}
],
"meta": { "timestamp": 1707900000000, "source": "orbis", "count": 1, "offset": 0, "limit": 20 }
}
Returns details for a single listing by mint address.
| Parameter | Type | Description |
|---|---|---|
| collectionId optional | string | Internal collection ID (use collectionId or collectionAddress) |
| collectionAddress optional | string | On-chain collection address (recommended) |
| mint required | string | NFT mint address |
curl -H "X-API-Key: YOUR_API_KEY" \ "https://www.orbisonsol.io/api/mp-public?action=listing&collectionAddress=YOUR_COLLECTION_ADDRESS&mint=NfTm1nT..."
Returns the activity feed for a collection — sales, listings, delistings, and more.
| Parameter | Type | Description |
|---|---|---|
| collectionId optional | string | Internal collection ID (use collectionId or collectionAddress) |
| collectionAddress optional | string | On-chain collection address (recommended) |
| type optional | string | Filter by type (see Activity Types below) |
| limit optional | number | Results to return, 1-100 (default: 50) |
sale Direct purchase of a listed NFToffer_accepted Seller accepted a buyer's offerlisting NFT was listed for saledelist NFT was delisted (removed from sale)offer_made Buyer placed an offeroffer_cancelled Buyer cancelled their offerprice_update Seller changed listing pricecurl -H "X-API-Key: YOUR_API_KEY" \ "https://www.orbisonsol.io/api/mp-public?action=activity&collectionAddress=YOUR_COLLECTION_ADDRESS&type=sale&limit=20"
{
"success": true,
"data": [
{
"id": "act_001",
"type": "sale",
"mint": "NfTm1nT...",
"name": "Example #1234",
"image": "https://arweave.net/.../1234.png",
"priceSol": 1.5,
"wallet": "BuY3r...",
"counterparty": "SelL3r...",
"txSignature": "5vGp...",
"source": "gotm",
"timestamp": 1707900000000
}
],
"meta": { "timestamp": 1707900000000, "source": "orbis", "count": 1 }
}
Returns marketplace statistics for a collection.
| Parameter | Type | Description |
|---|---|---|
| collectionId optional | string | Internal collection ID (use collectionId or collectionAddress) |
| collectionAddress optional | string | On-chain collection address (recommended) |
curl -H "X-API-Key: YOUR_API_KEY" \ "https://www.orbisonsol.io/api/mp-public?action=stats&collectionAddress=YOUR_COLLECTION_ADDRESS"
{
"success": true,
"data": {
"floorPrice": 1.5,
"topOffer": 1.2,
"volume24h": 42.8,
"volumeAll": 1250.3,
"listed": 45,
"supply": 5000,
"owners": 2100,
"marketCap": 7500,
"sales24h": 12
},
"meta": { "timestamp": 1707900000000, "source": "orbis" }
}
Returns active offers on a specific NFT, sorted by amount (highest first).
| Parameter | Type | Description |
|---|---|---|
| collectionId optional | string | Internal collection ID (use collectionId or collectionAddress) |
| collectionAddress optional | string | On-chain collection address (recommended) |
| mint required | string | NFT mint address |
curl -H "X-API-Key: YOUR_API_KEY" \ "https://www.orbisonsol.io/api/mp-public?action=offers&collectionAddress=YOUR_COLLECTION_ADDRESS&mint=NfTm1nT..."
Builds a Solana transaction for purchasing an NFT listed on Orbis.
Returns a serialized VersionedTransaction (v0) in base64.
The buyer must sign this transaction before submitting it to the Solana network.
| Body Parameter | Type | Description |
|---|---|---|
| mint required | string | NFT mint address to buy |
| buyer required | string | Buyer's wallet address (will be the signer) |
curl -X POST "https://www.orbisonsol.io/api/mp-public?action=buyInstruction" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"mint": "NfTm1nT...", "buyer": "BuY3r..."}'
{
"success": true,
"data": {
"transaction": "AQAAAAAAAAA...",
"txType": "versioned",
"priceSol": 1.5,
"priceLamports": "1500000000",
"seller": "SelL3r...",
"mint": "NfTm1nT...",
"programId": "2kmsyJ3oZHpk1Qwp4U5X4nm7KPBJrbaXdKyZYc166s6Q"
},
"meta": { "timestamp": 1707900000000, "source": "orbis" }
}
VersionedTransaction.deserialize(Buffer.from(tx, 'base64'))
3. Have the buyer sign the transaction.
4. Submit to Solana via sendRawTransaction.
Builds a Solana transaction for listing an NFT on Orbis.
Returns a serialized VersionedTransaction (v0) in base64.
The seller must sign this transaction before submitting it to the Solana network.
list permission on your API key. Contact the Orbis team to request listing access.
| Body Parameter | Type | Description |
|---|---|---|
| mint required | string | NFT mint address to list |
| price required | number | Listing price in SOL (e.g. 1.5) |
| seller required | string | Seller's wallet address (will be the signer) |
| collectionAddress optional | string | On-chain collection address. Auto-resolved from mint if omitted. |
curl -X POST "https://www.orbisonsol.io/api/mp-public?action=listInstruction" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"mint": "NfTm1nT...", "price": 1.5, "seller": "SelL3r..."}'
{
"success": true,
"data": {
"transaction": "AQAAAAAAAAA...",
"txType": "versioned",
"listingPda": "LiSt1nGpDa...",
"nftType": 0,
"priceSol": 1.5,
"seller": "SelL3r...",
"mint": "NfTm1nT...",
"programId": "2kmsyJ3oZHpk1Qwp4U5X4nm7KPBJrbaXdKyZYc166s6Q"
},
"meta": { "timestamp": 1707900000000, "source": "orbis" }
}
VersionedTransaction.deserialize(Buffer.from(tx, 'base64'))
3. Have the seller sign the transaction.
4. Submit to Solana via sendRawTransaction.
Builds a Solana transaction to delist (cancel) an NFT listing on Orbis. The seller must sign this transaction.
list or delist permission on your API key.
| Body Parameter | Type | Description |
|---|---|---|
| mint required | string | NFT mint address to delist |
| seller required | string | Seller's wallet address (must be the original lister) |
curl -X POST "https://www.orbisonsol.io/api/mp-public?action=delistInstruction" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"mint": "NfTm1nT...", "seller": "SelL3r..."}'
Receive real-time push notifications when marketplace events occur (listings, sales, delists, offers). Register a webhook URL and Orbis will POST event data to it.
Register a URL to receive event notifications. Max 5 webhooks per API key.
{
"url": "https://your-server.com/orbis-webhook",
"events": ["listing", "sale", "delist"],
"collections": ["collection_id_1"],
"secret": "your_webhook_secret"
}
| Parameter | Type | Description |
|---|---|---|
| url | string | Required. HTTPS endpoint to receive POST notifications. |
| events | string[] | Filter by event type. Omit for all events. Values: listing, delist, sale, offer_accepted, offer_made, offer_cancelled, price_update |
| collections | string[] | Filter by collection ID. Omit for all collections. |
| secret | string | Optional. Used to sign payloads with HMAC-SHA256 (X-Orbis-Signature header). |
Each notification is a POST request with the following JSON body:
{
"event": "sale",
"timestamp": 1707900000000,
"data": {
"collectionId": "abc123",
"mint": "NFTMint...",
"name": "Cool NFT #42",
"image": "https://...",
"priceSol": 1.5,
"wallet": "Buyer...",
"counterparty": "Seller...",
"txSignature": "5abc...",
"source": "gotm"
}
}
secret, verify the X-Orbis-Signature header by computing HMAC-SHA256(secret, raw_body) and comparing. Webhooks are auto-disabled after 50 consecutive delivery failures.
List all webhooks registered under your API key.
curl "https://www.orbisonsol.io/api/mp-public?action=getWebhooks" \ -H "X-API-Key: YOUR_API_KEY"
Remove a webhook. Requires webhookId in the request body.
curl -X POST "https://www.orbisonsol.io/api/mp-public?action=deleteWebhook" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"webhookId": "webhook_id_here"}'
| Field | Type | Description |
|---|---|---|
| mint | string | NFT mint address |
| name | string | null | NFT name |
| image | string | null | Image URL |
| priceSol | number | Price in SOL |
| seller | string | Seller wallet address |
| source | string | gotm (Orbis native), magiceden, or tensor |
| rarityRank | number | null | Rarity rank within the collection |
| attributes | array | NFT trait attributes |
| listedAt | number | null | Unix timestamp (ms) when listed |
| Field | Type | Description |
|---|---|---|
| id | string | Activity ID |
| type | string | Activity type (see Activity Types above) |
| mint | string | NFT mint address |
| priceSol | number | null | Price in SOL |
| wallet | string | Primary wallet (buyer for sales, seller for listings) |
| counterparty | string | null | Other party in the transaction |
| txSignature | string | null | Solana transaction signature |
| timestamp | number | null | Unix timestamp (ms) |
Rate limits are enforced at the edge via Cloudflare. General API endpoints allow 60 requests per 10 seconds per IP. Transaction-building endpoints allow 15 requests per minute per IP. The Solana RPC proxies (/api/solana-rpc, /api/helius-proxy) allow 60 requests per minute per IP. Recommended practices:
Collections Cache for 30-60 seconds. Collection data changes infrequently.Listings Poll every 15-30 seconds for active listing data.Activity Poll every 30-60 seconds for new sales and events.Stats Cache for 30 seconds. Stats are pre-computed.buyInstruction Call on-demand when a user clicks buy. Transactions expire with their blockhash (~60s).Cache-Control headers. Honor these for optimal performance and to avoid unnecessary load.
Submit a request below and our team will review your application. Approved integrators receive an API key typically within 24-48 hours.
All fields marked with * are required
Prefer to chat? Join our Discord for direct support:
Join Discord