European Central Bank — Bank Lending Survey Statistics (BLS)
Official time series from the European Central Bank Data Portal, published as the Bank Lending Survey (BLS) dataflow over the SDMX 2.1 REST API. A single endpoint serves data in XML (SDMX-ML), CSV, or JSON, allowing users to extract specific series using a key path together with startPeriod, endPeriod, and lastNObservations filters. The same series can also be browsed and charted directly on the ECB Data Portal. The dataset covers euro area bank lending conditions and credit standards, based on the ECB's quarterly survey of banks.Bank Lending Survey Statistics (BLS) — official time series from the European Central Bank Data Portal, published as the BLS dataflow over SDMX 2.1 REST. One endpoint serves XML (SDMX-ML), CSV (?format=csvdata) and JSON (?format=jsondata); extract exactly the series you need with a key path and startPeriod / endPeriod / lastNObservations filters. Browse and chart the same series on the ECB Data Portal.
Trust score
How is this computed?Weighted across five axes. Tap a ring for what it measures.
Data schema (26 fields)
Click a field to see example values.
| Field | Type | Description |
|---|---|---|
| FREQFrequency | dimension | Frequency of the observation, e.g. quarterly.1 codes (e.g. Quarterly) |
| REF_AREAReference area | dimension | Country or reference area covered by the observation.22 codes (e.g. Austria, Belgium, Bulgaria) |
| BANK_SELECTION | dimension | Subset of banks covered, e.g. all banks.1 codes (e.g. All banks) |
| BLS_ITEMBank lending survey item | dimension | Specific bank lending survey item or question being measured.140 codes (e.g. Impact of bank competition, Bank lending rate, Impact of cost of funds and balance sheet constraints) |
| BLS_COUNTBLS contract counterpart | dimension | Counterpart type in the lending relationship, e.g. enterprise or household.11 codes (e.g. Enterprise, Household, Not applicable) |
| BLS_COUNT_DETAILBLS counterpart motivation | dimension | Finer breakdown of the counterpart, e.g. large or small enterprises.30 codes (e.g. Large enterprises, Small and medium-sized enterprises, Not applicable) |
| TIME_HORIZON | dimension | Backward- or forward-looking time span referenced by the survey response.14 codes (e.g. Backward looking three months, Forward looking three months, Backward looking six months) |
| EFFECT_DOMAIN | dimension | Area affected, such as credit standards or loan margins.31 codes (e.g. Credit standards, Margins on average loans, Margins on riskier loans) |
| MARKET_ROLE | dimension | Whether the item relates to loan supply or loan demand.3 codes (e.g. Loan supply, Loan demand, Not applicable) |
| BLS_AGG_METHODBLS aggregation method | dimension | Method used to aggregate bank responses into the indicator.19 codes (e.g. Diffusion index, Net percentage (frequency of tightened minus that of eased or reverse), Diffusion index weighted with the share of each bank in the total loan outstanding amount of the banks in the BLS sample) |
| TIME_PERIODTime period or range | time | Period to which the observation refers.Time dimension — filter with startPeriod / endPeriod query params. |
| OBS_VALUEObservation value | number | Numeric value of the observation.The observed numeric value for each cell. |
| TIME_FORMATTime format code | attribute | Code indicating the format of the time period.Code indicating the format of the time period. |
| COLLECTIONCollection indicator | attribute | Indicator of how the data were collected or aggregated over time.Indicator of how the data were collected or aggregated over time. |
| COMPILING_ORGCompiling organisation | attribute | Organisation that compiled the data.Organisation that compiled the data. |
| DISS_ORGData dissemination organisation | attribute | Organisation responsible for disseminating the data.Organisation responsible for disseminating the data. |
| DECIMALS | attribute | Number of decimal places in the observation value.Number of decimal places in the observation value. |
| SOURCE_AGENCY | attribute | Agency that originally supplied the data.Agency that originally supplied the data. |
| TITLE | attribute | Title of the data series.Title of the data series. |
| TITLE_COMPLTitle complement | attribute | Additional descriptive text supplementing the series title.Additional descriptive text supplementing the series title. |
| UNIT | attribute | Unit of measurement for the observation value.Unit of measurement for the observation value. |
| UNIT_MULTUnit multiplier | attribute | Power-of-ten multiplier applied to the observation value.Power-of-ten multiplier applied to the observation value. |
| OBS_STATUSObservation status | attribute | Status flag indicating the nature of the observation, e.g. normal or estimated.Status flag indicating the nature of the observation, e.g. normal or estimated. |
| OBS_CONFObservation confidentiality | attribute | Confidentiality status of the observation.Confidentiality status of the observation. |
| OBS_PRE_BREAKPre-break observation value | attribute | Value of the observation prior to a methodological break.Value of the observation prior to a methodological break. |
| OBS_COMObservation comment | attribute | Free-text comment on the observation.Free-text comment on the observation. |
Schema captured from sdmx 2 days ago.
Query the data
Pick columns and a sort, then fetch a live preview straight from the source. Choose an API-filterable column (marked ▾) under “Where” to pick from its list of values.
Sample data (5 records)
Record 1FREQ: Q · OBS_COM: —
{
"FREQ": "Q",
"OBS_COM": null,
"BLS_ITEM": "BC",
"OBS_CONF": null,
"REF_AREA": "AT",
"BLS_COUNT": "E",
"OBS_VALUE": -6.25,
"OBS_STATUS": "A",
"MARKET_ROLE": "S",
"TIME_PERIOD": "2026-Q3",
"TIME_HORIZON": "B3",
"EFFECT_DOMAIN": "ST",
"OBS_PRE_BREAK": null,
"BANK_SELECTION": "ALL",
"BLS_AGG_METHOD": "DINX",
"BLS_COUNT_DETAIL": "LE"
}Record 2FREQ: Q · OBS_COM: —
{
"FREQ": "Q",
"OBS_COM": null,
"BLS_ITEM": "BC",
"OBS_CONF": null,
"REF_AREA": "AT",
"BLS_COUNT": "E",
"OBS_VALUE": -12.5,
"OBS_STATUS": "A",
"MARKET_ROLE": "S",
"TIME_PERIOD": "2026-Q3",
"TIME_HORIZON": "B3",
"EFFECT_DOMAIN": "ST",
"OBS_PRE_BREAK": null,
"BANK_SELECTION": "ALL",
"BLS_AGG_METHOD": "FNET",
"BLS_COUNT_DETAIL": "LE"
}Record 3FREQ: Q · OBS_COM: —
{
"FREQ": "Q",
"OBS_COM": null,
"BLS_ITEM": "BC",
"OBS_CONF": null,
"REF_AREA": "AT",
"BLS_COUNT": "E",
"OBS_VALUE": -7.142857142857142,
"OBS_STATUS": "A",
"MARKET_ROLE": "S",
"TIME_PERIOD": "2026-Q3",
"TIME_HORIZON": "B3",
"EFFECT_DOMAIN": "ST",
"OBS_PRE_BREAK": null,
"BANK_SELECTION": "ALL",
"BLS_AGG_METHOD": "DINX",
"BLS_COUNT_DETAIL": "SME"
}Record 4FREQ: Q · OBS_COM: —
{
"FREQ": "Q",
"OBS_COM": null,
"BLS_ITEM": "BC",
"OBS_CONF": null,
"REF_AREA": "AT",
"BLS_COUNT": "E",
"OBS_VALUE": -14.285714285714285,
"OBS_STATUS": "A",
"MARKET_ROLE": "S",
"TIME_PERIOD": "2026-Q3",
"TIME_HORIZON": "B3",
"EFFECT_DOMAIN": "ST",
"OBS_PRE_BREAK": null,
"BANK_SELECTION": "ALL",
"BLS_AGG_METHOD": "FNET",
"BLS_COUNT_DETAIL": "SME"
}Record 5FREQ: Q · OBS_COM: —
{
"FREQ": "Q",
"OBS_COM": null,
"BLS_ITEM": "BC",
"OBS_CONF": null,
"REF_AREA": "AT",
"BLS_COUNT": "E",
"OBS_VALUE": -6.25,
"OBS_STATUS": "A",
"MARKET_ROLE": "S",
"TIME_PERIOD": "2026-Q3",
"TIME_HORIZON": "B3",
"EFFECT_DOMAIN": "MA",
"OBS_PRE_BREAK": null,
"BANK_SELECTION": "ALL",
"BLS_AGG_METHOD": "DINX",
"BLS_COUNT_DETAIL": "Z"
}Live sample captured at profiling time — values may have changed upstream.
Verification Status
Using the API
Query examples
curl -s 'https://data-api.ecb.europa.eu/service/dataflow/ECB' -H 'Accept: application/vnd.sdmx.structure+xml;version=2.1'All dataflows (datasets) published by this agency, as SDMX-ML.
Machine-readable & source
Embed this badge in a README or wiki — it always shows the latest verification state and quality tier.