---
title: "Choose where prices and exchange rates come from"
description: "A fresh Stonqs profile fetches no prices or rates, not even from keyless sources. How to turn on a source of prices and one of exchange rates, and add a key."
url: "https://stonqs.app/guides/choose-price-and-exchange-rate-sources/"
lang: "en"
updated: "2026-10-25"
---

Getting started · Guide 2 of 10

# Choose where prices and exchange rates come from

[By Vladimir Varvorkin](https://stonqs.app/about/) Updated October 12, 2026 5 min read

A new Stonqs profile fetches no prices and no exchange rates until you turn sources on, keyless ones included. You need one source of prices and one of exchange rates. This takes about five minutes, and ends with holdings in other currencies valued instead of blank.

## On this page

1. [Before you start](https://stonqs.app/guides/choose-price-and-exchange-rate-sources/#before-you-start)
2. [See what a source covers](https://stonqs.app/guides/choose-price-and-exchange-rate-sources/#see-what-a-source-covers)
3. [Choose sources when you set up a profile](https://stonqs.app/guides/choose-price-and-exchange-rate-sources/#choose-sources-when-you-set-up-a-profile)
4. [Choose sources later in Settings](https://stonqs.app/guides/choose-price-and-exchange-rate-sources/#choose-sources-later-in-settings)
5. [Add a key for a source that needs one](https://stonqs.app/guides/choose-price-and-exchange-rate-sources/#add-a-key-for-a-source-that-needs-one)
6. [Give existing instruments a price source](https://stonqs.app/guides/choose-price-and-exchange-rate-sources/#give-existing-instruments-a-price-source)
7. [Add a price address of your own](https://stonqs.app/guides/choose-price-and-exchange-rate-sources/#add-a-price-address-of-your-own)
8. [If something goes wrong](https://stonqs.app/guides/choose-price-and-exchange-rate-sources/#if-something-goes-wrong)

Holdings with no prices usually mean no source has been chosen, not that a provider failed. A new profile has every source switched off, the ones that need no key too, because [each source is a service somebody else runs, under its own terms](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/docs/ai-reference/data-sources.md). No prices or rates are requested until you say where the app may ask.

The second trap: you need two kinds of source, not one. With prices but no exchange rates, a holding in a currency other than your portfolio’s is not valued at a stale rate. It has no value at all, and the app says so.

## Before you start

You need a profile with a portfolio, which [the first guide](https://stonqs.app/guides/install-stonqs-first-portfolio/) sets up. If you already imported a broker file ( [import guide](https://stonqs.app/guides/import-broker-csv/)) and see holdings without a value, you are in the right place. Have the provider’s key ready only if you want a source that needs one; the keyless ones need nothing.

## See what a source covers

Each source does a few things, and the Data sources panel lists them under its name. This table is as read from [the catalogue](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/core/src/sources/mod.rs), checked 2026-10-11, not from the providers’ own pages, so check a provider’s site for what it covers today. That the ecb and frankfurter rows give exchange rates, and in which order, is from [the currency and FX reference](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/docs/ai-reference/currency-and-fx.md).

| Source      | Prices            | Exchange rates | Key      |
| ----------- | ----------------- | -------------- | -------- |
| yahoo       | yes               | yes            | none     |
| kraken      | yes (crypto only) | no             | none     |
| twelvedata  | yes               | yes            | required |
| eodhd       | yes               | no             | required |
| stooq       | yes               | no             | none     |
| ecb         | no                | yes            | none     |
| frankfurter | no                | yes            | none     |

The catalogue also lists `openfigi` (finds which exchanges an ISIN trades on, key optional), and `eurostat` and `imf` (consumer price indexes, for real returns). They are not sources of prices or rates, so they do not satisfy the two-kinds rule. Source: [the catalogue](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/core/src/sources/mod.rs) at the release this guide was written against.

Two details change what you end up with. Exchange rates are [asked in a fixed order](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/docs/ai-reference/currency-and-fx.md): the European Central Bank for the roughly thirty currencies it publishes, a mirror of the same rates (frankfurter) if it is unreachable, then the market’s daily close (from yahoo or twelvedata) for everything else. And a currency no turned-on source knows stays missing; every figure that depends on it shows as unavailable, never as zero.

## Choose sources when you set up a profile

The question is the second step of a new profile, titled “Where data comes from”, right after the portfolio’s name and accounts (or after you pick the demo portfolio). Each source is a row with an `On`, `Off` or `Needs a key` badge, and `Turn on` beside it.

1. Turn on at least one source of prices and one of exchange rates. The row’s name line says what it provides (“quotes”, “exchange rates”).
2. Press `Use these sources`. It stays disabled until both kinds are on, and tells you which is missing (“Pick a source of exchange rates first.”).

`Select all and continue` is the shortcut: it turns on every source that answers without a key, and applies the choice. That includes ones you may not want. `stooq` is one: [the catalogue](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/core/src/sources/mod.rs) marks it off by default, with a code comment saying its CSV sits behind a JavaScript challenge the app’s HTTP client cannot pass. As of 2026-10-11 that is what the code comment says; stooq itself was not re-checked. The button still turns it on, because it switches on every source that needs no key (or already has one). Turn individual rows off afterwards under Settings, Market data.

`Decide later` also leaves the step. You then price the portfolio by hand, and the data chip beside the search box shows an error saying so until sources are chosen.

## Choose sources later in Settings

Open Settings, then Market data. The Data sources panel is the same list. If no source of prices is on, or none of exchange rates, a banner says which and what that means (“No source of exchange rates is on, so anything held in a currency other than the portfolio’s cannot be valued. Turn one on below.”). It goes as soon as both are on. Here `Turn on` is the whole choice; there is nothing to save. A dialog from the data chip next to the search box asks the same question.

Each row’s host name links to the provider’s own site: that is the address the app’s requests go to. Turning a source on means that provider’s terms apply to those requests.

Note

Market data comes from free third-party sources, with no warranty of accuracy, completeness or availability. Your broker’s own statement is what counts, especially for anything that goes on a tax return.

## Add a key for a source that needs one

A source that needs a key shows `Needs a key` after you turn it on, and is not asked until a key is saved. Press `Add key` on its row and paste the key you got from that provider; it is stored encrypted with the profile’s password, so a profile without a password is asked to set one first. A saved key is never shown again, and the row offers `Replace key`.

The free plans have a daily request limit. [The catalogue](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/core/src/sources/mod.rs) assumes 800 requests a day for twelvedata and 20 for eodhd (read in the catalogue on 2026-10-11). These are the app’s figures, not read from the providers: check the provider’s page for the current allowance. When a source’s allowance is spent, it is skipped until the next day (UTC) and the next source is asked.

## Give existing instruments a price source

An instrument added while no source was on has no price source, and nothing fetches its prices even after you turn one on. The dialog and the Settings panel offer to fix it: one checkbox in the dialog (“Use  for the N instruments that have no price source”), one button in the Settings banner. An instrument you gave a source of its own keeps it.

Every instrument has one price source of its own, asked first. Another turned-on source is asked only when that one fails, and only if you entered a ticker for the instrument at that source, in the instrument’s form under Fallback symbols (each source spells a ticker its own way). A fallback fills missing days and never replaces stored prices; one whose prices are in another currency, or differ from the stored ones by more than two percent, is ignored.

## Add a price address of your own

If none of the shipped sources has an instrument, `Add source` under Your own sources describes a JSON or CSV address: its URL with placeholders for the symbol and dates, and where the dates and closes are in the answer. Press `Test` to try it on one symbol before saving. A source of your own can serve prices or exchange rates; a rate source is asked after every shipped one. The provider’s terms for that address are yours to read.

## If something goes wrong

**Prices are still missing after turning sources on.** Open Settings, then Market data. The coverage table lists, per instrument, the venue, the provider and the first and last quote on file. A chart that stops in March ends there because the data does, not the market. A day without a quote uses the last one before it, never a later one.

**A holding in another currency shows “unavailable”.** No turned-on source knows that currency. The European Central Bank publishes about thirty; for the rest the market’s daily close is used, which only yahoo or twelvedata can give. If neither is on, turn one on.

**A refresh fails.** Its message names the source that did not answer, and says when it refused the key. A source that fails several times in a row is skipped for the rest of that refresh, so one dead source does not hold up the others.

## Sources

- [Stonqs: Settings, Market data](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/docs/user-guide/settings.md)  · The Data sources panel and the dialog a new profile shows.
- [Stonqs: data sources](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/docs/ai-reference/data-sources.md)  · What gets asked first, fallbacks, keys and daily limits.
- [Stonqs: currency and FX](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/docs/ai-reference/currency-and-fx.md)  · The order exchange rates are asked in and what a missing rate does.
- [Stonqs: the catalogue of shipped sources](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/core/src/sources/mod.rs)  · Which source does what, which need a key, the daily allowances the app assumes.

[  Previous Install Stonqs and set up your first portfolio](https://stonqs.app/guides/install-stonqs-first-portfolio/) [ Next Import a broker's CSV export](https://stonqs.app/guides/import-broker-csv/)

## Read next

- [Fill the gaps after an import ](https://stonqs.app/guides/fill-gaps-after-import/)
- [All guides ](https://stonqs.app/guides/)

---

[ Stonqs](https://stonqs.app/)

A portfolio tracker that runs on your own computer. Free, open source, no account.

## Product

[Download](https://stonqs.app/download/) [Privacy](https://stonqs.app/privacy/)

## Learn

[Guides](https://stonqs.app/guides/) [Blog](https://stonqs.app/blog/) [FAQ](https://stonqs.app/faq/)

## Project

[About](https://stonqs.app/about/) [Source code](https://github.com/vvvlladimir/stonqs) [Changelog](https://github.com/vvvlladimir/stonqs/blob/main/CHANGELOG.md) [Discussions](https://github.com/vvvlladimir/stonqs/discussions) [Report a bug](https://github.com/vvvlladimir/stonqs/issues)

Stonqs is a tool for recording and analysing your own investments. It is not financial, tax or legal advice, and neither are the answers of its assistant. Market data comes from free third-party sources with no guarantee of accuracy. This site sets no cookies and loads nothing from other servers; the only thing it keeps in your browser is the language you pick.

[Legal notice](https://stonqs.app/legal-notice/) [Privacy policy](https://stonqs.app/privacy-policy/)
