Les fichiers de données publics utilisés par le site et l’API. Les noms de champs restent en anglais.
Version du schéma 2026-10-17 · 8959dbf
Dernier changement 2026-10-17T07:37:29+02:00
/api/v1/schema/index.json
Stockages privés
Les signalements des lecteurs sont dans une base Cloudflare D1 privée. Le texte d’un signalement n’est pas dans les fichiers publics et n’est pas servi sur /api/v1/.
Les adresses des abonnés à la lettre sont dans une base Cloudflare D1 privée. Elles ne sont pas dans les fichiers publics et ne sont pas servies sur /api/v1/.
Comment les collections se relient
Relations between the public collections NEWS News stories EVENTS Events SOURCES Sources NEWSLETTERS Newsletters SPONSORS Sponsors ACADEMIA Academia BOOKS Books MARKETS Markets PROFILES Profiles ORGCHART Who's who TALKS Talks DEVELOPERS Developers ILLUSTRATIONS Illustrations IMAGES Portraits LOGOS Outlet logos CHANGELOG Changelog RULES Rules map STATS Visitor stats CROWDFUNDING Crowdfunding BUDGET Budget ARTICLES Article archive TITLE_I18N Headline translations BLURBS Front-page blurbs EVENT_DESCRIPTIONS Event descriptions EVENT_REDIRECTS Event redirects REGULATION_VIDEOS Regulation videos
Source Mermaid erDiagram
NEWS }|--|| SOURCES : source
NEWS }|--|| SOURCES : also_covered_by_.outlet
NEWS ||--|| TITLE_I18N : id
NEWS ||--|| BLURBS : id
EVENTS }|--|| SPONSORS : sponsored
EVENTS ||--o{ TALKS : id
EVENTS ||--|| EVENT_DESCRIPTIONS : id
EVENTS ||--|| EVENT_REDIRECTS : id
SOURCES ||--o{ NEWS : id
SPONSORS ||--o{ EVENTS : sponsored
PROFILES }|--|| ORGCHART : entity_id_object_key
ORGCHART }|--|| ORGCHART : relations_.from
ORGCHART }|--|| ORGCHART : relations_.to
ORGCHART }o--o{ TALKS : entities_.talk_ids
ORGCHART ||--o{ PROFILES : id
ORGCHART ||--o{ DEVELOPERS : id
TALKS }|--|| EVENTS : event_id
TALKS }o--o{ ORGCHART : speaker_ids
DEVELOPERS }|--|| ORGCHART : org_id
DEVELOPERS }|--|| ORGCHART : whoswho_id
ILLUSTRATIONS }o--o{ NEWS : assign_.id
IMAGES }|--|| ORGCHART : entity_id_object_key
LOGOS ||--|| SOURCES : id_object_key
ARTICLES }|--|| NEWS : articles_.id
TITLE_I18N }|--|| NEWS : items_key
BLURBS }|--|| NEWS : items_key
EVENT_DESCRIPTIONS }|--|| EVENTS : items_key
EVENT_REDIRECTS }|--|| EVENTS : removed_id_object_key
EVENT_REDIRECTS }|--|| EVENTS : value
Collections
News stories
Stories in data/news.json. status is the editorial state: pending, published, rejected or merged. The public API lists published stories that have a summary. Editor fields stay in the file and are left out of /api/v1/.
Fichier data/news.json · JSON Schema
Page
API
Relations source → sources many-to-one — Outlet id in sources.jsonalso_covered_by[].outlet → sources many-to-one — Other outlets on the same eventid → title-i18n one-to-one — Our headlines, when we wrote themid → blurbs one-to-one — Front-page blurb, when one is written
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note updatedstringObligatoire — "2026-10-14T01:43:32+00:00"
Story
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "d58de33a2af7"Stable id, 12 hex characters. urlstringObligatoire — "https://respawn.fi/gta-6-vuotajan-kryptovaluutta-romahti-yli-50-prosenttia"The story the reader follows. Absolute. titlestringObligatoire — "Bitcoin presses av rekordstore uttak"Source headline. title_enstring or nullObligatoire — "K33: Bitcoin outflows are heavy, but low leverage limits the downside"Our English headline, when the source headline is not English. Null when we did not write one. sourcestringObligatoire — "investornytt"Source id from sources.json. source_namestringObligatoire — "Investornytt"Outlet name as shown. countrystringObligatoire "NO" "SE" "DK" "FI" "IS" "NORDIC" "EU" "FO" "GL" "AX""NO"NO, SE, DK, FI, IS, NORDIC or EU. languagestring or nullObligatoire — "Norwegian"Language name of the source headline. viastringObligatoire · Absent de /api/v1/ — — seen_viaarray of stringObligatoire · Absent de /api/v1/ — — publishedstringObligatoire — "2026-10-13T15:04:51+00:00"When the outlet published it, ISO 8601. fetchedstringObligatoire · Absent de /api/v1/ — — topicsarray of stringObligatoire — ["bitcoin", "business"]Topic ids, such as bitcoin or regulation. matchedarray of stringObligatoire · Absent de /api/v1/ — — paywallbooleanObligatoire — falseTrue when the outlet may require a subscription. Article text is never fetched. statusstringObligatoire "pending" "published" "rejected" "merged""published"Editorial state. The public build uses published. summarystring or nullObligatoire — — Our English summary. Null until one is written. approved_bystringFacultatif · Absent de /api/v1/ — — approved_atstringFacultatif · Absent de /api/v1/ — — summary_i18nobjectFacultatif — — Our summary in nn, nb, sv, da, fi and is, when that translation is published. summary_i18n.nnstringObligatoire — — summary_i18n.nbstringObligatoire — — summary_i18n.svstringObligatoire — — summary_i18n.dastringObligatoire — — summary_i18n.fistringObligatoire — — summary_i18n.isstringObligatoire — — summary_i18n_reviewstringFacultatif · Absent de /api/v1/ — "approved"reject_reasonstringFacultatif · Absent de /api/v1/ — — published_unverifiedbooleanFacultatif — truesuggested_bystringFacultatif · Absent de /api/v1/ — — originstringFacultatif · Absent de /api/v1/ — "suggested by Kryptonytt"suggested_statusstringFacultatif · Absent de /api/v1/ — — suggested_atstringFacultatif · Absent de /api/v1/ — — primary_sourceobjectFacultatif — — Editor-recorded original document (name and url), such as a regulator press release. Not the lead outlet. primary_source.namestringObligatoire — "fi.se"primary_source.urlstringObligatoire — "https://mfn.se/all/a/ace-digital/aced-ace-digital-q3-2026-update"also_covered_byarray of object of string or boolean or nullFacultatif — — Other outlets on the same event. merged_intostringFacultatif — "5285674a58d8"Id of the story this item was merged into (status merged).
Events
Calendar events. data/events.json is the working list, archive/events.json is what the public calendar keeps, and data/events_backfill.json is the previous-events backfill. sponsored is null, false, true, or the sponsor's name, and is never Kaupr. The calendar status upcoming, ongoing or past is computed from start and end and is not stored.
Fichier data/events.json, archive/events.json, data/events_backfill.json · JSON Schema
Page
API
Relations sponsored → sponsors many-to-one — Null, false, true, or the sponsor's nameid → talks one-to-many — Talks recorded at this eventid → event-descriptions one-to-one id → event-redirects one-to-one — A removed duplicate points at the kept id
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note updatedstringFacultatif — "2026-10-13T02:13:07+00:00"_how_tostringFacultatif — — _notestringFacultatif — — calendar_statusstringCalculé à la construction du site, non enregistré dans le fichier. upcoming ongoing past— Not stored. upcoming: start is in the future. ongoing: start is in the past and end is still ahead (an event with no end is never ongoing). past: the event has ended. The same split is published as /api/v1/events/upcoming.json, the ongoing array, and /api/v1/events/past.json.
Event
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "ccc2eea6b213"Stable id. titlestringObligatoire — "Göteborg Bitcoin Meetup #49"Event title. startstringObligatoire — "2026-10-08T18:00:00+02:00"Start, ISO 8601 with offset. endstring or nullObligatoire — "2026-10-08T21:00:00+02:00"End, ISO 8601 with offset. Null when the source gave no end. placestring or nullObligatoire — "Ölrepubliken, Kronhusgatan 2B, Göteborg"Venue. Null when the event is online or the venue was not stated. citystringObligatoire — "Göteborg"City name. countrystringObligatoire "NO" "SE" "DK" "FI" "IS" "NORDIC" "EU" "FO" "GL" "AX""SE"Country code. onlinebooleanObligatoire — falseTrue when the event is online. organiserstringObligatoire — "Swedish Bitcoin Meetups"Who runs it. urlstringObligatoire — "https://www.meetup.com/swedish-bitcoin-meetups/events/316047111/"The organiser's page. sourcestringObligatoire — "Swedish Bitcoin Meetups (Meetup.com)"Where we read the listing. backfill on rows from the previous-events file. source_urlstringFacultatif — "https://www.meetup.com/swedish-bitcoin-meetups/"paidboolean or nullFacultatif — — True, false, or null when the source did not say. sponsoredboolean or string or nullFacultatif — "Reese Legal"Null or false when there is no sponsor, true when it is sponsored without a named sponsor, or the sponsor's name. Never Kaupr. trusted_sourcebooleanFacultatif — truefoundstringFacultatif — "2026-10-03T15:23:20+00:00"statusstringObligatoire "pending" "published" "rejected""pending"Editorial state. The public calendar uses published. notestring or nullFacultatif — — Our short note, in English. descriptionobjectFacultatif — — The organiser's description. text is the original wording. description.textstringObligatoire — — description.langstringObligatoire — "en"description.source_urlstringObligatoire — "https://www.meetup.com/swedish-bitcoin-meetups/events/316047111/"description.source_namestringObligatoire — "Swedish Bitcoin Meetups (Meetup.com)"description.retrievedstringObligatoire — "2026-10-07T23:50:00+00:00"place_sourceobject or nullFacultatif — — place_source.namestringObligatoire — "Polyteknisk Forening (program)"place_source.urlstringObligatoire — "https://www.polyteknisk.no/program/crypto-killer-apps"place_source.retrievedstringObligatoire — "2026-10-12T03:50:28+00:00"title_origstring or nullFacultatif — "Krypto-skatt v/ Reese Legal"note_i18nobject or nullFacultatif — — That note in nn, nb, sv, da, fi and is. note_i18n.nnstringObligatoire — "Fell på første nyttårsdag: sjekk sida til arrangøren før du dreg."note_i18n.nbstringObligatoire — "Faller på første nyttårsdag: sjekk arrangørens side før du drar."note_i18n.svstringObligatoire — "Upplysning: talaren, Jørgen S. Notland, är utgivare av Nordic Crypto."note_i18n.dastringObligatoire — "Oplysning: foredragsholderen, Jørgen S. Notland, er udgiver af Nordic Crypto."note_i18n.fistringObligatoire — "Tiedoksi: puhuja Jørgen S. Notland on Nordic Crypton julkaisija."note_i18n.isstringObligatoire — "Til upplýsingar: fyrirlesarinn, Jørgen S. Notland, er útgefandi Nordic Crypto."attendeesnullFacultatif — — event_typestringFacultatif "conference" "meetup" "hackathon" "seminar""conference"languagestring or nullFacultatif — "is"backfillbooleanFacultatif — trueTrue on rows from data/events_backfill.json. Those rows are only in previous.json. speakers_countnullFacultatif — — videos_urlnullFacultatif — — creditsobjectFacultatif — — credits.titleobjectObligatoire — — credits.title.source_namestringObligatoire — "BTCX"credits.title.source_urlstringObligatoire — "https://archive.cs.helsinki.fi/www.cs.helsinki.fi/en/events/79303.html"credits.title.retrieved_atstringObligatoire — "2026-10-07T21:00:00+00:00"credits.startobjectObligatoire — — credits.start.source_namestringObligatoire — "BTCX"credits.start.source_urlstringObligatoire — "https://archive.cs.helsinki.fi/www.cs.helsinki.fi/en/events/79303.html"credits.start.retrieved_atstringObligatoire — "2026-10-07T21:00:00+00:00"credits.endobjectFacultatif — — credits.end.source_namestringObligatoire — "BTCX"credits.end.source_urlstringObligatoire — "https://archive.cs.helsinki.fi/www.cs.helsinki.fi/en/events/79303.html"credits.end.retrieved_atstringObligatoire — "2026-10-07T21:00:00+00:00"credits.placeobjectFacultatif — — credits.place.source_namestringObligatoire — "BTCX"credits.place.source_urlstringObligatoire — "https://archive.cs.helsinki.fi/www.cs.helsinki.fi/en/events/79303.html"credits.place.retrieved_atstringObligatoire — "2026-10-07T21:00:00+00:00"credits.cityobjectFacultatif — — credits.city.source_namestringObligatoire — "BTCX"credits.city.source_urlstringObligatoire — "https://archive.cs.helsinki.fi/www.cs.helsinki.fi/en/events/79303.html"credits.city.retrieved_atstringObligatoire — "2026-10-07T21:00:00+00:00"credits.countryobjectObligatoire — — credits.country.source_namestringObligatoire — "BTCX"credits.country.source_urlstringObligatoire — "https://archive.cs.helsinki.fi/www.cs.helsinki.fi/en/events/79303.html"credits.country.retrieved_atstringObligatoire — "2026-10-07T21:00:00+00:00"credits.organiserobjectObligatoire — — credits.organiser.source_namestringObligatoire — "BTCX"credits.organiser.source_urlstringObligatoire — "https://archive.cs.helsinki.fi/www.cs.helsinki.fi/en/events/79303.html"credits.organiser.retrieved_atstringObligatoire — "2026-10-07T21:00:00+00:00"credits.urlobjectObligatoire — — credits.url.source_namestringObligatoire — "BTCX"credits.url.source_urlstringObligatoire — "https://archive.cs.helsinki.fi/www.cs.helsinki.fi/en/events/79303.html"credits.url.retrieved_atstringObligatoire — "2026-10-07T21:00:00+00:00"credits.event_typeobjectObligatoire — — credits.event_type.source_namestringObligatoire — "BTCX"credits.event_type.source_urlstringObligatoire — "https://archive.cs.helsinki.fi/www.cs.helsinki.fi/en/events/79303.html"credits.event_type.retrieved_atstringObligatoire — "2026-10-07T21:00:00+00:00"credits.languageobjectFacultatif — — credits.language.source_namestringObligatoire — "Rafmyntaráð Íslands"credits.language.source_urlstringObligatoire — "https://info.btchel.com/index.html"credits.language.retrieved_atstringObligatoire — "2026-10-07T21:00:00+00:00"talk_idsarray of stringFacultatif — ["yt-zi2JsPOm5HE"]
Sources
News outlets and event sources in sources.json. type is how the fetcher reads the outlet. coverage is national, regional, local or justice. Kaupr is a news source and is never a sponsor.
Fichier sources.json · JSON Schema
Page
API
Relations id → news one-to-many — Stories that cite this outlet
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _notestringObligatoire — — user_agentstringObligatoire — "NordicCryptoBot/0.1 (+__SITE__about/; news headline bot)"Fetcher user agent. __SITE__ is replaced with the public site origin at fetch time. min_delay_secondsintegerObligatoire — 2Minimum wait between requests to the same host. fetch_workersintegerObligatoire — 6
Outlet
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "e24"Stable source id. namestringObligatoire — "E24"Outlet name. countrystringObligatoire "NO" "SE" "DK" "FI" "IS" "NORDIC" "EU" "FO" "GL" "AX""NO"kindstringObligatoire — "Newspaper"urlstringObligatoire — "https://e24.no"feedstring or nullObligatoire — "https://e24.no/rss2/"RSS, sitemap or index URL. Null when none was verified. typestringObligatoire "rss" "rss-all" "html" "sitemap" "bing" "search" "dok8""rss"How the fetcher reads it: rss, rss-all, html, sitemap, bing, search or dok8. paywallbooleanObligatoire — trueTrue when a story may sit behind a subscription. enabledbooleanObligatoire — trueFalse when the feed is blocked, duplicated or not worth reading. statusstringObligatoire — "ok"verifiedstringObligatoire — "2026-10-06"coveragestringObligatoire "national" "regional" "local" "justice""local"national, regional, local or justice. languagestringObligatoire — "Norwegian"logo_sourcestringFacultatif — "https://e24.no/vgc/gfx/icon-180x180-1.0.png"methodstringObligatoire "rss" "html" "sitemap" "search" "manual""rss"What the sources table shows: rss, html, sitemap, search or manual. search_fallbackbooleanFacultatif — truemax_new_per_runintegerFacultatif — 8outletstringFacultatif — "nrk"match_extraarray of stringFacultatif — ["kryptotillgång", "Mica", "kryptotjänst"]regionstringFacultatif — "Stockholm"link_patternstringFacultatif — "^/nyheter/"merged_fromstringFacultatif — "kryptonytt 2026-10-04"allowed_tldstringFacultatif — "reuters.com"queriesarray of stringFacultatif — — site_termsarray of stringFacultatif — — sitesarray of stringFacultatif — — directorystringFacultatif — "Amedia portfolio"logostringFacultatif — "https://r.acdn.no/local/v3/publications/www.avisenagder.no/gfx/square_logo.jpg"logo_notestringFacultatif — "robots.txt disallows the homepage, so no logo was fetched. Text only."
Event source
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "oslo-blockchain-meetup"namestringObligatoire — "Oslo Blockchain Meetup (Meetup.com)"urlstringObligatoire — "https://www.meetup.com/oslo-blockchain-meetup/"typestringObligatoire — "jsonld"trustedbooleanObligatoire — trueorganiserstringFacultatif — "Oslo Blockchain Meetup"citystringFacultatif — "Oslo"enabledbooleanObligatoire — truestatusstringObligatoire — "ok (JSON-LD on the group page)"countrystringObligatoire — "NO"link_patternstringFacultatif — "^(https://www\\.polyteknisk\\.no)?/program/[a-z0-9-]+$"icsstringFacultatif — "https://api.lu.ma/ics/get?entity=calendar&id=cal-8VLp9TOOwhxwPog"methodstringFacultatif — "Luma public iCal subscribe feed (calendar Subscribe .ics)"merged_fromstringFacultatif — "kryptonytt 2026-10-04"organizer_idstringFacultatif — "46541998283"event_pagesarray of stringFacultatif — — venuestringFacultatif — "Litteraturhuset"House or room name when the source is one venue. addressstringFacultatif — "Wergelandsveien 29"Street address of the venue. sitestringFacultatif — "https://www.litteraturhuset.no"Origin of the venue site. apistringFacultatif — "https://litthusfred.no/wp-json/wp/v2/event"Public programme API the fetcher reads. lang_pathstringFacultatif — "nb"Language segment on the venue site. keyword_profilestringFacultatif "crypto-money""crypto-money"Which keyword list keeps an event from this source. max_pagesintegerFacultatif — 4How many programme pages to read. max_linksintegerFacultatif — 8How many event pages to open. max_cardsintegerFacultatif — 40How many event cards to read from the listing.
Newsletters
Published issues in newsletter/published/issues.json. Drafts under newsletter/issues/ are not part of this schema. Subscriber addresses are a private store and are not in this file.
Fichier newsletter/published/issues.json · JSON Schema
Page
API
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _how_tostringObligatoire — —
Issue
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "002"Issue id, such as 001. numberintegerObligatoire — 2Issue number. datestringObligatoire — "2026-10-12"Publication date, YYYY-MM-DD. periodarray of stringObligatoire — ["2026-10-05", "2026-10-12"]Start and end dates the issue covers, YYYY-MM-DD. langstringObligatoire — "en"titlestringObligatoire — "Nordic Crypto #1: Binance under scrutiny and Sweden's crypto sanctions warning"English title. subtitlestringObligatoire — "The Nordic crypto news our editor approved from 5 to 12 October 2026."English subtitle. storiesintegerObligatoire — 7eventsintegerObligatoire — 0videoobjectObligatoire — — Shared English video. video.mp4 is not committed; the build copies or downloads it. video.filestringObligatoire — "video.mp4"video.posterstringObligatoire — "thumbnail.png"video.subsstringObligatoire — "subs.vtt"video.durationintegerObligatoire — 131video.widthintegerObligatoire — 1920video.heightintegerObligatoire — 1080video.bytesintegerObligatoire — 1048576video.sha256stringObligatoire — "0f8966a443883e2ecb1e51a64b0fa8f35039bd2ddb76997c1143b93a9a4061f8"video.urlstringObligatoire — — video.youtubestringFacultatif — "https://www.youtube.com/watch?v=yqN3QaMdHhM"title_i18nobjectFacultatif — — Title in the Nordic site languages. title_i18n.nnstringObligatoire — — title_i18n.nbstringObligatoire — — title_i18n.svstringObligatoire — "Nordic Crypto #1: Binance granskas och Sveriges varning om krypto och sanktioner"title_i18n.dastringObligatoire — "Nordic Crypto #1: Binance under lup og Sveriges advarsel om krypto og sanktioner"title_i18n.fistringObligatoire — — title_i18n.isstringObligatoire — — subtitle_i18nobjectFacultatif — — subtitle_i18n.nnstringObligatoire — — subtitle_i18n.nbstringObligatoire — — subtitle_i18n.svstringObligatoire — — subtitle_i18n.dastringObligatoire — — subtitle_i18n.fistringObligatoire — — subtitle_i18n.isstringObligatoire — —
There is no sponsors file. A sponsor is the sponsored field on an event: null or false when there is no sponsor, true when it is sponsored without a named sponsor, or the sponsor's name. Kaupr is never a sponsor.
Fichier — · JSON Schema
Page
API
Relations sponsored → events one-to-many — The event names its sponsor
Champ Type Statut Valeurs permises Exemple Note sponsorsboolean or string or nullObligatoire — "Reese Legal"Null or false when there is no sponsor, true when it is sponsored without a named sponsor, or the sponsor's name. Never Kaupr.
Academia
Courses, student groups, publications and research groups in data/academia.json. The public page shows rows whose status is approved.
Fichier data/academia.json · JSON Schema
Page
API
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note updatedstringObligatoire — "2026-10-14"source_liststringObligatoire — — works_cataloguestringObligatoire — "research/academia/works.json"rulesarray of stringObligatoire — — Editorial rules for what may be listed. Prose, not a record.
Course
Champ Type Statut Valeurs permises Exemple Note countrystringObligatoire "NO" "SE" "DK" "FI" "IS" "FO" "GL" "AX""NO"institutionstringObligatoire — "NTNU"codestringObligatoire — "TTM4195"Course code at the institution. namestringObligatoire — "Blockchain Technologies and Cryptographic Tools"levelstringObligatoire — "Master, 7.5 ECTS"termstringObligatoire — "Autumn 2026"aboutstringObligatoire — — urlstringObligatoire — "https://www.ntnu.edu/studies/courses/TTM4195"sourcestringObligatoire — "https://www.ntnu.edu/studies/courses/TTM4195"checkedstringObligatoire — "2026-10-03"statusstringObligatoire "pending" "approved" "out" "unverified""approved"approved is shown on the public page. editor_notestringObligatoire — —
Student group
Champ Type Statut Valeurs permises Exemple Note countrystringObligatoire — "SE"namestringObligatoire — "KTH Blockchain Initiative"institutionstringObligatoire — "KTH"aboutstringObligatoire — — activitystringObligatoire — "none dated (only a \"© 2026\" footer)"activebooleanObligatoire — falseurlstringObligatoire — "https://kthbci.org"sourcestringObligatoire — "https://kthbci.org"checkedstringObligatoire — "2026-10-05"statusstringObligatoire "pending" "approved" "out""pending"editor_notestringObligatoire — —
Publication
Champ Type Statut Valeurs permises Exemple Note countrystringObligatoire "NO" "SE" "DK" "FI" "IS" "FO" "GL" "AX""FI"titlestringObligatoire — "Crypto disruption: blockchain and digital currencies from a CFO’s perspective"authorsarray of stringObligatoire — ["Severi Seppä"]institutionarray of string or stringObligatoire — "JAMK University of Applied Sciences"yearinteger or nullObligatoire — 2026typestringObligatoire "master" "phd" "paper" "conference" "project""phd"master, project, phd, paper or conference. venuestringObligatoire — "PhD dissertation"doistring or nullObligatoire — "10.1016/j.ribaf.2024.102333"DOI when the catalogue gave one, otherwise null. urlstringObligatoire — "http://www.theseus.fi/bitstream/10024/922533/2/Seppa_Severi.pdf"dbstringObligatoire — "http://www.theseus.fi/bitstream/10024/922533/2/Seppa_Severi.pdf"db_namestringObligatoire — "openalex"sourcestringObligatoire — "http://www.theseus.fi/bitstream/10024/922533/2/Seppa_Severi.pdf"aboutstringFacultatif — — keywordsarray of stringFacultatif — ["blockchains", "finance", "central bank digital currency"]checkedstringObligatoire — "2026-10-14"statusstringObligatoire "pending" "approved" "out""pending"editor_notestringObligatoire — — originstringObligatoire — "research/academia/works.json"title_enstring or nullFacultatif — "The Minimum Hybrid Contract (MHC): Combining Legal and Blockchain Smart Contracts"English title when the original is in another language. languagestring or nullFacultatif — "English"Language of the work, as given by the catalogue.
Research group
Champ Type Statut Valeurs permises Exemple Note countrystringObligatoire "NO" "SE" "DK" "FI" "IS" "FO" "GL" "AX""NO"namestringObligatoire — "Blockchain-UiO"institutionstringObligatoire — "University of Oslo, Dept. of Informatics"aboutstringObligatoire — — urlstringObligatoire — "https://www.mn.uio.no/ifi/english/research/networks/blockchainlab/"sourcestringObligatoire — "https://www.mn.uio.no/ifi/english/research/networks/blockchainlab/"checkedstringObligatoire — "2026-10-05"statusstringObligatoire "pending" "approved" "out""approved"editor_notestringObligatoire — —
Books
Published books about bitcoin, crypto or blockchain by Nordic authors, or about the Nordic countries, in data/books.json. Titles stay in the original language. about is our one-line description in English.
Fichier data/books.json · JSON Schema
Page
API
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note updatedstringObligatoire — "2026-10-08"notestringObligatoire — —
Book
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "svalbard-pengar"titlestringObligatoire — "Svalbard! Pengar!"Title in the original language, as printed. authorsarray of stringObligatoire — ["Morten Søberg"]Names as printed. yearintegerObligatoire — 2022Year of the edition we checked. publisherstringObligatoire — "Spartacus"languagestringObligatoire "nn" "nb" "sv" "da" "fi" "is" "en""nn"nn, nb, sv, da, fi, is or en. countrystringObligatoire "NO" "SE" "DK" "FI" "IS" "FO" "GL" "AX""NO"The author's country, or the country the book is about. isbnstring or nullObligatoire — "9788243014817"ISBN-13 when the catalogue gave one. aboutstringObligatoire — — sourcestringObligatoire — "https://www.nb.no/items/URN:NBN:no-nb_digibok_2022102848045"Catalogue or publisher page where the title, authors, year and publisher were checked. source_namestringObligatoire — "Nasjonalbiblioteket"more_sourcesarray of stringFacultatif — ["https://www.finna.fi/Record/3amk.284126"]subtitlestringFacultatif — "kryptovaluta, «smarte kontrakter» og andre eiendeler på blokkjeden"author_rolestringFacultatif "editors""editors"editors for an edited volume, otherwise omitted.
Markets
Nordic exchange prices written at build time to /api/v1/markets.json. This is not a file in data/. Market data, not investment advice. quote is NOK, SEK, DKK or EUR. Nothing is converted between currencies.
Fichier — · JSON Schema
Page
API
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note api_versionstringObligatoire — "1"namestringObligatoire — "Nordic Crypto"generated_atstringObligatoire — "2026-10-14T12:00:00+00:00"previewbooleanObligatoire — falsekindstringObligatoire — "markets"disclaimerstringObligatoire — — Market data, not investment advice. sign_offstringObligatoire — "The Nordic Crypto team"not_investment_advicebooleanObligatoire — truequotesarray of stringObligatoire — — NOK, SEK, DKK and EUR only. quote_notestringObligatoire — — aggregationobject of stringObligatoire — — refreshobjectObligatoire — — refresh.buildstringObligatoire — "Fetched when the site is built (./build.sh and ./publish.sh)."refresh.github_actionsstringObligatoire — — refresh.browserstringObligatoire — — refresh.browser_json_secondsintegerObligatoire — 900refresh.browser_exchange_secondsintegerObligatoire — 300refresh.actions_cronstringObligatoire — "17 * * * *"urlsobjectObligatoire — — urls.github_pagesstringObligatoire — "https://nordiccrypto.no/api/v1/markets.json"urls.raw_githubusercontentstringObligatoire — — urls.custom_domainstringObligatoire — "https://nordiccrypto.no/api/v1/markets.json"urls.aggregated_github_pagesstringObligatoire — "https://nordiccrypto.no/api/v1/markets/aggregated.json"urls.aggregated_custom_domainstringObligatoire — "https://nordiccrypto.no/api/v1/markets/aggregated.json"urls.logosstringObligatoire — "https://nordiccrypto.no/api/v1/markets/logos/"skippedarray of objectObligatoire — — skipped[].idstringObligatoire — "safello"skipped[].namestringObligatoire — "Safello"skipped[].countrystringObligatoire — "SE"skipped[].reasonstringObligatoire — "No public unauthenticated ticker API was found."countintegerObligatoire — 1aggregated_countintegerObligatoire — 1
Ticker
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "firi:BTC-NOK"symbolstringObligatoire — "BTC-NOK"exchange_symbolstringObligatoire — "BTCNOK"basestringObligatoire — "BTC"quotestringObligatoire "NOK" "SEK" "DKK" "EUR""NOK"laststringObligatoire — "100.5"bidstringObligatoire — "100"askstringObligatoire — "101"exchangeobjectObligatoire — — exchange.idstringObligatoire — "firi"exchange.namestringObligatoire — "Firi"exchange.countrystringObligatoire — "NO"fetched_atstringObligatoire — "2026-10-14T12:00:00+00:00"source_urlstringObligatoire — "https://api.firi.com/v2/markets/BTCNOK"volume_basestringObligatoire — "1"volume_quotenullObligatoire — — volume_base_24hnullObligatoire — — volume_quote_24hnullObligatoire — — highstringObligatoire — "101"lowstringObligatoire — "99"change_pctstringObligatoire — "0.1"exchange_timestring or nullFacultatif — — Timestamp from the exchange payload, when it sends one.
Aggregate
Champ Type Statut Valeurs permises Exemple Note symbolstringObligatoire — "BTC-NOK"basestringObligatoire — "BTC"namestringObligatoire — "Bitcoin"quotestringObligatoire "NOK" "SEK" "DKK" "EUR""NOK"currencystringObligatoire "NOK" "SEK" "DKK" "EUR""NOK"updated_atstringObligatoire — "2026-10-14T12:00:00+00:00"oldest_fetched_atstringObligatoire — "2026-10-14T12:00:00+00:00"exchange_countintegerObligatoire — 1methodstringObligatoire "mean_last" "mean_bid_ask_mid""mean_last"method_notestringObligatoire — — pricestringObligatoire — "100.5"minstringObligatoire — "100.5"maxstringObligatoire — "100.5"laststringObligatoire — "100.5"last_countintegerObligatoire — 1last_minstringObligatoire — "100.5"last_maxstringObligatoire — "100.5"midstringObligatoire — "100.5"mid_countintegerObligatoire — 1mid_minstringObligatoire — "100.5"mid_maxstringObligatoire — "100.5"vwapnullObligatoire — — volume_used_for_pricebooleanObligatoire — falsevolumeobjectObligatoire — — volume.unitsobjectObligatoire — — volume.units.volume_basestringObligatoire — "base asset; window not named by the exchange"volume.units.volume_quotestringObligatoire — "quote currency; window not named by the exchange"volume.units.volume_base_24hstringObligatoire — "base asset; last 24 hours, as named by the exchange"volume.units.volume_quote_24hstringObligatoire — "quote currency; last 24 hours, as named by the exchange"volume.volume_basestringObligatoire — "1"volume.volume_base_exchangesintegerObligatoire — 1volume.volume_quotenullObligatoire — — volume.volume_quote_exchangesintegerObligatoire — 0volume.volume_base_24hnullObligatoire — — volume.volume_base_24h_exchangesintegerObligatoire — 0volume.volume_quote_24hnullObligatoire — — volume.volume_quote_24h_exchangesintegerObligatoire — 0contributorsarray of objectObligatoire — — contributors[].exchange_idstringObligatoire — "firi"contributors[].namestringObligatoire — "Firi"contributors[].countrystringObligatoire — "NO"contributors[].laststringObligatoire — "100.5"contributors[].bidstringObligatoire — "100"contributors[].askstringObligatoire — "101"contributors[].midstringObligatoire — "100.5"contributors[].included_in_lastbooleanObligatoire — truecontributors[].included_in_midbooleanObligatoire — truecontributors[].volume_basestringObligatoire — "1"contributors[].volume_quotenullObligatoire — — contributors[].volume_base_24hnullObligatoire — — contributors[].volume_quote_24hnullObligatoire — — contributors[].fetched_atstringObligatoire — "2026-10-14T12:00:00+00:00"contributors[].source_urlstringObligatoire — "https://api.firi.com/v2/markets/BTCNOK"contributors[].included_in_pricebooleanObligatoire — truelogo_urlstringObligatoire — "https://nordiccrypto.no/api/v1/markets/logos/btc.svg"logo_url_custom_domainstringObligatoire — "https://nordiccrypto.no/api/v1/markets/logos/btc.svg"logo_pathstringObligatoire — "api/v1/markets/logos/btc.svg"logoobject of stringObligatoire — —
Exchange
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "firi"namestringObligatoire — "Firi"countrystringObligatoire — "NO"websitestringObligatoire — "https://firi.com/"docs_urlstringObligatoire — "https://developers.firi.com/"source_urlstringObligatoire — "https://api.firi.com/v2/markets"corsbooleanObligatoire — truenotestringObligatoire — — statusstringObligatoire "ok" "error""ok"fetched_atstringObligatoire — "2026-10-14T17:10:34+00:00"errorstring or nullObligatoire — "fixture"ticker_countintegerObligatoire — 1
Profiles
Public profile links in data/profiles.json, keyed by who's who id. Each link needs a source_url that shows it belongs to that person or organisation. status published is what the site shows.
Fichier data/profiles.json · JSON Schema
Page
API
Relations entity id (object key) → orgchart many-to-one
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _how_tostringObligatoire — —
Link
Champ Type Statut Valeurs permises Exemple Note kindstringObligatoire "github" "linkedin" "wikidata" "wikipedia" "x""wikipedia"wikipedia, wikidata, x, linkedin or github. labelstringObligatoire — "Wikipedia (en)"urlstringObligatoire — "https://en.wikipedia.org/wiki/Erik_Thed%C3%A9en"The public profile. source_urlstringObligatoire — "https://www.wikidata.org/wiki/Q6207027"Page that shows the link belongs to this person or organisation. statusstringObligatoire "pending" "published""published"published is shown. pending waits for the editor. reviewedstringFacultatif — — notestringFacultatif — — addedstringFacultatif — "2026-10-09 (open-source developers research)"
Who's who
People and organisations in data/orgchart.json, the relations between them, and a short regulation note per country. status published is what the public page and the API show.
Fichier data/orgchart.json · JSON Schema
Page
API
Relations relations[].from → orgchart many-to-one relations[].to → orgchart many-to-one entities[].talk_ids → talks many-to-many id → profiles one-to-many id → developers one-to-many — whoswho_id and org_id on a developer
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note updatedstringObligatoire — "2026-10-03"no_export_datestringObligatoire — "03.10.2026"caveatsarray of stringObligatoire — —
Entity
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "stortinget-finanskomiteen"Stable who's who id. namestringObligatoire — "Storting (parliament) – Standing Committee on Finance"typestringObligatoire "person" "organisation""organisation"person or organisation. sectorstringObligatoire "private" "public""public"private or public. countrystring or nullObligatoire "NO" "SE" "DK" "FI" "IS" "NORDIC" "EU" "FO" "GL" "AX" null"NO"descriptionstring or nullObligatoire — — sourcesarray of objectObligatoire — — Pages the row was checked against. sources[].urlstringObligatoire — "https://www.regjeringen.no/no/dep/fin/id216/"sources[].titlestringObligatoire — "Stortinget"sources[].source_namestringObligatoire — "Stortinget"sources[].datestringObligatoire — "03.10.2026"imageobject or nullObligatoire — — image.filestringObligatoire — "assets/img/people/tuva-moflag.jpg"image.source_pagestringObligatoire — "https://commons.wikimedia.org/wiki/File:Tuva_Moflag.jpg"image.authorstringObligatoire — "Johannes Dalen Giske"image.licensestringObligatoire — "CC BY-SA 4.0"image.license_urlstringObligatoire — "https://creativecommons.org/licenses/by-sa/4.0"image.originstringObligatoire — "Wikimedia Commons"image.reviewstringObligatoire — "ok"image.notestringFacultatif — — image.checkedstringFacultatif — "2026-10-03"image.reviewedstringFacultatif — — caveatbooleanFacultatif — falseoriginstringObligatoire — "Kryptonytt industry map (approved for Norway)"groupstring or nullFacultatif — "Parliament & government"statusstringObligatoire "pending" "published" "rejected""published"published is shown. rejected stays in the file and is left off the public page. logoobjectFacultatif — — logo.sourcestringObligatoire — "Wikimedia Commons"logo.source_urlstringObligatoire — "https://www.finanstilsynet.no/Content/Favicons/apple-touch-icon-57x57.png"logo.licensestringFacultatif — "Public domain"logo.authorstring or nullFacultatif — "Worldlydev"logo.filestringObligatoire — "assets/img/logos/stortinget-finanskomiteen.svg"logo.wikidatastringFacultatif — "Q109016"logo.fetchedstringObligatoire — — logo.reviewstringObligatoire — "ok"logo.reviewedstringFacultatif — — logo.rasterstringFacultatif — "assets/img/logos/stortinget-finanskomiteen.png"logo.pagestringFacultatif — "https://www.finanstilsynet.no"logo.kindstringFacultatif — "touch"logo.notestringFacultatif — — logo.historyarray of objectFacultatif — — logo.history[].reviewstringObligatoire — "rejected"logo.history[].reasonstringObligatoire — "editor: outdated logo"logo.history[].datestringObligatoire — "2026-10-04"orgstring or nullFacultatif — "stortinget-finanskomiteen"rolestring or nullFacultatif — "Chair (Labour)"profile_urlstringFacultatif — "https://www.regjeringen.no/no/dep/fin/id216/"profilesarray of objectFacultatif — — profiles[].kindstringObligatoire — "wikipedia"profiles[].labelstringObligatoire — "Wikipedia (en)"profiles[].urlstringObligatoire — "https://en.wikipedia.org/wiki/Tuva_Moflag"profiles[].source_urlstringObligatoire — "https://www.wikidata.org/wiki/Q25427910"profiles[].statusstringObligatoire — "published"profiles[].reviewedstringFacultatif — — profiles[].notestringFacultatif — — profiles[].addedstringFacultatif — "2026-10-09 (open-source developers research)"talk_idsarray of stringFacultatif — ["yt-gn50NxhPk-0"]talksarray of objectFacultatif — — talks[].idstringObligatoire — "yt-gn50NxhPk-0"talks[].titlestringObligatoire — "Hvorfor og når får vi digitale sentralbankpenger og kryptovaluta?"talks[].video_urlstringObligatoire — "https://www.youtube.com/watch?v=gn50NxhPk-0"talks[].event_idstringFacultatif — "92041cfcb99c"talks[].datestringFacultatif — "2016-04-19"affiliationsarray of objectFacultatif — — affiliations[].talk_idstringObligatoire — "yt-RTcqp3MqRtU"affiliations[].organisationstringObligatoire — "NBX"affiliations[].source_urlstringObligatoire — "https://www.youtube.com/watch?v=RTcqp3MqRtU&hl=en"affiliations[].source_namestringObligatoire — "Nordic Blockchain Association"affiliations[].retrieved_atstringObligatoire — "2026-10-07T23:30:36+00:00"affiliations[].rolestringFacultatif — "PhD Student"affiliations[].event_idstringFacultatif — "92041cfcb99c"affiliations[].datestringFacultatif — "2016-04-19"urlstring or nullFacultatif — "https://www.fi.se"aliasesarray of stringFacultatif — ["BTCX", "Goobit AB", "Goobit Group AB"]reviewstringFacultatif — "pending"viastringFacultatif — — addedstringFacultatif — "2026-10-03"event_idsarray of stringFacultatif — ["92041cfcb99c"]from_talksbooleanFacultatif — true
Relation
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "r-greenmerc-northcrypto"fromstringObligatoire — "greenmerc"Entity id. tostringObligatoire — "northcrypto"Entity id. typestringObligatoire "collaboration" "licensed" "partner" "refused" "supervises" "uses licence""uses licence"collaboration, licensed, partner, refused, supervises or uses licence. labelstringObligatoire — "Uses Northcrypto's MiCA licence for Trijo customers"sourcesarray of objectObligatoire — — sources[].urlstringObligatoire — "https://www.meetup.com/swedish-bitcoin-meetups/"sources[].titlestringObligatoire — "GreenMerc trekker MiCA-klage og bruker Northcryptos lisens i Sverige"sources[].source_namestringObligatoire — "Kaupr"sources[].datestringObligatoire — "2026-10-03"statusstringObligatoire "pending" "published" "rejected""published"
Regulation note
Champ Type Statut Valeurs permises Exemple Note countrystringObligatoire "NO" "SE" "DK" "FI" "IS" "FO" "GL" "AX""NO"micastringObligatoire — — lawstringObligatoire — "Lov om kryptoeiendeler (Crypto-Assets Act, 27 May 2025 no. 20)."regulatorstringObligatoire — — statusstringObligatoire — — sourcesarray of objectObligatoire — — sources[].urlstringObligatoire — "https://lovdata.no/dokument/NL/lov/2025-05-27-20"sources[].titlestringObligatoire — "Lov om kryptoeiendeler"sources[].source_namestringObligatoire — "Lovdata"sources[].datestringObligatoire — "2026-10-03"
Talks
Public talks on bitcoin, cryptocurrencies and blockchain in the Nordic countries, in data/talks.json. description is ours. The other details come from the platform at source_url. A field the platform did not state is null.
Fichier data/talks.json · JSON Schema
Page
API
Relations event_id → events many-to-one — Null when the talk could not be dated or placedspeaker_ids → orgchart many-to-many
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _notestringObligatoire — —
Talk
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "yt-ZJHTEXcyePQ"video_urlstringObligatoire — "https://www.youtube.com/watch?v=ZJHTEXcyePQ"platformstringObligatoire "youtube" "vimeo" "university" "other""youtube"youtube, vimeo, university or other. titlestringObligatoire — "Nordic Blockchain Conference 2026: Market Abuse in Web3"speakersarray of stringObligatoire — ["Disha L. Dinesha"]event_namestring or nullObligatoire — "Nordic Blockchain Conference 2026"event_urlstring or nullObligatoire — "https://energy-markets-school.dk/"calendar_event_idstring or nullObligatoire — "30569783bb01"event_idstring or nullObligatoire — "30569783bb01"Calendar event id when the talk is linked. Same value as calendar_event_id. unlink_reasonstring or nullObligatoire — "the video page did not state the day"Why the talk is not linked to an event. Null when event_id is set. citystring or nullObligatoire — "Copenhagen"countrystring or nullObligatoire "NO" "SE" "DK" "FI" "IS" "FO" "GL" "AX" null"DK"datestring or nullObligatoire — "2020-01-16"publishedstringObligatoire — "2026-08-24"durationstring or nullObligatoire — "PT11M38S"ISO 8601 duration when the platform states a length. languagenullObligatoire — — channelstringObligatoire — "DAAvern"descriptionstringObligatoire — — Short neutral summary in our own words. source_urlstringObligatoire — "https://www.youtube.com/watch?v=ZJHTEXcyePQ&hl=en"retrieved_atstringObligatoire — "2026-10-07T20:57:16Z"added_atstringObligatoire — "2026-10-07T20:57:16Z"embedbooleanObligatoire — trueTrue when the platform's oEmbed response includes an official player. speaker_idsarray of stringObligatoire — ["spk-disha-l-dinesha"]
Developers
Open-source developers in data/developers.json. Only public professional information: no addresses and no private details. The public page shows status published.
Fichier data/developers.json · JSON Schema
Page
API
Relations
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note updatedstringObligatoire — "2026-10-09"_how_tostringObligatoire — —
Developer
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "torkel-rogstad"namestringObligatoire — "Torkel Rogstad"Name as shown on the public code profile. rolestringObligatoire — "Co-founder; developer"orgstring or nullObligatoire — "Bare Bitcoin"org_idstring or nullObligatoire — "bare-bitcoin"whoswho_idstring or nullObligatoire — "torkel-rogstad"countrystringObligatoire "NO" "SE" "DK" "FI" "IS" "FO" "GL" "AX""NO"profilesarray of objectObligatoire — — profiles[].kindstringObligatoire — "github"profiles[].urlstringObligatoire — "https://github.com/torkelrogstad"profiles[].loginstringObligatoire — "torkelrogstad"notablearray of objectObligatoire — — Up to three public repos or contributions. notable[].kindstringObligatoire "repo" "contrib""contrib"notable[].projectstringFacultatif — "lightningnetwork/lnd"notable[].hoststringFacultatif — "github"notable[].urlstringObligatoire — "https://github.com/torkelrogstad/lnd-fun"notable[].commitsinteger or nullFacultatif — 11notable[].merged_prsinteger or nullFacultatif — 4notable[].namestringFacultatif — "torkelrogstad/lnd-fun"notable[].starsintegerFacultatif — 6notable[].languagestring or nullFacultatif — "JavaScript"notable[].descriptionstring or nullFacultatif — — notable[].last_pushstringFacultatif — "2018-09-10"nordic_sourceobjectObligatoire — — Where the Nordic link was checked. nordic_source.urlstringObligatoire — "https://github.com/torkelrogstad"nordic_source.notestringObligatoire — — checkedstringObligatoire — "2026-10-09"YYYY-MM-DD the profile and counts were checked. statusstringObligatoire "pending" "published""pending"published is on the public page. pending waits for the editor. reviewstringObligatoire "editor" "ready_for_owner""editor"notestringFacultatif — —
Illustrations
Licensed pictures that may be assigned to a story, in data/illustrations.json. kind is original, commons or official-press. A newspaper photograph is never stored here.
Fichier data/illustrations.json · JSON Schema
Page
API
Relations assign[].id → news many-to-many — Chosen from topics, then country
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _policystringObligatoire — — fallbackstringObligatoire — "original-crypto"Picture id used when no topic or country rule matches. countryobjectObligatoire — — country.NOstringObligatoire — "commons-no"country.SEstringObligatoire — "commons-se"country.DKstringObligatoire — "commons-dk"country.FIstringObligatoire — "commons-fi"country.ISstringObligatoire — "commons-is"assignarray of objectObligatoire — — Topic rules. The first match wins. assign[].topicsarray of stringFacultatif — ["crime"]assign[].idstringObligatoire — "commons-court"assign[].countriesarray of stringFacultatif — ["SE"]assign[].whystringFacultatif — —
Picture
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "original-bitcoin"kindstringObligatoire "original" "commons" "official-press""original"original (drawn for Nordic Crypto), commons (Wikimedia Commons) or official-press. filestringObligatoire — "assets/img/illustrations/original-bitcoin.webp"altstringObligatoire — "Abstract gold disc. Nordic Crypto illustration, not a photograph and not a logo."sourcestringObligatoire — "Nordic Crypto"authorstringObligatoire — "Nordic Crypto"licensestringObligatoire — "CC0 1.0"Licence name. license_urlstringObligatoire — "https://creativecommons.org/publicdomain/zero/1.0/"urlstringObligatoire — "https://cryptonordic.no/ethics/"The source page for the credit. widthintegerObligatoire — 960heightintegerObligatoire — 540modificationsstringFacultatif — "Cropped by Nordic Crypto to leave out a person at the edge of the frame."termsstringFacultatif — —
Portraits
Portrait files for the who's who, keyed by entity id, in data/images.json. Each record names the file, the author and the licence.
Fichier data/images.json · JSON Schema
Page
API
Relations entity id (object key) → orgchart many-to-one
Portrait
Champ Type Statut Valeurs permises Exemple Note filestringObligatoire — "assets/img/people/tuva-moflag.jpg"Path in the repo. source_pagestringObligatoire — "https://commons.wikimedia.org/wiki/File:Tuva_Moflag.jpg"Page the picture was taken from. authorstringObligatoire — "Johannes Dalen Giske"licensestringObligatoire — "CC BY-SA 4.0"Licence name, such as CC BY-SA 4.0. license_urlstringObligatoire — "https://creativecommons.org/licenses/by-sa/4.0"originstringObligatoire — "Wikimedia Commons"
Outlet logos
Outlet marks in assets/img/logos/logos.json, keyed by id. review ok is what the public API shows. A missing review counts as ok. pending is included only in a preview build. rejected is never shown. The marks are the publishers' trademarks, shown only to identify the source of a headline.
Fichier assets/img/logos/logos.json · JSON Schema
API
Relations id (object key) → sources one-to-one
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _how_tostringObligatoire — — _how_to_sourcesstringObligatoire — — _source_aliasobject of stringObligatoire — — Source id to logo key, when the who's who id differs from the news source id.
Logo
Champ Type Statut Valeurs permises Exemple Note sourcestringFacultatif — "Wikimedia Commons"source_urlstringObligatoire — "https://www.finanstilsynet.no/Content/Favicons/apple-touch-icon-57x57.png"Where the file was fetched. licensestringFacultatif — "Public domain"authorstring or nullFacultatif — "Worldlydev"filestringFacultatif — "assets/img/logos/stortinget-finanskomiteen.svg"Path of the original file, SVG or WebP. wikidatastringFacultatif — "Q109016"fetchedstringObligatoire — — reviewstringObligatoire "pending" "ok" "rejected""ok"pending, ok or rejected. The public build shows ok, and a missing review counts as ok. reviewedstringFacultatif — — rasterstringFacultatif — "assets/img/logos/stortinget-finanskomiteen.png"PNG rendering of an SVG, when one was made. pagestringFacultatif — "https://www.finanstilsynet.no"kindstringFacultatif — "touch"notestringFacultatif — — historyarray of objectFacultatif — — history[].reviewstringObligatoire — "rejected"history[].reasonstringObligatoire — "editor: outdated logo"history[].datestringObligatoire — "2026-10-04"reasonstringFacultatif — "editor: rejected (shows the owner Bitdeer's logo); left blank"usestringFacultatif — "nominative"source_idstringFacultatif — "e24"outletstringFacultatif — "E24"license_urlstringFacultatif — "https://creativecommons.org/licenses/by/4.0"same_asstringFacultatif — "nbx"
Changelog
Site changes in changelog.json (new pages, sections and features, not the daily news). review pending keeps an entry off the public page until it has a date.
Fichier changelog.json · JSON Schema
Page
API
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _how_tostringObligatoire — — launch_datestringObligatoire — "2026-10-03"Set on the first publish. Entries with date launch use this day.
Entry
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "onion-tip-page"datestring or nullObligatoire — "2026-10-07"YYYY-MM-DD, launch, or null while the entry is still pending. reviewstringFacultatif "pending""pending"pending keeps the entry off the public page. titlestringObligatoire — "Tor onion tip page"descriptionstringObligatoire — — i18nobjectObligatoire — — title and description in nn, nb, sv, da, fi and is. i18n.nnobjectObligatoire — — i18n.nn.titlestringObligatoire — "Tor-onion-tipsside"i18n.nn.descriptionstringObligatoire — — i18n.nbobjectObligatoire — — i18n.nb.titlestringObligatoire — "Tor-onion-tipsside"i18n.nb.descriptionstringObligatoire — — i18n.svobjectFacultatif — — i18n.sv.titlestringObligatoire — "Tor-onion-tipssida"i18n.sv.descriptionstringObligatoire — — i18n.daobjectFacultatif — — i18n.da.titlestringObligatoire — "Tor-onion-tipside"i18n.da.descriptionstringObligatoire — — i18n.fiobjectFacultatif — — i18n.fi.titlestringObligatoire — "Tor-onion-vinkkisivu"i18n.fi.descriptionstringObligatoire — — i18n.isobjectFacultatif — — i18n.is.titlestringObligatoire — "Tor-onion-ábendingasíða"i18n.is.descriptionstringObligatoire — —
Rules map
The regulation map behind /rules/, in rules.json. Every node points at a primary source. review approved is what the public page shows.
Fichier rules.json · JSON Schema
Page
API
Champ Type Statut Valeurs permises Exemple Note _notestringObligatoire — — reviewstringObligatoire "pending" "approved""approved"approved is shown. pending leaves the public page as a short placeholder. checkedstringObligatoire — "2026-10-04"YYYY-MM-DD the claims were last checked. sourcesobjectObligatoire — — Primary sources, keyed by id. sources.micaobjectObligatoire — — sources.mica.urlstringObligatoire — "https://eur-lex.europa.eu/eli/reg/2023/1114/oj/eng"sources.mica.titlestringObligatoire — "Regulation (EU) 2023/1114 (MiCA), Art. 149 and closing formula"sources.mica.publisherstringObligatoire — "EUR-Lex"sources.tfrobjectObligatoire — — sources.tfr.urlstringObligatoire — "https://eur-lex.europa.eu/eli/reg/2023/1113/oj/eng"sources.tfr.titlestringObligatoire — "Regulation (EU) 2023/1113 (transfer of funds and certain crypto-assets), Art. 40"sources.tfr.publisherstringObligatoire — "EUR-Lex"sources.amlrobjectObligatoire — — sources.amlr.urlstringObligatoire — "https://eur-lex.europa.eu/eli/reg/2024/1624/oj/eng"sources.amlr.titlestringObligatoire — "Regulation (EU) 2024/1624 (AMLR), Art. 90"sources.amlr.publisherstringObligatoire — "EUR-Lex"sources.doraobjectObligatoire — — sources.dora.urlstringObligatoire — "https://eur-lex.europa.eu/eli/reg/2022/2554/oj/eng"sources.dora.titlestringObligatoire — "Regulation (EU) 2022/2554 (DORA), Art. 64"sources.dora.publisherstringObligatoire — "EUR-Lex"sources.esmaobjectObligatoire — — sources.esma.urlstringObligatoire — — sources.esma.titlestringObligatoire — "Markets in Crypto-Assets Regulation (MiCA) – interim MiCA register"sources.esma.publisherstringObligatoire — "ESMA"sources.is_actobjectObligatoire — — sources.is_act.urlstringObligatoire — "https://www.althingi.is/altext/stjt/2025.101.html"sources.is_act.titlestringObligatoire — "Lög nr. 101/2025 um markaði fyrir sýndareignir (Art. 1, 3 and 16)"sources.is_act.publisherstringObligatoire — "Alþingi"sources.no_actobjectObligatoire — — sources.no_act.urlstringObligatoire — "https://lovdata.no/dokument/NL/lov/2025-05-27-20"sources.no_act.titlestringObligatoire — "Lov om kryptoeiendeler (kryptoeiendelsloven), LOV-2025-05-27-20, § 2"sources.no_act.publisherstringObligatoire — "Lovdata"sources.se_actobjectObligatoire — — sources.se_act.urlstringObligatoire — — sources.se_act.titlestringObligatoire — — sources.se_act.publisherstringObligatoire — "Sveriges riksdag"sources.dk_actobjectObligatoire — — sources.dk_act.urlstringObligatoire — "https://www.retsinformation.dk/eli/lta/2024/1013"sources.dk_act.titlestringObligatoire — — sources.dk_act.publisherstringObligatoire — "Retsinformation"sources.fi_actobjectObligatoire — — sources.fi_act.urlstringObligatoire — "https://www.finlex.fi/fi/lainsaadanto/2024/402"sources.fi_act.titlestringObligatoire — — sources.fi_act.publisherstringObligatoire — "Finlex"sources.fi_fivaobjectObligatoire — — sources.fi_fiva.urlstringObligatoire — — sources.fi_fiva.titlestringObligatoire — "Crypto-asset service providers in Finland must be authorised in the EU"sources.fi_fiva.publisherstringObligatoire — "Finanssivalvonta"sources.no_amlobjectObligatoire — — sources.no_aml.urlstringObligatoire — "https://lovdata.no/dokument/NL/lov/2018-06-01-23"sources.no_aml.titlestringObligatoire — — sources.no_aml.publisherstringObligatoire — "Lovdata"sources.se_amlobjectObligatoire — — sources.se_aml.urlstringObligatoire — — sources.se_aml.titlestringObligatoire — — sources.se_aml.publisherstringObligatoire — "Sveriges riksdag"sources.fi_amlobjectObligatoire — — sources.fi_aml.urlstringObligatoire — "https://www.finlex.fi/fi/lainsaadanto/2017/444"sources.fi_aml.titlestringObligatoire — — sources.fi_aml.publisherstringObligatoire — "Finlex"sources.is_amlobjectObligatoire — — sources.is_aml.urlstringObligatoire — "https://www.althingi.is/lagas/nuna/2018140.html"sources.is_aml.titlestringObligatoire — — sources.is_aml.publisherstringObligatoire — "Alþingi"sources.dk_ftobjectObligatoire — — sources.dk_ft.urlstringObligatoire — — sources.dk_ft.titlestringObligatoire — — sources.dk_ft.publisherstringObligatoire — "Finanstilsynet (DK)"sources.fi_fiu_actobjectObligatoire — — sources.fi_fiu_act.urlstringObligatoire — "https://www.finlex.fi/fi/lainsaadanto/2017/445"sources.fi_fiu_act.titlestringObligatoire — — sources.fi_fiu_act.publisherstringObligatoire — "Finlex"sources.dk_fiuobjectObligatoire — — sources.dk_fiu.urlstringObligatoire — "https://hvidvask.dk/"sources.dk_fiu.titlestringObligatoire — "Hvidvasksekretariatet – National enhed for Særlig Kriminalitet (NSK)"sources.dk_fiu.publisherstringObligatoire — "Hvidvasksekretariatet"sources.dk_taxobjectObligatoire — — sources.dk_tax.urlstringObligatoire — — sources.dk_tax.titlestringObligatoire — "Skat på krypto: Kend reglerne, så du undgår et skattesmæk"sources.dk_tax.publisherstringObligatoire — "Skattestyrelsen (skat.dk)"sources.dk_tax_jvobjectObligatoire — — sources.dk_tax_jv.urlstringObligatoire — "https://info.skat.dk/data.aspx?oid=2395613"sources.dk_tax_jv.titlestringObligatoire — — sources.dk_tax_jv.publisherstringObligatoire — "Skattestyrelsen (info.skat.dk)"sources.no_taxobjectObligatoire — — sources.no_tax.urlstringObligatoire — — sources.no_tax.titlestringObligatoire — "Virtuelle eiendeler (kryptovaluta med mer)"sources.no_tax.publisherstringObligatoire — "Skatteetaten"sources.se_taxobjectObligatoire — — sources.se_tax.urlstringObligatoire — — sources.se_tax.titlestringObligatoire — "Kryptovalutor"sources.se_tax.publisherstringObligatoire — "Skatteverket"sources.fi_taxobjectObligatoire — — sources.fi_tax.urlstringObligatoire — "https://www.vero.fi/henkiloasiakkaat/omaisuus/sijoitukset/virtuaalivaluutat/"sources.fi_tax.titlestringObligatoire — "Kryptovarat"sources.fi_tax.publisherstringObligatoire — "Verohallinto (vero.fi)"sources.is_taxobjectObligatoire — — sources.is_tax.urlstringObligatoire — "https://www.skatturinn.is/einstaklingar/skattskylda/rafmynt/"sources.is_tax.titlestringObligatoire — "Rafmynt (no special provisions; general tax rules apply)"sources.is_tax.publisherstringObligatoire — "Skatturinn"euobjectObligatoire — — EU institutions, acts and agencies. eu.institutionsarray of objectObligatoire — — eu.institutions[].namestringObligatoire — "European Commission"eu.institutions[].rolestringObligatoire — "propose"eu.institutions[].srcstringObligatoire — "mica"eu.actsarray of objectObligatoire — — eu.acts[].namestringObligatoire — "MiCA"eu.acts[].refstringObligatoire — "Regulation (EU) 2023/1114"eu.acts[].appliesstringObligatoire — "2024-12-30"eu.acts[].note_keystringObligatoire — "act_mica"eu.acts[].srcstringObligatoire — "mica"eu.agenciesarray of objectObligatoire — — eu.agencies[].namestringObligatoire — "ESMA"eu.agencies[].orgstringObligatoire — "esma"eu.agencies[].note_keystringObligatoire — "ag_esma"eu.agencies[].srcstringObligatoire — "mica"eu.agencies[].src2stringFacultatif — "esma"countriesobjectObligatoire — — One object per Nordic country. countries.SEobjectObligatoire — — countries.SE.routestringObligatoire — "eu"countries.SE.lawstringObligatoire — "Lag (2024:1159)"countries.SE.law_srcstringObligatoire — "se_act"countries.SE.parliamentstringObligatoire — "Riksdagen"countries.SE.ministryobjectObligatoire — — countries.SE.ministry.namestringObligatoire — "Finansdepartementet"countries.SE.ministry.orgstringObligatoire — "se-finansdepartementet"countries.SE.supervisorobjectObligatoire — — countries.SE.supervisor.namestringObligatoire — "Finansinspektionen"countries.SE.supervisor.orgstringObligatoire — "se-fi"countries.SE.supervisor.srcstringObligatoire — "se_act"countries.SE.enforcearray of objectObligatoire — — countries.DKobjectObligatoire — — countries.DK.routestringObligatoire — "eu"countries.DK.lawstringObligatoire — "Lov om finansiel virksomhed § 332 c"countries.DK.law_srcstringObligatoire — "dk_act"countries.DK.parliamentstringObligatoire — "Folketinget"countries.DK.ministryobjectObligatoire — — countries.DK.ministry.namestringObligatoire — "Erhvervsministeriet"countries.DK.ministry.orgstringObligatoire — "dk-erhvervsministeriet"countries.DK.supervisorobjectObligatoire — — countries.DK.supervisor.namestringObligatoire — "Finanstilsynet"countries.DK.supervisor.orgstringObligatoire — "dk-finanstilsynet"countries.DK.supervisor.srcstringObligatoire — "dk_act"countries.DK.supervisor.src2stringObligatoire — "dk_ft"countries.DK.enforcearray of objectObligatoire — — countries.DK.note5stringObligatoire — "r12_dk"countries.DK.note5_srcarray of stringObligatoire — ["dk_fiu", "dk_tax", "dk_tax_jv"]countries.FIobjectObligatoire — — countries.FI.routestringObligatoire — "eu"countries.FI.lawstringObligatoire — "Laki 402/2024"countries.FI.law_srcstringObligatoire — "fi_act"countries.FI.parliamentstringObligatoire — "Eduskunta"countries.FI.ministryobjectObligatoire — — countries.FI.ministry.namestringObligatoire — "Valtiovarainministeriö"countries.FI.ministry.orgstringObligatoire — "fi-vm"countries.FI.supervisorobjectObligatoire — — countries.FI.supervisor.namestringObligatoire — "Finanssivalvonta"countries.FI.supervisor.orgstringObligatoire — "fi-fiva"countries.FI.supervisor.srcstringObligatoire — "fi_act"countries.FI.supervisor.src2stringObligatoire — "fi_fiva"countries.FI.enforcearray of objectObligatoire — — countries.FI.note4stringObligatoire — "r13_fi"countries.FI.note4_srcarray of stringObligatoire — ["fi_act"]countries.FI.note5stringObligatoire — "r14_fi"countries.FI.note5_srcarray of stringObligatoire — ["fi_aml", "fi_fiu_act"]countries.NOobjectObligatoire — — countries.NO.routestringObligatoire — "eea"countries.NO.lawstringObligatoire — "Lov om kryptoeiendeler (LOV-2025-05-27-20)"countries.NO.law_srcstringObligatoire — "no_act"countries.NO.parliamentstringObligatoire — "Stortinget"countries.NO.parliament_orgstringObligatoire — "stortinget-finanskomiteen"countries.NO.ministryobjectObligatoire — — countries.NO.ministry.namestringObligatoire — "Finansdepartementet"countries.NO.ministry.orgstringObligatoire — "finansdepartementet"countries.NO.supervisorobjectObligatoire — — countries.NO.supervisor.namestringObligatoire — "Finanstilsynet"countries.NO.supervisor.orgstringObligatoire — "finanstilsynet"countries.NO.supervisor.srcstringObligatoire — "no_act"countries.NO.enforcearray of objectObligatoire — — countries.ISobjectObligatoire — — countries.IS.routestringObligatoire — "eea"countries.IS.lawstringObligatoire — "Lög nr. 101/2025"countries.IS.law_srcstringObligatoire — "is_act"countries.IS.parliamentstringObligatoire — "Alþingi"countries.IS.ministryobjectObligatoire — — countries.IS.ministry.namestringObligatoire — "Fjármála- og efnahagsráðuneytið"countries.IS.ministry.orgstringObligatoire — "is-fjr"countries.IS.supervisorobjectObligatoire — — countries.IS.supervisor.namestringObligatoire — "Seðlabanki Íslands – Fjármálaeftirlit"countries.IS.supervisor.orgstringObligatoire — "is-fme"countries.IS.supervisor.srcstringObligatoire — "is_act"countries.IS.enforcearray of objectObligatoire — — eeaobjectObligatoire — — eea.decisionstringObligatoire — "EEA Joint Committee Decision No 41/2025 (20 February 2025)"eea.srcstringObligatoire — "is_act"approvedstringObligatoire — —
Visitor stats
Aggregate visits and page views in data/stats.json, from Cloudflare Web Analytics. No IP addresses, user agents, paths, referrers or countries. Days are UTC. Weeks are ISO weeks.
Fichier data/stats.json · JSON Schema
Page
API
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note api_versionstringObligatoire — "1"namestringObligatoire — "Nordic Crypto"generated_atnullObligatoire — — previewbooleanObligatoire — falsesourcestringObligatoire — "Cloudflare Web Analytics"statusstringObligatoire "pending" "ok""pending"ok when daily rows exist, otherwise pending. timezonestringObligatoire "UTC""UTC"notestringObligatoire — — schemaintegerObligatoire — 1Integer schema version of the stats document. first_datenullObligatoire — — last_datenullObligatoire — — updated_atnullObligatoire — —
Day
Champ Type Statut Valeurs permises Exemple Note datestringObligatoire — "2026-10-01"UTC day, YYYY-MM-DD. visitsintegerObligatoire — 0pageviewsintegerObligatoire — 0partialbooleanFacultatif — — True while that day is still running.
Week
Champ Type Statut Valeurs permises Exemple Note weekstringObligatoire — "2026-W41"ISO week, YYYY-Www. startstringObligatoire — "2026-10-05"endstringObligatoire — "2026-10-11"daysintegerObligatoire — — visitsintegerObligatoire — — pageviewsintegerObligatoire — — partialbooleanFacultatif — —
Month
Champ Type Statut Valeurs permises Exemple Note monthstringObligatoire — "2026-10"Calendar month, YYYY-MM. daysintegerObligatoire — — visitsintegerObligatoire — — pageviewsintegerObligatoire — — partialbooleanFacultatif — —
Crowdfunding
The closed crowdfunding pilot in data/crowdfunding.json. Nordic Crypto does not hold keys or funds. The file has no donor data and no balances. demo true marks an example, not a live campaign.
Fichier data/crowdfunding.json · JSON Schema
Page
API
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _docstringObligatoire — — pilotobjectObligatoire — — pilot.statusstringObligatoire "closed" "open""closed"closed or open. The pilot is closed. pilot.max_projectsintegerObligatoire — 5pilot.apply_emailnullObligatoire — — pilot.report_emailnullObligatoire — —
Campaign
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "demo-example"demobooleanObligatoire — trueTrue for an example with invalid addresses. titlestringObligatoire — "Example campaign (demo, not live)"ownerstringObligatoire — "Example project owner"owner_countrystringObligatoire "NO" "SE" "DK" "FI" "IS" "NORDIC" "EU" "FO" "GL" "AX""NO"owner_is_traderbooleanObligatoire — falsedescriptionstringObligatoire — — rewardstringObligatoire — — goalobjectObligatoire — — goal.bchnumberObligatoire — 2.5goal.nexaintegerObligatoire — 100000000goal.nok_approxnullObligatoire — — addressesobjectObligatoire — — The project's own addresses. Nordic Crypto does not hold them. addresses.bchstringObligatoire — "bitcoincash:DEMO-NOT-A-REAL-ADDRESS"addresses.nexastringObligatoire — "nexa:DEMO-NOT-A-REAL-ADDRESS"deadlinestringObligatoire — "2026-12-31"kyc_verifiedbooleanObligatoire — falselinksarray of objectObligatoire — — links[].labelstringObligatoire — "Project website (example)"links[].urlstringObligatoire — "https://example.org/"
Budget
Monthly hosting and domain costs in data/budget.json. The figures exclude labour. amount is the monthly figure in currency.
Fichier data/budget.json · JSON Schema
Page
Pas de fichier JSON public pour cette collection.
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _notestringObligatoire — — as_ofstringObligatoire — "2026-10-13"YYYY-MM-DD the figures were written down. quotestringObligatoire "NOK""NOK"Currency the page converts into. rates_approximatebooleanObligatoire — trueratesarray of objectObligatoire — — Approximate conversion into the quote currency. rates[].currencystringObligatoire — "EUR"rates[].perstringObligatoire — "1"rates[].quote_amountstringObligatoire — "11.70"
Line
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "hetzner-electrum-1"kindstringObligatoire "server" "volume" "workers" "domains" "pages" "dns""server"server, volume, workers, domains, pages or dns. namestringFacultatif — "electrum-1"typestringFacultatif — "cx43"placestringFacultatif — "Falkenstein"runsstringFacultatif — "Electrum servers, Lightning node, Bitcoin/Nexa/BCH nodes, explorer"amountstringFacultatif — "15.99"Monthly amount, decimal string. currencystringFacultatif "EUR" "USD" "NOK""EUR"periodstringFacultatif — "month"amount_serverstringFacultatif — "8.49"amount_ipv4stringFacultatif — "0.50"gbstringFacultatif — "1500"unit_pricestringFacultatif — "0.0572"unit_currencystringFacultatif — "EUR"namesstringFacultatif — "nordiccrypto.no/.dk/.se/.fi/.is/.eu"vendorstringFacultatif — "Domeneshop"amount_yearstringFacultatif — "1578"vatstringFacultatif — "incl"hoststringFacultatif — "nordiccrypto.no"freebooleanFacultatif — true
Article archive
Stories the public site has shown, in archive/articles.json, including when a story was removed. removal_reason stays null in this public file.
Fichier archive/articles.json · JSON Schema
API
Relations articles[].id → news many-to-one
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note schemaintegerObligatoire — 2sitestringObligatoire — "nordic-crypto"exported_atstringObligatoire — "2026-10-14T07:38:23+02:00"
Archived story
Champ Type Statut Valeurs permises Exemple Note sitestringObligatoire — "nordic-crypto"idstringObligatoire — "07e49032be5a"urlstringObligatoire — "https://www.kaupr.io/nyheter/nytt-nederlag-for-valuno-i-kampen-om-mica-lisens"canonical_urlstringObligatoire — "https://kaupr.io/nyheter/hilbert-finansierer-utlan-med-innskudd-pa-blokkjeden"titlestringObligatoire — "Safello åpner for at andre selskaper kan tilby kryptokjøp"sourcestringObligatoire — "kaupr"source_namestringObligatoire — "Kaupr"published_atstringObligatoire — "2026-09-24T12:00:00+00:00"When the outlet published the story. first_published_on_sitestringObligatoire — "2026-10-03T17:59:40+02:00"When it first appeared on Nordic Crypto. last_seen_on_sitestringObligatoire — "2026-10-14T07:38:23+02:00"languagesarray of stringObligatoire — — summariesobjectObligatoire — — summaries.enstringObligatoire — — summaries.nnstringObligatoire — — summaries.nbstringObligatoire — — summaries.svstringObligatoire — — summaries.dastringObligatoire — — summaries.fistringObligatoire — — summaries.isstringObligatoire — — titlesobjectObligatoire — — titles.enstringFacultatif — "Safello opens up so other companies can offer crypto purchases"titles.nnstringFacultatif — "Safello opnar for at andre selskap kan tilby kryptokjøp"titles.svstringFacultatif — "Safello öppnar för att andra bolag kan erbjuda kryptoköp"titles.dastringFacultatif — "Safello åbner for, at andre selskaber kan tilbyde kryptokøb"titles.fistringFacultatif — "Safello antaa muiden yhtiöiden tarjota kryptokauppaa"titles.isstringFacultatif — "Safello opnar á að önnur fyrirtæki geti boðið kaup á rafmyntum"titles.nbstringFacultatif — "Opplysninger: Tenåringer sølvteipet mann i jakt på kryptovaluta"topicsarray of stringObligatoire — ["business", "mica"]removedintegerObligatoire — 01 when the story was taken off the public site, otherwise 0. removed_atnullObligatoire — — removal_reasonnullObligatoire · Absent de /api/v1/ — — Not filled in this public file. updated_atstringObligatoire — "2026-10-14T07:38:23+02:00"countrystringObligatoire "NO" "SE" "DK" "FI" "IS" "NORDIC" "EU" "FO" "GL" "AX""SE"
Archive event
Champ Type Statut Valeurs permises Exemple Note seqintegerObligatoire — 1sitestringObligatoire — "nordic-crypto"idstringObligatoire — "e6727b4858b5"atstringObligatoire — "2026-10-03T17:59:40+02:00"eventstringObligatoire "backfill" "publish" "published" "update" "updated" "remove""backfill"What the archive recorded for this row. detailstring or nullObligatoire — "summaries"
Headline translations
Our headlines by story id, in data/title_i18n.json. The source headline stays on the story. Keys are nn, nb, sv, da, fi and is, and only for languages that are not already the source headline.
Fichier data/title_i18n.json · JSON Schema
Pas de fichier JSON public pour cette collection.
Relations items key → news many-to-one
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _notestringObligatoire — — langsarray of stringObligatoire — — Language codes this file translates into. itemsobject of headlinesObligatoire — —
Headlines for one story
Champ Type Statut Valeurs permises Exemple Note sourcestringObligatoire — "Småsparere hamstret krypto under renteuro"nnstringObligatoire — "Småspararar hamstra krypto under renteuro"svstringFacultatif — "Småsparare hamstrade krypto under ränteoro"dastringFacultatif — "Småsparere hamstrede krypto under renteuro"fistringFacultatif — "Piensijoittajat hamstrasivat kryptoa korkoheilunnassa"isstringObligatoire — "Smásparifólk hamstraði rafmynt í vaxtaóróa"nbstringFacultatif — "Slik kan Sverige brukes til å finansiere kjernevåpen"
Front-page blurbs
Front-page blurbs by story id, in data/frontpage_blurbs.json. en is ours, in English. The Nordic site languages sit beside it when a translation is published.
Fichier data/frontpage_blurbs.json · JSON Schema
Pas de fichier JSON public pour cette collection.
Relations items key → news many-to-one
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _notestringObligatoire — — langsarray of stringObligatoire — — itemsobject of blurbObligatoire — —
Blurb
Champ Type Statut Valeurs permises Exemple Note enstringObligatoire — — nnstringObligatoire — — nbstringObligatoire — — svstringObligatoire — — dastringObligatoire — — fistringObligatoire — — isstringObligatoire — —
Event descriptions
Organiser descriptions and our translations, by event id, in data/event_description_i18n.json. source is the original wording. A language key is present only when that translation is written.
Fichier data/event_description_i18n.json · JSON Schema
Pas de fichier JSON public pour cette collection.
Relations items key → events many-to-one
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _notestringObligatoire — — itemsobject of descriptionObligatoire — —
Description
Champ Type Statut Valeurs permises Exemple Note sourcestringObligatoire — — nnstringFacultatif — — nbstringFacultatif — — svstringObligatoire — — dastringObligatoire — — fistringObligatoire — — isstringFacultatif — — enstringFacultatif — —
Event redirects
Merged duplicate events in data/event_redirects.json. Each key is a removed id and each value is the id that was kept. The old calendar URL refreshes to the kept event.
Fichier data/event_redirects.json · JSON Schema
Page
Pas de fichier JSON public pour cette collection.
Relations removed id (object key) → events many-to-one value → events many-to-one — The id that was kept
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _notestringObligatoire — —
Kept id
Champ Type Statut Valeurs permises Exemple Note event-redirectsstringObligatoire — "019f42a4506c"
Regulation videos
Country explainer slots in data/regulation-videos.json. status scripts_ready means the script and storyboard exist and the MP4 is not committed yet.
Fichier data/regulation-videos.json · JSON Schema
Page
Pas de fichier JSON public pour cette collection.
Champs du fichier
Champ Type Statut Valeurs permises Exemple Note _notestringObligatoire — —
Video
Champ Type Statut Valeurs permises Exemple Note idstringObligatoire — "reg-no"countrystringObligatoire "NO" "SE" "DK" "FI" "IS" "FO" "GL" "AX""NO"duration_target_sintegerObligatoire — 165statusstringObligatoire "scripts_ready" "published""scripts_ready"scripts_ready until an MP4 is published. filestringObligatoire — "video-no.mp4"MP4 name under regulation-videos/media/. The file is not committed. posterstringObligatoire — "poster-no.png"subsstringObligatoire — "subs-no.vtt"scriptstringObligatoire — "scripts/no-script.txt"Path of the script, relative to regulation-videos/. storyboardstringObligatoire — "storyboards/no-storyboard.md"
Journal du schéma
Quand Commit Changement
2026-10-17 8959dbfSchema examples: avoid 8-digit values the privacy gate reads as phone numbers 2026-10-16 5e22089Document the public data model at /db/ (#153)