API documentation
Introduction
The Abasil API is built using REST conventions and designed to have a predictable URL structure. It uses standard HTTP and HTTPS (recommended) methods (GET) and error response codes. All Abasil API calls are made under api.abasil.es and all responses return standard JSON.
API versions
Abasil API is currently in version 1.0.0. All URLs have v1/ prepended right after the domain:
https://api.abasil.es/v1/{api-key}/{endpoint-path}
API Key
Only Abasil customers can have access to an API key. They are provided by your Abasil Account Executive.
In case you lost your API key you should contact your assigned Abasil Account Executive.
The API key must be included on all the API calls in the right position of the URL endpoint (https protocol recommended), which will always be right after the API version:
https://api.abasil.es/v1/{api-key}/{path}
Rate limits
There are two types of rate limitations implemented:
Per second: set by default to 5 requests per second. Can change on an Account basis.
Monthly: set per Account based on the partnership agreed on.
Pagination
Given the large datasets we manage, all endpoints besides the /status are paginated.
The default page size is set to 00,000 records.
Page is passed as a parameter, ex: https://api.abasil.es/v1/{apiKey}/loan-offer/get-many?page=1
Page counting starts at 0. Hence, page no. 0 already has content.
All the paginated responses include:
Key | Data type | Explanation |
---|---|---|
page | number | The current page being served. |
pages | number | The total amount of pages available. 0 being included. |
pageSize | number |
The amount of entries per page.
If a reponse only provides 100 entries, pageSize would still be 25,000. |
total | number | The total amount of entries for the current query. |
data | array of objects | An array containing all the data points requested. |
Understanding the loanOffer model
The data that the Abasil API provides is data about the different types of offers that credit companies show on their websites and website comparators. Each one of these offers is modelled following the loanOffer model:
After understanding the loanOffer model, make sure the check the Data format section.
The date is always set to the Monday of that date's week.
What makes a loanOffer unique? Two options:
a) Its id.
b) The combination of 'offerDate', 'company', 'country', 'projectType', 'source', 'amount' and 'maturity'.
Field | Type | Allow null | Example |
---|---|---|---|
id | Integer | false | 17526512 |
offerDate | Dateonly | false | "2023-04-20" |
company | String | false | "Younited Credit" |
country | String | false | "Italy" |
currency | String | false | "EUR" |
projectType | String | false | "Debts" |
source | String | false | "bank website" |
amount | Integer | false | 15000 |
maturity | Integer | false | 48 |
instalment | Float | true | 373.2 |
apr | Float | true | 0.1083 |
nir | Float | true | 0.0899 |
openCommission | Float | true | 375 |
insuranceInstalment | Float | true | null |
insuranceApr | Float | true | null |
insuranceNir | Float | true | null |
Data format
Certain data types have a specific format as per the API's design. Here are the details:
Data types | Format | Explanation/examples |
---|---|---|
Dateonly |
YYYY-MM-DD
ISO 8601 extended |
This will always correspond with each week's Monday date.
Only 52 different entry points per year. Examples: '2023-04-24', '2022-12-12'. |
Company | String |
Despite having different sources, all names are unified.
Ex: Younited Credit will always be 'Younited Credit', not 'YC', 'Younited', etc. |
Country | String | ENUM: 'Portugal', 'Spain', 'France', 'Germany' or 'Italy'. |
Currency | AAA | 'EUR'. |
Percentatges | 0.0000 | Four decimals. 100% → 10'54% → 0.1054. |
Source | String |
Whether the data provided is from a bank or a credit company.
The value will always be 'bank website'. Any other source, the source's Url will be listed as value, ex. 'facile.it'. |
Endpoints
Get status:
URL: /v1/{apiKey}/status
Method: GET
Response code: 200
Description: Checks the status of the API.
Parameters: N/A
Response:
Abasil API v1 is up and running
Get loanOffers:
URL: /v1/{apiKey}/loan-offer/get-many
Method: GET
Response code: 200
Description: Returns and array containing all the loanOffers based on the provided parameters.
Parameters:
Parameter | Format | Default | Comments |
---|---|---|---|
startDate | YYYY-MM-DD | null | Inclusive. |
endDate | YYYY-MM-DD | today | Inclusive. |
country | String | undefined | If undefined, all countries are provided. |
company | String | undefined | If undefined, all companies are provided. |
source | String | undefined | If undefined, all sources are provided. |
projectType | String | undefined | If undefined, all projectTypes are provided. |
amount | String | undefined | If undefined, all amounts are provided. |
maturity | String | undefined | If undefined, all maturities are provided. |
Examples:
To get all the data from the current week set the "startDate" to this week Monday's date:
https://api.abasil.es/v1/{apiKey}/loan-offer/get-many?startDate=YYYY-MM-DD
To get loanOffers in Portugal since the 9th of April of 2023 and excluding comparators:
/v1/{apiKey}/loan-offer/get-many?startDate=2023-04-09&country=Portugal&source=bank website
Response: (Mock data)
{ "page": 0, "pages": 1, "pageSize": 25000, "total": 399, "data": [ { "id": 179702, "offerDate": "2023-04-10", "company": "Cofidis", "country": "Portugal", "currency": "EUR", "projectType": "liquidity", "source": "bank website", "amount": 15000, "maturity": 24, "instalment": 250, "apr": 0.08, "nir": 0.05, "openCommission": 0, "insuranceInstalment": null, "insuranceApr": null, "insuranceNir": null }, { "id": 179844, "offerDate": "2023-04-10", "company": "Millenium BCP", "country": "Portugal", "currency": "EUR", "projectType": "liquidity", "source": "bank website", "amount": 15000, "maturity": 36, "instalment": 250, "apr": 0.08, "nir": 0.05, "openCommission": 0, "insuranceInstalment": null, "insuranceApr": null, "insuranceNir": null }, ... ] }
Common issues
400 - Bad request
Make sure you are pointing to the right endpoint with the proper parameters.
401 - Unauthorized:
Your API key is not working. Make sure it is the right one. Otherwise, contact support.
403 - Forbidden: User is blocked. Contact support.
You have an account but has been blocked. As stated in the error, contact support.
For any type other type or error, please contact tech support.
Support
For tech support please contact: jaume.fabrega@ab***l.es
For Account support or new sales please contact: marti.fabrega@ab***l.es