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"
},
"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": [
{
"type": "holo",
"subtype": "unlimited",
"size": "standard",
"stamps": [],
"foil": null,
"tcgplayer": [
{
"condition": "NM",
"currency": "USD",
"market": 81865,
"low": 42650,
"high": 149965,
"observed_on": "2026-08-02"
},
{
"condition": "LP",
"currency": "USD",
"market": 51007,
"low": 35593,
"high": 67838,
"observed_on": "2026-08-02"
},
{
"condition": "MP",
"currency": "USD",
"market": 39188,
"low": 34500,
"high": 46472,
"observed_on": "2026-08-02"
},
{
"condition": "HP",
"currency": "USD",
"market": 28103,
"low": 25500,
"high": 32342,
"observed_on": "2026-08-02"
},
{
"condition": "DMG",
"currency": "USD",
"market": 20006,
"low": 11877,
"high": 24800,
"observed_on": "2026-08-02"
}
],
"cardmarket": {
"price_kind": "plain",
"currency": "EUR",
"observed_on": "2026-08-03",
"avg": 44670,
"low": 9995,
"trend": 33683,
"avg_holo": null,
"low_holo": null,
"trend_holo": 12363
}
},
{
"type": "holo",
"subtype": "shadowless",
"size": "standard",
"stamps": [
"1st-edition"
],
"foil": null,
"tcgplayer": [],
"cardmarket": null
},
{
"type": "holo",
"subtype": "shadowless",
"size": "standard",
"stamps": [],
"foil": null,
"tcgplayer": [],
"cardmarket": null
},
{
"type": "holo",
"subtype": "1999-2000-copyright",
"size": "standard",
"stamps": [],
"foil": null,
"tcgplayer": [],
"cardmarket": null
}
]
},
"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>"
}
}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"
},
"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": [
{
"type": "holo",
"subtype": "unlimited",
"size": "standard",
"stamps": [],
"foil": null,
"tcgplayer": [
{
"condition": "NM",
"currency": "USD",
"market": 81865,
"low": 42650,
"high": 149965,
"observed_on": "2026-08-02"
},
{
"condition": "LP",
"currency": "USD",
"market": 51007,
"low": 35593,
"high": 67838,
"observed_on": "2026-08-02"
},
{
"condition": "MP",
"currency": "USD",
"market": 39188,
"low": 34500,
"high": 46472,
"observed_on": "2026-08-02"
},
{
"condition": "HP",
"currency": "USD",
"market": 28103,
"low": 25500,
"high": 32342,
"observed_on": "2026-08-02"
},
{
"condition": "DMG",
"currency": "USD",
"market": 20006,
"low": 11877,
"high": 24800,
"observed_on": "2026-08-02"
}
],
"cardmarket": {
"price_kind": "plain",
"currency": "EUR",
"observed_on": "2026-08-03",
"avg": 44670,
"low": 9995,
"trend": 33683,
"avg_holo": null,
"low_holo": null,
"trend_holo": 12363
}
},
{
"type": "holo",
"subtype": "shadowless",
"size": "standard",
"stamps": [
"1st-edition"
],
"foil": null,
"tcgplayer": [],
"cardmarket": null
},
{
"type": "holo",
"subtype": "shadowless",
"size": "standard",
"stamps": [],
"foil": null,
"tcgplayer": [],
"cardmarket": null
},
{
"type": "holo",
"subtype": "1999-2000-copyright",
"size": "standard",
"stamps": [],
"foil": null,
"tcgplayer": [],
"cardmarket": null
}
]
},
"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>"
}
}Ids are
<expansion>-<number> — base1-4 is Charizard from Base Set. If you have a name and
not an id, pass it as q to List cards first.
The response is the card object, including every printing and the current
price of each. For price history rather than the latest figure, use
Get card prices.⌘I