Get a card
curl --request GET \
--url https://api.cromos.so/v1/cards/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cromos.so/v1/cards/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cromos.so/v1/cards/{id}', 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://api.cromos.so/v1/cards/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.cromos.so/v1/cards/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cromos.so/v1/cards/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cromos.so/v1/cards/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "base1-4",
"expansion_id": "base1",
"number": "4",
"name": "Charizard",
"rarity": "Rare",
"illustrator": "Mitsuhiro Arita",
"image": {
"low": "https://assets.cromos.so/cards/base1-4/low.webp",
"high": "https://assets.cromos.so/cards/base1-4/high.webp"
},
"palette": [
"#eeca41",
"#e4ada3",
"#5c1315",
"#b47a73"
],
"category": "Pokemon",
"metadata": {
"hp": 120,
"types": [
"Fire"
],
"pokedex_numbers": [
6
],
"stage": "Stage2",
"evolve_from": "Charmeleon",
"description": "Spits fire that is hot enough to melt boulders. Known to unintentionally cause forest fires.",
"effect": null,
"trainer_type": null,
"energy_type": null,
"retreat": 3,
"abilities": [
{
"kind": "pokemon-power",
"name": "Energy Burn",
"text": "As often as you like during your turn (before your attack), you may turn all Energy attached to Charizard into Fire Energy for the rest of the turn. This power can't be used if Charizard is Asleep, Confused, or Paralyzed."
}
],
"attacks": [
{
"cost": [
"Fire",
"Fire",
"Fire",
"Fire"
],
"name": "Fire Spin",
"text": "Discard 2 Energy cards attached to Charizard in order to use this attack.",
"damage": "100"
}
],
"weaknesses": [
{
"type": "Water",
"modifier": "x2"
}
],
"resistances": [
{
"type": "Fighting",
"modifier": "-30"
}
],
"legality": {
"expanded": false,
"standard": false
}
},
"variants": [
{
"id": 14,
"type": "holo",
"subtype": "unlimited",
"size": "standard",
"stamps": [],
"foil": null,
"tcgplayer": [
{
"condition": "NM",
"currency": "USD",
"market": 85242,
"low": 42650,
"high": 149965,
"listing_count": 12,
"observed_on": "2026-08-17"
},
{
"condition": "LP",
"currency": "USD",
"market": 50972,
"low": 35593,
"high": 67838,
"listing_count": 25,
"observed_on": "2026-08-17"
},
{
"condition": "MP",
"currency": "USD",
"market": 38656,
"low": 34500,
"high": 46472,
"listing_count": 25,
"observed_on": "2026-08-17"
},
{
"condition": "HP",
"currency": "USD",
"market": 28147,
"low": 26900,
"high": 30000,
"listing_count": 25,
"observed_on": "2026-08-17"
},
{
"condition": "DMG",
"currency": "USD",
"market": 19690,
"low": 11877,
"high": 24800,
"listing_count": 25,
"observed_on": "2026-08-17"
}
]
},
{
"id": 15,
"type": "holo",
"subtype": "shadowless",
"size": "standard",
"stamps": [
"1st-edition"
],
"foil": null,
"tcgplayer": []
},
{
"id": 16,
"type": "holo",
"subtype": "shadowless",
"size": "standard",
"stamps": [],
"foil": null,
"tcgplayer": []
},
{
"id": 17,
"type": "holo",
"subtype": "1999-2000-copyright",
"size": "standard",
"stamps": [],
"foil": null,
"tcgplayer": []
}
],
"change": [
{
"window": "1d",
"card_variant_id": 14,
"printing": "holo",
"start_cents": 82538,
"end_cents": 85242,
"change_cents": 2704,
"change_bp": 328,
"start_as_of": "2026-08-10",
"observed_on": "2026-08-17"
},
{
"window": "7d",
"card_variant_id": 14,
"printing": "holo",
"start_cents": 82538,
"end_cents": 85242,
"change_cents": 2704,
"change_bp": 328,
"start_as_of": "2026-08-10",
"observed_on": "2026-08-17"
}
]
},
"error": null
}{
"data": {},
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"data": {},
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"data": {},
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"data": {},
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"data": {},
"error": {
"code": "<string>",
"message": "<string>"
}
}Cards
Get a card
One card, with every printing and its current prices.
GET
/
v1
/
cards
/
{id}
Get a card
curl --request GET \
--url https://api.cromos.so/v1/cards/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cromos.so/v1/cards/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cromos.so/v1/cards/{id}', 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://api.cromos.so/v1/cards/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.cromos.so/v1/cards/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cromos.so/v1/cards/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cromos.so/v1/cards/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "base1-4",
"expansion_id": "base1",
"number": "4",
"name": "Charizard",
"rarity": "Rare",
"illustrator": "Mitsuhiro Arita",
"image": {
"low": "https://assets.cromos.so/cards/base1-4/low.webp",
"high": "https://assets.cromos.so/cards/base1-4/high.webp"
},
"palette": [
"#eeca41",
"#e4ada3",
"#5c1315",
"#b47a73"
],
"category": "Pokemon",
"metadata": {
"hp": 120,
"types": [
"Fire"
],
"pokedex_numbers": [
6
],
"stage": "Stage2",
"evolve_from": "Charmeleon",
"description": "Spits fire that is hot enough to melt boulders. Known to unintentionally cause forest fires.",
"effect": null,
"trainer_type": null,
"energy_type": null,
"retreat": 3,
"abilities": [
{
"kind": "pokemon-power",
"name": "Energy Burn",
"text": "As often as you like during your turn (before your attack), you may turn all Energy attached to Charizard into Fire Energy for the rest of the turn. This power can't be used if Charizard is Asleep, Confused, or Paralyzed."
}
],
"attacks": [
{
"cost": [
"Fire",
"Fire",
"Fire",
"Fire"
],
"name": "Fire Spin",
"text": "Discard 2 Energy cards attached to Charizard in order to use this attack.",
"damage": "100"
}
],
"weaknesses": [
{
"type": "Water",
"modifier": "x2"
}
],
"resistances": [
{
"type": "Fighting",
"modifier": "-30"
}
],
"legality": {
"expanded": false,
"standard": false
}
},
"variants": [
{
"id": 14,
"type": "holo",
"subtype": "unlimited",
"size": "standard",
"stamps": [],
"foil": null,
"tcgplayer": [
{
"condition": "NM",
"currency": "USD",
"market": 85242,
"low": 42650,
"high": 149965,
"listing_count": 12,
"observed_on": "2026-08-17"
},
{
"condition": "LP",
"currency": "USD",
"market": 50972,
"low": 35593,
"high": 67838,
"listing_count": 25,
"observed_on": "2026-08-17"
},
{
"condition": "MP",
"currency": "USD",
"market": 38656,
"low": 34500,
"high": 46472,
"listing_count": 25,
"observed_on": "2026-08-17"
},
{
"condition": "HP",
"currency": "USD",
"market": 28147,
"low": 26900,
"high": 30000,
"listing_count": 25,
"observed_on": "2026-08-17"
},
{
"condition": "DMG",
"currency": "USD",
"market": 19690,
"low": 11877,
"high": 24800,
"listing_count": 25,
"observed_on": "2026-08-17"
}
]
},
{
"id": 15,
"type": "holo",
"subtype": "shadowless",
"size": "standard",
"stamps": [
"1st-edition"
],
"foil": null,
"tcgplayer": []
},
{
"id": 16,
"type": "holo",
"subtype": "shadowless",
"size": "standard",
"stamps": [],
"foil": null,
"tcgplayer": []
},
{
"id": 17,
"type": "holo",
"subtype": "1999-2000-copyright",
"size": "standard",
"stamps": [],
"foil": null,
"tcgplayer": []
}
],
"change": [
{
"window": "1d",
"card_variant_id": 14,
"printing": "holo",
"start_cents": 82538,
"end_cents": 85242,
"change_cents": 2704,
"change_bp": 328,
"start_as_of": "2026-08-10",
"observed_on": "2026-08-17"
},
{
"window": "7d",
"card_variant_id": 14,
"printing": "holo",
"start_cents": 82538,
"end_cents": 85242,
"change_cents": 2704,
"change_bp": 328,
"start_as_of": "2026-08-10",
"observed_on": "2026-08-17"
}
]
},
"error": null
}{
"data": {},
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"data": {},
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"data": {},
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"data": {},
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"data": {},
"error": {
"code": "<string>",
"message": "<string>"
}
}Ids are
<expansion>-<number>, so base1-4 is Charizard from Base Set. If you have a name and
not an id, pass it as q to List cards first.
You get the card object, including every printing and the current price of
each. For price history rather than the latest figure, use Get card prices.
Pass include=change to attach price-change data for the card’s headline printing. See
Change on the card object.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Query Parameters
Comma-separated extras to attach: change. A value that is not recognised is dropped rather than rejected.
⌘I