Skip to content
GET /v1/card

A single card by id or name

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/hearthstone-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/hearthstone-api/v1/card" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/hearthstone-api/v1/card", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/hearthstone-api/v1/card");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/hearthstone-api/v1/card",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "data": {
        "card": {
            "id": "EX1_277",
            "set": "Legacy",
            "cost": 1,
            "name": "Arcane Missiles",
            "text": "Deal 3 damage randomly split among all enemies.",
            "type": "Spell",
            "armor": null,
            "elite": false,
            "image": "https://art.hearthstonejson.com/v1/render/latest/enUS/256x/EX1_277.png",
            "races": [],
            "artist": "Warren Mahy",
            "attack": null,
            "dbf_id": 564,
            "flavor": "You'd think you'd be able to control your missiles a little better since you're a powerful mage and all.",
            "health": null,
            "rarity": "Free",
            "mechanics": [
                "Immunetospellpower"
            ],
            "card_class": "Mage",
            "durability": null,
            "collectible": true,
            "spell_school": "Arcane"
        }
    },
    "meta": {
        "timestamp": "2026-06-08T01:18:33.013Z",
        "request_id": "17951487-0021-4433-b63d-a425c32abba3"
    },
    "status": "ok",
    "message": "Card retrieved successfully",
    "success": true
}