Get a draft by ID
curl --request GET \
--url https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId} \
--header 'API-KEY: <api-key>'import requests
url = "https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId}"
headers = {"API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'API-KEY': '<api-key>'}};
fetch('https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId}")
.header("API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"draftGame": {
"id": "66b1234567890abcdef12345",
"_id": "66b1234567890abcdef12345",
"txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"slug": "<string>",
"nftName": "<string>",
"tokenSymbol": "<string>",
"bgColor": "<string>",
"featuredImageUrl": "<string>",
"packImageUrl": "<string>",
"links": {
"twitter": "<string>",
"website": "<string>"
},
"description": "<string>",
"isNSFW": true,
"isPublic": true,
"ownerAddress": "0x1111111111111111111111111111111111111111",
"disableWear": true,
"disableFoil": true,
"metadataItems": [
{
"name": "<string>",
"imageUrl": "<string>",
"unopenedImageUrl": "<string>",
"firstEditionImageUrl": "<string>",
"description": "<string>",
"externalLink": "<string>",
"privateExternalLink": "<string>",
"metadataDescription": "<string>",
"traits": [
{
"key": "<string>",
"value": "<string>"
}
],
"startId": 1,
"endId": 1,
"id": "<string>",
"contractAddress": "0x1111111111111111111111111111111111111111",
"chainId": 123,
"txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"creator": "0x1111111111111111111111111111111111111111",
"isActive": true,
"isDraft": true,
"version": 123,
"effectiveFrom": "2023-11-07T05:31:56Z",
"effectiveUntil": "2023-11-07T05:31:56Z",
"bgColor": "<string>",
"slug": "<string>",
"featuredImageUrl": "<string>",
"disableFoil": true,
"disableWear": true,
"odds": 123,
"oddsFormatted": "<string>"
}
]
}
}
}{
"success": false,
"message": "Invalid contract address"
}{
"success": false,
"message": "Resource not found"
}{
"success": false,
"message": "Too many requests or invalid API key! See docs.vibechain.com for more info."
}{
"success": false,
"message": "Failed to complete request"
}Creator drafts
Get a draft by ID
GET
/
metadata
/
draft
/
id
/
{draftId}
Get a draft by ID
curl --request GET \
--url https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId} \
--header 'API-KEY: <api-key>'import requests
url = "https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId}"
headers = {"API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'API-KEY': '<api-key>'}};
fetch('https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId}")
.header("API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://build.vibechain.com/vibe/boosterbox/metadata/draft/id/{draftId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"draftGame": {
"id": "66b1234567890abcdef12345",
"_id": "66b1234567890abcdef12345",
"txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"slug": "<string>",
"nftName": "<string>",
"tokenSymbol": "<string>",
"bgColor": "<string>",
"featuredImageUrl": "<string>",
"packImageUrl": "<string>",
"links": {
"twitter": "<string>",
"website": "<string>"
},
"description": "<string>",
"isNSFW": true,
"isPublic": true,
"ownerAddress": "0x1111111111111111111111111111111111111111",
"disableWear": true,
"disableFoil": true,
"metadataItems": [
{
"name": "<string>",
"imageUrl": "<string>",
"unopenedImageUrl": "<string>",
"firstEditionImageUrl": "<string>",
"description": "<string>",
"externalLink": "<string>",
"privateExternalLink": "<string>",
"metadataDescription": "<string>",
"traits": [
{
"key": "<string>",
"value": "<string>"
}
],
"startId": 1,
"endId": 1,
"id": "<string>",
"contractAddress": "0x1111111111111111111111111111111111111111",
"chainId": 123,
"txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"creator": "0x1111111111111111111111111111111111111111",
"isActive": true,
"isDraft": true,
"version": 123,
"effectiveFrom": "2023-11-07T05:31:56Z",
"effectiveUntil": "2023-11-07T05:31:56Z",
"bgColor": "<string>",
"slug": "<string>",
"featuredImageUrl": "<string>",
"disableFoil": true,
"disableWear": true,
"odds": 123,
"oddsFormatted": "<string>"
}
]
}
}
}{
"success": false,
"message": "Invalid contract address"
}{
"success": false,
"message": "Resource not found"
}{
"success": false,
"message": "Too many requests or invalid API key! See docs.vibechain.com for more info."
}{
"success": false,
"message": "Failed to complete request"
}Authorizations
Caller-specific VibeChain API key used for quota and abuse control.
Headers
Set to true to keep original recognized CDN URLs instead of vibe.market proxy URLs. Cache this response variant separately.
Path Parameters
Pattern:
^[a-fA-F0-9]{24}$Example:
"66b1234567890abcdef12345"
⌘I