Nordic Cryptodesde 2026
SíguenosUnirse en TelegramSeguir en XCódigo fuente
Elegir idioma: Español

API de datos de Nordic Crypto

Un feed JSON público del sitio, para apps y otras herramientas. Sin cuenta y sin clave de API. Se regenera cada vez que se construye el sitio.

Versión 1. 57 noticias, 2 números del boletín, 13 eventos y 74 charlas en esta compilación. Generado el 2026-10-13T05:37:29+00:00.

Nodo Lightning de Bitcoin#

Nordic Crypto opera un nodo Lightning de Bitcoin. El alias es Nordic Crypto. La implementación es LND, en modo ligero Neutrino. Sin cuenta y sin clave de API.

NodoEstadoImplementación
Bitcoin
Nordic Crypto
sincronizando / aún no abierto a canalesLND (modo ligero Neutrino)

La línea de estado está escrita en esta página estática y no se actualiza sola. Estado en vivo: Amboss y 1ML.

URI del nodo. Copie una línea. La primera línea es IPv4. La segunda es el mismo nodo en IPv6, [2a01:4f8:c01e:36d9::1]:9735.

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

Clave pública.

0225974bb701101a5d4352dcae0f76aa9c1388e482a666e892f462e0e0e4217dd9

Dirección de depósito en la cadena.

bc1p7zgqhev2zzn45mefzq59gq983379lr0rsymhl558rza9k05y7vsq9mglx7

Servidores Electrum (BCH y Nexa)#

Nordic Crypto opera servidores Electrum Rostrum para Bitcoin Cash y Nexa. Monederos y apps pueden consultar en ellos fondos, transacciones, UTXO, tokens y el último bloque, y difundir transacciones. Sin cuenta y sin clave de API.

ServidorEstadoAltura de bloqueRespuestaVersión
Bitcoin Cash
wss://electrum-bch.nordiccrypto.no:50004
––––
Nexa
wss://electrum-nexa.nordiccrypto.no:20004
––––

Al abrir esta página, tu navegador pide a cada servidor su versión y el último bloque. La respuesta es el tiempo de la petición del último bloque.

Hablan el protocolo Electrum (JSON-RPC) en los puertos estándar: WebSocket con TLS (wss) en el 20004 para Nexa y el 50004 para Bitcoin Cash, y TLS sobre TCP en el 20002 para Nexa y el 50002 para Bitcoin Cash. No se ofrecen puertos sin cifrar. En una biblioteca cliente, indica el host, el puerto y el esquema (wss o tcp_tls). Los métodos figuran en la documentación del protocolo Rostrum.

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

Los servidores ejecutan sus propios nodos completos (Bitcoin Cash Node y Nexa), así que sus respuestas no dependen de terceros. Un cliente que no hace comprobaciones SPV sigue confiando en nosotros en cuanto al contenido de la cadena. No hay garantía de disponibilidad. Ten un segundo servidor en tu lista y cambia a él si uno no responde en pocos segundos.

Empieza aquí#

Obtener noticias y un boletín#

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

Las URL absolutas usan el sitio público, en la raíz del dominio: https://nordiccrypto.no/api/v1/news.json.

Consultar artículos nuevos#

/api/v1/news/latest.json contiene los 25 artículos publicados más recientes, solo con id, published, country, source, source_name, language_code, own_story, los titulares (title, title_en, title_i18n) y los enlaces (url, html_url, api_url). Los valores son los mismos que en news.json, en el mismo orden (el más reciente primero). El archivo se mantiene pequeño por mucho que crezca el archivo histórico, de modo que una app o un servidor push pueda consultarlo cada pocos minutos. Envíe If-None-Match con el último ETag; GitHub Pages responde 304 Not Modified mientras el archivo no cambie. Compare los id con los que ya haya visto; generated_at cambia en cada compilación.

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

Precios de mercado#

Los precios de los exchanges nórdicos son datos de mercado, no asesoramiento de inversión. /api/v1/markets.json lista cada par con símbolo, moneda base, moneda de cotización, último precio, oferta y demanda cuando el exchange las publica, el id, nombre y país del exchange, fetched_at, la URL de origen y el volumen cuando el exchange lo publica. volume_base está en el activo base, sin ventana temporal indicada (Firi). volume_base_24h y volume_quote_24h corresponden a las últimas 24 horas (NBX). Un volumen ausente es null, no cero. Las monedas de cotización son NOK, SEK, DKK y EUR. Un exchange: /api/v1/markets/{exchange}.json (firi, nbx, coinmotion). Un activo: /api/v1/markets/by-asset/{symbol}.json. Las plataformas sin ticker público aparecen en skipped y no reciben un precio inventado.

/api/v1/markets/aggregated.json tiene una fila por par. BTC-NOK no se promedia con BTC-EUR. last es la media aritmética de los últimos precios publicados. mid es la media de (bid+ask)/2 y no se mezcla con last. price es igual a last cuando existe algún último precio y, si no, a mid. min y max usan esa misma serie. No hay VWAP. El volumen solo se suma dentro del mismo campo y del mismo par. logo_url es un SVG de cryptocurrency-icons (CC0 1.0) cuando ese conjunto incluye el activo, servido en /api/v1/markets/logos/{symbol}.svg, y null en caso contrario. El archivo por activo repite aggregated y el logo.

La compilación consulta los exchanges. .github/workflows/markets-refresh.yml reescribe el JSON en gh-pages aproximadamente una vez por hora, incluidos el archivo agregado y los iconos. La página de mercados recarga este archivo y actualiza Firi y Coinmotion en el navegador, porque esas API envían Access-Control-Allow-Origin: *. NBX no lo hace, así que esas filas siguen al archivo. El mismo documento en la rama 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

Estadísticas de visitas#

Visitas y páginas vistas agregadas de Cloudflare Web Analytics (sin cookies). /api/v1/stats.json contiene filas daily, weekly (ISO) y monthly solo con visits y pageviews. Los días están en UTC. El archivo está vacío hasta que se configuran el sitio de Web Analytics y el token de actualización. .github/workflows/stats-refresh.yml lo reescribe en gh-pages aproximadamente una vez al día.

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

Charlas#

Las charlas públicas sobre bitcoin, criptomonedas y blockchain celebradas en Noruega, Suecia, Dinamarca, Finlandia, Islandia, las Islas Feroe, Groenlandia y Åland están en /api/v1/talks.json, de la más reciente a la más antigua. Una charla: /api/v1/talks/{id}.json. Un país: /api/v1/talks/by-country/{country}.json (NO, SE, DK, FI, IS, FO, GL, AX). description es nuestra. title, las fechas, la duración, el canal y los ponentes proceden de la plataforma indicada en source_url. Un campo que la plataforma no indicó es null. embed es true solo cuando la respuesta oEmbed de la plataforma incluye un reproductor. La página HTML carga el reproductor tras un clic: YouTube mediante youtube-nocookie.com y Vimeo mediante player.vimeo.com. event_id y calendar_event_id son el mismo id de evento cuando la charla está vinculada. Ese evento está en /api/v1/events/{id}.json (y en /api/v1/events/previous.json si ya pasó) y su página es /calendar/{id}/. talk_ids en el evento lista esas charlas. unlink_reason se rellena cuando la página del vídeo no indicaba día ni lugar, y entonces event_id es null. speaker_ids son ids de «Quién es quién» en el mismo orden que speakers. La persona, en /api/v1/orgchart/{id}.json, lista esas charlas y cualquier afiliación que indicara la página de la charla.

Varios medios, una noticia#

Una noticia tiene un medio principal. Los demás medios que cubrieron el mismo hecho están en also_covered_by. sources lista primero el principal y después los demás. Cada medio tiene outlet, outlet_name, url, title (el titular de ese medio), published, lang, country, source_type y logo. source_type es national, regional (regional y local), official (justicia e instituciones: policía, fiscalía, tribunales, reguladores) o international. coverage.count es el número de medios. coverage.by_country y coverage.by_source_type son los recuentos y proporciones para las barras. Todos los tipos de fuente están presentes, incluso con recuento cero. html_url es nuestra página de esa noticia. url es el medio principal. Kaupr sigue siendo solo una fuente de noticias.

Eventos#

Los eventos próximos y pasados están en /api/v1/events.json. Los calendarios de Luma se toman de la URL iCal pública de suscripción de cada fuente de eventos (ics). No se usan las páginas de ciudad, las páginas de categoría ni la API discover de Luma. Una página de evento individual de Luma se lee como JSON-LD de schema.org. Los organizadores y lugares de Eventbrite se leen con la API v3 cuando el servidor tiene EVENTBRITE_TOKEN. Ese token no está en este feed ni en el repositorio. Sin él, se usa el JSON-LD de la página del evento. Mismo título, fecha y lugar equivalen a un único evento. Los eventos terminados permanecen en el feed. description.text es el texto del propio organizador, description.lang el idioma de ese texto y description.source_url la página de la que procede. description.i18n contiene una traducción cuando la tenemos. El campo es null cuando la fuente no tenía descripción. Los anuncios de congresos depredadores no se usan como fuente. Kaupr nunca es patrocinador.

Idiomas#

El inglés es el campo por defecto (summary, title, text). Las traducciones que hemos publicado están en summary_i18n, title_i18n, subtitle_i18n, note_i18n, text_i18n y about_i18n, con las claves nn, nb, sv, da, fi e is. Los demás idiomas del sitio usan el campo en inglés hasta que se publique una traducción. En una noticia, title sigue siendo el titular de la fuente, title_en es nuestro titular en inglés y title_i18n nuestro titular en los idiomas nórdicos del sitio. Las páginas muestran primero el titular en el idioma de la página y debajo el de la fuente cuando difieren. El titular propio de cada medio, dentro de sources, se mantiene en el idioma de ese medio. Las fechas siguen ISO 8601.

/api/v1/languages.json lista todos los idiomas del sitio con code, native_name, english_name, rtl, html_lang y home. /api/v1/geo-language.json es la asignación de país a idioma que se usa en la primera visita. El país de la IP lo da el tipworker GET /api/geo (Cloudflare request.cf.country). No se guarda nada. La cookie nc_lang, que fija el selector de idioma, siempre tiene prioridad.

Logos de las fuentes#

Cada medio de /api/v1/sources.json tiene logo_url (URL absoluta PNG o WebP, nunca SVG, o null) y logo (kind, file_url (el original, SVG o WebP), raster_url (igual que logo_url), source_url, author, license, license_url, credit, o null). Cada noticia tiene source_logo_url, para que una app pueda mostrar el logo del medio junto al titular. Los logos proceden de Wikimedia Commons (con su licencia) o del sitio web del editor. Son marcas de los editores y se muestran solo para identificar la fuente de un titular. Un logo sigue siendo null hasta que el editor lo ha revisado.

CORS#

GitHub Pages envía Access-Control-Allow-Origin: * con estos archivos, así que una página de otro sitio puede obtenerlos con fetch(). GitHub Pages no aplica archivos de cabeceras personalizados. Usa el nombre de archivo con .json; abrir un directorio no devuelve el JSON.

Línea editorial#

La firma es The Nordic Crypto team. Kaupr (kaupr.io) es solo una fuente de noticias y nunca es patrocinador. Nada de lo que hay aquí es asesoramiento de inversión.

Cuentas de la marca#

ios en /api/v1/meta.json es la invitación pública de TestFlight para la app de iOS de Nordic Crypto. No está en la App Store. apple_tv indica que la versión de TestFlight es especialmente compatible con Apple TV. apple_tv_i18n tiene esa frase corta en todos los idiomas del sitio. El nombre de la marca sigue siendo Nordic Crypto.

/api/v1/meta.json incluye social para la app de iOS. social.telegram es el chat de Nordic Crypto en https://t.me/nordiccryptochat. social.x es la cuenta de la marca en https://x.com/nordiccryptobot (@nordiccryptobot), que también figura como urls.x. urls.telegram repite la URL del chat. urls.rss es el feed de noticias en inglés en /rss.xml. La portada de cada idioma tiene su propio rss.xml. urls.newsletter es la página de suscripción de este sitio. label es el nombre corto (Telegram, X). name es el texto del enlace en inglés. name_i18n tiene nn, nb, sv, da, fi e is. Los demás idiomas del sitio usan name.

Notificaciones del navegador#

Cuando workers/push/public.json tiene una URL de Worker, el botón al pie de cada página es Web Push. Hasta entonces, la página indica que el servicio no está activado y no llama a ningún Worker. Las suscripciones residen en un Cloudflare Worker, no en este feed estático. Tras una publicación, GET /api/push/feed.json en ese Worker lista los mismos lotes (título, resumen breve, URL, país y traducciones cuando las tenemos). Una publicación es un lote. El documento indica "apns": "not implemented": Apple Push Notification service queda fuera del alcance. Una app de iOS puede consultar el feed periódicamente. La URL del Worker se fija cuando se despliega workers/push/; no es una ruta de este sitio. Las suscripciones no están en el feed. /api/v1/news.json de esta API sigue siendo la lista completa de noticias publicadas.

Endpoints#

Cada endpoint es un simple GET de un archivo JSON estático.

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

No incluido#

Los borradores, la cola editorial, las noticias rechazadas, los avisos de lectores, las direcciones de los suscriptores del boletín, el token de analítica y los datos personales privados no están en este feed. Un id desconocido devuelve un 404 normal del sitio, no un error JSON.

Los nombres de campo de la versión 1 se mantienen. Pueden aparecer campos nuevos. Un cambio incompatible usaría una ruta nueva.