IMPORTXML and IMPORTHTML formulas break on card price pages because those pages are built for browsers, not spreadsheets: when a page fills in the price with JavaScript, turns away Google's fetcher or changes its layout, the formula finds no price and shows Could not fetch url, Imported content is empty or an endless Loading. The fix is to read a plain price instead of a web page: =IMPORTDATA("https://api.tickermint.cards/sheets/price?q=charizard%20ex%20199/165") puts the card's latest TCGplayer market price in one cell (319.84 on October 16, 2026), with no key or sign-up.
IMPORTXML not working for card prices in Google Sheets
WHY IMPORTXML STOPS WORKING
- IMPORTXML and IMPORTHTML read the page that a site sends before any JavaScript runs. Many shopping and price pages load the price a moment later with JavaScript, so the formula sees an empty spot where the price will be.
- The formula is fetched from Google's servers, not from your computer. A site can slow down, block or challenge those requests, and the cell shows Could not fetch url or keeps loading.
- An XPath points at one exact place in a page's code. When the site redesigns or renames that part, the same formula quietly returns nothing or the wrong number.
- None of this is something you can fix in the formula: the page is simply not meant to be read by a spreadsheet. A source that answers with the price itself does not have these problems.
1. ONE CARD BY NAME
Paste this into any cell. Type the card the way you would search for it, with the collector number to be sure: the cell gets the latest TCGplayer market price in US dollars (319.84 on October 16, 2026). The second formula reads the name from cell A2, so you can fill it down next to your list of cards and delete the old IMPORTXML column.
=IMPORTDATA("https://api.tickermint.cards/sheets/price?q=charizard%20ex%20199/165")
=IMPORTDATA("https://api.tickermint.cards/sheets/price?q="&ENCODEURL(A2))2. OTHER VALUES
Add &field= to get something other than the market price: market (the default), low (TCGplayer's low price for the same printing), name (the card it matched, to check it is the right one), url (its TickerMint page), id (its TickerMint id) or date (the day of the price). Add &game= to stay in one game: one-piece, lorcana, riftbound, gundam, yugioh. If a name cannot be matched, the cell says so instead of showing an error.
=IMPORTDATA("https://api.tickermint.cards/sheets/price?q="&ENCODEURL(A2)&"&field=low")3. BY ID
A plain number is read as a TickerMint id: the number at the end of the card's page address (tickermint.cards/card/517045). An id always points to the same card, so it never matches the wrong one.
=IMPORTDATA("https://api.tickermint.cards/sheets/price?q=517045")4. A WHOLE LIST AT ONCE
One formula prices up to 50 cards from a column of names or ids: a header row, then one row per card with query, name, market, date and url, in the same order as your list. Put it in the cell next to the top of your list. Past 50, the extra rows say skipped, so split longer lists into blocks of 50.
=IMPORTDATA("https://api.tickermint.cards/sheets/prices?q="&TEXTJOIN("&q=", TRUE, ARRAYFORMULA(ENCODEURL(A2:A51))))HOW OFTEN IT REFRESHES
Google Sheets refreshes IMPORTDATA on its own, about once an hour while the sheet is open, so there is no button to press. TickerMint records one market price per card once a day, and each answer is cached for up to an hour, so refreshing more often returns the same number until the next daily price.
Free with no key for personal and non-commercial projects, with a link back. Inside a commercial app, site or tool, use API Pro ($49 a month). Plans →
QUESTIONS
Why did my IMPORTXML card price formula stop working?
+×
IMPORTXML only sees the page a site sends before JavaScript runs, it fetches from Google's servers, and it depends on the page's layout staying the same. When a price page loads its prices with JavaScript, turns away automated requests or changes its design, the formula returns Could not fetch url, Imported content is empty or nothing at all. Reading a plain price with IMPORTDATA avoids all three.
How do I import Pokemon card prices into Google Sheets?
+×
Paste =IMPORTDATA("https://api.tickermint.cards/sheets/price?q=charizard%20ex%20199/165") into a cell and change the card name. It returns the latest TCGplayer market price in US dollars. Use /sheets/prices with up to 50 names to price a whole list in one formula. It works the same for Pokemon, One Piece, Lorcana, Riftbound, Gundam and Yu-Gi-Oh cards.
How often do the prices update in my sheet?
+×
TickerMint records the TCGplayer market price once a day. Google Sheets re-fetches IMPORTDATA about once an hour while the sheet is open, so the cell picks up each new daily price by itself.
Is it free?
+×
Free with no key for personal and non-commercial projects, with a link back. Inside a commercial app, site or tool, use API Pro ($49 a month). The free limit is 120 requests a minute per address. A very large sheet can hit that limit, because Google sends the requests from shared servers; the cells fill in on the next refresh, and the list formula prices 50 cards in one request.
Full Google Sheets guide: whole sets, CSV rows and a =TICKERMINT() function · Excel · API, MCP server and embeds