Какое есть API для получения курсов валют и криптовалют?
Универсального нет. Придётся отдельно брать курс валют, и отдельно крипты.
А какой тебе нужен?

Курс обмена валют это эффимерная абстракция, его можно получить, либо на конкретный момент времени в прошлом (последняя сделка) и что главное для конкретной биржи и каждой они отличаются, часто заметно, либо нечто усредненное за какое то время, опять так же в прошлом.

Так же есть официальные курсы, публикуемые центробанками государств (для рубля смотри cbr.ru), которые практически никак не коррелируют с тем что творится на биржах, но косвенно они друг на друга влияют и являются статичным числом, назначаемым на сутки.

Цена последней сделки (ticks) никаким боком не гарантирует что следующая сделка будет исполнена по этой же цене.

На большинстве бирж есть стакан (для фиатных валют свободный доступ к оперативной информации отсутствует, везде придется платить, цены порядка 3-5т.р. смотри у брокеров, для криптовалютных бирж смотри их api, каждый изобретает черти что, но бесплатно) - из которого можно в каждый момент времени вычислять две цены - покупки и продажи, если совершить сделку по маркету, но в зависимости от объема сделки, числа будут получаться разными.

Некоторые банки дают такие цены (кстати почти всегда кошмарно невыгодные, хотя помню тинькоф заметно выделялся) при совершении сделок у них, каждый банк так же предлагает свои api или чаще не предлагает.

Все это потому, что существует понятие ликвидности торгов. Она не бесконечная (есть оговорки, смотрим к примеру dex на эфире - Synthetix).

p.s. если тебе считать по какой цене конвертировать свои активы если твой клиент сделку совершает, не забывай про комиссии