Bdns Spain National Grants Subsidy Awards Scraper
Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.
BDNS Spain National Grants & Subsidy Awards Scraper
Extract Spain's national public subsidy and grant award data from BDNS (Base de Datos Nacional de Subvenciones) — every public grant, subsidy, and aid payment issued to a named beneficiary since national tracking began, not just the call/announcement listing that most BDNS tools stop at. Each record carries the beneficiary's tax ID, the euro amount, the granting body, and a flag for EU Next Generation / MRR recovery-fund financing.
Features
- Millions of award records — the beneficiary-level half of BDNS that most tools skip in favor of the much smaller call index
- Beneficiary tax ID (NIF/CIF) parsed out of the raw name field into a clean tax ID + legal/personal name, alongside the untouched original value
- Distinguishes legal entities (
juridica) from natural persons (persona fisica) — individuals are privacy-masked by BDNS, and this is preserved rather than discarded - Each award enriched with its parent call's metadata: title, granting body, granting region, administrative level, and an EU Next Generation / MRR recovery-fund flag
- Incremental by default — only awards added since your last run; full historical backfill available on demand
- Pay-per-record pricing
Who Uses Spanish Subsidy Award Data and Why?
- State-aid compliance teams — verify what public aid a company has already received before approving new aid
- EU Next Generation / MRR auditors — isolate recovery-fund awards for compliance reporting
- B2B lead generation and sales intelligence — build lists of companies that just received public subsidy money
- Competitor intelligence — track public funding flowing to competitors by sector, region, or granting body
- Economic and policy researchers — analyze Spanish public spending patterns by administrative level, region, and beneficiary type
How It Works
maxItemscontrols how many award records the run returns.- By default, a run returns only awards added since your previous successful run (or the last 30 days, on a first-ever run).
- Set
full_backfilltotrueto pull the entire historical archive in one run — this is a long job; run it as a dedicated one-off rather than on your regular schedule. - Each record includes the award amount, grant date, granting body/region/administrative level, beneficiary name and tax ID, the parent call's title and recovery-fund status, and more.
Input
Basic: recent awards
{
"maxItems": 100
}
Full historical backfill
{
"maxItems": 1000000,
"full_backfill": true
}
Resume incrementally from a specific date
{
"maxItems": 500,
"since_date": "2026-01-01"
}
Input Parameters
| Field | Type | Default | Description |
|---|---|---|---|
maxItems |
integer | 10 | Maximum number of award records to return. |
full_backfill |
boolean | false | Pull the entire historical award archive instead of only awards added since the last run. |
since_date |
string | — | Override the incremental start date (YYYY-MM-DD). Ignored when full_backfill is true. |
Output Fields
| Field | Description |
|---|---|
award_id |
Internal award record id. |
award_code |
Public award code. |
award_date |
Date the award was granted. |
beneficiary_tax_id |
Beneficiary's tax ID — a real CIF/NIF for a legal entity, or a masked token for a natural person. |
beneficiary_name |
Beneficiary's legal or personal name. |
beneficiary_type |
juridica (legal entity) or persona fisica (natural person). |
beneficiary_raw |
The original, unparsed beneficiary field. |
amount_eur |
Award amount in euros. |
equivalent_aid_eur |
Gross grant equivalent aid amount in euros. |
instrument |
Aid instrument type (subvención, préstamo, entrega dineraria, etc). |
call_id / call_number / call_title / call_url |
Identifiers and title/URL of the parent grant call. |
admin_level / granting_region / granting_body |
Which government level, region, and body issued the award. |
has_project |
Whether the award is tied to a specific funded project. |
is_recovery_fund |
Whether the parent call is funded under the EU Next Generation / MRR program. |
person_id |
Stable beneficiary key — the same value across every award to the same beneficiary. |
call_opening_date |
Date the parent call was published. |
FAQ
Does this include the beneficiary's name and tax ID?
Yes. Every award record includes the beneficiary's parsed tax ID (beneficiary_tax_id) and name (beneficiary_name), plus the untouched original value (beneficiary_raw). Legal entities carry a full CIF; individuals are privacy-masked, which is how the source data itself represents them — this actor does not unmask them.
What is person_id useful for?
person_id is a stable key that stays the same across every award a given beneficiary has received, so you can group and roll up all awards to one company or individual even when their name is formatted slightly differently across records.
How do I get every award ever issued instead of just recent ones?
Set full_backfill to true. This pages the entire historical archive rather than the incremental window used by default, so budget it as a long-running, one-off job rather than part of a frequent schedule.
Does this cover EU recovery-fund (Next Generation) awards?
Yes — is_recovery_fund flags every award whose parent call is funded under the EU Next Generation / MRR program, so you can isolate that slice directly.