Introduction
Public REST API for browsing trading cards and sharing card collections.
This documentation aims to provide all the information you need to work with our API.
Authenticating requests
This API is not authenticated.
Endpoints
List cards
Returns a paginated list of cards (24 per page).
Example request:
curl --request GET \
--get "https://api.inazumacard.com/api/cards?search=Axel+Blaze&set=Football+Frontier&type=Reserve&rarity=Rare&attribute=Power&team=Raimon&position=FW&page=1" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.inazumacard.com/api/cards"
);
const params = {
"search": "Axel Blaze",
"set": "Football Frontier",
"type": "Reserve",
"rarity": "Rare",
"attribute": "Power",
"team": "Raimon",
"position": "FW",
"page": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": [
{
"id": 131,
"name": "Aniya Mayer",
"set": "Voluptate Dolor In Dolore",
"collectors_number": "OV 73/100",
"rarity": "Super Rare",
"type": "Reserve",
"image_url": "https://api.inazumacard.com/storage/cards/lquaslzu.jpg",
"attribute": "Tactic",
"position": "FW",
"skill_points": 200,
"ability": "Ut rerum porro est quas ut facere voluptatem.",
"effect": null,
"requirement": null,
"team": "Eius Eaque",
"level": 3,
"fired_up_skill_points": 800,
"assist_points": 200,
"flavor_text": "Quia fuga commodi incidunt quia culpa vel incidunt autem qui quasi saepe repellendus.",
"artist": "Annamae Daugherty"
},
{
"id": 132,
"name": "Clarissa Hackett",
"set": "Quisquam Molestiae Sit Cum",
"collectors_number": "DL 24/100",
"rarity": "Rare",
"type": "Reserve",
"image_url": "https://api.inazumacard.com/storage/cards/jtwwbigd.jpg",
"attribute": "Speed",
"position": "MF",
"skill_points": 400,
"ability": "Aut id autem eos sit.",
"effect": null,
"requirement": null,
"team": "Hic Non",
"level": 5,
"fired_up_skill_points": 900,
"assist_points": 200,
"flavor_text": "Eius eos voluptates cum perspiciatis labore eveniet sed consequatur optio ut.",
"artist": "Orrin Langosh"
}
],
"links": {
"first": "/?page=1",
"last": "/?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "/?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "/",
"per_page": 24,
"to": 2,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show a card
Returns a single card.
Example request:
curl --request GET \
--get "https://api.inazumacard.com/api/cards/1" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://api.inazumacard.com/api/cards/1"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"data": {
"id": 133,
"name": "Tiffany Rath",
"set": "Dolorem Veniam Esse Placeat",
"collectors_number": "WB 96/100",
"rarity": "Common",
"type": "Reserve",
"image_url": "https://api.inazumacard.com/storage/cards/qslmychy.jpg",
"attribute": "Speed",
"position": "FW",
"skill_points": 400,
"ability": "Sed aperiam tempora ut veritatis et dolor eum.",
"effect": null,
"requirement": null,
"team": "Sint Saepe",
"level": 4,
"fired_up_skill_points": 800,
"assist_points": 100,
"flavor_text": "Blanditiis voluptatem culpa et id consequatur placeat corrupti voluptatum sed optio id.",
"artist": "Jonathan Legros"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Encode a collection
Encodes a list of card IDs and counts into a compact, shareable token. Returns a 422 validation error when the resulting token would exceed 2000 characters — in that case clients should fall back to the file-import flow.
Example request:
curl --request POST \
"https://api.inazumacard.com/api/collections/encode" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"items\": [
{
\"cardId\": 16,
\"count\": 22
}
]
}"
const url = new URL(
"https://api.inazumacard.com/api/collections/encode"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"items": [
{
"cardId": 16,
"count": 22
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200, success):
{
"data": {
"token": "eJxdjsEKwjAQRH8l5GpJ...",
"item_count": 12,
"token_length": 184
}
}
Example response (422, token too large):
{
"message": "The given data was invalid.",
"errors": {
"items": [
"Collection too large to share as a link — use file export instead."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Decode a collection token
Decodes a shared collection token back into card records. Cards whose IDs no
longer exist in the database are listed separately under missing so the
client can surface them to the user.
Example request:
curl --request POST \
"https://api.inazumacard.com/api/collections/decode" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"token\": \"eJxdjsEKwjAQRH8l5GpJ...\"
}"
const url = new URL(
"https://api.inazumacard.com/api/collections/decode"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"token": "eJxdjsEKwjAQRH8l5GpJ..."
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"data": {
"items": [
{
"card": {
"id": 134,
"name": "Christelle Bailey",
"set": "Animi Quos Velit Et",
"collectors_number": "VD 29/100",
"rarity": "Common",
"type": "Reserve",
"image_url": "https://api.inazumacard.com/storage/cards/ujwvlxjk.jpg",
"attribute": "Speed",
"position": "MF",
"skill_points": 400,
"ability": "Aut ab provident perspiciatis quo omnis nostrum aut.",
"effect": null,
"requirement": null,
"team": "Adipisci Quidem",
"level": 3,
"fired_up_skill_points": 600,
"assist_points": 400,
"flavor_text": "Iure odit et et modi ipsum nostrum omnis autem et consequatur aut dolores enim non.",
"artist": "Matilda Feeney"
},
"cardId": 134,
"count": 3
},
{
"card": null,
"cardId": 1132,
"count": 1
}
],
"missing": [
{
"cardId": 1132,
"count": 1
}
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Import a collection file
Imports a collection from an uploaded JSON file (max 256KB). The response
shape matches the decode endpoint, with resolved cards under items and
unresolved IDs under missing.
Example request:
curl --request POST \
"https://api.inazumacard.com/api/collections/import-file" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "collection=@/tmp/phpqj9c7askfkm96jFAdtk" const url = new URL(
"https://api.inazumacard.com/api/collections/import-file"
);
const headers = {
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('collection', document.querySelector('input[name="collection"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());Example response (200):
{
"data": {
"items": [
{
"card": {
"id": 135,
"name": "Christelle Bailey",
"set": "Animi Quos Velit Et",
"collectors_number": "VD 29/100",
"rarity": "Common",
"type": "Reserve",
"image_url": "https://api.inazumacard.com/storage/cards/ujwvlxjk.jpg",
"attribute": "Speed",
"position": "MF",
"skill_points": 400,
"ability": "Aut ab provident perspiciatis quo omnis nostrum aut.",
"effect": null,
"requirement": null,
"team": "Adipisci Quidem",
"level": 3,
"fired_up_skill_points": 600,
"assist_points": 400,
"flavor_text": "Iure odit et et modi ipsum nostrum omnis autem et consequatur aut dolores enim non.",
"artist": "Matilda Feeney"
},
"cardId": 135,
"count": 3
},
{
"card": null,
"cardId": 1133,
"count": 1
}
],
"missing": [
{
"cardId": 1133,
"count": 1
}
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.