ParseForge Scrapers

SPDX Software Licenses Scraper

parseforge/spdx-software-licenses-scraper

Developer toolsAutomationOther

Scrapes the official SPDX license list and exceptions. Returns each license as a flat row with its identifier, name, OSI approval, FSF libre status, deprecation flag, and optional full body text.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
104
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

SPDX Software Licenses Scraper

Scrape the complete SPDX software license catalog, including full text, OSI approval status, and FSF libre flags. Pull every license, exception, or a single identifier in one flat dataset. Export to CSV, JSON, Excel, or XML.

Manually checking software license terms across hundreds of packages is slow and error-prone. The SPDX License List is the canonical source for open source license identifiers, but its JSON API requires pagination and separate calls for full text. This Actor reads the entire catalog, filters by OSI approval, FSF libre status, or deprecation, and returns each license with its metadata and optional full body text in one run.

Who uses it What they scrape SPDX License List for
Open source compliance officers Audit a software bill of materials against the official SPDX license list.
Software composition analysis (SCA) vendors Build or refresh a license database for dependency scanning tools.
Legal teams at tech companies Review the full text of every OSI-approved license a product depends on.
SPDX document authors Validate license identifiers before embedding them in an SBOM.

What it does

This Actor collects SPDX licenses and exceptions from the official list, and returns each entry as a flat row with its identifier, name, OSI approval, FSF libre status, deprecation flag, and optional full text.

  • ๐Ÿ“‹ Licenses mode: enumerate every license on the SPDX list, with optional filters for OSI approval, FSF libre, and deprecation.
  • โš ๏ธ Exceptions mode: pull the full catalog of license exceptions that modify standard terms.
  • ๐ŸŽฏ Single license mode: fetch one license by its SPDX short identifier, with full text included.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with SPDX License List data

๐Ÿ“Š Build a compliance database.

A compliance officer runs the Actor in licenses mode with OSI-approved and FSF-libre filters on, then exports the full dataset to populate an internal license review system.

๐Ÿ” Validate an SBOM.

An SPDX document author fetches a single license by ID to confirm the full text matches the terms referenced in their software bill of materials.

๐Ÿ”„ Refresh a license lookup table.

An SCA tool vendor schedules a weekly run of the licenses catalog to pick up newly added or deprecated identifiers from the SPDX list.

๐Ÿ“ Review exception terms.

A legal team pulls the exceptions catalog to understand which standard license terms can be modified by a classpath or autoconf exception.

Why choose this scraper

What you get
Official SPDX source Data comes directly from the spdx.org license list JSON API, the same source the SPDX specification uses.
Full license text Optionally pull the complete body text for every license, not the metadata.
OSI and FSF filters Restrict output to only OSI-approved open source licenses or only FSF-listed free/libre licenses.
Deprecation control Exclude deprecated licenses by default, or include them when you need historical coverage.
Flat row output Every license returns as one row with a fixed schema, ready for CSV, JSON, Excel, or XML export.

How it compares

No other Store actor targets SPDX License List the same way, so the honest comparison is with the alternatives teams actually weigh.

SPDX Software Licenses Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When SPDX License List changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor by choosing a catalog mode (licenses, exceptions, or single ID), then apply boolean filters for OSI approval, FSF libre status, and deprecation so only the entries you need land in your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10,
 "mode": "licenses"
}

A larger pull:

{
 "maxItems": 200,
 "mode": "licenses"
}

Pricing

Pay-per-result: $0.01333 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $1.33
1,000 results $13.33
10,000 results $133.30

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the SPDX Software Licenses Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to SPDX License List through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/spdx-software-licenses-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your filters. If both 'OSI Approved only' and 'FSF Free / Libre only' are on, the intersection may be empty for some license sets. Try relaxing one filter.

The full text is missing for some licenses.

Ensure 'Include full license text' is checked. If it is, the SPDX website may not host the text for that particular license. The Actor will still return the metadata.

I hit the 10-item limit on the free plan.

The free plan limits runs to 10 items as a preview. Upgrade to a paid Apify plan to scrape the full catalog of over 500 licenses.

The single license mode returns an empty row.

Make sure you selected a license ID from the dropdown and that the mode is set to 'Single license'. If the ID is deprecated and 'Include deprecated' is off, it will be skipped.

The run is slow with full text enabled.

Fetching full text makes one HTTP request per license. For the full catalog, this can take a minute or two. Disable full text if you only need metadata.

FAQ

Question Answer
What is the SPDX License List? It is a curated catalog of open source software licenses and exceptions maintained by the Linux Foundation. Each entry has a short identifier like MIT or Apache-2.0, a full name, and metadata about OSI approval and FSF libre status.
Does this Actor include the full license text? Yes, when you enable the 'Include full license text' option. It fetches the complete body from the SPDX website for each license, which adds one HTTP request per entry.
Can I filter by OSI-approved licenses only? Yes. Set the 'OSI Approved only' checkbox to true, and the Actor will return only licenses that the Open Source Initiative has approved.
What does the FSF Free / Libre filter do? It restricts the output to licenses the Free Software Foundation considers free/libre. This is useful when you need to ensure all dependencies meet FSF guidelines.
Are deprecated licenses included by default? No. The Actor excludes deprecated SPDX identifiers unless you explicitly check 'Include deprecated'. This keeps your dataset clean for current compliance work.
How do I fetch a single license? Set the mode to 'Single license' and pick the SPDX short identifier from the dropdown. The Actor returns that one license with its metadata and full text.
What is the difference between licenses and exceptions? Licenses are the full terms under which software is distributed. Exceptions modify those terms, like the Classpath exception for the GPL. The Actor can enumerate either catalog.
How many licenses are on the SPDX list? The list contains over 500 licenses and several dozen exceptions. The exact count changes as new entries are added and old ones deprecated.
Can I export the data to CSV? Yes. Like all Apify Actors, the output dataset can be exported to CSV, JSON, Excel, or XML from the run console.
Is this Actor free to use? Free users can scrape up to 10 items as a preview. Paid Apify plans allow up to 1,000,000 items per run, which covers the entire SPDX catalog many times over.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Linux Foundation. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 10
mode string (3 options) Which catalog to enumerate. licenses
licenseId string (730 options) SPDX license short-identifier (only used when mode = single). not set
fsfLibre boolean Keep only licenses the Free Software Foundation lists as Free / Libre. false
osiApproved boolean Keep only OSI-approved open-source licenses. false
deprecated boolean Include licenses SPDX has marked deprecated. Off by default. false
includeText boolean Pull the full license body. Adds one HTTP request per license. true

Pricing

from $10.00 per 1,000 results

Charged forWhat it isPrice each
Result Item Charged once per result collected. $0.01 to $0.01333

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~spdx-software-licenses-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run SPDX Software Licenses Scraper on Apify All scrapers