Integration APIs

GETGet Listings

Last updated January 31, 2026

Retrieve active and upcoming Genesis launch listings. Returns a paginated list of launches with their metadata, token info, and social links.

Endpoint

GET /listings

Query Parameters

ParameterTypeRequiredDescription
networkstringNoNetwork to query. Default: solana-mainnet. Use solana-devnet for devnet.
statusstringNoFilter by status: active, upcoming, completed. Default: returns all.
limitnumberNoNumber of results per page. Default: 20. Max: 100.
offsetnumberNoNumber of results to skip for pagination. Default: 0.

Example Request

curl "https://api.metaplex.com/v1/listings?status=active&limit=10"

Response

{
"data": {
"listings": [
{
"launch": {
"launchPage": "https://example.com/launch/mytoken",
"type": "launchpool",
"genesisAddress": "7nE9GvcwsqzYcPUYfm5gxzCKfmPqi68FM7gPaSfG6EQN"
},
"baseToken": {
"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"name": "My Token",
"symbol": "MTK",
"image": "https://example.com/token-image.png",
"description": "A community-driven token for the example ecosystem."
},
"website": "https://example.com",
"socials": {
"x": "https://x.com/mytoken",
"telegram": "https://t.me/mytoken",
"discord": "https://discord.gg/mytoken"
},
"status": "active"
}
],
"total": 42,
"limit": 10,
"offset": 0
}
}

Response Type

TypeScript

interface ListingEntry {
launch: Launch;
baseToken: BaseToken;
website: string;
socials: Socials;
status: "active" | "upcoming" | "completed";
}
interface ListingsResponse {
data: {
listings: ListingEntry[];
total: number;
limit: number;
offset: number;
};
}

Rust

#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListingEntry {
pub launch: Launch,
pub base_token: BaseToken,
pub website: String,
pub socials: Socials,
pub status: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ListingsData {
pub listings: Vec<ListingEntry>,
pub total: u64,
pub limit: u64,
pub offset: u64,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ListingsResponse {
pub data: ListingsData,
}

Usage Examples

TypeScript

const response = await fetch(
"https://api.metaplex.com/v1/listings?status=active&limit=10"
);
const { data }: ListingsResponse = await response.json();
console.log(`${data.total} total listings`);
data.listings.forEach((entry) => {
console.log(entry.baseToken.name, entry.status);
});

Rust

let response: ListingsResponse = reqwest::get(
"https://api.metaplex.com/v1/listings?status=active&limit=10"
)
.await?
.json()
.await?;
println!("{} total listings", response.data.total);

Pagination

Use limit and offset to paginate through results:

# First page
curl "https://api.metaplex.com/v1/listings?limit=20&offset=0"
# Second page
curl "https://api.metaplex.com/v1/listings?limit=20&offset=20"

The total field in the response indicates the total number of matching listings.