MetalAPI
XAU3 997,89−1,54 %XAG53,936−1,51 %XPT1 554,47−0,83 %XPD1 047,03−0,44 %XCU6,5080+2,29 %WTI103,27+3,82 %BRENT111,70−1,30 %EUR1,120400−0,01 %GBP1,337500−0,01 %JPY0,0063761+0,14 %CHF1,213445−0,25 %TRY0,020125−0,12 %BTC80 329,75−0,55 %ETH2 329,36−1,13 %
Все статьи
РуководствоДрагоценные металлыAPI

Как выбрать API цен на драгоценные металлы: 12 вопросов

Нейтральный чек-лист для выбора API цен на драгоценные металлы: источники, свежесть, история, единицы, bid/ask, лимиты, цены, безопасность, условия и MCP.

Автор: MetalAPI Team··10 мин чтения

Зачем нужен чек-лист

На своих лендингах большинство API цен на драгоценные металлы выглядят одинаково: золото и серебро в реальном времени, множество валют, ответы в JSON и бесплатный тариф. Важные различия проявляются позже: когда дашборд в выходные показывает устаревшую цену, клиент спрашивает, почему ваша цена за грамм отличается от цены дилера, месячная квота заканчивается 20-го числа или юристы интересуются, можно ли вообще показывать эти данные клиентам.

В этом чек-листе собраны двенадцать вопросов, на которые стоит ответить, прежде чем принимать решение. Они применимы к любому поставщику и подходят как для проекта выходного дня, так и для формальной закупочной процедуры. Ниже вы найдёте шаблон сравнения, который можно скопировать, и короткий список практических тестов. Поскольку статья опубликована MetalAPI, в последнем разделе приведены наши собственные ответы; всё, что до него, должно быть полезно независимо от того, какого поставщика вы выберете.

Данные: источники, свежесть и история

1. Откуда берутся цены? Цены на драгоценные металлы могут поступать из источников нескольких видов: котировки банков и поставщиков ликвидности на внебиржевом спотовом рынке, биржевые фьючерсы, например на золото COMEX, официальные бенчмарки, например цены аукционов LBMA, или другой агрегатор. Ни один из этих вариантов не ошибочен, но это разные числа. Спросите, из какого источника поступает каждый символ, объединяются ли несколько источников и как именно и как отфильтровываются явно ошибочные тики. Если поставщик не может сказать, что представляет собой его цена золота (средняя спотовая цена, фьючерс или бенчмарк), вы тоже не сможете объяснить это своим пользователям.

2. Насколько свежие данные на тарифе, за который вы действительно будете платить? «Реальное время» на главной странице часто относится к старшему тарифу. Проверьте интервал обновления на каждом тарифе и убедитесь, что каждый ответ содержит метку времени самих данных, а не только вашего запроса. Спросите, что происходит, когда рынок закрыт: спотовые металлы не торгуются с вечера пятницы до вечера воскресенья по нью-йоркскому времени, и хороший API явно показывает, что цена в выходные — это цена закрытия пятницы.

3. Насколько глубока история и из чего она состоит? Проверьте дату начала для каждого класса активов, получаете ли вы только дневные цены закрытия или также цены открытия, максимумы и минимумы, и как определяется «закрытие» (в каком часовом поясе, по какому источнику). Спросите, не берётся ли старая история из другого источника, чем сегодняшние цены, например из расчётных цен фьючерсов до определённой даты: это может давать небольшие разрывы на длинном графике. Наконец, проверьте, сколько дней может охватывать один запрос за период.

Соответствие задаче: единицы, валюты и bid/ask

4. Какие единицы измерения и валюты поддерживаются? Драгоценными металлами торгуют за тройскую унцию, но ваши пользователи могут мыслить граммами или килограммами и в своей валюте. Параметр единицы измерения избавляет от необходимости делать все пересчёты самостоятельно; проверьте, как API называет единицы, ведь тройская унция (31,103 г) и обычная унция (28,35 г) различаются почти на 10%. Если вам нужны кросс-курсы, например золото в турецких лирах или серебро в иенах, убедитесь, что они рассчитываются по одному согласованному снимку. Для ювелирных сценариев могут понадобиться и цены по каратам.

5. Нужны ли вам bid и ask или достаточно средней цены? Для графиков и оценки стоимости обычно используют среднюю цену (mid). Витринам дилеров, калькуляторам обратного выкупа и торговым инструментам, как правило, нужны обе стороны котировки. Спросите, предлагаются ли bid и ask, для каких символов и на каких тарифах и берутся ли они из того же снимка, что и средняя цена. Если эти термины для вас новые, они разобраны в нашей статье о спот-цене, bid, ask и спреде.

Эксплуатация: надёжность, лимиты и ошибки

6. Насколько он надёжен и как вы об этом узнаете? Ищите публичную страницу статуса, которая охватывает не только API, но и источники данных, а также историю инцидентов. Спросите, что происходит при сбое источника: переключается ли поставщик на другой источник, помечает ли данные как устаревшие или молча продолжает отдавать последнюю цену? Если доступность важна для вас по договору, проверьте, какие тарифы включают соглашение об уровне обслуживания (SLA) и что именно оно покрывает.

7. Каковы лимиты запросов и квоты и что в них учитывается? Большинство поставщиков сочетают месячную квоту запросов с поминутным или посекундным лимитом. Детали влияют на экономику сильнее, чем цифры на витрине. Считается ли запрос двадцати символов одним вызовом или двадцатью? Оплачиваются ли неудачные запросы? Есть ли бесплатные эндпоинты? Что происходит при достижении лимита: жёсткая остановка до следующего периода, автоматическая оплата превышения или замедление? Сопоставьте своё реальное использование с каждым тарифом: один запрос в минуту круглосуточно — это около 43 200 запросов в месяц.

8. Как сообщается об ошибках? Хороший API возвращает осмысленный HTTP-статус вместе с машиночитаемым кодом ошибки и понятным человеку сообщением, документирует каждый код и подсказывает, когда повторять запрос, например заголовком Retry-After при превышении лимита. Убедитесь, что формат ошибок одинаков для всех эндпоинтов и что есть машиночитаемая спецификация, например OpenAPI, для генерации клиентов и тестов.

Коммерческая сторона: цены, безопасность и условия

9. Подходит ли модель ценообразования под ваше использование? Сравните фиксированные месячные тарифы, оплату за каждый вызов и индивидуальные контракты на своём ожидаемом объёме, а не на примерах поставщика. Проверьте, что на самом деле входит в бесплатный тариф (интервал обновления, эндпоинты), меняется ли цена при оплате за год, добавляются ли налоги и как происходит отмена подписки. Большие скачки цены между тарифами важны, если ваше использование близко к границе тарифа.

10. Как защищены ключи API? Спросите, можно ли передавать ключи в заголовке, а не только в URL, ведь URL попадают в логи. Проверьте, можно ли иметь несколько ключей и менять их без простоя и хранит ли поставщик ключи в виде хешей. Если цены нужны в браузере, ищите ключи с ограничением по доменам или встраиваемый виджет, которому ключ на странице вообще не нужен: ключ в публичном JavaScript может скопировать кто угодно.

11. Что разрешают условия использования? Прочитайте лицензию на данные до начала разработки. Можно ли показывать цены своим клиентам? Можно ли хранить историю в своей базе данных? Разрешено ли распространение, например предоставление данных через собственный API, а если нет, можно ли получить на это лицензию? Требуется ли указывать источник? Официальными бенчмарками, такими как цены LBMA, управляют администраторы бенчмарков, и они, как правило, лицензируются отдельно, поэтому спросите, содержит ли поток данные бенчмарков и что это для вас означает. Проверьте и отказ от ответственности: ценовые данные обычно предоставляются в информационных целях, а не как предложение заключить сделку.

Задел на будущее: поддержка ИИ и MCP

12. Могут ли им пользоваться ИИ-ассистенты и агенты? Всё больше аналитики выполняется в чат-ассистентах и агентах для программирования. Model Context Protocol (MCP) — открытый стандарт для подключения их к инструментам и данным, и если у поставщика есть MCP-сервер, ассистент может получать реальные цены, а не угадывать их по обучающим данным. Что стоит спросить:

  • Есть ли MCP-сервер, размещённый у поставщика, и какие транспорты и клиенты он поддерживает?
  • Как устроена аутентификация: вход через OAuth для чат-приложений, ключ API для инструментов разработчика или оба способа?
  • Какие инструменты только читают данные и запрашивают ли инструменты, которые что-то изменяют, сначала подтверждение?
  • Учитываются ли вызовы ассистента в той же квоте и может ли сервер когда-либо сам списать с вас деньги?
  • Есть ли документация для языковых моделей, например файл llms.txt или спецификация OpenAPI, чтобы ассистент для программирования мог правильно написать вашу интеграцию?

Даже если сегодня вы не пользуетесь ИИ-инструментами, ответы многое говорят о том, насколько API современен и хорошо документирован.

Шаблон сравнения для заполнения

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

#ВопросНа что обратить вниманиеПоставщик AПоставщик BПоставщик C
1Источники данныхНазванные источники для каждого класса активов; метод агрегации; фильтрация ошибочных тиков
2СвежестьИнтервал обновления на вашем тарифе; метка времени данных; поведение в выходные
3ИсторияДаты начала; OHLC; определение цены закрытия; максимальный период на запрос
4Единицы и валютыТройская унция, грамм, килограмм; базовые валюты; согласованные кросс-курсы
5Bid/askСимволы и тарифы; тот же снимок, что и у средней цены
6НадёжностьСтраница статуса; история инцидентов; резервные источники; SLA
7Лимиты и квотыМесячные и поминутные лимиты; что учитывается; поведение при достижении лимита
8ОшибкиHTTP-статусы и коды; рекомендации по повторам; спецификация OpenAPI
9ЦеныСтоимость при вашем объёме; бесплатный тариф; оплата за год; отмена
10БезопасностьАутентификация через заголовок; несколько ключей; ротация; ограничение по доменам
11УсловияПраво на показ; хранение; распространение; указание источника
12ИИ и MCPРазмещённый MCP-сервер; OAuth или ключ; инструменты только для чтения; документация для LLM

Ответы на бумаге — хорошее начало, но большинство вопросов решает короткий практический тест. С бесплатным или пробным ключом каждого кандидата:

  1. Запросите одни и те же символы в один и тот же момент у каждого поставщика и сравните значения, метки времени и единицы измерения.
  2. Повторите запрос в субботу и посмотрите, как каждый API показывает закрытый рынок.
  3. Намеренно вызовите ошибки (неверный ключ, неизвестный символ, дата в будущем) и проверьте коды статуса и сообщения.
  4. Запросите дневную историю за год и поищите пропуски, выбросы и заметный сдвиг уровня там, где мог смениться источник.
  5. Измеряйте задержку оттуда, где работают ваши серверы, а не со своего ноутбука.

С первым и последним пунктами поможет этот небольшой скрипт. Подстройте URL, заголовок аутентификации и поле метки времени под документацию каждого поставщика и помните, что каждый вызов расходует квоту:

probe.mjs
// Несколько раз вызывает эндпоинт и записывает HTTP-статус, задержку и возраст данных.
const TARGET = process.env.PRICE_API_URL;
const HEADERS = { Authorization: "Bearer " + process.env.PRICE_API_KEY };

for (let i = 0; i < 5; i++) {
  const started = Date.now();
  const res = await fetch(TARGET, { headers: HEADERS });
  const body = await res.json().catch(() => ({}));
  const latencyMs = Date.now() - started;

  // Многие API возвращают секунды Unix; адаптируйте эту строку под поле поставщика.
  const dataTime = typeof body.timestamp === "number" ? body.timestamp * 1000 : null;
  const dataAgeSeconds = dataTime ? Math.round((Date.now() - dataTime) / 1000) : "n/a";

  console.log({ status: res.status, latencyMs, dataAgeSeconds });
  await new Promise((resolve) => setTimeout(resolve, 2000));
}

Как на эти вопросы отвечает MetalAPI

Для полноты картины вот наши собственные ответы — только факты, которые можно проверить в нашей документации. Пожалуйста, оценивайте нас по тем же критериям, что и всех остальных.

  1. Источники: спотовые драгоценные металлы и основные валюты — из межбанковских потоков котировок bid/ask; промышленные металлы и энергоносители — из ближайших фьючерсов COMEX, NYMEX и ICE; криптовалюты — с Kraken и Binance; для валют также используются справочные курсы Европейского центрального банка. Данные нескольких источников объединяются по медиане и проверяются на ошибочные тики.
  2. Свежесть: раз в день на Free, каждые 30 минут на Lite, 10 минут на Standard, 1 минуту на Advanced и Pro, 15 секунд на Ultra и Business и 5 секунд на Enterprise. Каждый ответ содержит timestamp данных; в выходные цены на металлы, валюты и фьючерсы остаются на уровне закрытия пятницы.
  3. История: дневные цены открытия, максимумы, минимумы и цены закрытия для валют с 1999 года, металлов и энергоносителей с 2000 года и криптовалют с 2014 года. История металлов до октября 2026 года основана на расчётных ценах ближайших фьючерсов. Один запрос за период охватывает до 30 дней на Free и до 365 дней на платных тарифах.
  4. Единицы и валюты: семь единиц массы от грамма до короткой тонны, 57 валют и любой символ в качестве базового, кросс-курсы из одного снимка. Цены на золото по каратам — на платных тарифах.
  5. Bid/ask: символы вида XAU-BID и XAU-ASK на тарифе Standard и выше для драгоценных металлов и основных валют — из того же снимка, что и средняя цена.
  6. Надёжность: публичная страница статуса с источниками данных, задержкой и объёмом запросов к API, в том числе с отметкой, когда используются резервные источники; SLA по времени безотказной работы на тарифах Business и Enterprise.
  7. Лимиты: месячная квота и поминутный лимит на каждом тарифе. Запрос учитывается один раз, сколько бы символов он ни возвращал; /symbols и /usage бесплатны; запросы, отклонённые из-за лимитов, ограничений тарифа, проверки источника запроса или ошибок сервера, не тарифицируются. При исчерпании квоты запросы возвращают ошибку 105 до 1-го числа месяца (UTC) или до перехода на старший тариф; автоматической платы за превышение нет.
  8. Ошибки: HTTP-статус, числовой code, type и сообщение info в JSON, Retry-After при превышении лимита, документированный список кодов и спецификация OpenAPI 3.1.
  9. Цены: фиксированные тарифы от Free (0 $, 100 запросов в месяц) через Lite (4,99 $), Standard (11,99 $), Advanced (24,99 $), Pro (49,99 $), Ultra (99,99 $) и Business (149,99 $) до Enterprise (299,99 $, 1,5 млн запросов) с ежемесячной или годовой оплатой; отменить подписку можно на странице оплаты. Подробности — на странице тарифов.
  10. Безопасность: ключи хранятся только в виде хешей и могут передаваться в заголовке; в зависимости от тарифа можно иметь несколько ключей, перевыпускать или отзывать их и ограничивать своими доменами. Встраиваемые виджеты показывают цены, не раскрывая ключ.
  11. Условия: данные можно использовать на собственных сайтах, в приложениях, внутренних системах и отчётах, в том числе показывать цены своим пользователям; для распространения необработанного потока данных, например в виде собственного API, нужно отдельное письменное соглашение. Данные предоставляются в информационных целях и не являются инвестиционной рекомендацией. См. условия использования.
  12. ИИ и MCP: размещённый MCP-сервер по адресу https://metalapi.com/mcp (Streamable HTTP, OAuth 2.1 или ключ API) с 13 инструментами, 11 из которых только читают данные; два, которые что-то изменяют, сначала запрашивают подтверждение, а сам сервер никогда ничего не списывает. Он опубликован в официальном MCP Registry; также доступны llms.txt и спецификация OpenAPI. См. ИИ и MCP.

Какого бы поставщика вы ни выбрали, проведите описанные выше практические тесты со своими символами и своим сценарием использования. Если MetalAPI есть в вашем списке, для большинства тестов хватит бесплатного аккаунта, а остальное описано в документации API.

Попробуйте на своих данных

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

Читайте также