# Price and rate images: tickers, exchange rates and price boards from your data

> Render price tickers, exchange-rate boards and price updates as images for social posts, emails and pages — snapshots on a schedule, with a timestamp.

Published 2026-11-07 · https://shareglint.com/en/use-cases/price-ticker-images

Prices change, and posts about prices are among the most repeated content there is: today's exchange rates at a bank branch's social account, the daily close of an index for a finance newsletter, fuel prices at a station chain, the price of a product that just dropped, a crypto price for a community channel. Each image is the same board or ticker with new numbers — a template filled from your data. With Shareglint you render those boards on a schedule, with a timestamp, in every size you publish in.

## The templates

| Template | Shows | Fields |
|---|---|---|
| `price-ticker` | One price with its change and a sparkline | symbol, name, price, change %, change, series, timestamp, rows, logo |
| `rates-board` | A table of rates: currencies, deposits, fuel, menu prices | title, as of, rows, disclaimer, site, logo |
| `stat-highlight` | One number worth sharing | value, label, source, eyebrow, site, logo |
| `line-chart` | A series over time | title, series, highlight, unit, period, source, site, logo |

All render in every size preset (og 1200×630, square 1080×1080, portrait 1080×1350, story 1080×1920, pinterest 1000×1500, youtube 1280×720) and take `accent` and `theme`; the [data category](https://shareglint.com/en/templates/category/data) and [news category](https://shareglint.com/en/templates/category/news) show them rendered.

## A rates board, every hour

```bash
curl -X POST "https://shareglint.com/v1/images?wait=true" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "template": "rates-board",
    "sizes": ["square", "og"],
    "format": "png",
    "modifications": {
      "title": "Exchange rates",
      "as_of": "7 Nov 2026, 14:00 CET",
      "rows": "EUR/USD|1.0842|+0.12%;GBP/USD|1.2731|-0.05%;USD/JPY|151.20|+0.31%;EUR/PLN|4.3215|0.00%",
      "disclaimer": "Indicative mid-market rates. Not an offer."
    }
  }'
```

Run it from a scheduled job — cron, a serverless schedule, an n8n or Make scenario on a timer ([integrations](https://shareglint.com/en/integrations)) — and post or publish the returned URL. In `rows`, each row is `name|value|change` and rows are separated by `;` — the same format as the template's example in the gallery, where every field is listed.

PNG keeps small numbers sharp; use JPEG only for photo-heavy designs. Format the numbers for your audience before sending — decimal separators, currency symbols, the number of decimals — for example with [`Intl.NumberFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat) in JavaScript.

## Snapshots, not live images

An image cannot update itself. Three patterns that work:

- **Scheduled posts.** Render at fixed times (market open and close, 8 a.m. daily) and post each image. The timestamp on the image says when it was taken.
- **A "latest" image on your page.** Render on a schedule and point your page or app at the newest URL. Browsers and networks cache images ([HTTP caching](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Caching)), so give the page the new URL each time rather than reusing one URL for changing content.
- **Signed URLs in emails or pages.** The values are in the URL's query string, so the image shows exactly what the URL says; to show a new price, build a new URL. A redirect to an existing image may be cached for up to 1 hour(s) ([signed image URLs](https://shareglint.com/en/guides/signed-image-urls)).

Identical values return the identical file without using quota, so rendering on a schedule when nothing changed costs nothing — a fuel price board that changes twice a week costs two renders a week, however often the job runs.

## Use cases that fit

- **Banks and exchange offices:** daily rate boards for social accounts and screens in branches.
- **Finance newsletters and media:** the day's close for an index or a currency pair, posted after the market shuts.
- **Retail:** "price drop" posts when a product's price changes ([e-commerce product images](https://shareglint.com/en/use-cases/ecommerce-product-images)).
- **Communities:** a token or commodity price posted to a Discord or Telegram channel by a bot.
- **Fuel, energy and commodities:** a station chain's or supplier's current prices.

## Data, licences and disclaimers

- **Data licences.** Market data from exchanges and data vendors usually comes with terms on redistribution, including in images. Check that your licence allows publishing the numbers.
- **Disclaimers.** Rates boards for banks and exchange offices often need wording such as "indicative" or "not an offer"; `rates-board` has a `disclaimer` field. What it must say depends on your regulator.
- **Accuracy.** The image shows the numbers you send, with the time you send. Generate it from the same source your website uses, so the two never disagree.

## A scheduled job, step by step

A minimal job for a daily rates post, in any language or automation tool:

1. **Read** the current numbers from your source and format them for your audience.
2. **Compare** with yesterday's numbers; if nothing changed, stop — or render anyway, since identical values cost nothing.
3. **Render** the board with the numbers and the time in `as_of`.
4. **Publish** the image URL: post it, put it in the newsletter, or update the page's image.

Keep the last image's URL with the numbers it shows, so you can always say which image showed which rate at what time.

## Cost

One render per image and size, and only when the values change. A board refreshed hourly during business hours (10 a day) in two sizes is about 400 renders a month if every refresh brings new numbers; a daily close in two sizes is about 60. The Free plan's 100 renders carry a watermark; Starter is $9 a month for 2,000 renders, Pro $29 for 10,000 ([pricing](https://shareglint.com/en/pricing)).

## What it does not do

- It does not provide price or market data; you send the numbers.
- It does not make live-updating images; each image is a snapshot of the values it was given.
- It does not post to social networks, screens or chat channels; your job or bot does that with the image URL.
- It is not a trading or charting platform — for that, use your data provider's own charts.

## FAQ

### Can an image show live prices?

An image is a snapshot. Render it on a schedule — every hour, every market close — with the time on it, and put the latest URL where people see it. A signed URL in a page or email renders the values in its query string, so a new price needs a new URL.

### Where does the price data come from?

From you: your own database, your pricing API or a market data provider you have a licence for. The template only lays out the numbers you send.

### How often can I render?

As often as your plan's quota allows; each new set of values is one render. A board refreshed hourly in two sizes is about 1,500 renders a month, so schedule what people actually look at.

### Is this suitable for trading decisions?

No. An image of a price is informational and already old when it is read. Show the time it was taken and link to the live source.
