List cards in an expansion

GET /api/v1/onepiece/expansions/{id}/cards read:catalog 1 credit

Page through one expansion’s cards. Equivalent to searching cards with `expansion.id:{id}`, but scoped by path so you can’t accidentally widen the query. Accepts the same `q`, `orderBy`, `distinct`, paging and `include` params. `language` is honoured but NOT defaulted here: an expansion id already names a language (`EB01` vs `EB01_ja`), so an English default would empty every Japanese set.

Try it GET /api/v1/onepiece/expansions/sv3pt5/cards?page_size=10&include=prices

These inputs are shared across all docs pages, so an id entered here carries over.

response
200 35ms preloaded server-side with the default context
object · 6 keys
{
  "success": true,
  "data": [
    {
      "id": "OP01-064",
      "name": "Alvida",
      "number": "64",
      "printed_number": "64",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-064.small.r1.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-064.large.r1.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-064.large.r1.webp"
        }
      ],
      "expansion": {
        "id": "OP01",
        "name": "Romance Dawn",
        "total": 121,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP01",
        "printed_total": 121,
        "release_date": "2022/12/02",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "tcgplayer_id": "454591",
      "variants": [
        {
          "name": "normal",
          "images": [
            {
              "type": "front",
              "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-064.small.r1.webp",
              "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-064.large.r1.webp",
              "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-064.large.r1.webp"
            }
          ]
        }
      ],
      "type": "Character",
      "cost": "2",
      "power": "3000",
      "attribute": "Strike",
      "colors": [
        "Blue"
      ],
      "rules": [
        "[DON!! x1] [When Attacking] You may trash 1 card from your hand: Return up to 1 of your opponent's Characters with a cost of 3 or less to the owner's hand."
      ],
      "counter": "2000",
      "subtypes": [
        "Buggy Pirates"
      ],
      "rarity": "Common",
      "pricing": {
        "currency": "USD",
        "market": 0.17,
        "is_stale": false,
        "conditions": [
          {
            "condition": "NM",
            "price": 0.17
          },
          {
            "condition": "LP",
            "price": 0.11
          }
        ],
        "graded": [
          {
            "company": "BGS",
            "grade": "10",
            "value": 458,
            "low": 389.3,
            "high": 526.7,
            "confidence": "low",
            "value_kind": "feed",
            "sold_count": 0
          },
          {
            "company": "CGC",
            "grade": "10",
            "value": 282,
            "low": 239.7,
            "high": 324.3,
            "confidence": "low",
            "value_kind": "feed",
            "sold_count": 0
          },
          {
            "company": "PSA",
            "grade": "10",
            "value": 173.5,
            "low": 161.75,
            "high": 263,
            "confidence": "low",
            "value_kind": "feed",
            "sold_count": 7
          },
          {
            "company": "PSA",
            "grade": "9",
            "value": 31.3,
            "low": 20.15,
            "high": 33.35,
            "confidence": "med",
            "value_kind": "blended",
            "sold_count": 2
          },
          {
            "company": "SGC",
            "grade": "10",
            "value": 212,
            "low": 180.2,
            "high": 243.8,
            "confidence": "low",
            "value_kind": "feed",
            "sold_count": 0
          }
        ],
        "market_updated_at": "2026-09-21T03:37:55.911Z",
        "trend_7d": {
          "direction": "up",
          "percent": 6.25
        }
      }
    },
    {
      "id": "OP01-064vaa",
      "name": "Alvida (altArt)",
      "number": "64",
      "printed_number": "64",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-064vaa.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-064vaa.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-064vaa.large.webp"
        }
      ],
      "expansion": {
        "id": "OP01",
        "name": "Romance Dawn",
        "total": 121,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP01",
        "printed_total": 121,
        "release_date": "2022/12/02",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "tcgplayer_id": null,
      "variants": [
        {
          "name": "normal",
          "images": [
            {
              "type": "front",
              "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-064vaa.small.webp",
              "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-064vaa.large.webp",
              "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-064vaa.large.webp"
            }
          ]
        }
      ],
      "type": "Character",
      "cost": "2",
      "power": "3000",
      "attribute": "Strike",
      "colors": [
        "Blue"
      ],
      "rules": [
        "[DON!! x1] [When Attacking] You may trash 1 card from your hand: Return up to 1 of your opponent's Characters with a cost of 3 or less to the owner's hand."
      ],
      "counter": "2000",
      "subtypes": [
        "Buggy Pirates"
      ],
      "rarity": "Common",
      "pricing": {
        "currency": "USD",
        "market": 10.76,
        "is_stale": false,
        "conditions": [],
        "graded": [],
        "market_updated_at": "2026-06-15T02:47:10.800Z",
        "trend_7d": {
          "direction": "flat",
          "percent": 0
        }
      }
    },
    {
      "id": "OP01-063",
      "name": "Arlong",
      "number": "63",
      "printed_number": "63",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-063.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-063.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-063.large.webp"
        }
      ],
      "expansion": {
        "id": "OP01",
        "name": "Romance Dawn",
        "total": 121,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP01",
        "printed_total": 121,
        "release_date": "2022/12/02",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "tcgplayer_id": "454590",
      "variants": [
        {
          "name": "normal",
          "images": [
            {
              "type": "front",
              "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-063.small.webp",
              "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-063.large.webp",
              "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-063.large.webp"
            }
          ]
        }
      ],
      "type": "Character",
      "cost": "4",
      "power": "5000",
      "attribute": "Slash",
      "colors": [
        "Blue"
      ],
      "rules": [
        "[DON!! x1] [Activate: Main] You may rest this Character: Choose 1 card from your opponent's hand; your opponent reveals that card. If the revealed card is an Event, place up to 1 card from your opponent's Life area at the bottom of the owner's deck."
      ],
      "counter": "1000",
      "subtypes": [
        "Fish-Man",
        "Arlong Pirates"
      ],
      "rarity": "Uncommon",
      "pricing": {
        "currency": "USD",
        "market": 0.14,
        "is_stale": false,
        "conditions": [
          {
            "condition": "NM",
            "price": 0.14
          },
          {
            "condition": "LP",
            "price": 0.11
          }
        ],
        "graded": [],
        "market_updated_at": "2026-09-21T03:37:55.911Z",
        "trend_7d": {
          "direction": "flat",
          "percent": 0
        }
      }
    },
    {
      "id": "OP01-116",
      "name": "Artificial Devil Fruit SMILE",
      "number": "116",
      "printed_number": "116",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-116.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-116.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-116.large.webp"
        }
      ],
      "expansion": {
        "id": "OP01",
        "name": "Romance Dawn",
        "total": 121,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP01",
        "printed_total": 121,
        "release_date": "2022/12/02",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "tcgplayer_id": "454660",
      "variants": [
        {
          "name": "normal",
          "images": [
            {
              "type": "front",
              "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-116.small.webp",
              "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-116.large.webp",
              "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-116.large.webp"
            }
          ]
        }
      ],
      "type": "Event",
      "cost": "2",
      "colors": [
        "Purple"
      ],
      "rules": [
        "[Main] Look at 5 cards from the top of your deck; play up to 1 {SMILE} type Character card with a cost of 3 or less. Then, place the rest at the bottom of your deck in any order.",
        "[Trigger] Activate this card's [Main] effect."
      ],
      "subtypes": [
        "Animal Kingdom Pirates",
        "SMILE"
      ],
      "rarity": "Uncommon",
      "pricing": {
        "currency": "USD",
        "market": 0.11,
        "is_stale": false,
        "conditions": [
          {
            "condition": "NM",
            "price": 0.11
          }
        ],
        "graded": [],
        "market_updated_at": "2026-09-21T03:37:55.911Z",
        "trend_7d": {
          "direction": "flat",
          "percent": 0
        }
      }
    },
    {
      "id": "OP01-032",
      "name": "Ashura Doji",
      "number": "32",
      "printed_number": "32",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-032.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-032.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-032.large.webp"
        }
      ],
      "expansion": {
        "id": "OP01",
        "name": "Romance Dawn",
        "total": 121,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP01",
        "printed_total": 121,
        "release_date": "2022/12/02",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "tcgplayer_id": "454553",
      "variants": [
        {
          "name": "normal",
          "images": [
            {
              "type": "front",
              "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-032.small.webp",
              "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-032.large.webp",
              "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-032.large.webp"
            }
          ]
        }
      ],
      "type": "Character",
      "cost": "3",
      "power": "4000",
      "attribute": "Slash",
      "colors": [
        "Green"
      ],
      "rules": [
        "[DON!! x1] If your opponent has 2 or more rested Characters, this Character gains +2000 power."
      ],
      "counter": "1000",
      "subtypes": [
        "Land of Wano",
        "The Akazaya Nine"
      ],
      "rarity": "Uncommon",
      "pricing": {
        "currency": "USD",
        "market": 0.1,
        "is_stale": false,
        "conditions": [
          {
            "condition": "NM",
            "price": 0.1
          },
          {
            "condition": "MP",
            "price": 0.01
          }
        ],
        "graded": [],
        "market_updated_at": "2026-09-21T03:37:55.911Z",
        "trend_7d": {
          "direction": "down",
          "percent": -9.09
        }
      }
    },
    {
      "id": "OP01-107",
      "name": "Babanuki",
      "number": "107",
      "printed_number": "107",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-107.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-107.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-107.large.webp"
        }
      ],
      "expansion": {
        "id": "OP01",
        "name": "Romance Dawn",
        "total": 121,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP01",
        "printed_total": 121,
        "release_date": "2022/12/02",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "tcgplayer_id": "454643",
      "variants": [
        {
          "name": "normal",
          "images": [
            {
              "type": "front",
              "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-107.small.webp",
              "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-107.large.webp",
              "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-107.large.webp"
            }
          ]
        }
      ],
      "type": "Character",
      "cost": "5",
      "power": "7000",
      "attribute": "Ranged",
      "colors": [
        "Purple"
      ],
      "counter": "1000",
      "subtypes": [
        "Animal Kingdom Pirates",
        "SMILE"
      ],
      "rarity": "Common",
      "pricing": {
        "currency": "USD",
        "market": 0.05,
        "is_stale": false,
        "conditions": [
          {
            "condition": "NM",
            "price": 0.05
          }
        ],
        "graded": [],
        "market_updated_at": "2026-09-21T03:37:55.911Z",
        "trend_7d": {
          "direction": "flat",
          "percent": 0
        }
      }
    },
    {
      "id": "OP01-105",
      "name": "Bao Huang",
      "number": "105",
      "printed_number": "105",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-105.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-105.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-105.large.webp"
        }
      ],
      "expansion": {
        "id": "OP01",
        "name": "Romance Dawn",
        "total": 121,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP01",
        "printed_total": 121,
        "release_date": "2022/12/02",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "tcgplayer_id": "454641",
      "variants": [
        {
          "name": "normal",
          "images": [
            {
              "type": "front",
              "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-105.small.webp",
              "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-105.large.webp",
              "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-105.large.webp"
            }
          ]
        }
      ],
      "type": "Character",
      "cost": "2",
      "power": "3000",
      "attribute": "Wisdom",
      "colors": [
        "Purple"
      ],
      "rules": [
        "[On Play] Choose 2 cards from your opponent's hand; your opponent reveals those cards."
      ],
      "counter": "1000",
      "subtypes": [
        "Animal Kingdom Pirates",
        "SMILE"
      ],
      "rarity": "Common",
      "pricing": {
        "currency": "USD",
        "market": 0.05,
        "is_stale": false,
        "conditions": [
          {
            "condition": "NM",
            "price": 0.05
          }
        ],
        "graded": [],
        "market_updated_at": "2026-09-21T03:37:55.911Z",
        "trend_7d": {
          "direction": "flat",
          "percent": 0
        }
      }
    },
    {
      "id": "OP01-090",
      "name": "Baroque Works",
      "number": "90",
      "printed_number": "90",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-090.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-090.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-090.large.webp"
        }
      ],
      "expansion": {
        "id": "OP01",
        "name": "Romance Dawn",
        "total": 121,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP01",
        "printed_total": 121,
        "release_date": "2022/12/02",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "tcgplayer_id": "454621",
      "variants": [
        {
          "name": "normal",
          "images": [
            {
              "type": "front",
              "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-090.small.webp",
              "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-090.large.webp",
              "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-090.large.webp"
            }
          ]
        }
      ],
      "type": "Event",
      "cost": "1",
      "colors": [
        "Blue"
      ],
      "rules": [
        "[Main] Look at 5 cards from the top of your deck; reveal up to 1 {Baroque Works} type card other than [Baroque Works] and add it to your hand. Then, place the rest at the bottom of your deck in any order."
      ],
      "subtypes": [
        "Baroque Works"
      ],
      "rarity": "Uncommon",
      "pricing": {
        "currency": "USD",
        "market": 0.12,
        "is_stale": false,
        "conditions": [
          {
            "condition": "NM",
            "price": 0.12
          },
          {
            "condition": "LP",
            "price": 0.11
          }
        ],
        "graded": [],
        "market_updated_at": "2026-09-21T03:37:55.911Z",
        "trend_7d": {
          "direction": "flat",
          "percent": 0
        }
      }
    },
    {
      "id": "OP01-074",
      "name": "Bartholomew Kuma (foil)",
      "number": "74",
      "printed_number": "74",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-074.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-074.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-074.large.webp"
        }
      ],
      "expansion": {
        "id": "OP01",
        "name": "Romance Dawn",
        "total": 121,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP01",
        "printed_total": 121,
        "release_date": "2022/12/02",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "tcgplayer_id": "454604",
      "variants": [
        {
          "name": "holofoil",
          "images": [
            {
              "type": "front",
              "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-074.small.webp",
              "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-074.large.webp",
              "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-074.large.webp"
            }
          ]
        }
      ],
      "type": "Character",
      "cost": "4",
      "power": "5000",
      "attribute": "Strike",
      "colors": [
        "Blue"
      ],
      "rules": [
        "[Blocker] (After your opponent declares an attack, you may rest this card to make it the new target of the attack.)",
        "[On K.O.] Play up to 1 [Pacifista] with a cost of 4 or less from your hand."
      ],
      "counter": "1000",
      "subtypes": [
        "The Seven Warlords of the Sea",
        "Revolutionary Army"
      ],
      "rarity": "Rare",
      "pricing": {
        "currency": "USD",
        "market": 0.21,
        "is_stale": false,
        "conditions": [
          {
            "condition": "NM",
            "price": 0.21
          },
          {
            "condition": "LP",
            "price": 0.2
          }
        ],
        "graded": [
          {
            "company": "BGS",
            "grade": "10",
            "value": 129,
            "low": 109.65,
            "high": 148.35,
            "confidence": "low",
            "value_kind": "feed",
            "sold_count": 0
          },
          {
            "company": "CGC",
            "grade": "10",
            "value": 79,
            "low": 67.15,
            "high": 90.85,
            "confidence": "low",
            "value_kind": "feed",
            "sold_count": 0
          },
          {
            "company": "PSA",
            "grade": "10",
            "value": 99.17,
            "low": 84.29,
            "high": 114.05,
            "confidence": "low",
            "value_kind": "feed",
            "sold_count": 0
          },
          {
            "company": "SGC",
            "grade": "10",
            "value": 60,
            "low": 51,
            "high": 69,
            "confidence": "low",
            "value_kind": "feed",
            "sold_count": 0
          }
        ],
        "market_updated_at": "2026-09-21T03:37:55.911Z",
        "trend_7d": {
          "direction": "down",
          "percent": -4.55
        }
      }
    },
    {
      "id": "OP01-019",
      "name": "Bartolomeo",
      "number": "19",
      "printed_number": "19",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-019.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-019.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-019.large.webp"
        }
      ],
      "expansion": {
        "id": "OP01",
        "name": "Romance Dawn",
        "total": 121,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP01",
        "printed_total": 121,
        "release_date": "2022/12/02",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "tcgplayer_id": "454542",
      "variants": [
        {
          "name": "normal",
          "images": [
            {
              "type": "front",
              "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-019.small.webp",
              "medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-019.large.webp",
              "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-019.large.webp"
            }
          ]
        }
      ],
      "type": "Character",
      "cost": "2",
      "power": "2000",
      "attribute": "Special",
      "colors": [
        "Red"
      ],
      "rules": [
        "[Blocker] (After your opponent declares an attack, you may rest this card to make it the new target of the attack.)",
        "[DON!! x2] [Opponent's Turn] This Character gains +3000 power."
      ],
      "counter": "1000",
      "subtypes": [
        "Supernovas",
        "Barto Club"
      ],
      "rarity": "Common",
      "pricing": {
        "currency": "USD",
        "market": 0.08,
        "is_stale": false,
        "conditions": [
          {
            "condition": "NM",
            "price": 0.08
          }
        ],
        "graded": [],
        "market_updated_at": "2026-09-21T03:37:55.911Z",
        "trend_7d": {
          "direction": "flat",
          "percent": 0
        }
      }
    }
  ],
  "page": 1,
  "page_size": 10,
  "total_count": 200,
  "language": "all"
}
tracks the inputs above
curl -X GET 'https://service.rip.fun/api/v1/onepiece/expansions/sv3pt5/cards?page_size=10&include=prices' \
  -H 'X-API-Key: rip_…'

Request fields

FieldTypeRequiredDescription
qstringAdvanced search, e.g. `name:char*`, `(subtypes:mega OR subtypes:vmax)`, `-types:water`, `hp:[150 TO *]`, `expansion.id:sv1`; on One Piece, the gameplay fields too — `colors:Black cost:[1 TO 3] type:Character`. Capped at 512 characters, 20 terms and 5 levels of parentheses — a generated filter reaches those long before a hand-typed one does. Unknown fields return 400 with a suggestion. Full grammar + field list: see the Search & filtering guide.
languagestringLanguage code, or a comma list. **Defaults to `en`**: every card exists once per printed language, so an unfiltered list interleaves two catalogs. Pass `language=all` for every language, or `language=ja`. The applied value comes back in the envelope. A `language:`, `id:` or `expansion.id:` term in `q` already pins the language, so the default steps aside.
orderBystringComma list; `-` prefix = DESC, e.g. `-release_date`. Max 3 keys. Cards sort on `name`, `number`, `rarity`, `raw_price`/`market_price`, `release_date`, `expansion.id`, `id` (plus `hp` on Pokémon and `cost`, `power`, `counter`, `life` on One Piece). Missing values sort LAST in both directions, and every sort carries a unique `id` tiebreak, so paging a sorted result set can neither skip nor repeat a row.
distinctstringSet to `code` to return one row per card rather than one per printing, and to make `total_count` count cards. Without it a page of 30 is ~17 cards and a code whose printings straddle a page boundary appears on both. The row kept is the base printing; filters that vary BETWEEN printings of a code (`rarity`, `raw_price`, `is_holo`) do not combine with it — every gameplay field does.
page / page_sizenumberPagination. `page` ≥ 1 (default 1), `page_size` 1–100 (default 100, `pageSize` also accepted). Out-of-range values are rejected, never clamped. `page × page_size` capped at 10,000, so narrow with `q` to go deeper. Always compare `total_count` against the rows you received — 100 is a cap, not a promise, and a truncated page looks identical to a complete one. Collections you might assume fit in a single call do not: there are more than 100 One Piece expansions, so an unpaginated `/expansions` omits the newest sets and everything you would have walked from them.
selectstringComma list of top-level fields to keep (`id` always included). Trims response size and does not change the credit cost.
includestringSet to `prices` to embed the pricing object on every returned object. **No surcharge** — metering is a flat 1 credit per request whatever the response carries, so hydrating a page of 100 with prices costs the same as without, and strictly less than a second call per row.

Response fields (data)

FieldDescription
data[].idCard id (variant printings carry a suffix, e.g. `…vh` for holofoil, `…vrh` for reverse holofoil)
data[].name / supertype / subtypesCard identity + classification
data[].rarity / number / printed_number / artistPrint metadata
data[].images[]`{ type, small, medium, large }`, `type` always `front`. Use `small` for grids and `large` for detail views. Two caveats: `medium` is always an alias of `large` (only two sizes are stored), and on cards whose source supplied a single rendition `small` is an alias too — it points at the same file as `large`. Compare the two URLs before assuming `small` is cheap; where they differ it is roughly 6× smaller.
data[].language / language_codeCard language: `English`/`en`, `Japanese`/`ja`. Each printing is its own object.
data[].tcgplayer_idTCGplayer product id for cross-referencing, or null when we don’t have one
data[].expansionNested expansion object (id, name, series, total, release_date, logo, symbol, …)
data[].variants[]`{ name, images[] }`, one self-describing element per card printing
data[].pricingPresent only with `include=prices` — and then always present, even where we hold nothing: `market` comes back `null` and the two arrays empty rather than the key being dropped. `{ currency, market, market_updated_at, is_stale, trend_7d, conditions[], graded[] }`, with every amount a **number** rather than a decimal string. `trend_7d` is `{ direction, percent }`, and it is the only trend window there is. See the Pricing data guide.
data[].pricing.conditions[]`{ condition, price }` raw ladder (NM/LP/MP/HP/DMG) for the card’s variant — those two fields only
data[].pricing.graded[]Reconciled graded value per company+grade: `{ company, grade, value, low, high, confidence, value_kind, sold_count, trend? }`

Errors

StatusCodeWhen
400parse_errormalformed `q` syntax: an unclosed quote or parenthesis, a missing term, a stray operator. `details.position` is the 0-based character offset of the offending token.
400unknown_fielda `q` term names a field this resource does not register (`subtype:` for `subtypes:`, a card field on `/sealed`), or `orderBy` names a field you cannot sort on. The message carries a did-you-mean suggestion and `details.position` points at it. Unknown fields are rejected, never ignored — an empty page would be the more expensive answer.
400invalid_valuethe field exists but the value does not fit it: a range on a field that has no ordering, a non-numeric bound, a value outside a closed vocabulary.
400query_too_complex`q` exceeds 512 characters, 20 terms or 5 levels of parenthesis nesting, `orderBy` names more than 3 keys, or a value breaks the wildcard guardrails (a leading `*`, more than 3 per value, fewer than 2 literal characters). Filter builders hit this before people do — count terms as you assemble, and fall back to several narrower calls rather than one wide one.
400invalid_pagination`page`/`page_size` non-numeric, out of range, or `page × page_size` > 10,000
400invalid_language`language` is not a language code — expected `en`, `ja`, a comma list of codes, or `all`
400invalid_distinct`distinct` is anything other than `code`
400invalid_select`select` names more than 40 fields. Names that do not exist are ignored rather than rejected, so a typo silently drops the field — check the response, not just the status.
400invalid_include`include` carries a value this endpoint does not offer. Cards and sealed accept `prices`; the expansion endpoints accept none at all.
404not_foundno such object for this game (a Pokémon id on `/onepiece` is "not found")

See Errors for the response envelope and the full code list.