Base URL
https://api.bandoeasy.it/v1. L'indirizzo https://api.bandoeasy.it/api/v1 è un alias equivalente.

Un endpoint in sola lettura restituisce il catalogo dei bandi approvati, 50 per pagina, con territori, codici ATECO 2025, categorie, spese ammissibili e allegati.


curl -s "https://api.bandoeasy.it/v1/grants?limit=1" \ -H "X-API-Key: be_live_…"
https://api.bandoeasy.it/v1. L'indirizzo https://api.bandoeasy.it/api/v1 è un alias equivalente.
Invia la chiave nell'header X-API-Key oppure come Authorization: Bearer. Le chiavi iniziano con be_live_ e si creano dalla pagina Chiavi API della dashboard.
Usa la chiave dal tuo backend: le chiamate dal browser di altri domini non sono abilitate e la chiave resterebbe visibile a chiunque.
Ogni risposta riporta la scadenza della chiave nell'header X-API-Key-Expires-At e nel campo api_key.expires_at.
Restituisce i bandi dal più recente al meno recente. Per scaricare tutto il catalogo segui pagination.has_next finché è false.
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
page | intero ≥ 1 | 1 | Pagina da restituire. |
limit | intero 1–50 | 50 | Bandi per pagina. |
regione | stringa | — | Filtra per territorio: una regione oppure Italia, Europa, Mondo. Include anche i bandi nazionali ed europei collegati a quel territorio. Maiuscole e minuscole sono indifferenti. |
const grants = []
let page = 1
let hasNext = true
while (hasNext) {
const response = await fetch(`https://api.bandoeasy.it/v1/grants?page=${page}`, {
headers: { 'X-API-Key': process.env.BANDOEASY_API_KEY }
})
const { data, pagination } = await response.json()
grants.push(...data)
hasNext = pagination.has_next
page += 1
}curl -s "https://api.bandoeasy.it/v1/grants?regione=Veneto&limit=10" \ -H "X-API-Key: be_live_…"
const response = await fetch('https://api.bandoeasy.it/v1/grants?regione=Veneto&limit=10', {
headers: { 'X-API-Key': process.env.BANDOEASY_API_KEY }
})
const { data, pagination } = await response.json()import os
import requests
response = requests.get("https://api.bandoeasy.it/v1/grants?regione=Veneto&limit=10",
headers={"X-API-Key": os.environ["BANDOEASY_API_KEY"]},
timeout=30)
payload = response.json() Ogni risposta contiene data (i bandi), pagination e api_key. Qui sotto un estratto di un bando reale.
{
"data": [
{
"id": "012eb540-54b1-4fdd-9a6a-5ecb8bce29b7",
"nome_del_bando": "Piemonte - Interessi su prestiti agricoli 2026",
"promotore": "Regione Piemonte",
"emanazione": "Regionale",
"tipo": "Procedura a sportello",
"stato_del_bando": "Attivo",
"fondi_esauriti": false,
"data_di_apertura": "2026-06-23",
"scadenza": null,
"scadenza_interna": "2026-12-31",
"dotazione": 1450000,
"regime_di_aiuto": "De Minimis",
"link_al_sito_del_bando": "https://bandi.regione.piemonte.it/contributi-finanziamenti/contributi-negli-interessi-sui-prestiti-contratti-cooperative-agricole-altre-forme-associative",
"codici_ateco_2025": [
"01",
"01.1",
"01.11.0"
],
"localita": [
"Piemonte"
],
"categorie": [
"Tasso Agevolato"
],
"created_at": "2026-09-24T13:58:53.52923"
}
],
"pagination": {
"page": 1,
"limit": 1,
"total": 2635,
"total_pages": 2635,
"has_next": true
},
"api_key": {
"expires_at": "2026-12-31T23:59:59+00:00",
"max_grants": null,
"regione": null
}
}| Campo | Tipo | Descrizione |
|---|---|---|
id | uuid | Identificativo univoco e stabile del bando. |
nome_del_bando | stringa | Titolo del bando. |
promotore | stringa o null | Ente che promuove il bando. |
emanazione | stringa o null | Livello dell'ente emanante, testo libero (es. «Regionale», «Nazionale», «CCIAA (camera di commercio)»). Può contenere più valori separati da virgola o essere vuoto. |
tipo | stringa o null | Modalità di assegnazione, testo libero (es. «Procedura a sportello», «Esaurimento fondi», «Clickday»). Può essere vuoto. |
descrizione_breve | stringa o null | Sintesi del bando. |
descrizione_del_bando | stringa o null | Descrizione estesa del bando. |
stato_del_bando | stringa o null | Stato: Attivo, In scadenza, In uscita, Chiuso oppure Fondi esauriti. |
fondi_esauriti | booleano o null | true se le risorse del bando risultano esaurite. |
data_di_apertura | data AAAA-MM-GG o null | Data di apertura delle domande. |
scadenza | stringa o null | Scadenza come testo, così come pubblicata dalla fonte. |
scadenza_interna | data AAAA-MM-GG o null | Scadenza normalizzata come data, da usare per ordinare e confrontare. |
richiesta_minima | numero o null | Importo minimo richiedibile, in euro. |
richiesta_massima | numero o null | Importo massimo richiedibile, in euro. |
dotazione | numero o null | Dotazione complessiva del bando, in euro. |
percentuale_fondo_perduto | numero o null | Quota a fondo perduto, in percentuale. |
descrizione_tipo_agevolazione | stringa o null | Descrizione del tipo di agevolazione. |
modalita_di_erogazione | stringa o null | Come viene erogata l'agevolazione. |
regime_di_aiuto | stringa o null | Regime di aiuto, testo libero (es. «De Minimis», «GBER»). Può essere vuoto. |
cumulabilita | booleano o null | true se l'agevolazione è cumulabile con altre. |
a_chi_si_rivolge_descrizione | stringa o null | Descrizione dei beneficiari. |
spese_ammissibili_descrizione | stringa o null | Descrizione delle spese ammissibili. |
esempi_progetti_ammissibili | stringa o null | Esempi di progetti ammissibili. |
iter_presentazione_domanda | stringa o null | Come si presenta la domanda. |
documentazione_necessaria | stringa o null | Documenti richiesti per la domanda. |
link_al_sito_del_bando | stringa o null | Link alla pagina ufficiale del bando. |
sede_non_richiesta | booleano o null | true se il bando non richiede una sede nel territorio. |
ateco_non_applicabile | booleano | true se per il bando i codici ATECO non si applicano. |
max_company_age_months | intero o null | Età massima dell'impresa in mesi. Oggi sempre null. |
min_balance_sheets_required | intero o null | Numero minimo di bilanci depositati richiesto. |
created_at | data e ora UTC senza fuso o null | Inserimento nel catalogo, in UTC senza indicazione del fuso. |
updated_at | data e ora UTC senza fuso o null | Ultimo aggiornamento, in UTC senza indicazione del fuso. |
codici_ateco_2025 | elenco di stringhe | Codici ATECO 2025 ammessi. Elenco vuoto se il bando non ne indica. |
allegati | elenco di allegati | Allegati: tipo_allegato (compilativo, documento, informativo), numero, nome_file, url. |
localita | elenco di stringhe | Territori del bando: regioni oppure «Italia», «Europa», «Mondo». |
province | elenco di { codice, nome } | Province interessate, con codice e nome. |
categorie | elenco di stringhe | Tipologie di agevolazione (es. Fondo Perduto, Voucher, Tasso Agevolato). |
a_chi_si_rivolge | elenco di stringhe | Categorie di beneficiari. |
settori | elenco di stringhe | Settori economici interessati. |
spese_ammissibili | elenco di stringhe | Categorie di spese ammissibili. |
dimensioni_beneficiari | elenco di stringhe | Dimensioni d'impresa ammesse. |
Gli errori hanno sempre lo stesso formato: il codice è in data.code.
| HTTP | Codice | Significato |
|---|---|---|
| 400 | unknown_parameter | Parametro non previsto. La risposta elenca quelli ammessi. |
| 400 | invalid_parameter | Valore non valido, per esempio limit oltre 50. |
| 400 | unknown_regione | Territorio non riconosciuto. La risposta elenca quelli ammessi. |
| 401 | api_key_missing | Chiave assente. |
| 401 | api_key_invalid | Chiave inesistente o disattivata. |
| 401 | api_key_expired | Chiave scaduta. La risposta indica la data di scadenza. |
| 429 | rate_limit | Più di 60 richieste al minuto. Attendi i secondi indicati in Retry-After. |
| 502 | grants_query_failed | Errore temporaneo: riprova tra qualche secondo. |
{
"error": true,
"statusCode": 400,
"statusMessage": "unknown_parameter",
"message": "unknown_parameter",
"data": {
"code": "unknown_parameter",
"unknown": [
"ateco"
],
"allowed": [
"page",
"limit",
"regione"
]
}
}Retry-After.api_key.max_grants. Account completo: tutti i bandi fino alla data concordata.null: gestiscili sempre.link_al_sito_del_bando) prima di presentare una domanda.Questa è la versione v1. Le modifiche incompatibili arriveranno con un nuovo percorso di versione, annunciato in anticipo.
Scrivi a sales@bandoeasy.it indicando l'header X-API-Key-Expires-At e l'orario della richiesta, mai la chiave.