How to Display Crypto Prices on Your Website
Show live crypto prices on your site with a free widget, a WordPress plugin or a custom API ticker. Learn the trade-offs, accessibility rules and security basics.
Show live crypto prices on your site with a free widget, a WordPress plugin or a custom API ticker. Learn the trade-offs, accessibility rules and security basics.

There are three practical ways to show live crypto prices on a site: embed a ready-made widget, install a WordPress plugin, or call a price API from your own backend. Widgets take minutes and cost nothing. Plugins fit store owners who want prices tied to checkout. A custom build gives you full control, but you have to handle rate limits, API keys and accessibility yourself.
This guide covers all three, with the mistakes that cause trouble later. It also covers the step most price-display guides skip: what happens when a visitor wants to pay in crypto and not just look at a number.
The right method depends on the job the numbers do on your page.
Most sites that ask this question are really in the second or third group. Start by deciding which one you are in, because it changes which tool makes sense.
The fastest route is a hosted widget. You pick a style, copy a snippet and paste it into an HTML block. Free libraries from the big data aggregators cover the common cases: a ticker, a coin list with price chart and a coin converter. Google’s results for this keyword are dominated by this kind of tool, plus browser extensions and phone widgets that show prices to the person using them, not to your visitors.
Good for: blogs, landing pages, documentation, anything where the price is context.
Watch out for:
If you only need one number, such as Bitcoin in dollars, a widget with a single coin is lighter than a full table.
On WordPress, a plugin saves you from writing any code. The WordPress.org directory lists tools like the Cryptocurrency Price Ticker Widget, which connect to public data providers and let you place prices with a shortcode or a block. Some plugins go further and convert store totals into crypto at the current rate.
Things to check before you install:
If you run WooCommerce or Easy Digital Downloads, the better question is whether you want a display plugin and a payment plugin or one tool that does the second job. Our guide on how to accept crypto payments on WooCommerce walks through that path, and our WordPress crypto payments overview covers the plugin side in general.
A custom build suits developers who want their own design, a limited set of coins or prices that blend into an existing interface.
Most providers expose a simple endpoint for current prices. CoinGecko’s /simple/price endpoint returns prices for one or more coins by ID, symbol or name. CoinMarketCap also documents a latest prices workflow for assets you already know.
Free tiers are enough for a small site. According to CoinGecko’s pricing page, the Demo plan is free for up to 10,000 monthly calls with a limit of 100 calls per minute, and paid plans start at $29 a month. Check the current numbers before you plan, since providers change them.
Do the arithmetic early. If you refresh every 10 seconds for every visitor, a few hundred page views will burn through 10,000 calls quickly. That is the single most common reason a homemade ticker stops working.
If you use a paid or keyed API, never put the key in front-end JavaScript. Anyone can open the browser’s network tab, copy the key and use up your quota. OWASP’s testing guidance on client-side exposure is a good starting point for why sensitive values should not be exposed to the browser. The safer pattern:
This also means that 10,000 visitors cause one upstream call a minute, not 10,000.
If the call has to come from the browser, because it is a keyless public endpoint on a static site, a developer who tried several approaches on a Netlify site recommends polling at most once a minute and storing the last response in sessionStorage so a page reload does not trigger a fresh call. Calls that are limited by visitor IP address can otherwise get your readers rate-limited one by one.
The logic is short. On the server, fetch the prices for the coin IDs you want in your chosen fiat currency, write them to a cache with a timestamp, and expose a small JSON route. In the page, read that JSON, format the numbers with Intl.NumberFormat, and render them into a table. Show the timestamp next to the numbers.

Format deliberately. Bitcoin at five figures needs no decimals, while a token worth a fraction of a cent needs enough precision to be meaningful. Show a currency symbol or code every time.
A price block is a data table first and a design element second. Two points matter most.
Moving content must be controllable. WCAG’s pause, stop, hide criterion says that if something moves, blinks or scrolls by itself, the visitor has to be able to pause, stop or hide it. A scrolling marquee can also trigger vestibular symptoms. Add a visible pause button and respect the prefers-reduced-motion media query, so the ticker stays still for anyone who has asked their system to reduce motion.
Do not announce every update. Guidance on ticker and price feed announcements warns that a polite live region around a large table of prices can keep a screen reader talking and make the rest of the page hard to use. The same source suggests a stable, static table for the real data, with the ticker kept as a purely decorative layer.
In practice:
<table> with column headers.aria-hidden and decorative, with the table as the source of truth.A displayed price is a market reference, not an offer. Three habits keep you out of trouble with customers.
This is where the display meets the payment. Volatile assets move between the moment a customer starts a payment and the moment it settles, which is why businesses often look beyond a price display to stablecoin conversion to limit swings. For a deeper look at that approach, see our explainer on stablecoins as the easiest way to get paid in crypto and our U.S. guide to accepting stablecoin payments.
We process crypto payments for merchants, so we see the gap between “showing” and “selling” every day. Most merchants who first search for how to display crypto prices are not trying to run a market data site. They want customers to see what something costs in Bitcoin, Ethereum or a stablecoin and then pay without friction.

Our view is that the display should never be its own system. If the number on the product page comes from one provider and the checkout uses another rate, the two will disagree sooner or later. That is why we publish a live rates page and a crypto converter on our own site, and why merchants who use our gateway do not have to stitch a ticker to a checkout themselves.
We also think most small sites over-build the ticker. A scrolling bar across the header looks like a crypto site, but a clear table, a visible timestamp and a checkout that matches the table do more for conversion and trust. Spend your effort on the second half of the journey.
— Dustin
If your goal is to sell, a display plugin is only half the job. CryptoPayr is a no-KYC crypto payment gateway that lets businesses accept 110+ cryptocurrencies, including Bitcoin and Ethereum, through a hosted checkout, e-commerce plugins, payment links or an API. For stores, it includes plugins such as WooCommerce and Easy Digital Downloads, and it offers auto-conversion to stablecoins to reduce price swings between payment and settlement.
Our published pricing runs in volume tiers: Standard at 2%, Growth at 1.5%, Scale at 1% and Enterprise at 0.1%, plus a flat $0.10 per payment option. See the current details on the CryptoPayr pricing and product page, or read how we handle crypto payments for e-commerce.
If you want a branded price and swap experience on your own WordPress site, our white-label exchange widget is built for that.
| Method | Setup time | Skill needed | Control | Best for |
|---|---|---|---|---|
| Hosted widget | Minutes | None | Low | Blogs, info pages |
| WordPress plugin | 10 to 30 minutes | Basic | Medium | Content sites, small stores |
| Custom API ticker | Hours to days | Developer | Full | Branded dashboards, custom UIs |
A sensible path for many sites: start with a widget, move to a plugin if you need shortcodes or cart conversion, and build custom only when design or data needs demand it.
Yes. Free widget libraries let you embed a ticker, a coin list or a converter with a pasted snippet. If you build your own, free API plans exist too: CoinGecko’s Demo plan allows up to 10,000 calls a month. Cache your results so a small site stays inside those limits.
Once a minute is enough for nearly every website, and it keeps you far from rate limits. Refreshing every few seconds mostly adds API cost and distraction. For a payment page, what matters more is that the quoted amount is fixed for a short window at checkout.
Only for keyless public endpoints, and even then you risk IP-based rate limits. If the API needs a key, route requests through your own server so the key never reaches the visitor, as OWASP’s guidance on client-side exposure implies.
No. A price widget only reads market data. To accept payment you need a gateway that creates the invoice, watches the blockchain and settles funds to you. You can then display prices from the same rate source the checkout uses.
Open a free CryptoPayr account and take your first crypto payment the same day.
Get started for free
Crypto payment limits depend on your channel, verification tier, bank rules, and Travel Rule checks. Learn how merchants and payers can prepare to reduce...
Expired crypto payments leave merchants to reconcile late funds, request a top up, or refund with a new transaction. Set clear rules for late arrivals.
Customize crypto checkout with payment options. Compare hosted, embedded, and API options, secure webhooks, and verify payments before fulfillment.