Стежте за намиПриєднатися в TelegramСтежити в XВихідний код
Виберіть мову: Українська

API даних Nordic Crypto

Відкритий JSON-фід сайту для застосунків та інших інструментів. Без облікового запису й без API-ключа. Він створюється заново під час кожного збирання сайту.

Версія 1. У цьому збиранні: новин — 57, випусків розсилки — 2, подій — 13, доповідей — 74. Створено 2026-10-13T05:37:29+00:00.

Вузол Bitcoin Lightning#

Nordic Crypto підтримує вузол Bitcoin Lightning. Псевдонім — Nordic Crypto. Реалізація — LND, у легкому режимі клієнта Neutrino. Без облікового запису й без API-ключа.

ВузолСтанРеалізація
Bitcoin
Nordic Crypto
синхронізація / канали ще не відкритіLND (легкий клієнт Neutrino)

Рядок стану записано на цій статичній сторінці, і він сам не оновлюється. Стан наживо: Amboss і 1ML.

URI вузла. Скопіюйте рядок. Перший рядок — IPv4. Другий — той самий вузол через IPv6, [2a01:4f8:c01e:36d9::1]:9735.

0225974bb701101a5d4352dcae0f76aa9c1388e482a666e892f462e0e0e4217dd9@91.99.122.75:9735
0225974bb701101a5d4352dcae0f76aa9c1388e482a666e892f462e0e0e4217dd9@[2a01:4f8:c01e:36d9::1]:9735

Публічний ключ.

0225974bb701101a5d4352dcae0f76aa9c1388e482a666e892f462e0e0e4217dd9

Адреса для поповнення в ланцюгу.

bc1p7zgqhev2zzn45mefzq59gq983379lr0rsymhl558rza9k05y7vsq9mglx7

Сервери Electrum (BCH і Nexa)#

Nordic Crypto підтримує сервери Electrum на основі Rostrum для Bitcoin Cash і Nexa. Гаманці та застосунки можуть отримувати з них баланси, транзакції, UTXO, токени й останній блок, а також надсилати транзакції в мережу. Без облікового запису й без API-ключа.

СерверСтанВисота блокуВідгукВерсія
Bitcoin Cash
wss://electrum-bch.nordiccrypto.no:50004
––––
Nexa
wss://electrum-nexa.nordiccrypto.no:20004
––––

Коли сторінка відкривається, ваш браузер запитує в кожного сервера версію та останній блок. Відгук — це час запиту останнього блоку.

Вони працюють за протоколом Electrum (JSON-RPC) на стандартних портах: WebSocket із TLS (wss) — 20004 для Nexa і 50004 для Bitcoin Cash; TLS поверх TCP — 20002 для Nexa і 50002 для Bitcoin Cash. Незашифрованих портів немає. У клієнтській бібліотеці вкажіть хост, порт і схему (wss або tcp_tls). Методи перелічено в документації протоколу Rostrum.

websocat wss://electrum-bch.nordiccrypto.no:50004
{"id":1,"method":"blockchain.headers.subscribe","params":[]}

Сервери працюють на власних повних вузлах (Bitcoin Cash Node і Nexa), тож їхні відповіді не залежать від третіх сторін. Клієнт, який не виконує SPV-перевірок, однаково довіряє нам щодо вмісту ланцюжка. Гарантії доступності немає. Тримайте у списку другий сервер і перемикайтеся, якщо один не відповідає протягом кількох секунд.

З чого почати#

Отримати новини й розсилку#

curl -fsS https://nordiccrypto.no/api/v1/news.json
curl -fsS https://nordiccrypto.no/api/v1/newsletters.json
curl -fsS https://nordiccrypto.no/api/v1/newsletters/002.json

Абсолютні URL вказують на публічний сайт, від кореня домену: https://nordiccrypto.no/api/v1/news.json.

Опитування нових матеріалів#

/api/v1/news/latest.json містить 25 найновіших опублікованих матеріалів, лише з id, published, country, source, source_name, language_code, own_story, заголовками (title, title_en, title_i18n) і посиланнями (url, html_url, api_url). Значення ті самі, що в news.json, у тому самому порядку (спочатку нові). Файл лишається невеликим, хоч би як ріс архів, тож застосунок або push-сервер може опитувати його кожні кілька хвилин. Надішліть If-None-Match з останнім ETag; GitHub Pages відповідає 304 Not Modified, доки файл не змінився. Порівнюйте id з тими, що ви вже бачили; generated_at змінюється під час кожного збирання.

curl -fsS https://nordiccrypto.no/api/v1/news/latest.json

Ринкові ціни#

Ціни північних бірж — це ринкові дані, а не інвестиційна порада. /api/v1/markets.json перелічує кожну пару: символ, базову валюту й валюту котирування, останню ціну, bid і ask (якщо біржа їх публікує), id, назву й країну біржі, fetched_at, URL джерела та обсяг (якщо біржа його публікує). volume_base — обсяг у базовому активі без зазначеного періоду (Firi). volume_base_24h і volume_quote_24h — за останні 24 години (NBX). Відсутній обсяг дорівнює null, а не нулю. Валюти котирування: NOK, SEK, DKK і EUR. Одна біржа: /api/v1/markets/{exchange}.json (firi, nbx, coinmotion). Один актив: /api/v1/markets/by-asset/{symbol}.json. Майданчики без публічного тикера перелічено в skipped, і вигаданої ціни для них немає.

/api/v1/markets/aggregated.json містить один рядок на пару. BTC-NOK не усереднюється з BTC-EUR. last — середнє арифметичне опублікованих останніх цін. mid — середнє значення (bid+ask)/2, воно не змішується з last. price дорівнює last, якщо є хоч одна остання ціна, інакше mid. min і max беруться з того самого ряду. VWAP немає. Обсяг підсумовується лише в межах того самого поля й тієї самої пари. logo_url — SVG із набору cryptocurrency-icons (CC0 1.0), якщо актив у ньому є; віддається за адресою /api/v1/markets/logos/{symbol}.svg, інакше null. Файл для активу повторює aggregated і логотип.

Збирання запитує дані в бірж. .github/workflows/markets-refresh.yml перезаписує JSON у gh-pages приблизно раз на годину, разом з агрегованим файлом та іконками. Сторінка ринків перезавантажує цей файл і оновлює Firi та Coinmotion просто в браузері, бо їхні API надсилають Access-Control-Allow-Origin: *. NBX цього не робить, тож її рядки беруться з файлу. Той самий документ у гілці gh-pages: raw.githubusercontent.com/jQrgen/nordic-crypto/gh-pages/api/v1/markets.json.

curl -fsS https://nordiccrypto.no/api/v1/markets.json
curl -fsS https://nordiccrypto.no/api/v1/markets/aggregated.json

Статистика відвідувань#

Сумарні відвідування й перегляди сторінок із Cloudflare Web Analytics (без cookie). /api/v1/stats.json містить рядки daily, weekly (ISO) і monthly лише з visits і pageviews. Дні рахуються за UTC. Файл порожній, доки не налаштовано сайт Web Analytics і токен оновлення. .github/workflows/stats-refresh.yml перезаписує його в gh-pages приблизно раз на добу.

curl -fsS https://nordiccrypto.no/api/v1/stats.json

Доповіді#

Публічні доповіді про біткоїн, криптовалюти й блокчейн, проведені в Норвегії, Швеції, Данії, Фінляндії, Ісландії, на Фарерських островах, у Гренландії та на Аландських островах, містяться в /api/v1/talks.json, від нових до старих. Одна доповідь: /api/v1/talks/{id}.json. Одна країна: /api/v1/talks/by-country/{country}.json (NO, SE, DK, FI, IS, FO, GL, AX). description написано нами. title, дати, тривалість, канал і доповідачі беруться з платформи за адресою source_url. Поле, яке платформа не вказала, дорівнює null. embed дорівнює true, лише якщо відповідь oEmbed платформи містить плеєр. HTML-сторінка завантажує плеєр лише після кліку: YouTube через youtube-nocookie.com, Vimeo через player.vimeo.com. event_id і calendar_event_id — той самий id події, якщо доповідь до неї прив’язано. Ця подія міститься в /api/v1/events/{id}.json (і в /api/v1/events/previous.json, якщо вона вже минула), а її сторінка — /calendar/{id}/. talk_ids у події перелічує ці доповіді. unlink_reason заповнюється, якщо на сторінці відео не вказано день або місце; тоді event_id дорівнює null. speaker_ids — id з розділу «Хто є хто» в тому самому порядку, що й speakers. Картка особи за адресою /api/v1/orgchart/{id}.json перелічує ці доповіді та будь-яку афіліацію, зазначену на сторінці доповіді.

Кілька видань, одна новина#

Новина має одне основне видання. Інші видання, що писали про ту саму подію, вказано в also_covered_by. sources перелічує спершу основне видання, потім решту. Кожне видання має outlet, outlet_name, url, title (заголовок цього видання), published, lang, country, source_type і logo. source_type має значення national, regional (регіональні й місцеві), official (правосуддя й державні органи: поліція, прокуратура, суди, регулятори) або international. coverage.count — кількість видань. coverage.by_country і coverage.by_source_type — кількості й частки для діаграм. Кожен тип джерела присутній, навіть із нульовою кількістю. html_url — наша сторінка цієї новини. url — основне видання. Kaupr залишається лише джерелом новин.

Події#

Майбутні й минулі події містяться в /api/v1/events.json. Календарі Luma беруться з публічної iCal-адреси підписки кожного джерела подій (ics). Сторінки міст, сторінки категорій і discover API Luma не використовуються. Окрема сторінка події Luma читається як JSON-LD schema.org. Організаторів і місця Eventbrite читають через API v3, якщо на сервері є EVENTBRITE_TOKEN. Цього токена немає ні у фіді, ні в репозиторії. Без нього використовується JSON-LD сторінки події. Однакові назва, дата й місце — це одна подія. Завершені події залишаються у фіді. description.text — власний текст організатора, description.lang — мова цього тексту, а description.source_url — сторінка, звідки його взято. description.i18n містить переклад, якщо він у нас є. Поле дорівнює null, якщо джерело не мало опису. Оголошення хижацьких конференцій не є джерелом. Kaupr ніколи не буває спонсором.

Мови#

Англійська — поле за замовчуванням (summary, title, text). Опубліковані нами переклади містяться в summary_i18n, title_i18n, subtitle_i18n, note_i18n, text_i18n і about_i18n з ключами nn, nb, sv, da, fi і is. Інші мови сайту використовують англійське поле, доки не опубліковано переклад. У новині title залишається заголовком джерела, title_en — наш англійський заголовок, а title_i18n — наш заголовок північними мовами сайту. Сторінки показують спершу заголовок мовою сторінки, а під ним — заголовок джерела, якщо вони різняться. Власний заголовок кожного видання в sources залишається мовою цього видання. Дати — у форматі ISO 8601.

/api/v1/languages.json перелічує всі мови сайту з полями code, native_name, english_name, rtl, html_lang і home. /api/v1/geo-language.json — відповідність «країна → мова», яка використовується під час першого відвідування. Країну за IP повідомляє tipworker GET /api/geo (Cloudflare request.cf.country). Нічого не зберігається. Cookie nc_lang, яку встановлює перемикач мови, завжди має пріоритет.

Логотипи джерел#

Кожне видання в /api/v1/sources.json має logo_url (абсолютний URL PNG або WebP, ніколи не SVG, або null) і logo (kind, file_url (оригінал, SVG або WebP), raster_url (те саме, що logo_url), source_url, author, license, license_url, credit, або null). Кожна новина має source_logo_url, щоб застосунок міг показати логотип видання поруч із заголовком. Логотипи взято з Wikimedia Commons (з ліцензією) або з сайту самого видавця. Це торговельні марки видавців; їх показують лише для того, щоб указати джерело заголовка. Логотип залишається null, доки редактор його не перевірить.

CORS#

GitHub Pages віддає ці файли із заголовком Access-Control-Allow-Origin: *, тож сторінка на іншому сайті може отримати їх через fetch(). GitHub Pages не застосовує власний файл заголовків. Використовуйте ім’я файлу з .json: відкриття каталогу не повертає JSON.

Редакційна політика#

Підпис — The Nordic Crypto team. Kaupr (kaupr.io) — лише джерело новин і ніколи не спонсор. Ніщо тут не є інвестиційною порадою.

Облікові записи бренду#

ios у /api/v1/meta.json — публічне запрошення TestFlight до iOS-застосунку Nordic Crypto. В App Store його немає. apple_tv повідомляє, що версія в TestFlight особливо підтримує Apple TV. apple_tv_i18n містить це коротке речення всіма мовами сайту. Назва бренду завжди Nordic Crypto.

/api/v1/meta.json містить social для iOS-застосунку. social.telegram — чат Nordic Crypto за адресою https://t.me/nordiccryptochat. social.x — обліковий запис бренду за адресою https://x.com/nordiccryptobot (@nordiccryptobot), також указаний як urls.x. urls.telegram повторює URL чату. urls.rss — англійська стрічка новин за адресою /rss.xml. Головна сторінка кожної мови має власний rss.xml. urls.newsletter — сторінка підписки на цьому сайті. label — коротка назва (Telegram, X). name — текст посилання англійською. name_i18n містить nn, nb, sv, da, fi і is. Інші мови сайту використовують name.

Сповіщення в браузері#

Коли в workers/push/public.json указано URL Worker, кнопка внизу кожної сторінки вмикає Web Push. Доти сторінка повідомляє, що сервіс не ввімкнено, і не звертається до жодного Worker. Підписки зберігаються в Cloudflare Worker, а не в цьому статичному фіді. Після публікації GET /api/push/feed.json на цьому Worker перелічує ті самі пакети (заголовок, короткий опис, URL, країна й переклади, якщо вони є). Одна публікація — один пакет. У документі зазначено "apns": "not implemented": Apple Push Notification service не підтримується. iOS-застосунок може періодично опитувати фід. URL Worker задається під час розгортання workers/push/; це не шлях на цьому сайті. Підписок у фіді немає. /api/v1/news.json цього API залишається повним списком опублікованих новин.

Ендпоїнти#

Кожен ендпоїнт — простий GET-запит статичного JSON-файлу.

ШляхПовертає
/api/v1/index.jsonDiscovery document: every endpoint, with example URLs.
/api/v1/news.jsonPublished news and our own stories, newest first.
/api/v1/news/latest.jsonThe 25 newest published stories with id, published, country, source and headlines only. For apps and notifiers that poll often; news.json is the full list.
/api/v1/news/by-country/{country}.jsonPublished news for one country code: NO, SE, DK, FI, IS, NORDIC or EU.
/api/v1/news/topics.jsonTopic ids present in the published news, with counts.
/api/v1/newsletters.jsonPublished newsletter issues, newest first. The list omits the HTML body; the issue URL includes text and html.
/api/v1/events.jsonPublic events, soonest start first, including past events.
/api/v1/events/upcoming.jsonEvents that have not ended, soonest first. Judged in the event's own offset.
/api/v1/events/past.jsonFinished public events, newest first. Finished events stay in the archive.
/api/v1/events/previous.jsonPrevious events, newest finish first. Finished calendar events plus backfilled public events (source backfill). Backfill is not on the calendar or in upcoming or past.
/api/v1/events/by-country/{country}.jsonPublic events for one country code.
/api/v1/talks.jsonPublic talks on bitcoin, cryptocurrencies and blockchain in the Nordic countries, newest first. A player is embedded on the site only when embed is true (YouTube via youtube-nocookie.com, or the Vimeo player). Unknown fields are null. description is ours; title and the other details come from the platform.
/api/v1/talks/by-country/{country}.jsonPublic talks for one country code: NO, SE, DK, FI, IS, FO (Faroe Islands), GL (Greenland) or AX (Åland).
/api/v1/sources.jsonNews outlets, justice-system press pages, the public search terms, and event sources. coverage is national, regional, local or justice. region is the place. feed is null when no working RSS, sitemap or index page was verified. method is rss, html, sitemap, search or manual. Event sources name the intake method. Luma calendars use a public iCal subscribe URL. Eventbrite organizers and venues use the v3 API when the server has EVENTBRITE_TOKEN; the token is not in this feed. Without it, event pages are schema.org JSON-LD. icon_url is a public icon from the outlet when one was easy to find. logo_source is the URL the stored logo was fetched from. logo is the checked outlet image for that source id when one is on file, used only to identify the source. Kaupr is marked as a news source only and is never an event sponsor.
/api/v1/academia.jsonEditor-approved courses, student groups, publications and research.
/api/v1/academia/courses.jsonAcademia section: courses.
/api/v1/academia/groups.jsonAcademia section: groups.
/api/v1/academia/publications.jsonAcademia section: publications.
/api/v1/academia/research.jsonAcademia section: research.
/api/v1/academia/{id}.jsonOne academia row. The id is in academia.json.
/api/v1/books.jsonPublished books on bitcoin, crypto and blockchain by Nordic authors or about the Nordic countries. title is the original title. authors are as printed; author_role is "editors" for an edited volume. language is a code (nn, nb, sv, da, fi, en). source is the library catalogue or publisher page where the row was checked. about is our one-line description in English. No cover images.
/api/v1/developers.jsonOpen-source developers: technical people in Nordic crypto with public crypto-related code (an own non-fork crypto repo, or merged commits or pull requests in a public crypto project). name is as shown on the code profile. profiles are the GitHub/GitLab/Codeberg/sourcehut profile links. notable has up to three items: kind "repo" (own repo: name, url, stars, language, description, last_push) or kind "contrib" (project, host, url, commits, merged_prs). Stars and counts are from the date in checked. nordic_source is where the Nordic link is shown. whoswho_id links the who's who entry. Only rows the editor approved; a preview build also has pending rows (status "pending").
/api/v1/orgchart.jsonPublished who's who: organisations, people, relations, regulation notes and caveats. A person named on a talk has talk_ids, event_ids and talks. affiliations lists the organisation the talk page stated for that talk, with the talk date when the page gave one, the source URL and the retrieval time. An affiliation the page did not state is omitted.
/api/v1/orgchart/relations.jsonRelations between published who's who entries.
/api/v1/orgchart/regulation.jsonShort regulation status for each Nordic country, as on the who's who page.
/api/v1/orgchart/relations/{id}.jsonOne relation from the who's who.
/api/v1/profiles.jsonPublic profile links (Wikipedia, X, Wikidata and similar) for people and organisations.
/api/v1/images.jsonLogos and photos used on the public who's who, with licence and credit. These are not newspaper photographs.
/api/v1/illustrations.jsonPictures used on story cards and story pages. Each record has source, author, license and url. No photograph from another newspaper is included. Outlet logos are in images.json and on each news item as source_logo.
/api/v1/changelog.jsonSite changelog (product changes, not the news), newest first.
/api/v1/rules.jsonHow EU crypto rules become law in the five countries. Simplified, not legal advice. Omitted while the page is still a placeholder.
/api/v1/archive/articles.jsonAppend-only archive of stories that have been on the public site. removed is true when a story later left the site; the row stays.
/api/v1/stats.jsonAggregate visitor counts from Cloudflare Web Analytics (no cookies): visits and page views per UTC day, ISO week and calendar month. updated_at is null and the lists are empty until the Web Analytics site and the refresh token are configured.
/api/v1/markets.jsonNordic exchange prices. Market data, not investment advice. Each ticker names the exchange, fetched_at, the source URL and volume when the exchange published it. NOK, SEK, DKK and EUR only. aggregated is one row per pair.
/api/v1/markets/aggregated.jsonOne price per base-quote pair. BTC-NOK is separate from BTC-EUR. last is the mean of published last prices. mid is the mean of bid/ask midpoints and is not blended into last. Volume is summed only within the same field and the same pair. logo_url is a CC0 icon when cryptocurrency-icons includes the asset, otherwise null.
/api/v1/markets/{exchange}.jsonPrices from one included exchange: firi (Norway), nbx (Norway) or coinmotion (Finland).
/api/v1/markets/by-asset/{symbol}.jsonPrices for one asset (the base symbol, such as BTC) on every included Nordic exchange, plus aggregated pairs for each quote currency and logo_url when an icon is available.
/api/v1/languages.jsonSite UI languages: code, native name, English name, rtl, html lang and home URL.
/api/v1/geo-language.jsonCountry to default site language. An IP guess only; the nc_lang cookie from the language switcher wins.
/api/v1/meta.jsonSite name, languages, countries, page list, CORS, editorial notes and brand social accounts (social.telegram, social.x).

Що не входить#

Чернетки, редакційна черга, відхилені новини, повідомлення читачів, адреси підписників розсилки, токен аналітики та приватні персональні дані до цього фіду не входять. Невідомий id повертає звичайну сторінку 404 сайту, а не помилку в JSON.

Назви полів версії 1 не змінюються. Можуть з’являтися нові поля. Несумісна зміна отримає новий шлях.