curl --request GET \
--url https://staging.crossmint.com/api/v1/ip/graph/{ipAssetId} \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://staging.crossmint.com/api/v1/ip/graph/{ipAssetId}"
headers = {"X-API-KEY": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<x-api-key>'}};
fetch('https://staging.crossmint.com/api/v1/ip/graph/{ipAssetId}', 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://staging.crossmint.com/api/v1/ip/graph/{ipAssetId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <x-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://staging.crossmint.com/api/v1/ip/graph/{ipAssetId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<x-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://staging.crossmint.com/api/v1/ip/graph/{ipAssetId}")
.header("X-API-KEY", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/v1/ip/graph/{ipAssetId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"rootIpId": "0xf6546a7e5342b152366E3B3FC773743b6D991aB2",
"parents": [
{
"ipId": "0xAb92d4f9EA97666c40527D54a9aF4D7F82ab8552",
"parents": [
{
"ipId": "0x9876543210abcdef9876543210abcdef98765432",
"parents": []
}
]
}
],
"children": [
{
"ipId": "0x123456789abcdef0123456789abcdef012345678",
"children": [
{
"ipId": "0xabcdef0123456789abcdef0123456789abcdef01",
"children": []
}
]
}
]
}Get IP Asset Graph
Get the graph of an IP Asset, by default it will fetch the first level of parents and children (depth = 1). You can customize the depth using the query parameter ‘depth’ to a maximum of 3. Maximum 100 parents or children will be returned for each level.
The ipAssetId parameter should be the Story Protocol asset ID (not the Crossmint ID). Must start with ‘0x’ followed by hexadecimal characters.
API scope required: nfts.read
curl --request GET \
--url https://staging.crossmint.com/api/v1/ip/graph/{ipAssetId} \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://staging.crossmint.com/api/v1/ip/graph/{ipAssetId}"
headers = {"X-API-KEY": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<x-api-key>'}};
fetch('https://staging.crossmint.com/api/v1/ip/graph/{ipAssetId}', 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://staging.crossmint.com/api/v1/ip/graph/{ipAssetId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <x-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://staging.crossmint.com/api/v1/ip/graph/{ipAssetId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<x-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://staging.crossmint.com/api/v1/ip/graph/{ipAssetId}")
.header("X-API-KEY", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/v1/ip/graph/{ipAssetId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"rootIpId": "0xf6546a7e5342b152366E3B3FC773743b6D991aB2",
"parents": [
{
"ipId": "0xAb92d4f9EA97666c40527D54a9aF4D7F82ab8552",
"parents": [
{
"ipId": "0x9876543210abcdef9876543210abcdef98765432",
"parents": []
}
]
}
],
"children": [
{
"ipId": "0x123456789abcdef0123456789abcdef012345678",
"children": [
{
"ipId": "0xabcdef0123456789abcdef0123456789abcdef01",
"children": []
}
]
}
]
}Headers
API key required for authentication
Path Parameters
Query Parameters
^\d+$Response
IP Asset Graph found
IP Asset relationship graph showing parents and children
The root IP ID for which the graph was generated
"0xf6546a7e5342b152366E3B3FC773743b6D991aB2"
Array of parent IP asset nodes
Show child attributes
Show child attributes
[
{
"ipId": "0xAb92d4f9EA97666c40527D54a9aF4D7F82ab8552",
"parents": [
{
"ipId": "0x9876543210abcdef9876543210abcdef98765432",
"parents": []
}
]
}
]
Array of child IP asset nodes
Show child attributes
Show child attributes
[
{
"ipId": "0x123456789abcdef0123456789abcdef012345678",
"children": [
{
"ipId": "0xabcdef0123456789abcdef0123456789abcdef01",
"children": []
}
]
}
]
Was this page helpful?

