Skip to main content
Engineering

Can You Use Public API Data Commercially? A Licence Guide

Public domain, CC BY, CC0, non-commercial only: how to read a public API's terms, and how Pergamon ships the licence and attribution with every call.

fastcrw
By RecepNovember 10, 20267 min read

By the fastCRW team · Catalogue figures checked 2026-11-05 against GET /v1/data · Verify independently before relying on any figure.

Short answer: many public APIs can be used in a commercial product, but "public" does not mean "free for any use". Each source publishes its own licence, and some restrict commercial use, require attribution or require share-alike. This guide shows how to read those terms, what attribution looks like in practice, and how the Pergamon catalogue returns the licence and attribution with every call.

The question developers keep asking

The question comes up on developer forums. In a Companies House forum thread dated 2023-09-01, a developer asked about the rules on commercial use of the API and wrote that they could not "find any terms of use or conditions document about using the API online". The thread is at forum.companieshouse.gov.uk. Check the licence page of each source before you build on it.

Four licence classes you will meet

Most public data falls into one of four classes. The examples below come from the licence rows in the catalogue, which quote each publisher's own statement.

  • US federal works. Records such as SEC EDGAR filings are "a work of the United States Government, not subject to domestic copyright under 17 U.S.C. 105". The catalogue row carries the attribution text the agency asks for, "Source: U.S. Securities and Exchange Commission, EDGAR".
  • CC0. OpenAlex places its catalogue in the public domain, and attribution is appreciated but not required. Wikidata statement data is also CC0.
  • CC BY. Reuse is allowed with credit. OSV data is published under CC BY 4.0 by the Open Source Vulnerabilities project, and the World Bank licenses its datasets under CC BY 4.0, which allows commercial use with attribution.
  • Own terms. The publisher writes its own rules, and some of them limit commercial use. MusicBrainz says "Non-commercial use of this web service is free". FRED provides its data "for non-commercial, educational, and personal uses", and other uses are subject to additional restrictions.

Some sources sit between these classes. Wikipedia text is CC BY-SA 4.0, so a derivative must keep the share-alike terms. Open Food Facts uses the Open Database License, so a derived database must be shared under the same licence. Read the row before you assume a class.

Check the commercial flag, not only the licence name

Every provider row in the catalogue carries a commercial_use and a redistribution field. Most server-run sources are marked true. Some are false. The Socrata Discovery API is one of them: its catalogue federates thousands of independent portals, and no blanket licence covers the whole catalogue. The flag is false for the whole catalogue, because each record carries its own licence string and you must check that string per record. Do not assume that a public source may be used commercially until its row says so.

What attribution means in practice

Attribution is the part of a licence you can satisfy in code. Every response from Pergamon includes a provenance block with the licence, the licence URL and the attribution text the publisher asked for. Store those fields with any number you show to a user. This example calls the World Bank indicator for Germany's GDP and prints the three provenance fields:

# pip install crw
from crw import CrwClient

client = CrwClient()  # reads CRW_API_KEY
result = client.get_data("worldbank", "indicator", {"country": "DE", "indicator": "NY.GDP.MKTP.CD", "mrv": "5"})
prov = result["provenance"]
print(prov["licence"])
print(prov["licenceUrl"])
print(prov["attributionText"])

The output of that run was:

The World Bank Group licenses its datasets under Creative Commons Attribution 4.0 (CC BY 4.0), which allows copying, modification and distribution for any purpose including commercial use, with attribution.
https://datacatalog.worldbank.org/public-licenses
Source: World Bank Open Data (CC BY 4.0)

The Python SDK uses camelCase keys such as licenceUrl and attributionText. The REST response uses snake_case, so the same field is licence_url and attribution_text. Use the key style of the surface you call.

The REST call for the same data is one line:

curl "https://api.fastcrw.com/v1/data/worldbank/indicator?country=DE&indicator=NY.GDP.MKTP.CD&mrv=5" \
  -H "Authorization: Bearer $CRW_API_KEY"

Where the licence sits in a response

The licence travels inside the response, next to the data. This is the provenance block from the World Bank call above, with the data array removed:

{
  "success": true,
  "provider": "worldbank",
  "capability": "indicator",
  "credits_used": 1,
  "provenance": {
    "source": "World Bank Open Data",
    "upstream_url": "https://api.worldbank.org/v2/country/DE/indicator/NY.GDP.MKTP.CD?format=json&mrv=5",
    "licence": "The World Bank Group licenses its datasets under Creative Commons Attribution 4.0 (CC BY 4.0), which allows copying, modification and distribution for any purpose including commercial use, with attribution.",
    "licence_url": "https://datacatalog.worldbank.org/public-licenses",
    "attribution_text": "Source: World Bank Open Data (CC BY 4.0)",
    "is_stale": true,
    "cache_age_seconds": 81
  }
}

The is_stale flag in that block means the body came from the response cache, not that the World Bank data is old. Store the licence, licence_url and attribution_text fields with any figure you publish, so the credit is never separated from the number.

The same question for four sources

Licence classes are easier to compare side by side. This table uses the licence lines from the catalogue rows, shortened:

SourceLicence classAttribution textWhere the call runs
SEC EDGARUS federal work, 17 U.S.C. 105Source: U.S. Securities and Exchange Commission, EDGARServer
OpenAlexCC0 1.0Source: OpenAlexServer
World Bank Open DataCC BY 4.0Source: World Bank Open Data (CC BY 4.0)Server
MusicBrainzOwn terms, non-commercial useSource: MusicBrainzClient, 0 credits

For the first three, the licence line is the permission and the attribution text is the credit it asks for. MusicBrainz is the one to read most carefully: its own statement says non-commercial use is free and points to commercial plans for other use.

Why some sources run on your machine

Some sources have terms that limit resale, and for those the call runs on your machine instead of on our servers. More than 70 of the catalogue's sources run this way. A client-run call costs 0 credits, and the data never passes through fastCRW. You call the source under its own terms, with its own key where it needs one.

You can see which ones need a key with the local connector command. This is a real run of npx -y crw-mcp connectors list, trimmed to three rows with the licence column cut short, as the tool prints it:

PROVIDER                              NAME                                  KEY                LICENCE
discogs                               Discogs                               required, missing  Prohibited commercial uses include, but are not limited t...
fred                                  FRED (St. Louis Fed)                  required, missing  FRED provides data and data services to the public for no...
musicbrainz                           MusicBrainz                           not needed         Non-commercial use of this web service is free; please se...

Share-alike and derived works

Attribution is a line in your product or documentation. Share-alike is a stronger obligation: if you publish a derived work, it must carry the same licence. Three licences in the catalogue work this way:

  • CC BY-SA 4.0 on Wikipedia article text. A derivative text keeps the share-alike terms.
  • CC BY-SA 3.0 on the product descriptions from endoflife.date. The catalogue row says a derived work "carries the same share-alike obligation".
  • ODbL on Open Food Facts. A derived database must be shared under the same licence, and Open Food Facts must be credited.

Whether an output counts as a derived work is a legal question. Showing a single fact with its credit and republishing a whole body of records are different cases, so read the licence for the second before you decide.

A licence checklist before you ship

  1. Find the source's row in the catalogue and read its licence line, commercial_use and redistribution flags.
  2. Open the licence URL on the provider page and read the terms it points to.
  3. Write down the attribution text and the place in your product where it must appear.
  4. For share-alike or database licences, decide whether your output is a derived work and what it must carry.
  5. For client-run sources, create your own key if the source needs one, and keep to the terms that come with it.

How we review terms

A provider whose terms nobody has read is not reachable through Pergamon, so every listed source has had its terms read before it goes live. Caching follows the licence. The provider page carries the licence line, so you can check the same text we used.

That review does not make a source safe for every product. A licence can change, and a publisher can update its terms after we read them. Read the licence on the provider page again before you ship a feature that depends on it.

Not legal advice

This article explains how public data licences are usually written and where to find them. It is not legal advice, and it does not tell you whether your product, your users or your jurisdiction are covered. If a source matters to your business, ask a lawyer to read its terms against your use case.

Sources

Related: Public data API for AI agents · AGPL-3.0 for SaaS, explained · Local-first scraping and data privacy · Pergamon catalogue

FAQ

Frequently asked questions

Can I use public government data in a commercial product?
Many US federal works are not subject to domestic copyright under 17 U.S.C. 105, but each source publishes its own statement. Read the licence row for the specific source before you ship, because some sources are marked as not commercially reusable.
What is the difference between CC0 and CC BY?
CC0 is a public-domain dedication: the publisher asks for no credit. CC BY allows reuse, including commercially, provided you give credit as the licence specifies.
Where does the attribution text come from when I use Pergamon?
Every response includes a provenance block with the licence, the licence URL and the attribution text the publisher asked for. Store those fields with any number you show to a user.

Get Started

Try fastCRW free

Run a live request in the playground — no signup required. Or grab a free API key with 500 credits, earn up to 500 more, no credit card.

Continue exploring

More engineering posts

View category archive