Magic Eden
We are going to create a simple Python function that interacts with the Magic Eden API.
Since the Magic Eden API is for NFT marketplace, we might want to fetch collections, listings, etc.
However, the user's request is just "Magic Eden", so we'll create a function that fetches the trending collections.
Steps:
We'll use the requests library to make HTTP requests.
We'll use the Magic Eden API endpoint for trending collections:
https://api.magiceden.io/v2/collections/trending
We'll parse the JSON response and return the data.
Note: We should handle potential errors (like network issues, invalid responses).
Let's write the function accordingly.
To interact with the Magic Eden API (a leading Solana NFT marketplace), follow these steps to fetch data programmatically:
https://www.18122.com/url/usdt/usdt3185.jpg
1. API Endpoints
Magic Eden offers several endpoints. Key examples:
Trending Collections:
GET https://api.magiceden.io/v2/collections/trending
Collection Details:
GET https://api.magiceden.io/v2/collections/{collectionSymbol}
NFT Listings:
GET https://api.magiceden.io/v2/collections/{collectionSymbol}/listings
Floor Price History:
GET https://api.magiceden.io/v2/collections/{collectionSymbol}/stats
2. Example: Fetch Trending Collections
import requests
url = "https://api.magiceden.io/v2/collections/trending"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers)
if response.status_code == 200:
trending_collections = response.json()
print(trending_collections[:3])# Print first 3 collections
else:
print(f"Error: {response.status_code}")
3. Example: Get Floor Price of a Collection
collection_symbol = "degod"# Replace with your collection's symbol
url = f"https://api.magiceden.io/v2/collections/{collection_symbol}/stats"
response = requests.get(url, headers={"Accept": "application/json"})
if response.status_code == 200:
data = response.json()
floor_price = data.get("floorPrice", 0)
print(f"Floor price of {collection_symbol}: {floor_price} SOL")
else:
print("Failed to fetch data.")
4. Authentication
Most endpoints don’t require authentication, but rate limits apply:
Unauthenticated: 60 requests/minute.
Authenticated (API Key): 600 requests/minute.
Request an API key here.
5. Rate Limit Handling
Check response headers for rate limit info:
print(response.headers.get("X-RateLimit-Remaining"))# Remaining requests
6. Error Codes
400: Bad request (invalid parameters).
401: Unauthorized (invalid API key).
403: Rate limit exceeded.
404: Collection not found.
7. Full Example: Fetch Listings for a Collection
collection_symbol = "okay_bears"
url = f"https://api.magiceden.io/v2/collections/{collection_symbol}/listings"
params = {"limit": 10}# Optional: Limit results
response = requests.get(url, headers={"Accept": "application/json"}, params=params)
if response.status_code == 200:
listings = response.json()
for listing in listings:
print(f"Token: {listing['mint']}, Price: {listing['price']} SOL")
else:
print(f"Error: {response.text}")
8. Documentation
Official API Docs
Postman Collection
Notes:
Replace placeholders like {collectionSymbol} with actual data.
Always handle errors and respect rate limits.
For advanced use (e.g., creating listings), explore the Magic Eden SDK.
Magic Eden is a digital marketplace for NFTs (non-fungible tokens) on the Solana blockchain. It allows users to buy, sell, and trade NFTs, as well as collectibles, art, and other digital assets. Magic Eden was founded in 2021 and is based in the United States. The platform supports a wide range of NFTs, including those created by independent artists, digital artists, and brands. Magic Eden has a strong focus on community and collaboration, and it offers tools and resources to help creators build and manage their NFT collections.
页:
[1]