Nordic Cryptodesde 2026
Siga-nosEntrar no TelegramSeguir no XCódigo-fonte
Escolher idioma: Português

API de dados da Nordic Crypto

Um feed JSON público do site, para apps e outras ferramentas. Sem conta e sem chave de API. Ele é gerado de novo sempre que o site é compilado.

Versão 1. 57 notícias, 2 edições da newsletter, 13 eventos e 74 palestras nesta compilação. Gerado em 2026-10-13T05:37:29+00:00.

Nó Lightning de Bitcoin#

A Nordic Crypto opera um nó Lightning de Bitcoin. O alias é Nordic Crypto. A implementação é LND, em modo leve Neutrino. Sem conta e sem chave de API.

NóStatusImplementação
Bitcoin
Nordic Crypto
sincronizando / ainda sem canais abertosLND (modo leve Neutrino)

A linha de estado está escrita nesta página estática e não se atualiza sozinha. Estado ao vivo: Amboss e 1ML.

URI do nó. Copie uma linha. A primeira linha é IPv4. A segunda é o mesmo nó em IPv6, [2a01:4f8:c01e:36d9::1]:9735.

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

Chave pública.

0225974bb701101a5d4352dcae0f76aa9c1388e482a666e892f462e0e0e4217dd9

Endereço de depósito on-chain.

bc1p7zgqhev2zzn45mefzq59gq983379lr0rsymhl558rza9k05y7vsq9mglx7

Servidores Electrum (BCH e Nexa)#

A Nordic Crypto mantém servidores Electrum Rostrum para Bitcoin Cash e Nexa. Carteiras e apps podem consultar fundos, transações, UTXOs, tokens e o bloco mais recente, além de transmitir transações. Sem conta e sem chave de API.

ServidorStatusAltura do blocoRespostaVersão
Bitcoin Cash
wss://electrum-bch.nordiccrypto.no:50004
––––
Nexa
wss://electrum-nexa.nordiccrypto.no:20004
––––

Ao abrir esta página, seu navegador pergunta a cada servidor a versão e o bloco mais recente. A resposta é o tempo da solicitação do bloco mais recente.

Eles falam o protocolo Electrum (JSON-RPC) nas portas padrão: WebSocket com TLS (wss) na 20004 para Nexa e na 50004 para Bitcoin Cash, e TLS sobre TCP na 20002 para Nexa e na 50002 para Bitcoin Cash. Não há portas sem criptografia. Em uma biblioteca cliente, informe o host, a porta e o esquema (wss ou tcp_tls). Os métodos estão na documentação do protocolo Rostrum.

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

Os servidores rodam nós completos próprios (Bitcoin Cash Node e Nexa), então as respostas não dependem de terceiros. Um cliente que não faz verificações SPV ainda confia em nós quanto ao conteúdo da cadeia. Não há garantia de disponibilidade. Mantenha um segundo servidor na sua lista e passe para ele se um não responder em poucos segundos.

Comece aqui#

Buscar notícias e uma newsletter#

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

URLs absolutas usam o site público, na raiz do domínio: https://nordiccrypto.no/api/v1/news.json.

Consultar matérias novas#

/api/v1/news/latest.json traz as 25 matérias publicadas mais recentes, apenas com id, published, country, source, source_name, language_code, own_story, as manchetes (title, title_en, title_i18n) e os links (url, html_url, api_url). Os valores são os mesmos de news.json, na mesma ordem (a mais recente primeiro). O arquivo continua pequeno por mais que o acervo cresça, para que um app ou um servidor de push possa consultá-lo a cada poucos minutos. Envie If-None-Match com o último ETag; o GitHub Pages responde 304 Not Modified enquanto o arquivo não mudar. Compare os ids com os que você já viu; generated_at muda a cada build.

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

Preços de mercado#

Os preços das corretoras nórdicas são dados de mercado, não recomendação de investimento. /api/v1/markets.json lista cada par com símbolo, moeda base, moeda de cotação, último preço, compra e venda quando a corretora os publica, o id, nome e país da corretora, fetched_at, a URL de origem e o volume quando a corretora o publica. volume_base é o volume no ativo base, sem janela de tempo definida (Firi). volume_base_24h e volume_quote_24h cobrem as últimas 24 horas (NBX). Volume ausente é null, não zero. As moedas de cotação são NOK, SEK, DKK e EUR. Uma corretora: /api/v1/markets/{exchange}.json (firi, nbx, coinmotion). Um ativo: /api/v1/markets/by-asset/{symbol}.json. Plataformas sem ticker público aparecem em skipped e não recebem preço inventado.

/api/v1/markets/aggregated.json tem uma linha por par. BTC-NOK não entra na média com BTC-EUR. last é a média aritmética dos últimos preços publicados. mid é a média de (bid+ask)/2 e não é misturado em last. price é igual a last quando existe algum último preço; caso contrário, mid. min e max usam essa mesma série. Não há VWAP. O volume só é somado dentro do mesmo campo e do mesmo par. logo_url é um SVG do cryptocurrency-icons (CC0 1.0) quando esse conjunto inclui o ativo, servido em /api/v1/markets/logos/{symbol}.svg, e null caso contrário. O arquivo por ativo repete aggregated e o logo.

A compilação consulta as corretoras. .github/workflows/markets-refresh.yml reescreve o JSON no gh-pages cerca de uma vez por hora, incluindo o arquivo agregado e os ícones. A página de mercados recarrega esse arquivo e atualiza Firi e Coinmotion no navegador, porque essas APIs enviam Access-Control-Allow-Origin: *. A NBX não envia, então essas linhas seguem o arquivo. O mesmo documento no branch 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

Estatísticas de visitas#

Visitas e visualizações de página agregadas do Cloudflare Web Analytics (sem cookies). /api/v1/stats.json traz linhas daily, weekly (ISO) e monthly apenas com visits e pageviews. Os dias estão em UTC. O arquivo fica vazio até que o site do Web Analytics e o token de atualização sejam configurados. .github/workflows/stats-refresh.yml o reescreve no gh-pages cerca de uma vez por dia.

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

Palestras#

Palestras públicas sobre bitcoin, criptomoedas e blockchain realizadas na Noruega, Suécia, Dinamarca, Finlândia, Islândia, Ilhas Faroé, Groenlândia e Åland estão em /api/v1/talks.json, das mais recentes para as mais antigas. Uma palestra: /api/v1/talks/{id}.json. Um país: /api/v1/talks/by-country/{country}.json (NO, SE, DK, FI, IS, FO, GL, AX). description é nossa. title, datas, duração, canal e palestrantes vêm da plataforma em source_url. Um campo que a plataforma não informou é null. embed é true apenas quando a resposta oEmbed da plataforma inclui um player. A página HTML só carrega o player depois de um clique: YouTube via youtube-nocookie.com, Vimeo via player.vimeo.com. event_id e calendar_event_id são o mesmo id de evento quando a palestra está vinculada. Esse evento fica em /api/v1/events/{id}.json (e em /api/v1/events/previous.json quando já passou), e a página é /calendar/{id}/. talk_ids no evento lista essas palestras. unlink_reason é preenchido quando a página do vídeo não informou dia nem local, e então event_id é null. speaker_ids são ids do “Quem é quem” na mesma ordem de speakers. A pessoa, em /api/v1/orgchart/{id}.json, lista essas palestras e qualquer vínculo informado pela página da palestra.

Vários veículos, uma notícia#

Uma notícia tem um veículo principal. Outros veículos que cobriram o mesmo fato ficam em also_covered_by. sources lista primeiro o principal e depois os demais. Cada veículo tem outlet, outlet_name, url, title (a manchete desse veículo), published, lang, country, source_type e logo. source_type é national, regional (regional e local), official (justiça e órgãos oficiais: polícia, Ministério Público, tribunais, reguladores) ou international. coverage.count é o número de veículos. coverage.by_country e coverage.by_source_type são as contagens e proporções para as barras. Todo tipo de fonte está presente, inclusive com contagem zero. html_url é a nossa página da notícia. url é o veículo principal. A Kaupr continua sendo apenas uma fonte de notícias.

Eventos#

Eventos futuros e passados estão em /api/v1/events.json. Os calendários do Luma vêm da URL iCal pública de inscrição de cada fonte de eventos (ics). Páginas de cidade, páginas de categoria e a API discover do Luma não são usadas. Uma página de evento individual do Luma é lida como JSON-LD do schema.org. Organizadores e locais do Eventbrite são lidos com a API v3 quando o servidor tem EVENTBRITE_TOKEN. Esse token não está neste feed e não está no repositório. Sem ele, usa-se o JSON-LD da página do evento. Mesmo título, data e local formam um único evento. Eventos encerrados permanecem no feed. description.text é o texto do próprio organizador, description.lang é o idioma desse texto e description.source_url é a página de onde ele veio. description.i18n traz uma tradução quando temos uma. O campo é null quando a fonte não tinha descrição. Anúncios de conferências predatórias não são usados como fonte. A Kaupr nunca é patrocinadora.

Idiomas#

O inglês é o campo padrão (summary, title, text). As traduções que publicamos ficam em summary_i18n, title_i18n, subtitle_i18n, note_i18n, text_i18n e about_i18n, com as chaves nn, nb, sv, da, fi e is. Os demais idiomas do site usam o campo em inglês até que uma tradução seja publicada. Em uma notícia, title continua sendo a manchete da fonte, title_en é a nossa manchete em inglês e title_i18n é a nossa manchete nos idiomas nórdicos do site. As páginas mostram primeiro a manchete no idioma da página e, abaixo, a da fonte quando são diferentes. A manchete própria de cada veículo, em sources, fica no idioma desse veículo. As datas seguem a ISO 8601.

/api/v1/languages.json lista todos os idiomas do site com code, native_name, english_name, rtl, html_lang e home. /api/v1/geo-language.json é a correspondência entre país e idioma usada na primeira visita. O país do IP vem do tipworker GET /api/geo (Cloudflare request.cf.country). Nada é armazenado. O cookie nc_lang, definido pelo seletor de idioma, sempre prevalece.

Logos das fontes#

Cada veículo em /api/v1/sources.json tem logo_url (URL absoluta PNG ou WebP, nunca SVG, ou null) e logo (kind, file_url (o original, SVG ou WebP), raster_url (igual a logo_url), source_url, author, license, license_url, credit, ou null). Cada notícia tem source_logo_url, para que um app possa mostrar o logo do veículo ao lado da manchete. Os logos vêm do Wikimedia Commons (com a licença) ou do site do próprio veículo. São marcas registradas dos veículos, exibidas apenas para identificar a fonte de uma manchete. Um logo continua null até que o editor o tenha verificado.

CORS#

O GitHub Pages envia Access-Control-Allow-Origin: * nesses arquivos, então uma página de outro site pode buscá-los com fetch(). O GitHub Pages não aplica arquivos de cabeçalhos personalizados. Use o nome do arquivo com .json; abrir um diretório não retorna o JSON.

Linha editorial#

A assinatura é The Nordic Crypto team. A Kaupr (kaupr.io) é apenas uma fonte de notícias e nunca é patrocinadora. Nada aqui é recomendação de investimento.

Contas da marca#

ios em /api/v1/meta.json é o convite público do TestFlight para o app iOS da Nordic Crypto. Ele não está na App Store. apple_tv diz que a versão do TestFlight oferece suporte especial à Apple TV. apple_tv_i18n traz essa frase curta em todos os idiomas do site. O nome da marca continua sendo Nordic Crypto.

/api/v1/meta.json inclui social para o app iOS. social.telegram é o chat da Nordic Crypto em https://t.me/nordiccryptochat. social.x é a conta da marca em https://x.com/nordiccryptobot (@nordiccryptobot), também listada como urls.x. urls.telegram repete a URL do chat. urls.rss é o feed de notícias em inglês em /rss.xml. A página inicial de cada idioma tem o seu próprio rss.xml. urls.newsletter é a página de inscrição neste site. label é o nome curto (Telegram, X). name é o texto do link em inglês. name_i18n tem nn, nb, sv, da, fi e is. Os demais idiomas do site usam name.

Notificações do navegador#

Quando workers/push/public.json tem uma URL de Worker, o botão no rodapé de cada página é Web Push. Até lá, a página informa que o serviço não está ativado e não chama nenhum Worker. As inscrições ficam em um Cloudflare Worker, não neste feed estático. Depois de uma publicação, GET /api/push/feed.json nesse Worker lista os mesmos lotes (título, resumo curto, URL, país e traduções quando as temos). Uma publicação é um lote. O documento diz "apns": "not implemented": o Apple Push Notification service está fora do escopo. Um app iOS pode consultar o feed periodicamente. A URL do Worker é definida quando workers/push/ é implantado; ela não é um caminho deste site. As inscrições não estão no feed. O /api/v1/news.json desta API continua sendo a lista completa de notícias publicadas.

Endpoints#

Cada endpoint é um simples GET de um arquivo JSON estático.

CaminhoRetorna
/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).

Não incluído#

Rascunhos, a fila editorial, notícias rejeitadas, dicas de leitores, endereços dos assinantes da newsletter, o token de analytics e dados pessoais privados não estão neste feed. Um id desconhecido retorna um 404 normal do site, não um erro JSON.

Os nomes de campo da versão 1 são mantidos. Novos campos podem aparecer. Uma mudança incompatível usaria um novo caminho.