<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alessandro Binda</title>
    <description>The latest articles on DEV Community by Alessandro Binda (@alessandrobinda114).</description>
    <link>https://dev.to/alessandrobinda114</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3935544%2F9c668a3a-ffd5-44f2-b1a0-c80b97ee480b.png</url>
      <title>DEV Community: Alessandro Binda</title>
      <link>https://dev.to/alessandrobinda114</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alessandrobinda114"/>
    <language>en</language>
    <item>
      <title>I built a complete developer ecosystem around 250M company records — here are all the free tools</title>
      <dc:creator>Alessandro Binda</dc:creator>
      <pubDate>Wed, 17 Jun 2026 00:43:42 +0000</pubDate>
      <link>https://dev.to/alessandrobinda114/i-built-a-complete-developer-ecosystem-around-250m-company-records-here-are-all-the-free-tools-5fa</link>
      <guid>https://dev.to/alessandrobinda114/i-built-a-complete-developer-ecosystem-around-250m-company-records-here-are-all-the-free-tools-5fa</guid>
      <description>&lt;p&gt;Every developer tool I ship follows one rule: &lt;strong&gt;make company data accessible to everyone, everywhere they already work&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;After aggregating 250M+ company records from 40+ government registries, I didn't stop at the API. Here's the complete ecosystem — every tool is free and open source.&lt;/p&gt;

&lt;h2&gt;
  
  
  The API
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://score.get-scala.com" rel="noopener noreferrer"&gt;score.get-scala.com&lt;/a&gt; — Free REST API. No signup, no API key for basic lookups.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://score.get-scala.com/api/search?q=Tesla&amp;amp;limit=3"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Returns: company name, country, revenue, employees, credit score (0-100), NACE codes, legal form, VAT, contacts.&lt;/p&gt;

&lt;h2&gt;
  
  
  CLI Tools
&lt;/h2&gt;

&lt;h3&gt;
  
  
  enrich-companies (npm + PyPI)
&lt;/h3&gt;

&lt;p&gt;Enrich any CSV file with company data. Auto-detects the company name column.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Node.js&lt;/span&gt;
npx enrich-companies input.csv &lt;span class="nt"&gt;-o&lt;/span&gt; enriched.csv

&lt;span class="c"&gt;# Python (zero dependencies)&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;enrich-companies
enrich-companies input.csv &lt;span class="nt"&gt;-o&lt;/span&gt; enriched.csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  company-lookup (npm)
&lt;/h3&gt;

&lt;p&gt;Look up any company from the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx company-lookup Ferrero
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  vat-lookup (npm)
&lt;/h3&gt;

&lt;p&gt;Validate EU VAT numbers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx vat-lookup IT02727330014
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  SDKs in Every Language
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;Install&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/Alessandro114/scala-score-js" rel="noopener noreferrer"&gt;scala-score-js&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;npm install scala-score&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;&lt;a href="https://pypi.org/project/scala-score/" rel="noopener noreferrer"&gt;scala-score&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;pip install scala-score&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ruby&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/Alessandro114/score-ruby-gem" rel="noopener noreferrer"&gt;score_api&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;gem install score_api&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rust&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/Alessandro114/score-rust" rel="noopener noreferrer"&gt;score-api&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;cargo add score-api&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Go&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/Alessandro114/company-lookup-go" rel="noopener noreferrer"&gt;company-lookup-go&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;go install github.com/Alessandro114/company-lookup-go@latest&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deno&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/Alessandro114/scala-score-deno" rel="noopener noreferrer"&gt;@scala/score&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;import from jsr:@scala/score&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Integrations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP Server&lt;/strong&gt; for AI agents (Claude, GPT): &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Action&lt;/strong&gt; for CI pipelines: &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WordPress Plugin&lt;/strong&gt;: &lt;a href="https://github.com/Alessandro114/score-company-lookup-wp" rel="noopener noreferrer"&gt;score-company-lookup-wp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Slack App&lt;/strong&gt;: &lt;a href="https://github.com/Alessandro114/score-slack-app" rel="noopener noreferrer"&gt;score-slack-app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telegram Bot&lt;/strong&gt;: &lt;a href="https://github.com/Alessandro114/score-telegram-bot" rel="noopener noreferrer"&gt;score-telegram-bot&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Raycast Extension&lt;/strong&gt;: &lt;a href="https://github.com/Alessandro114/score-raycast" rel="noopener noreferrer"&gt;score-raycast&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VS Code Extension&lt;/strong&gt;: &lt;a href="https://github.com/Alessandro114/company-data-vscode" rel="noopener noreferrer"&gt;company-data-vscode&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Homebrew&lt;/strong&gt;: &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Live Demos
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HuggingFace Spaces&lt;/strong&gt;: &lt;a href="https://huggingface.co/spaces/alf1990mi/score-company-lookup" rel="noopener noreferrer"&gt;score-company-lookup&lt;/a&gt; — Gradio web demo&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Docs&lt;/strong&gt;: &lt;a href="https://alessandro114.github.io/score-api-docs/" rel="noopener noreferrer"&gt;alessandro114.github.io/score-api-docs&lt;/a&gt; — Interactive Redoc docs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAPI Spec&lt;/strong&gt;: &lt;a href="https://github.com/Alessandro114/score-api-openapi" rel="noopener noreferrer"&gt;score-api-openapi&lt;/a&gt; + Postman collection&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Data
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Total companies&lt;/td&gt;
&lt;td&gt;250M+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Countries&lt;/td&gt;
&lt;td&gt;50+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data points per company&lt;/td&gt;
&lt;td&gt;16+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Update frequency&lt;/td&gt;
&lt;td&gt;Daily&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free tier&lt;/td&gt;
&lt;td&gt;50 lookups/month&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Data sources: government business registries (Companies House, Handelsregister, Registro Imprese, KBO, etc.) + financial filings + public records.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;I'm building this in public. Every tool is MIT-licensed and open for contributions. If you want to help:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Alessandro114/enrich-companies/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22" rel="noopener noreferrer"&gt;Good first issues&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Star the repos if you find them useful&lt;/li&gt;
&lt;li&gt;File issues for features you need&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;All tools: &lt;a href="https://github.com/Alessandro114" rel="noopener noreferrer"&gt;github.com/Alessandro114&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>api</category>
      <category>javascript</category>
      <category>python</category>
    </item>
    <item>
      <title>I aggregated 250M+ company records from 40+ government registries — here are the tools I built</title>
      <dc:creator>Alessandro Binda</dc:creator>
      <pubDate>Wed, 17 Jun 2026 00:00:43 +0000</pubDate>
      <link>https://dev.to/alessandrobinda114/i-aggregated-250m-company-records-from-40-government-registries-here-are-the-tools-i-built-2bj6</link>
      <guid>https://dev.to/alessandrobinda114/i-aggregated-250m-company-records-from-40-government-registries-here-are-the-tools-i-built-2bj6</guid>
      <description>&lt;p&gt;Last year I started a project to build a unified database of company information from official government business registries.&lt;/p&gt;

&lt;p&gt;After crawling 40+ sources across Europe and beyond, I now have &lt;strong&gt;250 million company records&lt;/strong&gt; with revenue, employees, credit scores, and financial data.&lt;/p&gt;

&lt;p&gt;The whole thing is open source. Here's what I built and how you can use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;If you've ever needed company data for a sales pipeline, due diligence, market research, or just curiosity — you know the options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Paid APIs&lt;/strong&gt; (Dun &amp;amp; Bradstreet, Clearbit, ZoomInfo): $15K-50K/year&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Government registries&lt;/strong&gt;: Free, but each country has its own format, its own API (or PDF-only portal), and its own quirks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manual research&lt;/strong&gt;: Copy-paste from company websites, LinkedIn, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted one API that covers everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. enrich-companies (CLI)
&lt;/h3&gt;

&lt;p&gt;The simplest tool: give it a CSV with company names, get back the same CSV with 16 extra columns.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Node.js&lt;/span&gt;
npx enrich-companies companies.csv &lt;span class="nt"&gt;-o&lt;/span&gt; enriched.csv

&lt;span class="c"&gt;# Python&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;enrich-companies
enrich-companies companies.csv &lt;span class="nt"&gt;-o&lt;/span&gt; enriched.csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Enriching 3 companies from companies.csv...

  [1/3] Ferrero — Revenue: €17B | Employees: 41,000 | Score: 92
  [2/3] Siemens — Revenue: €72B | Employees: 311,000 | Score: 88
  [3/3] LVMH — Revenue: €86B | Employees: 213,000 | Score: 95

  Done! 3/3 companies enriched
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It auto-detects the company name column (works with &lt;code&gt;company&lt;/code&gt;, &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;business_name&lt;/code&gt;, &lt;code&gt;firma&lt;/code&gt;, &lt;code&gt;empresa&lt;/code&gt;, &lt;code&gt;azienda&lt;/code&gt;, etc.), and adds:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Column&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;revenue&lt;/td&gt;
&lt;td&gt;12500000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;employees&lt;/td&gt;
&lt;td&gt;340&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;health_score&lt;/td&gt;
&lt;td&gt;78.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;nace_code&lt;/td&gt;
&lt;td&gt;56.10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;legal_form&lt;/td&gt;
&lt;td&gt;S.r.l.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;status&lt;/td&gt;
&lt;td&gt;active&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;vat_number&lt;/td&gt;
&lt;td&gt;IT12345678901&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;founded&lt;/td&gt;
&lt;td&gt;2015-03-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;city, country, website, phone, email&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No API key needed. Free tier: 50 lookups/month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm&lt;/strong&gt;: &lt;a href="https://www.npmjs.com/package/enrich-companies" rel="noopener noreferrer"&gt;enrich-companies&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;PyPI&lt;/strong&gt;: &lt;a href="https://pypi.org/project/enrich-companies/" rel="noopener noreferrer"&gt;enrich-companies&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Alessandro114/enrich-companies" rel="noopener noreferrer"&gt;Alessandro114/enrich-companies&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  2. MCP Server (for AI agents)
&lt;/h3&gt;

&lt;p&gt;If you use Claude, ChatGPT, or any AI agent — this MCP server lets the AI search and look up company data directly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx scala-mcp-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add to your Claude Desktop config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"scala-score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"scala-mcp-server"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then ask Claude: &lt;em&gt;"Find all active restaurants in Milan with more than 50 employees"&lt;/em&gt; — and it queries the database directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm&lt;/strong&gt;: &lt;a href="https://www.npmjs.com/package/scala-mcp-server" rel="noopener noreferrer"&gt;scala-mcp-server&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Alessandro114/scala-mcp-server" rel="noopener noreferrer"&gt;Alessandro114/scala-mcp-server&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Python SDK
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;scala_score&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ScalaScore&lt;/span&gt;

&lt;span class="n"&gt;score&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ScalaScore&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your-api-key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;score&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Ferrero&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;IT&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;company&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;company&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; — Revenue: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;company&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;revenue&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;PyPI&lt;/strong&gt;: &lt;a href="https://pypi.org/project/scala-score/" rel="noopener noreferrer"&gt;scala-score&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Chrome Extension
&lt;/h3&gt;

&lt;p&gt;Right-click any company name on a webpage → instant lookup with revenue, employees, credit score.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://chromewebstore.google.com/detail/score-company-lookup/" rel="noopener noreferrer"&gt;Score Company Lookup on Chrome Web Store&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Bulk Dataset
&lt;/h3&gt;

&lt;p&gt;The full dataset is available for download:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kaggle&lt;/strong&gt;: &lt;a href="https://www.kaggle.com/datasets/yorkiealfbroth/global-company-data-994k" rel="noopener noreferrer"&gt;Global Company Data (994K sample)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HuggingFace&lt;/strong&gt;: &lt;a href="https://huggingface.co/datasets/alf1990mi/global-company-database-1m" rel="noopener noreferrer"&gt;Global Company Database (1M)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Alessandro114/world-company-database" rel="noopener noreferrer"&gt;world-company-database&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Data coverage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;250M+ companies&lt;/strong&gt; across 50+ countries&lt;/li&gt;
&lt;li&gt;Strong coverage: Italy, Germany, France, Spain, UK, Netherlands, Belgium, Austria, Switzerland, Czech Republic, Poland, Romania, US, and more&lt;/li&gt;
&lt;li&gt;Sources: official business registries, financial filings, public records&lt;/li&gt;
&lt;li&gt;Updated regularly from government open data portals&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;I'm actively adding more countries and improving data quality. Contributions are welcome — especially for countries where registry data is hard to access.&lt;/p&gt;

&lt;p&gt;If you try any of these tools, I'd love to hear your feedback. And if you find them useful, a GitHub star helps more than you think.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;All tools are MIT licensed. The API has a free tier (50 lookups/month) with no signup required.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>data</category>
      <category>api</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Free Company Data API: Why We Made 272M Business Records Searchable</title>
      <dc:creator>Alessandro Binda</dc:creator>
      <pubDate>Fri, 12 Jun 2026 09:20:55 +0000</pubDate>
      <link>https://dev.to/alessandrobinda114/free-company-data-api-why-we-made-272m-business-records-searchable-51jj</link>
      <guid>https://dev.to/alessandrobinda114/free-company-data-api-why-we-made-272m-business-records-searchable-51jj</guid>
      <description>&lt;p&gt;Two years ago, I needed to verify whether a potential business partner's company actually existed. Simple question. Should be a simple answer.&lt;/p&gt;

&lt;p&gt;Instead I found:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Government registries with no API and terrible search&lt;/li&gt;
&lt;li&gt;Commercial providers charging €2–5 &lt;strong&gt;per lookup&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Scraped datasets with stale, inaccurate data&lt;/li&gt;
&lt;li&gt;"Free" APIs limited to a single country&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So we built the &lt;strong&gt;S.C.A.L.A. Score API&lt;/strong&gt; — a single endpoint to search &lt;strong&gt;272 million companies across 265 countries&lt;/strong&gt;, sourced from official government business registries.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Data Is in the Score Database
&lt;/h2&gt;

&lt;p&gt;Every record comes from an &lt;strong&gt;official government business registry&lt;/strong&gt;. No LinkedIn scraping. No purchased lead lists. Just verified public records.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Data Point&lt;/th&gt;
&lt;th&gt;Coverage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Company name &amp;amp; legal form&lt;/td&gt;
&lt;td&gt;272M+ records&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Registration/tax ID&lt;/td&gt;
&lt;td&gt;Where available by jurisdiction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Company status (active/dissolved/liquidation)&lt;/td&gt;
&lt;td&gt;All records&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Incorporation date&lt;/td&gt;
&lt;td&gt;Most jurisdictions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Registered address&lt;/td&gt;
&lt;td&gt;Most jurisdictions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Officers &amp;amp; directors&lt;/td&gt;
&lt;td&gt;Major jurisdictions (UK, DE, FR, IT, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Filing history&lt;/td&gt;
&lt;td&gt;Where published by registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Industry codes (NACE/SIC)&lt;/td&gt;
&lt;td&gt;Where available&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Country Coverage Highlights
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Europe&lt;/strong&gt;: All EU27 + UK, Norway, Switzerland, Iceland&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;North America&lt;/strong&gt;: US (all 50 states), Canada&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latin America&lt;/strong&gt;: Brazil, Mexico, Argentina, Colombia, Chile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asia-Pacific&lt;/strong&gt;: India, Australia, Singapore, Hong Kong, Japan&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Africa&lt;/strong&gt;: South Africa, Kenya, Nigeria, Egypt&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;265 countries total&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How the API Works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Search by Company Name
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://score.get-scala.com/api/v1/search?q=BMW&amp;amp;country=DE"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer YOUR_API_KEY"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"total"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"companies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bayerische Motoren Werke Aktiengesellschaft"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"country"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"DE"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"registry_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"HRB 42243"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"active"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"incorporation_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1917-03-07"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"address"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Petuelring 130, 80809 München"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Get Company Details
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://score.get-scala.com/api/v1/company/DE-HRB42243"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer YOUR_API_KEY"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Search by Registration ID
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://score.get-scala.com/api/v1/search?registry_id=HRB42243&amp;amp;country=DE"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer YOUR_API_KEY"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why It's Free (to Start)
&lt;/h2&gt;

&lt;p&gt;The free tier gives you &lt;strong&gt;50 lookups per month&lt;/strong&gt;. That's enough to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Evaluate data quality for your country/industry&lt;/li&gt;
&lt;li&gt;Build a proof of concept&lt;/li&gt;
&lt;li&gt;Run a small verification workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No credit card required. No trial that auto-converts. Just 50 free API calls every month, forever.&lt;/p&gt;

&lt;p&gt;If you need more:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Lookups&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Per lookup&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;50/mo&lt;/td&gt;
&lt;td&gt;€0&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Starter&lt;/td&gt;
&lt;td&gt;500/mo&lt;/td&gt;
&lt;td&gt;€19/mo&lt;/td&gt;
&lt;td&gt;€0.038&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Growth&lt;/td&gt;
&lt;td&gt;5,000/mo&lt;/td&gt;
&lt;td&gt;€49/mo&lt;/td&gt;
&lt;td&gt;€0.0098&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scale&lt;/td&gt;
&lt;td&gt;50,000/mo&lt;/td&gt;
&lt;td&gt;€149/mo&lt;/td&gt;
&lt;td&gt;€0.00298&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Use Cases We See
&lt;/h2&gt;

&lt;h3&gt;
  
  
  KYC / AML Compliance
&lt;/h3&gt;

&lt;p&gt;Verify company existence and status before onboarding a business customer. Check officers against your watchlists.&lt;/p&gt;

&lt;h3&gt;
  
  
  CRM Enrichment
&lt;/h3&gt;

&lt;p&gt;Your sales team enters "Acme Corp" — Score API fills in the registration number, address, status, and incorporation date automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  Market Research
&lt;/h3&gt;

&lt;p&gt;How many active logistics companies are registered in Germany? Which ones were incorporated in the last 2 years? Score API makes these queries trivial.&lt;/p&gt;

&lt;h3&gt;
  
  
  Due Diligence
&lt;/h3&gt;

&lt;p&gt;Before a partnership, investment, or acquisition — verify the entity is real, active, and where they say they are.&lt;/p&gt;

&lt;h3&gt;
  
  
  Developer Tools
&lt;/h3&gt;

&lt;p&gt;Building a company autocomplete? A business directory? A compliance platform? Score API is the data layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open Source SDK
&lt;/h2&gt;

&lt;p&gt;The JavaScript SDK is fully open source:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;scala-score
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GitHub: &lt;a href="https://github.com/Alessandro114/scala-score-js" rel="noopener noreferrer"&gt;github.com/Alessandro114/scala-score-js&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We also have community integrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;n8n node&lt;/strong&gt;: &lt;code&gt;npm install n8n-nodes-scala&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP server&lt;/strong&gt;: &lt;code&gt;npx scala-mcp-server&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Start Building
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://score.get-scala.com" rel="noopener noreferrer"&gt;Sign up free at score.get-scala.com&lt;/a&gt; — API key in seconds, 50 lookups/month, no credit card.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://score.get-scala.com/docs" rel="noopener noreferrer"&gt;API Docs&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://github.com/Alessandro114/scala-score-js" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://score.get-scala.com/status" rel="noopener noreferrer"&gt;Status Page&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>opensource</category>
      <category>database</category>
      <category>business</category>
    </item>
    <item>
      <title>I Built a Free Database of 272M Companies — Here's How</title>
      <dc:creator>Alessandro Binda</dc:creator>
      <pubDate>Fri, 12 Jun 2026 09:19:52 +0000</pubDate>
      <link>https://dev.to/alessandrobinda114/i-built-a-free-database-of-272m-companies-heres-how-2ie3</link>
      <guid>https://dev.to/alessandrobinda114/i-built-a-free-database-of-272m-companies-heres-how-2ie3</guid>
      <description>&lt;p&gt;I'm a solo developer in Milan, and over the past year I built a free database of &lt;strong&gt;272 million companies&lt;/strong&gt; from 40+ countries. It's live at &lt;a href="https://score.get-scala.com" rel="noopener noreferrer"&gt;score.get-scala.com&lt;/a&gt;, with a free API, SDKs on npm and PyPI, and a sample dataset on Kaggle.&lt;/p&gt;

&lt;p&gt;This is the story of how and why I built it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Business data is absurdly expensive. Want to look up a company's revenue, employee count, or credit rating?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dun &amp;amp; Bradstreet&lt;/strong&gt;: $20,000+/year&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ZoomInfo&lt;/strong&gt;: $15,000+/year&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clearbit&lt;/strong&gt;: $12,000+/year&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bureau van Dijk (Orbis)&lt;/strong&gt;: $30,000+/year&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These prices make sense for Fortune 500 companies. But for startups, indie developers, and small agencies? It's a non-starter.&lt;/p&gt;

&lt;p&gt;I wanted to build something that makes business intelligence accessible to everyone.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Data Sources
&lt;/h2&gt;

&lt;p&gt;The secret is that &lt;strong&gt;most company data is public&lt;/strong&gt;. Governments require businesses to register, and many publish this data openly. I built scrapers and parsers for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;France&lt;/strong&gt;: SIRENE / INSEE (11M+ companies)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UK&lt;/strong&gt;: Companies House (5M+)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;US&lt;/strong&gt;: SEC EDGAR + state registries&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Germany&lt;/strong&gt;: Handelsregister / Bundesanzeiger&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Italy&lt;/strong&gt;: Camera di Commercio open data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spain&lt;/strong&gt;: BORME (Boletin Oficial del Registro Mercantil)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Netherlands&lt;/strong&gt;: KvK (Kamer van Koophandel)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sweden&lt;/strong&gt;: Bolagsverket&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Norway&lt;/strong&gt;: Bronnoysund Register Centre&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Denmark&lt;/strong&gt;: CVR (Central Business Register)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Finland&lt;/strong&gt;: PRH + YTJ&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Belgium&lt;/strong&gt;: Crossroads Bank for Enterprises&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Austria&lt;/strong&gt;: Firmenbuch extracts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Poland&lt;/strong&gt;: KRS + CEIDG&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Czech Republic&lt;/strong&gt;: ARES&lt;/li&gt;
&lt;li&gt;Plus 25+ more countries...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each source has its own format, encoding, update frequency, and quirks. French SIRENE gives you a 6GB CSV monthly. UK Companies House has a solid REST API. German Handelsregister requires parsing HTML. US state registries are all different.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;p&gt;I optimized for &lt;strong&gt;cost efficiency&lt;/strong&gt; since I'm bootstrapping this solo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DuckDB + Parquet&lt;/strong&gt;: The entire 272M company dataset compresses to ~19GB in Parquet format. DuckDB can query it blazingly fast without loading it all into memory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fastify API&lt;/strong&gt;: Node.js REST API serving search, autocomplete, and company detail endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PostgreSQL&lt;/strong&gt;: For user accounts, API keys, usage tracking, and frequently-accessed company data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hetzner dedicated server&lt;/strong&gt;: The whole thing runs on a single Hetzner box at &lt;strong&gt;€34/month&lt;/strong&gt;. That's it. No AWS. No Kubernetes. No $10K/month cloud bill.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Total infrastructure cost: &lt;strong&gt;€34/month&lt;/strong&gt; for 272 million companies.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Scoring Algorithm
&lt;/h2&gt;

&lt;p&gt;Raw data isn't very useful. You want to know: &lt;strong&gt;is this company healthy?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built a proprietary scoring algorithm that rates every company from &lt;strong&gt;0 to 100&lt;/strong&gt; with letter grades:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Grade&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AA&lt;/td&gt;
&lt;td&gt;80-100&lt;/td&gt;
&lt;td&gt;Excellent financial health&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;60-79&lt;/td&gt;
&lt;td&gt;Good, reliable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BB&lt;/td&gt;
&lt;td&gt;40-59&lt;/td&gt;
&lt;td&gt;Average, some risk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;20-39&lt;/td&gt;
&lt;td&gt;Below average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;10-19&lt;/td&gt;
&lt;td&gt;Poor, significant risk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;5-9&lt;/td&gt;
&lt;td&gt;Very poor, likely distressed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;0-4&lt;/td&gt;
&lt;td&gt;Critical / default risk&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The score factors in: company age, legal status, industry risk, jurisdiction, available financial data, filing history, and more. It's not perfect (no public-data score can be), but it's a solid first-pass filter.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Data Pipeline
&lt;/h2&gt;

&lt;p&gt;Every company goes through this pipeline:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scrape&lt;/strong&gt;: Pull from government registries (automated, scheduled)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parse&lt;/strong&gt;: Normalize names, addresses, legal forms across 40+ formats&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deduplicate&lt;/strong&gt;: Match entities across sources (fuzzy name matching + registration numbers)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Classify&lt;/strong&gt;: Assign NACE/SIC industry codes where missing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Score&lt;/strong&gt;: Run the credit scoring algorithm (0-100)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grade&lt;/strong&gt;: Convert score to letter grade (AA to E)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Index&lt;/strong&gt;: Load into DuckDB/Parquet + PostgreSQL for API serving&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The whole pipeline reruns monthly for most sources, weekly for some.&lt;/p&gt;




&lt;h2&gt;
  
  
  The AI Factor
&lt;/h2&gt;

&lt;p&gt;I'll be honest: &lt;strong&gt;95% of the code was written with Claude&lt;/strong&gt; (Anthropic's AI assistant). I'm a solo developer and there's no way I could have built scrapers for 40+ countries, a scoring algorithm, an API, a dashboard, SDKs, and an MCP server without AI assistance.&lt;/p&gt;

&lt;p&gt;This isn't a confession — it's the future of software. One developer with AI can build what used to require a team of 10.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Available Now
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Free Dashboard
&lt;/h3&gt;

&lt;p&gt;Search any company at &lt;a href="https://score.get-scala.com" rel="noopener noreferrer"&gt;score.get-scala.com&lt;/a&gt;. No signup required for basic searches.&lt;/p&gt;

&lt;h3&gt;
  
  
  API (from €19/month)
&lt;/h3&gt;

&lt;p&gt;REST API with search, autocomplete, company details, credit scores, and bulk endpoints.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://score.get-scala.com/api/v1/companies/search?q=BMW&amp;amp;country=DE"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer YOUR_API_KEY"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  JavaScript SDK
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;scala-score
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ScalaScore&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;scala-score&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ScalaScore&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;your-key&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;BMW&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;country&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;DE&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Python SDK
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;scala-score
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;scala_score&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ScalaScore&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ScalaScore&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your-key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;BMW&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DE&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  MCP Server (for AI Agents)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx scala-mcp-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let Claude, GPT, or any MCP-compatible AI agent search company data directly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kaggle Sample
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.kaggle.com/datasets/scalascore/global-company-data-994k" rel="noopener noreferrer"&gt;994K companies on Kaggle&lt;/a&gt; — download and explore for free.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Vision
&lt;/h2&gt;

&lt;p&gt;Business intelligence shouldn't be locked behind $20K/year enterprise contracts. Every developer, every startup, every small business should be able to look up a potential partner, supplier, or client and get reliable data.&lt;/p&gt;

&lt;p&gt;I'm building toward &lt;strong&gt;500 million companies&lt;/strong&gt; by 2027, covering every country that publishes business registry data.&lt;/p&gt;

&lt;p&gt;If you're building something with company data, I'd love to hear about it. The API is free to start — 100 lookups/month, no credit card required.&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://score.get-scala.com" rel="noopener noreferrer"&gt;Score Dashboard&lt;/a&gt; — Search 272M companies&lt;/li&gt;
&lt;li&gt;&lt;a href="https://score.get-scala.com/api" rel="noopener noreferrer"&gt;API Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/scala-score" rel="noopener noreferrer"&gt;npm: scala-score&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pypi.org/project/scala-score/" rel="noopener noreferrer"&gt;PyPI: scala-score&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kaggle.com/datasets/scalascore/global-company-data-994k" rel="noopener noreferrer"&gt;Kaggle: 994K Company Sample&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/scala-mcp-server" rel="noopener noreferrer"&gt;MCP Server&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built solo in Milan. Powered by public data and Claude. Democratizing business intelligence, one API call at a time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>database</category>
      <category>buildinpublic</category>
      <category>career</category>
    </item>
    <item>
      <title>How to Enrich Your CRM Data with 272M Company Records (Free API)</title>
      <dc:creator>Alessandro Binda</dc:creator>
      <pubDate>Fri, 12 Jun 2026 09:19:38 +0000</pubDate>
      <link>https://dev.to/alessandrobinda114/how-to-enrich-your-crm-data-with-272m-company-records-free-api-4o31</link>
      <guid>https://dev.to/alessandrobinda114/how-to-enrich-your-crm-data-with-272m-company-records-free-api-4o31</guid>
      <description>&lt;p&gt;Your CRM is full of company names. But how many have verified registration numbers? Up-to-date addresses? Confirmed active status?&lt;/p&gt;

&lt;p&gt;Most CRM records are entered manually by sales reps — and they decay fast. Studies show that &lt;strong&gt;30% of B2B data goes stale every year&lt;/strong&gt;. Enrichment services from ZoomInfo or Clearbit cost thousands per month.&lt;/p&gt;

&lt;p&gt;This tutorial shows you how to enrich your CRM data using the &lt;strong&gt;S.C.A.L.A. Score API&lt;/strong&gt; — 272M companies across 265 countries, starting free.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You'll Build
&lt;/h2&gt;

&lt;p&gt;A pipeline that takes company names from your CRM and enriches them with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Official registration number&lt;/li&gt;
&lt;li&gt;Company status (active/dissolved)&lt;/li&gt;
&lt;li&gt;Registered address&lt;/li&gt;
&lt;li&gt;Incorporation date&lt;/li&gt;
&lt;li&gt;Officers (where available)&lt;/li&gt;
&lt;li&gt;Industry codes&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Method 1: JavaScript Script (Direct API)
&lt;/h2&gt;

&lt;p&gt;Install the SDK:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;scala-score
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create an enrichment script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ScalaScore&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;scala-score&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ScalaScore&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SCORE_API_KEY&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// Your CRM export (CSV with company names and countries)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;companies&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Bosch&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;country&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;DE&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;LVMH&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;country&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;FR&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Ferrero&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;country&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;IT&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Volvo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;country&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;SE&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Nestlé&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;country&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;CH&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;enrichCompany&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;country&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;country&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;co&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;input_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;matched_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;registry_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;registry_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;address&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;incorporation_date&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;incorporation_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;country&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;country&lt;/span&gt;
      &lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;input_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;matched_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Not found&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;input_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;matched_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
  &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;co&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;enriched&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;enrichCompany&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;country&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;enriched&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`OK &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;enriched&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;matched_name&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;NOT FOUND&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="c1"&gt;// Write results to JSON&lt;/span&gt;
  &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;enriched.json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`\nEnriched &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; companies -&amp;gt; enriched.json`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OK Bosch -&amp;gt; Robert Bosch GmbH
OK LVMH -&amp;gt; LVMH Moet Hennessy Louis Vuitton SE
OK Ferrero -&amp;gt; Ferrero S.p.A.
OK Volvo -&amp;gt; AB Volvo
OK Nestle -&amp;gt; Nestle S.A.

Enriched 5 companies -&amp;gt; enriched.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Method 2: n8n Workflow (No Code)
&lt;/h2&gt;

&lt;p&gt;If you use &lt;strong&gt;n8n&lt;/strong&gt; for automation, there's a dedicated Score API node:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;n8n-nodes-scala
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Workflow Setup
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Trigger&lt;/strong&gt;: Schedule (daily/weekly) or webhook&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CRM Node&lt;/strong&gt;: Read contacts from HubSpot/Salesforce/Pipedrive&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Score API Node&lt;/strong&gt;: Enrich each company&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CRM Node&lt;/strong&gt;: Write enriched data back&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In n8n, the workflow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Schedule Trigger]
      |
[HubSpot: Get Companies]
      |
[S.C.A.L.A. Score: Search Company]
      |
[IF: Match Found?]
   | Yes          | No
[HubSpot: Update]  [Flag for Review]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Score API n8n node handles authentication, pagination, and error handling automatically. Just add your API key in the credentials and connect the nodes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Method 3: MCP Server (AI-Powered Enrichment)
&lt;/h2&gt;

&lt;p&gt;For AI-assisted workflows, use the Score &lt;strong&gt;MCP server&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx scala-mcp-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This exposes Score API data to any MCP-compatible AI client (Claude, custom agents, etc.). Your AI assistant can then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Look up companies conversationally&lt;/li&gt;
&lt;li&gt;Enrich data on the fly during chat&lt;/li&gt;
&lt;li&gt;Cross-reference multiple sources&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Claude Desktop Configuration
&lt;/h3&gt;

&lt;p&gt;Add to your MCP settings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"scala-score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"scala-mcp-server"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"SCORE_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your-api-key-here"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then ask Claude: "Look up Siemens AG in the Score database and tell me their registration status and address."&lt;/p&gt;

&lt;h2&gt;
  
  
  Method 4: Python + CSV Export
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;

&lt;span class="n"&gt;API_KEY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your-api-key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;BASE_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://score.get-scala.com/api/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;enrich&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;BASE_URL&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/search&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;q&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;country&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;limit&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;API_KEY&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;companies&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;companies&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;

&lt;span class="c1"&gt;# Read from CRM export
&lt;/span&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;crm_export.csv&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;reader&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;DictReader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;companies&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reader&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Enrich and write output
&lt;/span&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;enriched.csv&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;w&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;newline&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writerow&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Input Name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Matched Name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Registry ID&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                     &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Country&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Address&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;co&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;enrich&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;co&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;co&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;country&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writerow&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
                &lt;span class="n"&gt;co&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;registry_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;country&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;address&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="p"&gt;])&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;OK &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;co&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; -&amp;gt; &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writerow&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;co&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;NOT FOUND&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;MISS &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;co&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; -&amp;gt; not found&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How Much Does It Cost?
&lt;/h2&gt;

&lt;p&gt;Enriching 500 CRM records per month: &lt;strong&gt;€19/month&lt;/strong&gt; (Starter plan).&lt;/p&gt;

&lt;p&gt;Enriching 5,000 records: &lt;strong&gt;€49/month&lt;/strong&gt; (Growth plan).&lt;/p&gt;

&lt;p&gt;Compare that to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ZoomInfo&lt;/strong&gt;: $15,000+/year&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clearbit&lt;/strong&gt;: $12,000+/year for enrichment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;D&amp;amp;B&lt;/strong&gt;: €2-5 per lookup = €1,000-2,500 for 500 records&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Score API is &lt;strong&gt;25-130x cheaper&lt;/strong&gt; for the same company verification data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Sign up free: &lt;a href="https://score.get-scala.com" rel="noopener noreferrer"&gt;score.get-scala.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Get your API key (instant, no credit card)&lt;/li&gt;
&lt;li&gt;Choose your integration method:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript&lt;/strong&gt;: &lt;code&gt;npm install scala-score&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;n8n&lt;/strong&gt;: &lt;code&gt;npm install n8n-nodes-scala&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP&lt;/strong&gt;: &lt;code&gt;npx scala-mcp-server&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;REST API&lt;/strong&gt;: Any language, any platform&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;50 free lookups/month — enough to prove the value before you spend anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://score.get-scala.com" rel="noopener noreferrer"&gt;Start enriching for free&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://github.com/Alessandro114/scala-score-js" rel="noopener noreferrer"&gt;GitHub SDK&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>opensource</category>
      <category>database</category>
      <category>business</category>
    </item>
    <item>
      <title>The Best Free Business Intelligence APIs in 2026</title>
      <dc:creator>Alessandro Binda</dc:creator>
      <pubDate>Fri, 12 Jun 2026 09:18:25 +0000</pubDate>
      <link>https://dev.to/alessandrobinda114/the-best-free-business-intelligence-apis-in-2026-50pp</link>
      <guid>https://dev.to/alessandrobinda114/the-best-free-business-intelligence-apis-in-2026-50pp</guid>
      <description>&lt;p&gt;Finding reliable company data without signing a $15K enterprise contract is harder than it should be. I've spent months evaluating every free and affordable business data API available in 2026.&lt;/p&gt;

&lt;p&gt;Here's my definitive ranking.&lt;/p&gt;




&lt;h2&gt;
  
  
  #1 — Score API (Best Overall)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;272 million companies | 40+ countries | Free tier available&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://score.get-scala.com" rel="noopener noreferrer"&gt;score.get-scala.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most comprehensive free-tier business intelligence API I've found. Built by a solo developer in Milan who aggregated government registries from across Europe, North America, and beyond.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you get:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Company name, address, legal status&lt;/li&gt;
&lt;li&gt;Revenue and employee estimates&lt;/li&gt;
&lt;li&gt;NACE/SIC industry codes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credit score (0–100)&lt;/strong&gt; with letter grades (AA to E)&lt;/li&gt;
&lt;li&gt;Legal form, incorporation date&lt;/li&gt;
&lt;li&gt;40+ country coverage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt;&lt;br&gt;
| Plan | Lookups/month | Price |&lt;br&gt;
|------|--------------|-------|&lt;br&gt;
| Free | 100 | €0 |&lt;br&gt;
| Starter | 1,000 | €19/mo |&lt;br&gt;
| Pro | 5,000 | €49/mo |&lt;br&gt;
| Enterprise | 25,000 | €149/mo |&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ScalaScore&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;scala-score&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ScalaScore&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;your-key&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Siemens&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;country&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;DE&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;credit_score&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// 91&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;credit_grade&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// "AA"&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;revenue&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;       &lt;span class="c1"&gt;// "€87.4B"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Or via cURL&lt;/span&gt;
curl &lt;span class="s2"&gt;"https://score.get-scala.com/api/v1/companies/search?q=Siemens&amp;amp;country=DE"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer YOUR_API_KEY"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;SDKs:&lt;/strong&gt; npm (&lt;code&gt;scala-score&lt;/code&gt;), PyPI (&lt;code&gt;scala-score&lt;/code&gt;), MCP Server (&lt;code&gt;npx scala-mcp-server&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why #1:&lt;/strong&gt; Broadest coverage + credit scoring + free tier + affordable paid plans. No other API combines all four.&lt;/p&gt;




&lt;h2&gt;
  
  
  #2 — OpenCorporates
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;200M+ companies | 140+ jurisdictions | Open data&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://opencorporates.com" rel="noopener noreferrer"&gt;opencorporates.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The OG of open company data. OpenCorporates aggregates company registry data from around the world and makes it available under open data licenses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you get:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Company name, registration number&lt;/li&gt;
&lt;li&gt;Jurisdiction, incorporation date&lt;/li&gt;
&lt;li&gt;Legal status (active/dissolved)&lt;/li&gt;
&lt;li&gt;Officers and directors&lt;/li&gt;
&lt;li&gt;Filing history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What's missing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No financial data (revenue, employees)&lt;/li&gt;
&lt;li&gt;No credit scoring&lt;/li&gt;
&lt;li&gt;No industry classification&lt;/li&gt;
&lt;li&gt;Rate-limited free API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Free API with limits. Paid plans start around $1,000/month for serious usage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why #2:&lt;/strong&gt; Excellent for legal entity verification and corporate structure research. But if you need financials or credit scores, you'll need to supplement with another source.&lt;/p&gt;




&lt;h2&gt;
  
  
  #3 — GLEIF (Global LEI Foundation)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;2.4M+ LEIs | Global | Fully free&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.gleif.org/en/lei-data/gleif-api" rel="noopener noreferrer"&gt;gleif.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The authoritative source for Legal Entity Identifiers. If a company participates in financial markets, it has an LEI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you get:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LEI code&lt;/li&gt;
&lt;li&gt;Legal name and address&lt;/li&gt;
&lt;li&gt;Entity status&lt;/li&gt;
&lt;li&gt;Parent/child relationships&lt;/li&gt;
&lt;li&gt;Registration authority&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What's missing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only 2.4M entities (financial sector focus)&lt;/li&gt;
&lt;li&gt;No SME coverage&lt;/li&gt;
&lt;li&gt;No financials, no credit score&lt;/li&gt;
&lt;li&gt;No industry codes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Completely free, no API key required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why #3:&lt;/strong&gt; The gold standard for financial entity identification. Useless for SME prospecting, essential for compliance and KYC.&lt;/p&gt;




&lt;h2&gt;
  
  
  #4 — SEC EDGAR
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;~10M filings | US only | Fully free&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://efts.sec.gov/LATEST/search-index?q=" rel="noopener noreferrer"&gt;efts.sec.gov&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The US Securities and Exchange Commission's public filing database. Every publicly traded US company is here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you get:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;10-K, 10-Q annual/quarterly reports&lt;/li&gt;
&lt;li&gt;Financial statements (revenue, assets, liabilities)&lt;/li&gt;
&lt;li&gt;Executive compensation&lt;/li&gt;
&lt;li&gt;Insider trading data&lt;/li&gt;
&lt;li&gt;Full-text search of filings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What's missing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;US only&lt;/li&gt;
&lt;li&gt;Public companies only (no private/SME)&lt;/li&gt;
&lt;li&gt;Raw filings, not structured data&lt;/li&gt;
&lt;li&gt;No credit scoring&lt;/li&gt;
&lt;li&gt;No simple company profile endpoint&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Completely free. Rate limit: 10 requests/second.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why #4:&lt;/strong&gt; Unbeatable depth for US public companies. But the data is unstructured (HTML/XBRL filings) and requires significant parsing effort.&lt;/p&gt;




&lt;h2&gt;
  
  
  #5 — Companies House (UK)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;~5M companies | UK only | Fully free&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.company-information.service.gov.uk" rel="noopener noreferrer"&gt;developer.company-information.service.gov.uk&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The UK's official company registry API. One of the best government APIs in the world.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you get:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Company profile (name, address, SIC codes)&lt;/li&gt;
&lt;li&gt;Officers and directors&lt;/li&gt;
&lt;li&gt;Filing history&lt;/li&gt;
&lt;li&gt;Accounts (for companies that file them)&lt;/li&gt;
&lt;li&gt;Persons with significant control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What's missing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UK only&lt;/li&gt;
&lt;li&gt;Limited financial data (small companies often file abbreviated accounts)&lt;/li&gt;
&lt;li&gt;No credit scoring&lt;/li&gt;
&lt;li&gt;No revenue/employee estimates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Free with API key. Rate limit: 600 requests per 5 minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why #5:&lt;/strong&gt; Best single-country registry API. Clean data, good documentation. But strictly UK.&lt;/p&gt;




&lt;h2&gt;
  
  
  Comparison Table
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Score API&lt;/th&gt;
&lt;th&gt;OpenCorporates&lt;/th&gt;
&lt;th&gt;GLEIF&lt;/th&gt;
&lt;th&gt;SEC EDGAR&lt;/th&gt;
&lt;th&gt;Companies House&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Companies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;272M&lt;/td&gt;
&lt;td&gt;200M+&lt;/td&gt;
&lt;td&gt;2.4M&lt;/td&gt;
&lt;td&gt;~10K public&lt;/td&gt;
&lt;td&gt;~5M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Countries&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;40+&lt;/td&gt;
&lt;td&gt;140+&lt;/td&gt;
&lt;td&gt;Global&lt;/td&gt;
&lt;td&gt;US only&lt;/td&gt;
&lt;td&gt;UK only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Financial Data&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes (filings)&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Credit Score&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes (0–100)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Industry Codes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes (SIC)&lt;/td&gt;
&lt;td&gt;Yes (SIC)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Free Tier&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100/mo&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;td&gt;600/5min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Paid Plans&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;From €19/mo&lt;/td&gt;
&lt;td&gt;~$1,000/mo&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SDKs&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;JS, Python, MCP&lt;/td&gt;
&lt;td&gt;Ruby gem&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  My Recommendation
&lt;/h2&gt;

&lt;p&gt;For most developers building B2B applications:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start with Score API&lt;/strong&gt; for broad company search, enrichment, and credit scoring&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add GLEIF&lt;/strong&gt; if you need LEI verification for financial compliance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add SEC EDGAR&lt;/strong&gt; if you need deep US public company financials&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use Companies House&lt;/strong&gt; for UK-specific applications&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consider OpenCorporates&lt;/strong&gt; for officer/director network analysis&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The days of paying $15K+ per year for basic company data are over. These APIs — especially the free tiers — give indie developers and startups access to data that used to be gatekept behind enterprise contracts.&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://score.get-scala.com/api" rel="noopener noreferrer"&gt;Score API&lt;/a&gt; — 272M companies, free tier&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/scala-score" rel="noopener noreferrer"&gt;npm: scala-score&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pypi.org/project/scala-score/" rel="noopener noreferrer"&gt;PyPI: scala-score&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kaggle.com/datasets/scalascore/global-company-data-994k" rel="noopener noreferrer"&gt;Kaggle: 994K Company Sample&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/scala-mcp-server" rel="noopener noreferrer"&gt;MCP Server&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>api</category>
      <category>data</category>
      <category>opensource</category>
      <category>business</category>
    </item>
    <item>
      <title>Open Source ZoomInfo Alternative for Developers</title>
      <dc:creator>Alessandro Binda</dc:creator>
      <pubDate>Fri, 12 Jun 2026 09:17:45 +0000</pubDate>
      <link>https://dev.to/alessandrobinda114/open-source-zoominfo-alternative-for-developers-5a9j</link>
      <guid>https://dev.to/alessandrobinda114/open-source-zoominfo-alternative-for-developers-5a9j</guid>
      <description>&lt;p&gt;ZoomInfo charges &lt;strong&gt;$15,000+ per year&lt;/strong&gt; and requires a sales call just to see the product. For a developer who needs company data for a side project, a SaaS integration, or a startup MVP, that's absurd.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;S.C.A.L.A. Score API&lt;/strong&gt; gives you access to &lt;strong&gt;272 million company records across 265 countries&lt;/strong&gt; — starting at &lt;strong&gt;free&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  ZoomInfo vs Score API: Developer Experience
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;ZoomInfo&lt;/th&gt;
&lt;th&gt;S.C.A.L.A. Score API&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pricing&lt;/td&gt;
&lt;td&gt;$15,000+/year&lt;/td&gt;
&lt;td&gt;Free – €149/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Signup process&lt;/td&gt;
&lt;td&gt;Sales call required&lt;/td&gt;
&lt;td&gt;Self-service, instant API key&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free tier&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;50 lookups/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open source SDK&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes (&lt;a href="https://github.com/Alessandro114/scala-score-js" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data source&lt;/td&gt;
&lt;td&gt;Proprietary scraping + user-contributed&lt;/td&gt;
&lt;td&gt;Official government registries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Companies&lt;/td&gt;
&lt;td&gt;~100M (US-focused)&lt;/td&gt;
&lt;td&gt;272M+ (265 countries)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rate limits&lt;/td&gt;
&lt;td&gt;Opaque&lt;/td&gt;
&lt;td&gt;Transparent, per-plan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Contract length&lt;/td&gt;
&lt;td&gt;Annual minimum&lt;/td&gt;
&lt;td&gt;Month-to-month&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  JavaScript SDK: 3 Lines to Your First Query
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;scala-score
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ScalaScore&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;scala-score&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ScalaScore&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SCORE_API_KEY&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// Search by company name&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Spotify&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;country&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;SE&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="c1"&gt;// {&lt;/span&gt;
&lt;span class="c1"&gt;//   name: "Spotify AB",&lt;/span&gt;
&lt;span class="c1"&gt;//   country: "SE",&lt;/span&gt;
&lt;span class="c1"&gt;//   registry_id: "556703-7485",&lt;/span&gt;
&lt;span class="c1"&gt;//   status: "active",&lt;/span&gt;
&lt;span class="c1"&gt;//   incorporation_date: "2006-04-18",&lt;/span&gt;
&lt;span class="c1"&gt;//   address: "Regeringsgatan 19, 111 53 Stockholm"&lt;/span&gt;
&lt;span class="c1"&gt;// }&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Batch Enrichment Example
&lt;/h2&gt;

&lt;p&gt;Need to enrich a list of companies? Here's how:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ScalaScore&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;scala-score&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ScalaScore&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SCORE_API_KEY&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;companies&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Klarna&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Revolut&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;N26&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Wise&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;co&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; | &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;country&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; | &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; | &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;co&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;registry_id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Klarna Bank AB | SE | active | 556737-0431&lt;/span&gt;
&lt;span class="c1"&gt;// Revolut Ltd | GB | active | 08804411&lt;/span&gt;
&lt;span class="c1"&gt;// N26 Bank GmbH | DE | active | HRB 209049&lt;/span&gt;
&lt;span class="c1"&gt;// Wise Payments Limited | GB | active | 07209813&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  REST API for Any Language
&lt;/h2&gt;

&lt;p&gt;Don't use JavaScript? The REST API works with anything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://score.get-scala.com/api/v1/search?q=Siemens&amp;amp;country=DE"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer YOUR_API_KEY"&lt;/span&gt; | python3 &lt;span class="nt"&gt;-m&lt;/span&gt; json.tool
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://score.get-scala.com/api/v1/search&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;q&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Siemens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;country&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DE&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bearer YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;companies&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;companies&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;co&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;companies&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;co&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; — &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;co&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Pricing Comparison
&lt;/h2&gt;

&lt;p&gt;For a developer doing 5,000 lookups/month:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ZoomInfo&lt;/strong&gt;: ~$15,000/year = &lt;strong&gt;$1,250/month&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S.C.A.L.A. Score API Growth plan&lt;/strong&gt;: &lt;strong&gt;€49/month&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's a &lt;strong&gt;25x cost reduction&lt;/strong&gt;. And you get global coverage instead of ZoomInfo's US-centric data.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Lookups/month&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;€0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Starter&lt;/td&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;td&gt;€19/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Growth&lt;/td&gt;
&lt;td&gt;5,000&lt;/td&gt;
&lt;td&gt;€49/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scale&lt;/td&gt;
&lt;td&gt;50,000&lt;/td&gt;
&lt;td&gt;€149/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What Score API Doesn't Do (Yet)
&lt;/h2&gt;

&lt;p&gt;To be transparent — ZoomInfo has features Score API doesn't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Intent data&lt;/strong&gt; (who's researching your product category)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Direct dial phone numbers&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Personal email addresses&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technographics&lt;/strong&gt; (what tech stack a company uses)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Score API focuses on &lt;strong&gt;official registry data&lt;/strong&gt;: company status, officers, addresses, filings, industry codes. If you need verified business entity data rather than sales prospecting data, Score is the better choice at a fraction of the cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;scala-score
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;a href="https://score.get-scala.com" rel="noopener noreferrer"&gt;Sign up free at score.get-scala.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Get your API key in seconds&lt;/li&gt;
&lt;li&gt;Start building&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/Alessandro114/scala-score-js" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://score.get-scala.com/docs" rel="noopener noreferrer"&gt;API Documentation&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>opensource</category>
      <category>database</category>
      <category>business</category>
    </item>
    <item>
      <title>Free Alternative to Dun &amp; Bradstreet: 272M Companies, No Enterprise Contract</title>
      <dc:creator>Alessandro Binda</dc:creator>
      <pubDate>Fri, 12 Jun 2026 09:09:21 +0000</pubDate>
      <link>https://dev.to/alessandrobinda114/free-alternative-to-dun-bradstreet-272m-companies-no-enterprise-contract-5c7f</link>
      <guid>https://dev.to/alessandrobinda114/free-alternative-to-dun-bradstreet-272m-companies-no-enterprise-contract-5c7f</guid>
      <description>&lt;p&gt;If you've ever tried to get company data from Dun &amp;amp; Bradstreet, you know the drill: talk to sales, sign an enterprise contract, wait weeks for onboarding, then pay &lt;strong&gt;€2–5 per single lookup&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For startups and independent developers, that's not a pricing model — it's a gate.&lt;/p&gt;

&lt;p&gt;We built the &lt;strong&gt;S.C.A.L.A. Score API&lt;/strong&gt; as the alternative: &lt;strong&gt;272 million companies across 265 countries&lt;/strong&gt;, self-service signup, and lookups starting at &lt;strong&gt;€0.038 each&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;No sales call. No enterprise contract. No minimum commitment.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Price Comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Dun &amp;amp; Bradstreet&lt;/th&gt;
&lt;th&gt;S.C.A.L.A. Score API&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Companies covered&lt;/td&gt;
&lt;td&gt;~500M (claimed)&lt;/td&gt;
&lt;td&gt;272M+ (verified)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost per lookup&lt;/td&gt;
&lt;td&gt;€2–5&lt;/td&gt;
&lt;td&gt;€0.038&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free tier&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ 50 lookups/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self-service signup&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise contract required&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API access&lt;/td&gt;
&lt;td&gt;Add-on pricing&lt;/td&gt;
&lt;td&gt;Included in all plans&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Onboarding time&lt;/td&gt;
&lt;td&gt;Weeks&lt;/td&gt;
&lt;td&gt;Minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;At €19/month for 500 lookups, you get what D&amp;amp;B charges &lt;strong&gt;€1,000–2,500&lt;/strong&gt; for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Start with the JavaScript SDK
&lt;/h2&gt;

&lt;p&gt;Install the SDK:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;scala-score
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Search for companies by name:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ScalaScore&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;scala-score&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ScalaScore&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// Search companies by name&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Tesla&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;country&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;US&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// {&lt;/span&gt;
&lt;span class="c1"&gt;//   total: 47,&lt;/span&gt;
&lt;span class="c1"&gt;//   companies: [&lt;/span&gt;
&lt;span class="c1"&gt;//     {&lt;/span&gt;
&lt;span class="c1"&gt;//       name: "Tesla, Inc.",&lt;/span&gt;
&lt;span class="c1"&gt;//       country: "US",&lt;/span&gt;
&lt;span class="c1"&gt;//       registry_id: "C0197800",&lt;/span&gt;
&lt;span class="c1"&gt;//       status: "active",&lt;/span&gt;
&lt;span class="c1"&gt;//       incorporation_date: "2003-07-01",&lt;/span&gt;
&lt;span class="c1"&gt;//       address: "3500 Deer Creek Road, Palo Alto, CA 94304"&lt;/span&gt;
&lt;span class="c1"&gt;//     },&lt;/span&gt;
&lt;span class="c1"&gt;//     ...&lt;/span&gt;
&lt;span class="c1"&gt;//   ]&lt;/span&gt;
&lt;span class="c1"&gt;// }&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look up a specific company by ID:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;company&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;company&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;US-C0197800&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;company&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// {&lt;/span&gt;
&lt;span class="c1"&gt;//   name: "Tesla, Inc.",&lt;/span&gt;
&lt;span class="c1"&gt;//   jurisdiction: "us_ca",&lt;/span&gt;
&lt;span class="c1"&gt;//   status: "active",&lt;/span&gt;
&lt;span class="c1"&gt;//   type: "Corporation",&lt;/span&gt;
&lt;span class="c1"&gt;//   officers: [...],&lt;/span&gt;
&lt;span class="c1"&gt;//   filings: [...],&lt;/span&gt;
&lt;span class="c1"&gt;//   registered_address: { ... }&lt;/span&gt;
&lt;span class="c1"&gt;// }&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What Data Is Available
&lt;/h2&gt;

&lt;p&gt;Every record in the Score database includes (where available from public registries):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Company name&lt;/strong&gt; and legal form&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Registration number&lt;/strong&gt; and jurisdiction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Status&lt;/strong&gt; (active, dissolved, liquidation, etc.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Incorporation date&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Registered address&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Officers and directors&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Filing history&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Industry codes&lt;/strong&gt; (NACE/SIC)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The data comes from &lt;strong&gt;official government business registries&lt;/strong&gt; — not scraped LinkedIn profiles or purchased lead lists.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing That Makes Sense
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Lookups/month&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Per lookup&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;€0&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Starter&lt;/td&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;td&gt;€19/mo&lt;/td&gt;
&lt;td&gt;€0.038&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Growth&lt;/td&gt;
&lt;td&gt;5,000&lt;/td&gt;
&lt;td&gt;€49/mo&lt;/td&gt;
&lt;td&gt;€0.0098&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scale&lt;/td&gt;
&lt;td&gt;50,000&lt;/td&gt;
&lt;td&gt;€149/mo&lt;/td&gt;
&lt;td&gt;€0.00298&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Compare that to D&amp;amp;B's €2–5 per lookup. At the Scale tier, Score API is &lt;strong&gt;670–1,677x cheaper&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  When D&amp;amp;B Still Makes Sense
&lt;/h2&gt;

&lt;p&gt;Let's be honest: if you need D&amp;amp;B's proprietary credit scores, PAYDEX ratings, or deep financial risk assessments, Score API isn't a replacement for that specific data.&lt;/p&gt;

&lt;p&gt;But if your use case is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Company verification (is this business real and active?)&lt;/li&gt;
&lt;li&gt;KYC/AML compliance checks&lt;/li&gt;
&lt;li&gt;CRM data enrichment&lt;/li&gt;
&lt;li&gt;Lead qualification&lt;/li&gt;
&lt;li&gt;Market research across countries&lt;/li&gt;
&lt;li&gt;Building company directories or search tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;...then you're paying enterprise prices for commodity data. The registry information is public. We just made it searchable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Sign up at &lt;a href="https://score.get-scala.com" rel="noopener noreferrer"&gt;score.get-scala.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Get your API key instantly&lt;/li&gt;
&lt;li&gt;Install the SDK: &lt;code&gt;npm install scala-score&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Start querying 272M+ companies&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The free tier gives you 50 lookups/month — enough to evaluate the data quality before committing a cent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://score.get-scala.com" rel="noopener noreferrer"&gt;Try the Score API free&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Source code: &lt;a href="https://github.com/Alessandro114/scala-score-js" rel="noopener noreferrer"&gt;github.com/Alessandro114/scala-score-js&lt;/a&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>opensource</category>
      <category>database</category>
      <category>business</category>
    </item>
    <item>
      <title>Numbeo Data vs Reality: Real Cost of Living in 10 Cities</title>
      <dc:creator>Alessandro Binda</dc:creator>
      <pubDate>Tue, 19 May 2026 09:30:33 +0000</pubDate>
      <link>https://dev.to/alessandrobinda114/numbeo-data-vs-reality-real-cost-of-living-in-10-cities-45k1</link>
      <guid>https://dev.to/alessandrobinda114/numbeo-data-vs-reality-real-cost-of-living-in-10-cities-45k1</guid>
      <description>&lt;p&gt;&lt;em&gt;Verified data from Numbeo, Expatistan, and official sources. Updated May 2026.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Everyone talks about "moving abroad to save money." But how much do you actually save? I built &lt;a href="https://relomap.app" rel="noopener noreferrer"&gt;ReloMap&lt;/a&gt; — a free platform that compares verified cost-of-living data for 208 cities — and the numbers surprised me.&lt;/p&gt;

&lt;p&gt;Here's what a comfortable lifestyle (1BR apartment, eating out twice a week, gym, transport) actually costs in Europe's most popular expat cities.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Full Ranking
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;City&lt;/th&gt;
&lt;th&gt;Monthly Budget&lt;/th&gt;
&lt;th&gt;Rent 1BR&lt;/th&gt;
&lt;th&gt;Meal Out&lt;/th&gt;
&lt;th&gt;Safety&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tbilisi, Georgia&lt;/td&gt;
&lt;td&gt;€1,100&lt;/td&gt;
&lt;td&gt;€450&lt;/td&gt;
&lt;td&gt;€5&lt;/td&gt;
&lt;td&gt;65/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sofia, Bulgaria&lt;/td&gt;
&lt;td&gt;€1,200&lt;/td&gt;
&lt;td&gt;€468&lt;/td&gt;
&lt;td&gt;€6&lt;/td&gt;
&lt;td&gt;65/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bucharest, Romania&lt;/td&gt;
&lt;td&gt;€1,300&lt;/td&gt;
&lt;td&gt;€550&lt;/td&gt;
&lt;td&gt;€7&lt;/td&gt;
&lt;td&gt;55/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Budapest, Hungary&lt;/td&gt;
&lt;td&gt;€1,400&lt;/td&gt;
&lt;td&gt;€650&lt;/td&gt;
&lt;td&gt;€8&lt;/td&gt;
&lt;td&gt;60/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prague, Czech Republic&lt;/td&gt;
&lt;td&gt;€1,600&lt;/td&gt;
&lt;td&gt;€900&lt;/td&gt;
&lt;td&gt;€9&lt;/td&gt;
&lt;td&gt;76/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lisbon, Portugal&lt;/td&gt;
&lt;td&gt;€2,100&lt;/td&gt;
&lt;td&gt;€1,345&lt;/td&gt;
&lt;td&gt;€14&lt;/td&gt;
&lt;td&gt;67/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Valencia, Spain&lt;/td&gt;
&lt;td&gt;€1,800&lt;/td&gt;
&lt;td&gt;€522&lt;/td&gt;
&lt;td&gt;€14&lt;/td&gt;
&lt;td&gt;80/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Malaga, Spain&lt;/td&gt;
&lt;td&gt;€1,900&lt;/td&gt;
&lt;td&gt;€1,300&lt;/td&gt;
&lt;td&gt;€12&lt;/td&gt;
&lt;td&gt;68/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Berlin, Germany&lt;/td&gt;
&lt;td&gt;€2,300&lt;/td&gt;
&lt;td&gt;€1,314&lt;/td&gt;
&lt;td&gt;€12&lt;/td&gt;
&lt;td&gt;55/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Barcelona, Spain&lt;/td&gt;
&lt;td&gt;€2,400&lt;/td&gt;
&lt;td&gt;€1,437&lt;/td&gt;
&lt;td&gt;€15&lt;/td&gt;
&lt;td&gt;48/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Madrid, Spain&lt;/td&gt;
&lt;td&gt;€2,200&lt;/td&gt;
&lt;td&gt;€1,200&lt;/td&gt;
&lt;td&gt;€14&lt;/td&gt;
&lt;td&gt;52/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Porto, Portugal&lt;/td&gt;
&lt;td&gt;€1,900&lt;/td&gt;
&lt;td&gt;€1,105&lt;/td&gt;
&lt;td&gt;€12&lt;/td&gt;
&lt;td&gt;66/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amsterdam, Netherlands&lt;/td&gt;
&lt;td&gt;€3,100&lt;/td&gt;
&lt;td&gt;€1,850&lt;/td&gt;
&lt;td&gt;€18&lt;/td&gt;
&lt;td&gt;52/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Paris, France&lt;/td&gt;
&lt;td&gt;€2,800&lt;/td&gt;
&lt;td&gt;€1,339&lt;/td&gt;
&lt;td&gt;€16&lt;/td&gt;
&lt;td&gt;42/100&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  5 Things That Surprised Me
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Valencia is criminally underrated.&lt;/strong&gt; €522/month rent for a 1BR in a city with beaches, 300 sunny days, and a safety score of 80/100. It's cheaper than Lisbon but with better weather and higher safety.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Lisbon is no longer "cheap."&lt;/strong&gt; At €1,345/month rent, Lisbon is approaching Barcelona prices. The NHR tax regime (20% flat rate) is still the main draw, but the cost advantage over Western Europe is shrinking fast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Tbilisi is the best-kept secret.&lt;/strong&gt; €450/month rent, 1-year visa-free for most nationalities, 1% flat tax for small businesses. The catch? Language barrier is real, winters are cold, and the food scene — while excellent — gets repetitive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Safety scores vary wildly.&lt;/strong&gt; Barcelona scores 48/100 on safety (pickpocketing is rampant), while Prague scores 76/100 and Valencia 80/100. For families, this matters more than rent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The "frugal nomad" lifestyle is real.&lt;/strong&gt; You can genuinely live on €800/month in Tbilisi or Sofia. Not luxuriously, but comfortably — cooking at home, public transport, local gym. In Amsterdam, that wouldn't cover rent.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tax Factor Nobody Talks About
&lt;/h2&gt;

&lt;p&gt;A freelancer earning €60,000/year pays:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Italy&lt;/strong&gt;: €23,400 in taxes (39%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spain (Beckham Law)&lt;/strong&gt;: €14,400 (24%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portugal (NHR)&lt;/strong&gt;: €12,000 (20%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Georgia&lt;/strong&gt;: €600 (1% for small business)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UAE&lt;/strong&gt;: €0 (0%)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The tax savings alone can be worth €10,000-20,000/year — more than the difference in rent between most cities.&lt;/p&gt;

&lt;p&gt;I built a &lt;a href="https://relomap.app/tax-calculator" rel="noopener noreferrer"&gt;free tax calculator&lt;/a&gt; that compares your tax burden between any two countries, including special regimes.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built This
&lt;/h2&gt;

&lt;p&gt;I scraped cost-of-living data from multiple sources (Numbeo, Expatistan, Livingcost.org), cross-referenced them, and built a platform that updates monthly. All data is verified — 0% AI-generated prices.&lt;/p&gt;

&lt;p&gt;The platform is free: &lt;a href="https://relomap.app" rel="noopener noreferrer"&gt;relomap.app&lt;/a&gt;. You can compare any cities side-by-side, read in-depth guides for each destination, and calculate your tax burden.&lt;/p&gt;

&lt;p&gt;If you're considering a move, the &lt;a href="https://relomap.app/destinations" rel="noopener noreferrer"&gt;full comparison of all 208 cities&lt;/a&gt; is the best starting point.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Data sources: &lt;a href="https://relomap.app" rel="noopener noreferrer"&gt;ReloMap&lt;/a&gt; verified database (208 cities, May 2026), Numbeo, Expatistan. Full dataset available at &lt;a href="https://relomap.app/llms-full.txt" rel="noopener noreferrer"&gt;relomap.app/llms-full.txt&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>data</category>
      <category>travel</category>
      <category>remotework</category>
      <category>money</category>
    </item>
    <item>
      <title>Self-Hosting Mistral 7B With Ollama on a Budget Server</title>
      <dc:creator>Alessandro Binda</dc:creator>
      <pubDate>Tue, 19 May 2026 09:25:22 +0000</pubDate>
      <link>https://dev.to/alessandrobinda114/self-hosting-mistral-7b-with-ollama-on-a-budget-server-3ojb</link>
      <guid>https://dev.to/alessandrobinda114/self-hosting-mistral-7b-with-ollama-on-a-budget-server-3ojb</guid>
      <description>&lt;p&gt;&lt;em&gt;Next.js + Supabase + Ollama. Zero API costs. 3,000+ articles generated for free.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Six months ago, I wanted to move abroad but couldn't find a single platform that gave me real, verified cost-of-living data without a paywall. Numbeo has data but no guides. NomadList has rankings but costs $99/year. Expatistan has comparisons but limited cities.&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://relomap.app" rel="noopener noreferrer"&gt;ReloMap&lt;/a&gt;. It's free, has 208 cities, 3,000+ articles, and costs me approximately €0/month to run.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Next.js 15 (static export on Cloudflare Pages — free)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database&lt;/strong&gt;: Supabase PostgreSQL (free tier, 500MB)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI&lt;/strong&gt;: Mistral 7B via Ollama (self-hosted on a €8/month Hetzner server)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Translations&lt;/strong&gt;: Google Translate API (free for our volume)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search engines&lt;/strong&gt;: IndexNow for instant indexing (free)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CDN&lt;/strong&gt;: Cloudflare Pages (free, unlimited bandwidth)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Total monthly cost: €8&lt;/strong&gt; (just the server for Ollama)&lt;/p&gt;

&lt;h2&gt;
  
  
  The Data Pipeline
&lt;/h2&gt;

&lt;p&gt;The hardest part wasn't building the app — it was getting reliable data. Here's what I learned:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Numbeo&lt;/strong&gt; has the best data but rate-limits aggressively (429 after ~20 requests). Solution: I wrote a gentle scraper that processes 1 city every 30 minutes via cron. After 4 days, I had all 208 cities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expatistan&lt;/strong&gt; has no rate limit but fewer cities (70). Good for cross-validation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Livingcost.org&lt;/strong&gt; required Playwright (headless browser) because the data loads via JavaScript. Added 90 more cities this way.&lt;/p&gt;

&lt;p&gt;For every city, I merge data from all three sources. Numbeo data takes priority (quality score 95/100), with Expatistan and Livingcost.org filling gaps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generating 3,000+ Articles for Free
&lt;/h2&gt;

&lt;p&gt;Each city gets 15 article types (cost-of-living, neighborhoods, digital nomad guide, tax guide, etc.). That's 3,120 articles.&lt;/p&gt;

&lt;p&gt;I generate them using:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Groq API&lt;/strong&gt; (free tier, Llama 3.3 70B) — primary&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mistral API&lt;/strong&gt; (free tier, Mistral Large) — fallback&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; (self-hosted Mistral 7B) — emergency fallback&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each article injects real data from our Supabase database. The prompt includes verified prices, safety scores, and climate data — so the articles contain real numbers, not AI hallucinations.&lt;/p&gt;

&lt;p&gt;Translation to Italian, Spanish, and Portuguese uses Google Translate (free for our volume). Not perfect, but good enough for SEO in non-English markets.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Results
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;208 city profiles with verified data&lt;/li&gt;
&lt;li&gt;3,000+ articles in 4 languages&lt;/li&gt;
&lt;li&gt;432 static pages&lt;/li&gt;
&lt;li&gt;~1 million words of content&lt;/li&gt;
&lt;li&gt;Total cost: €8/month&lt;/li&gt;
&lt;li&gt;Time to build: ~3 months&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The site is live at &lt;a href="https://relomap.app" rel="noopener noreferrer"&gt;relomap.app&lt;/a&gt;. Everything is free — no paywall on data.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd Do Differently
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start with fewer cities&lt;/strong&gt; — 50 cities well-researched &amp;gt; 208 cities with gaps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build the audience first&lt;/strong&gt; — I built the product before having users&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus on one language first&lt;/strong&gt; — Translating 3,000 articles is a maintenance nightmare&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you're building something similar, the &lt;a href="https://relomap.app/llms-full.txt" rel="noopener noreferrer"&gt;ReloMap dataset&lt;/a&gt; is freely available as a machine-readable file.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Follow me for more on building products with zero budget. The full platform is at &lt;a href="https://relomap.app" rel="noopener noreferrer"&gt;relomap.app&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>ollama</category>
      <category>selfhosted</category>
      <category>devops</category>
    </item>
    <item>
      <title>How I Scrape Cost of Living Data From 3 Sources Without Getting Banned</title>
      <dc:creator>Alessandro Binda</dc:creator>
      <pubDate>Tue, 19 May 2026 09:19:29 +0000</pubDate>
      <link>https://dev.to/alessandrobinda114/how-i-scrape-cost-of-living-data-from-3-sources-without-getting-banned-336l</link>
      <guid>https://dev.to/alessandrobinda114/how-i-scrape-cost-of-living-data-from-3-sources-without-getting-banned-336l</guid>
      <description>&lt;p&gt;&lt;em&gt;This is not tax advice. Consult a professional. But these are the actual structures people use.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I spent 6 months researching tax optimization for remote workers while building &lt;a href="https://relomap.app" rel="noopener noreferrer"&gt;ReloMap&lt;/a&gt;, a free relocation comparison platform. What I found surprised me: the gap between what people pay and what they could legally pay is enormous.&lt;/p&gt;

&lt;p&gt;A freelancer earning €60,000/year from remote clients can pay anywhere from €0 to €25,000 in income tax, depending entirely on where they establish tax residency.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 183-Day Rule (And Why It's More Complex Than You Think)
&lt;/h2&gt;

&lt;p&gt;Most countries use the 183-day rule: if you spend 183+ days in a country, you're a tax resident there. But it's not that simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Italy&lt;/strong&gt; considers you a tax resident if your "center of vital interests" is there — even if you spend 180 days abroad&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spain&lt;/strong&gt; looks at where your spouse and children live&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portugal&lt;/strong&gt; only counts physical presence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key insight: you need to &lt;strong&gt;establish&lt;/strong&gt; tax residency somewhere favorable, not just &lt;strong&gt;avoid&lt;/strong&gt; residency everywhere. Being a tax nomad with no fixed residence is a gray area that most tax authorities are cracking down on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 5 Best Legal Tax Structures for Remote Workers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. UAE (Dubai) — 0% Income Tax
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cost of living: €2,500-4,000/month (&lt;a href="https://relomap.app/destinations/dubai-emirati-arabi" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Virtual Working Programme: €275/month&lt;/li&gt;
&lt;li&gt;No income tax, no capital gains tax&lt;/li&gt;
&lt;li&gt;You need to actually live there (183+ days)&lt;/li&gt;
&lt;li&gt;Catch: high rent (€1,991/month for 1BR center), alcohol is expensive&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Georgia (Tbilisi) — 1% Small Business Tax
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cost of living: €1,100/month (&lt;a href="https://relomap.app/destinations/tbilisi-georgia" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Small Business Status: 1% tax on revenue under ~€140K&lt;/li&gt;
&lt;li&gt;1-year visa-free for most nationalities&lt;/li&gt;
&lt;li&gt;Catch: banking can be complex, language barrier&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Portugal — 20% NHR Flat Rate
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cost of living: €2,100/month in Lisbon (&lt;a href="https://relomap.app/destinations/lisbona-portogallo" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Non-Habitual Resident regime: 20% flat tax&lt;/li&gt;
&lt;li&gt;Foreign pension income: potentially 0% for 10 years&lt;/li&gt;
&lt;li&gt;Catch: regime is being phased out for new applicants&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Paraguay — 10% Territorial Tax
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Only taxes income earned IN Paraguay&lt;/li&gt;
&lt;li&gt;Remote work for foreign clients = 0% effectively&lt;/li&gt;
&lt;li&gt;Residency is cheap and fast (~3 months)&lt;/li&gt;
&lt;li&gt;Catch: infrastructure, internet quality, safety concerns&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Spain — Beckham Law (24% Flat Rate)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cost of living: €1,800-2,400/month (&lt;a href="https://relomap.app/destinations/barcellona-spagna" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;24% flat rate for 6 years (vs 45% top marginal rate)&lt;/li&gt;
&lt;li&gt;Best quality of life on this list&lt;/li&gt;
&lt;li&gt;Catch: you must not have been a Spanish tax resident in the prior 5 years&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Real Savings Calculation
&lt;/h2&gt;

&lt;p&gt;I built a &lt;a href="https://relomap.app/tax-calculator" rel="noopener noreferrer"&gt;free tax calculator&lt;/a&gt; to compare these scenarios. For a €60K freelancer:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Structure&lt;/th&gt;
&lt;th&gt;Annual Tax&lt;/th&gt;
&lt;th&gt;Savings vs Italy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Italy (base)&lt;/td&gt;
&lt;td&gt;€23,400&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spain Beckham&lt;/td&gt;
&lt;td&gt;€14,400&lt;/td&gt;
&lt;td&gt;€9,000/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Portugal NHR&lt;/td&gt;
&lt;td&gt;€12,000&lt;/td&gt;
&lt;td&gt;€11,400/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Georgia 1%&lt;/td&gt;
&lt;td&gt;€600&lt;/td&gt;
&lt;td&gt;€22,800/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UAE 0%&lt;/td&gt;
&lt;td&gt;€0&lt;/td&gt;
&lt;td&gt;€23,400/year&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Over 5 years, the Georgia structure saves you &lt;strong&gt;€114,000&lt;/strong&gt; compared to staying in Italy. That's a house deposit.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You Need to Actually Do This
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Hire a tax advisor&lt;/strong&gt; in both your current country and target country (€500-1,500)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Establish genuine residency&lt;/strong&gt; — rental contract, bank account, utility bills&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Formally exit&lt;/strong&gt; tax residency in your home country (AIRE registration for Italians)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep records&lt;/strong&gt; — flight tickets, rental contracts, bank statements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't fake it&lt;/strong&gt; — tax authorities exchange information automatically (CRS)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;Tax residency is the single biggest financial lever you have as a remote worker. The difference between the wrong and right structure is €10,000-25,000/year.&lt;/p&gt;

&lt;p&gt;Use &lt;a href="https://relomap.app/tax-calculator" rel="noopener noreferrer"&gt;ReloMap's tax calculator&lt;/a&gt; to compare your specific situation, and read the &lt;a href="https://relomap.app/blog" rel="noopener noreferrer"&gt;destination guides&lt;/a&gt; for detailed visa and tax information for each country.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclaimer: This is not tax advice. Consult a qualified tax professional before making any decisions. Data from &lt;a href="https://relomap.app" rel="noopener noreferrer"&gt;ReloMap&lt;/a&gt;, updated May 2026.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>scraping</category>
      <category>data</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built a Free Cost of Living Tool for 208 Cities — Here's the Stack</title>
      <dc:creator>Alessandro Binda</dc:creator>
      <pubDate>Tue, 19 May 2026 09:18:43 +0000</pubDate>
      <link>https://dev.to/alessandrobinda114/i-built-a-free-cost-of-living-tool-for-208-cities-heres-the-stack-4172</link>
      <guid>https://dev.to/alessandrobinda114/i-built-a-free-cost-of-living-tool-for-208-cities-heres-the-stack-4172</guid>
      <description>&lt;p&gt;&lt;em&gt;Verified data from Numbeo, Expatistan, and official sources. Updated May 2026.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Everyone talks about "moving abroad to save money." But how much do you actually save? I built &lt;a href="https://relomap.app" rel="noopener noreferrer"&gt;ReloMap&lt;/a&gt; — a free platform that compares verified cost-of-living data for 208 cities — and the numbers surprised me.&lt;/p&gt;

&lt;p&gt;Here's what a comfortable lifestyle (1BR apartment, eating out twice a week, gym, transport) actually costs in Europe's most popular expat cities.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Full Ranking
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;City&lt;/th&gt;
&lt;th&gt;Monthly Budget&lt;/th&gt;
&lt;th&gt;Rent 1BR&lt;/th&gt;
&lt;th&gt;Meal Out&lt;/th&gt;
&lt;th&gt;Safety&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tbilisi, Georgia&lt;/td&gt;
&lt;td&gt;€1,100&lt;/td&gt;
&lt;td&gt;€450&lt;/td&gt;
&lt;td&gt;€5&lt;/td&gt;
&lt;td&gt;65/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sofia, Bulgaria&lt;/td&gt;
&lt;td&gt;€1,200&lt;/td&gt;
&lt;td&gt;€468&lt;/td&gt;
&lt;td&gt;€6&lt;/td&gt;
&lt;td&gt;65/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bucharest, Romania&lt;/td&gt;
&lt;td&gt;€1,300&lt;/td&gt;
&lt;td&gt;€550&lt;/td&gt;
&lt;td&gt;€7&lt;/td&gt;
&lt;td&gt;55/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Budapest, Hungary&lt;/td&gt;
&lt;td&gt;€1,400&lt;/td&gt;
&lt;td&gt;€650&lt;/td&gt;
&lt;td&gt;€8&lt;/td&gt;
&lt;td&gt;60/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prague, Czech Republic&lt;/td&gt;
&lt;td&gt;€1,600&lt;/td&gt;
&lt;td&gt;€900&lt;/td&gt;
&lt;td&gt;€9&lt;/td&gt;
&lt;td&gt;76/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lisbon, Portugal&lt;/td&gt;
&lt;td&gt;€2,100&lt;/td&gt;
&lt;td&gt;€1,345&lt;/td&gt;
&lt;td&gt;€14&lt;/td&gt;
&lt;td&gt;67/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Valencia, Spain&lt;/td&gt;
&lt;td&gt;€1,800&lt;/td&gt;
&lt;td&gt;€522&lt;/td&gt;
&lt;td&gt;€14&lt;/td&gt;
&lt;td&gt;80/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Malaga, Spain&lt;/td&gt;
&lt;td&gt;€1,900&lt;/td&gt;
&lt;td&gt;€1,300&lt;/td&gt;
&lt;td&gt;€12&lt;/td&gt;
&lt;td&gt;68/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Berlin, Germany&lt;/td&gt;
&lt;td&gt;€2,300&lt;/td&gt;
&lt;td&gt;€1,314&lt;/td&gt;
&lt;td&gt;€12&lt;/td&gt;
&lt;td&gt;55/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Barcelona, Spain&lt;/td&gt;
&lt;td&gt;€2,400&lt;/td&gt;
&lt;td&gt;€1,437&lt;/td&gt;
&lt;td&gt;€15&lt;/td&gt;
&lt;td&gt;48/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Madrid, Spain&lt;/td&gt;
&lt;td&gt;€2,200&lt;/td&gt;
&lt;td&gt;€1,200&lt;/td&gt;
&lt;td&gt;€14&lt;/td&gt;
&lt;td&gt;52/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Porto, Portugal&lt;/td&gt;
&lt;td&gt;€1,900&lt;/td&gt;
&lt;td&gt;€1,105&lt;/td&gt;
&lt;td&gt;€12&lt;/td&gt;
&lt;td&gt;66/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amsterdam, Netherlands&lt;/td&gt;
&lt;td&gt;€3,100&lt;/td&gt;
&lt;td&gt;€1,850&lt;/td&gt;
&lt;td&gt;€18&lt;/td&gt;
&lt;td&gt;52/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Paris, France&lt;/td&gt;
&lt;td&gt;€2,800&lt;/td&gt;
&lt;td&gt;€1,339&lt;/td&gt;
&lt;td&gt;€16&lt;/td&gt;
&lt;td&gt;42/100&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  5 Things That Surprised Me
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Valencia is criminally underrated.&lt;/strong&gt; €522/month rent for a 1BR in a city with beaches, 300 sunny days, and a safety score of 80/100. It's cheaper than Lisbon but with better weather and higher safety.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Lisbon is no longer "cheap."&lt;/strong&gt; At €1,345/month rent, Lisbon is approaching Barcelona prices. The NHR tax regime (20% flat rate) is still the main draw, but the cost advantage over Western Europe is shrinking fast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Tbilisi is the best-kept secret.&lt;/strong&gt; €450/month rent, 1-year visa-free for most nationalities, 1% flat tax for small businesses. The catch? Language barrier is real, winters are cold, and the food scene — while excellent — gets repetitive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Safety scores vary wildly.&lt;/strong&gt; Barcelona scores 48/100 on safety (pickpocketing is rampant), while Prague scores 76/100 and Valencia 80/100. For families, this matters more than rent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The "frugal nomad" lifestyle is real.&lt;/strong&gt; You can genuinely live on €800/month in Tbilisi or Sofia. Not luxuriously, but comfortably — cooking at home, public transport, local gym. In Amsterdam, that wouldn't cover rent.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tax Factor Nobody Talks About
&lt;/h2&gt;

&lt;p&gt;A freelancer earning €60,000/year pays:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Italy&lt;/strong&gt;: €23,400 in taxes (39%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spain (Beckham Law)&lt;/strong&gt;: €14,400 (24%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portugal (NHR)&lt;/strong&gt;: €12,000 (20%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Georgia&lt;/strong&gt;: €600 (1% for small business)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UAE&lt;/strong&gt;: €0 (0%)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The tax savings alone can be worth €10,000-20,000/year — more than the difference in rent between most cities.&lt;/p&gt;

&lt;p&gt;I built a &lt;a href="https://relomap.app/tax-calculator" rel="noopener noreferrer"&gt;free tax calculator&lt;/a&gt; that compares your tax burden between any two countries, including special regimes.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built This
&lt;/h2&gt;

&lt;p&gt;I scraped cost-of-living data from multiple sources (Numbeo, Expatistan, Livingcost.org), cross-referenced them, and built a platform that updates monthly. All data is verified — 0% AI-generated prices.&lt;/p&gt;

&lt;p&gt;The platform is free: &lt;a href="https://relomap.app" rel="noopener noreferrer"&gt;relomap.app&lt;/a&gt;. You can compare any cities side-by-side, read in-depth guides for each destination, and calculate your tax burden.&lt;/p&gt;

&lt;p&gt;If you're considering a move, the &lt;a href="https://relomap.app/destinations" rel="noopener noreferrer"&gt;full comparison of all 208 cities&lt;/a&gt; is the best starting point.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Data sources: &lt;a href="https://relomap.app" rel="noopener noreferrer"&gt;ReloMap&lt;/a&gt; verified database (208 cities, May 2026), Numbeo, Expatistan. Full dataset available at &lt;a href="https://relomap.app/llms-full.txt" rel="noopener noreferrer"&gt;relomap.app/llms-full.txt&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>supabase</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
