Pokemon
Cards
The card object
Each field available on a Pokémon card is described below with its field name and corresponding data type.
id <string>
The unique identifier for the card.
name <string>
The name of the Pokémon card.
supertype <string>
The supertype of the card (e.g., "Pokémon", "Trainer", "Energy").
subtypes <array of strings>
The subtypes for the card (e.g., "Stage 2", "MEGA", "GX").
types <array of strings>
The types of the Pokémon (e.g., "Fire", "Water", "Grass").
hp <string>
The total hit points (HP) of the Pokémon.
level <string>
The level of the card. This only pertains to cards from older sets and those of supertype Pokémon.
evolves_from <array of strings>
Which Pokémon(s) this card evolves from
rules <array of strings>
Any rules associated with the card. For example, VMAX rules, Mega rules, trainer rules, etc.
ancient_trait <map>
Special abilities or powers that the Pokémon has.
- name
<string>
: The name of the ancient trait - text
<string>
: The text value of the ancient trait
abilities <array of maps>
Special abilities or powers that the Pokémon has.
- type
<string>
: The type of ability (e.g., "Pokémon-Power", "Ability"). - name
<string>
: The name of the ability. - text
<string>
: A description of the ability.
attacks <array of maps>
The attack(s) the Pokémon can perform.
- cost
<array of strings>
: Energies required to perform the attack (e.g., "Fire", "Water"). - converted_energy_cost
<integer>
: The summed cost of energies for the attack. - name
<string>
: The name of the attack. - text
<string>
: The description of the attack. - damage
<string>
: The damage the attack deals.
weaknesses <array of maps>
One or more weaknesses for a given card. A weakness has the following fields:
- type
<string>
: The type of weakness, such as Fire or Water. - value
<string>
: The value of the weakness.
resistances <array of maps>
One or more resistances for a given card. A resistance has the following fields:
- type
<string>
: The type of resistance, such as Fire or Water. - value
<string>
: The value of the resistance.
retreat_cost <array of strings>
A list of costs it takes to retreat and return the card to your bench.
Each cost is an energy type such as Water or Fire.
converted_retreat_cost <string>
The converted retreat cost for a card is the count of energy types found within the retreat_cost field.
number <string>
The card number in its set. If the printed number is 87/160, the number is 87.
printed_number <string>
The printed number is what is actually printed on the card, such as 87/160 or SWSH101
rarity <string>
The rarity of the card.
rarity_code <string>
The code representing the card's rarity.
artist <string>
The artist who illustrated the card.
national_pokedex_numbers <array of integers>
The Pokédex number(s) for the Pokémon.
flavor_text <string>
The flavor text of the card. This is the text that can be found on some cards that is usually italiced near the bottom of the card.
regulation_mark <string>
A letter symbol found on a card that identifies its legality. Introduce with the Sword & Shield series.
images <array of maps>
Contains URLs for the card's images in various sizes.
- type
<string>
: The type of image (e.g., "front", "back"). - small
<string>
: The URL of the small image. - medium
<string>
: The URL of the medium image. - large
<string>
: The URL of the large image.
expansion <object>
Details about the card's expansion or set.
- id
<string>
: The ID of the expansion. - name
<string>
: The name of the expansion. - series
<string>
: The series of the expansion. - total
<integer>
: Total cards in the set, including secret rares. - printed_total
<integer>
: Number of cards in the set that are printed on a card. If a card is 87/160, the printed_total is 160. - language
<string>
: The language of the expansion. - language_code
<string>
: The language code of the expansion (e.g., "EN", "JA") - release_date
<string>
: The release date of the expansion, in the format YYYY/MM/DD. - is_online_only
<boolean>
: Indicates if the set is only available online, such as Pocket expansions.
language <string>
The language of the card.
language_code <string>
The language code of the card (e.g., "EN", "JA").
expansion_sort_order <integer>
The position of the card in the expansion, used for sorting.
variants <array of maps>
A list of collectible variants of the card.
- name
<string>
: The name of the variant. - images
<array of maps>
: Any images available for the specific variant, such as a 1st edition image versus unlimited. - prices
<array>
: The price data for the variant.
Here is an example JSON representation of the Pokémon card object:
{
"id": "base1-4",
"name": "Charizard",
"supertype": "Pokémon",
"subtypes": ["Stage 2"],
"types": ["Fire"],
"hp": "120",
"abilities": [
{
"type": "Pokémon 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"],
"converted_energy_cost": 4,
"name": "Fire Spin",
"text": "Discard 2 Energy cards attached to Charizard in order to use this attack.",
"damage": "100"
}
],
"number": "4",
"rarity": "Rare Holo",
"rarity_code": "★H",
"artist": "Mitsuhiro Arita",
"national_pokedex_numbers": [6],
"images": [
{
"type": "front",
"small": "https://images.scrydex.com/pokemon/base1-4/small",
"medium": "https://images.scrydex.com/pokemon/base1-4/medium",
"large": "https://images.scrydex.com/pokemon/base1-4/large"
}
],
"expansion": {
"id": "base1",
"name": "Base",
"series": "Base",
"total": 102,
"printed_total": 102,
"language": "English",
"language_code": "EN",
"release_date": "1999/01/09",
"is_online_only": false
},
"language": "English",
"language_code": "EN",
"expansion_sort_order": 4,
"variants": [
{
"name": "unlimitedHolofoil",
"prices": []
},
{
"name": "firstEditionShadowlessHolofoil",
"prices": []
},
{
"name": "unlimitedShadowlessHolofoil",
"prices": []
}
]
}
curl --request GET \
--url https://api.scrydex.com/pokemon/v1/cards/xy1-1 \
--header 'X-Api-Key: <api_key_here>'
--header 'X-Team-ID: <team_id_here>'
Get a card
This endpoint retrieves a specific Pokémon card by its unique identifier.
URL
GET https://api.scrydex.com/pokemon/v1/cards/<id>
URL Parameters
- id
<string>
The unique identifier of the card to retrieve. This is a required parameter.
Query Parameters
select
<comma-separated string>
Specifies which fields to return in the response (e.g.,"name,types,attacks"
).casing
<string>
Allows changing the output format of the response. Supported values are:camel
snake
include
<comma-separated string>
Fetch additional resources alongside the card. Supported values include:prices
(Fetches price details for the card. It is recommended to not include prices if you don't need that data for a given request.)
Here is how you can retrieve a card using various programming languages (SDKs coming soon):
curl --request GET \
--url https://api.scrydex.com/pokemon/v1/cards/xy1-1 \
--header 'X-Api-Key: <api_key_here>'
--header 'X-Team-ID: <team_id_here>'
Search cards
Fetching and searching for multiple cards in the Scrydex API is simple yet powerful.
Use the various query parameters to customize your requests and retrieve the specific cards or data you need.
Query Parameters
All query parameters are optional, but combining them allows for advanced and targeted searches.
Note that all query parameters can be used with snake case or camel case (so pageSize or page_size are both acceptable).
Parameter | Description | Default Value |
---|---|---|
q | A search query for advanced filtering. Examples can be found below. | - |
page | The page of data to access. | 1 |
page_size | The maximum number of cards to return per page. The highest allowable value is 100 . |
100 (max: 100 ) |
select | A comma-delimited list of fields to return in the response (e.g., ?select=id,name ). If omitted, all fields are returned. |
- |
include | Used to include additional data, such as prices. These are fields you opt-in to, and aren't included in the response by default. | - |
Key Features of q
(Search Queries)
Search queries use a Lucene-like syntax for filtering, making it easy to build powerful card searches.
Below are examples of supported query operations:
Keyword Matching
- Find cards that contain "charizard" in the name field:
name:charizard
- Search for the phrase "venusaur v" in the name field:
name:"venusaur v"
- Combine multiple conditions:
- Cards with "charizard" in the name AND "mega" in the
subtypes
field:name:charizard subtypes:mega
- Cards with "charizard" in the name AND either "mega" or "vmax" in
subtypes
:name:charizard (subtypes:mega OR subtypes:vmax)
- Cards with "charizard" in the name AND "mega" in the
Exclude Results
- Retrieve only cards with
subtypes:mega
while excluding water types:subtypes:mega -types:water
Wildcard Matching
- Cards where the name starts with "char":
name:char*
- Cards where the name starts with "char" and ends with "der":
name:char*der
Exact Matching
- Match cards where the name is exactly "charizard" (no other characters appear in the name field):
!name:charizard
Range Searches
Fields containing numerical data (e.g., "hp", "national_pokedex_numbers") support range searches:
- Cards featuring the original 151 Pokémon:
national_pokedex_numbers:[1 TO 151]
- Cards with HP values up to 100:
hp:[* TO 100]
- Cards with HP values greater than or equal to 150:
hp:[150 TO *]
Pro Tip: Use square brackets
[ ]
for inclusive ranges, and curly braces{ }
for exclusive ranges.
Searching Nested Fields
Leverage the .
separator to search nested fields:
- Filter by expansion ID:
expansion.id:sm1
- Find cards with an attack named "Hypnosis":
attacks.name:Hypnosis
- Search for cards banned in Standard play:
legalities.standard:banned
Example: Fetch & Search Cards
Use the query parameters to retrieve and search cards. Below are examples using Scrydex API:
Ordering Data
The orderBy
parameter allows for flexible sorting of results:
- Order cards by number within their set:
?orderBy=number
- Combine ascending (
ASC
) and descending (DESC
) order:?orderBy=name,-number
Field Selection
Optimize and reduce response payload sizes using the select
parameter to return only the fields you care about:
- Example: Request only
id
andname
fields for all cards:?select=id,name
Response Example
Here’s a sample response for a search query:
{
"status": "success",
"data": [
{
"id": "xy7-54",
"name": "Gardevoir-EX",
"hp": 170,
"types": ["Fairy"],
"subtypes": ["EX"]
},
{
"id": "sm3-20",
"name": "Charizard-GX",
"hp": 250,
"types": ["Fire"],
"subtypes": ["GX"]
}
],
"page": 1,
"pageSize": 2,
"totalCount": 5000
}
Best Practices for Fetching & Searching
- Paginate Results: Use the
page
andpageSize
parameters to prevent overloading responses. - Limit Fields Returned: Use the
select
parameter to only get the data you need. - Avoid Overhead: Minimize wildcard or range queries for better performance.