U
BaaS

Welcome to BaaS! πŸŽ‰

Let's set up your first organization and project.

CURRENT PLAN

Loading... -

-
Requests This Month
-
Loading...
Requests Today
-
Errors This Month
-
Avg Response
-
Active Projects
-
API Keys
-
Success Rate
-
Plan Limit
-

πŸ“ˆ Requests

πŸ”‘ API Keys

NameKey PrefixStatusRequestsLast UsedActions
Select a project

πŸ›‘οΈ IP Whitelist

Restrict API access to specific IPs. Empty = all IPs allowed.

IP AddressDescriptionAddedActions
Select a project

Enter your API key to test endpoints directly

API Overview

Base URL

https://baas.dapita.net

Authentication

All API requests require an API key sent in the X-API-Key header.

curl -H "X-API-Key: baas_sk_your_key_here" https://baas.dapita.net/geo/ip/8.8.8.8

Request Headers

HeaderRequiredDescription
X-API-KeyYesYour API key
Content-TypeFor POSTapplication/json

Error Responses

CodeDescription
400Bad Request
401Unauthorized
403Forbidden
429Rate limit exceeded
500Internal Server Error

Rate Limits

PlanRequests/MonthRequests/Hour
Free1,0005
Pay-as-you-go5,00020
Growth50,000100
Scale500,000700

Special Rate Limits

EndpointLimitReason
/vat/validate1 req / 10 secExternal VIES API
/ip/reputation1 req / 60 secExternal AbuseIPDB
/email/validate1 req / 5 secSMTP verification
GET/compliance/{jurisdiction}

Data-retention & GDPR-style compliance rules for a jurisdiction. Per data category: action (delete / anonymize / restrict / retain), retention period (days), legal reference, source URL and a ready-to-use policy clause. Also returns jurisdiction-level request (days to fulfil a data-subject request + extension) and data_residency (none / local_copy_required / transfer_restricted). Falls back to EU / DEFAULT when a country has no specific rule, so the response is never empty.

Parameters

NameTypeRequiredDescription
jurisdictionstringYesISO 3166-1 alpha-2 (ES, DE, US…) or EU / DEFAULT
categorystringNocontact, credentials, tokens, audit, financial or consent. Omit to return all categories.

Example Request

curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/compliance/ES?category=financial"

Response

{"jurisdiction":"ES","resolved_from":"ES","version":1,"request":{"max_days_to_fulfill":30,"extension_days":60,"legal_reference":"GDPR Art. 12(3)","resolved_from":"EU","reviewed":false},"data_residency":{"mode":"none","required":false,"resolved_from":"EU","reviewed":false},"categories":{"financial":{"action":"retain","retention_days":2190,"legal_reference":"CΓ³digo de Comercio art. 30","source_url":"https://www.boe.es/buscar/act.php?id=BOE-A-1885-6627","clause":{"en":"Accounting books and records are retained for 6 years.","es":"..."},"resolved_from":"ES","version":1,"reviewed":false}}}

Field guide

FieldMeaning
actiondelete erase Β· anonymize irreversibly de-identify (row kept) Β· restrict keep but block processing (legal hold) Β· retain keep and use
retention_days0 delete now Β· N keep N days then delete Β· null keep indefinitely
requestDays to fulfil a data-subject request (max_days_to_fulfill) plus permitted extension_days
data_residencynone Β· local_copy_required (primary copy stays in-country) Β· transfer_restricted (cross-border needs assessment/approval); required is a bool shortcut
resolved_fromWhich tier supplied the rule: the country, EU, or DEFAULT (shown per category and on request / data_residency)
versionPolicy version β€” store it with any action you take to prove which rule applied; the top-level value is the max, use it for cache invalidation
reviewedfalse until confirmed by legal counsel β€” treat unreviewed rules as provisional

How to use correctly

  1. Fetch GET /compliance/{jurisdiction} once per user's jurisdiction; cache by version with a short TTL and refetch when it changes.
  2. Per data category, read action + retention_days to decide whether and when to delete, anonymize, restrict or retain.
  3. For data-subject (deletion / access) requests, take the deadline from request.max_days_to_fulfill (plus extension_days).
  4. Choose the storage region according to data_residency before storing personal data.
  5. Generate policy text from clause and keep source_url as proof of the legal basis.
  6. Record the (jurisdiction, category, version) you acted on, so the exact rule can be reproduced later.

Try It

GET/geo/ip/{ip}

Get geolocation data for an IP address.

Parameters

NameTypeRequiredDescription
ipstringYesIPv4 or IPv6 address

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/geo/ip/8.8.8.8

Response

{"ip":"8.8.8.8","country_code":"US","country":"United States","city":"","timezone":"America/Chicago","latitude":37.751,"longitude":-97.822}

Try It

GET/ip/me

Get geolocation data for your current IP address.

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/ip/me

Response

{"ip":"57.131.32.227","country_code":"FR","country":"France","city":"","timezone":"Europe/Paris","latitude":48.8582,"longitude":2.3387}

Try It

GET/ip/reputation/{ip}

Get IP reputation data including abuse score, reports, and threat indicators. Rate limited: 1 request per 60 seconds.

Parameters

NameTypeRequiredDescription
ipstringYesIPv4 or IPv6 address

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/ip/reputation/8.8.8.8

Response

{"ip":"8.8.8.8","is_public":true,"abuse_score":0,"country_code":"US","isp":"Google LLC","domain":"google.com","total_reports":140,"last_reported_at":"2025-12-29T02:57:13Z","is_whitelisted":true,"is_tor":false,"source":"abuseipdb"}

Try It

GET/country/{code?}

Get country information. Without code returns all countries. With code returns specific country details.

Parameters

NameTypeRequiredDescription
codestringNoISO 2-letter country code. Empty = all countries.
formatqueryNoUse "compact" for smaller payload (list mode only)

Example Requests

# All countries
curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/country/list

# Compact format
curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/country/list?format=compact"

# Single country
curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/country/ES

Response (single)

{"code":"ES","name":"Spain","native_name":"EspaΓ±a","flag":"πŸ‡ͺπŸ‡Έ","dial_code":"+34","currency":"EUR","languages":["es"],"capital":"Madrid","region":"Europe"}

Try It

GET/geo/countries

Get countries with detailed geographic data from GeoNames. Supports filtering.

Query Parameters

NameTypeRequiredDescription
isostringNoFilter by ISO 2-letter code
iso3stringNoFilter by ISO 3-letter code
namestringNoSearch by name
langstringNoLanguage code for localized names
continentstringNoFilter: EU, AS, NA, SA, AF, OC, AN
currencystringNoFilter by currency code
phonestringNoFilter by phone code
tldstringNoFilter by TLD domain

Example Requests

# All countries
curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/geo/countries

# European countries
curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/geo/countries?continent=EU"

# Single country by ISO
curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/geo/countries?iso=ES"

Response

{"count":1,"countries":[{"iso":"ES","iso3":"ESP","iso_numeric":"724","name":"Spain","capital":"Madrid","continent":"EU","continent_name":"Europe","population":46723749,"currency_code":"EUR","currency_name":"Euro","phone":"34","tld":".es"}]}

Try It

GET/geo/regions

Get regions/states/provinces for a country.

Query Parameters

NameTypeRequiredDescription
countrystringYesISO 2-letter country code
codestringNoFilter by region code
namestringNoSearch by name

Example Request

curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/geo/regions?country=ES"

Response

{"count":19,"regions":[{"name":"Andalusia","asciiname":"Andalusia","country_code":"ES","country_iso3":"ESP","country_name":"Spain","admin1_code":"51","latitude":37.5,"longitude":-4.58333,"population":8631862,"timezone":"Europe/Madrid"},...]}

Try It

GET/geo/cities

Get cities for a country with pagination. Includes postal codes.

Query Parameters

NameTypeRequiredDescription
countrystringYesISO 2-letter country code
iso3stringNoISO 3-letter country code
admin1stringNoFilter by region code
namestringNoSearch by city name
limitintNoResults per page (default: 100, max: 1000)
offsetintNoSkip N results
shortboolNoReturn minimal fields (true/false)

Example Requests

# Basic request with limit
curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/geo/cities?country=ES&limit=10"

# Search by city name
curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/geo/cities?country=ES&name=Madrid"

# Filter by region code
curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/geo/cities?country=ES&admin1=29"

# Short format (minimal fields)
curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/geo/cities?country=ES&short=true&limit=100"

Response

{"count":2,"total":30871,"limit":2,"offset":0,"cities":[{"name":"Madrid","asciiname":"Madrid","admin1_code":"29","admin1_name":"Comunidad de Madrid","latitude":40.4165,"longitude":-3.70256,"population":3255944,"timezone":"Europe/Madrid","continent_name":"Europe","phone_code":"34","currency_code":"EUR","currency_name":"Euro","tld":".es","postal_codes":["28001","28002",...]},...]}

Try It

GET/currency/rates/{base?}

Get current exchange rates. Base defaults to EUR.

Parameters

NameTypeRequiredDescription
basestringNoBase currency (default: EUR)

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/currency/rates/EUR

Response

{"base":"EUR","date":"2025-12-29","rates":{"USD":1.04,"GBP":0.83,"JPY":164.5,...}}

Try It

GET/currency/convert

Convert amount from one currency to another.

Query Parameters

NameTypeRequiredDescription
fromstringYesSource currency code
tostringYesTarget currency code
amountnumberYesAmount to convert

Example Request

curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/currency/convert?from=USD&to=EUR&amount=100"

Response

{"from":"USD","to":"EUR","amount":100,"result":96.15,"rate":0.9615}

Try It

GET/currency/history

Get historical exchange rates for a specific date.

Query Parameters

NameTypeRequiredDescription
basestringNoBase currency (default: EUR)
datestringYesDate in YYYY-MM-DD format

Example Request

curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/currency/history?base=EUR&date=2025-12-01"

Response

{"base":"EUR","date":"2025-12-01","rates":{"USD":1.05,"GBP":0.84,...}}

Try It

GET/currency/list/{code?}

Get currency info with symbol and flag. Without code returns all currencies.

Parameters

NameTypeRequiredDescription
codestringNoCurrency code. Empty = all currencies.

Example Requests

# All currencies
curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/currency/list/

# Single currency
curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/currency/list/EUR

Response (single)

{"code":"EUR","name":"Euro","symbol":"€","flag":"πŸ‡ͺπŸ‡Ί"}

Try It

GET/vat/rates/{country}

Get VAT rates for a country including standard, reduced, and super-reduced rates.

Parameters

NameTypeRequiredDescription
countrystringYesISO 2-letter country code

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/vat/rates/ES

Response

{"country_code":"ES","country_name":"Spain","local_name":"IVA","standard_rate":21,"reduced_rates":[10],"super_reduced_rate":4,"parking_rate":null,"updated_at":"2025-12-03"}

Try It

GET/vat/validate/{vat_number}

Validate EU VAT number via VIES service. Rate limited: 1 request per 10 seconds.

Parameters

NameTypeRequiredDescription
vat_numberstringYesVAT number with country prefix (e.g. ESB12345678)

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/vat/validate/ESB12345678

Response

{"valid":true,"country_code":"ES","vat_number":"B12345678","company_name":"Example Company SL","company_address":"Calle Example 123, Madrid"}

Try It

GET/phone/validate/{number}

Validate phone number and get carrier information.

Parameters

NameTypeRequiredDescription
numberstringYesPhone number with country code (e.g. +34612345678)

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/phone/validate/+34612345678

Response

{"valid":true,"number":"+34612345678","country_code":"ES","national_number":"612345678","type":"mobile","carrier":"Syma","formatted":{"international":"+34 612 34 56 78","national":"612 34 56 78","e164":"+34612345678"}}

Try It

GET/phone/format/{number}

Format phone number in various formats (international, national, E.164).

Parameters

NameTypeRequiredDescription
numberstringYesPhone number with country code

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/phone/format/+34612345678

Response

{"number":"+34612345678","formatted":{"international":"+34 612 34 56 78","national":"612 34 56 78","e164":"+34612345678"}}

Try It

GET/phone/mask/{country}

Get phone input mask for a country.

Parameters

NameTypeRequiredDescription
countrystringYesISO 2-letter country code

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/phone/mask/ES

Response

{"country_code":"ES","country_name":"Spain","dial_code":"+34","mask":"### ## ## ##","example":"+34 810 12 34 56"}

Try It

GET/email/validate/{email}

Validate email address with syntax and MX record check. Rate limited: 1 request per 5 seconds.

Parameters

NameTypeRequiredDescription
emailstringYesEmail address to validate

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/email/validate/test@gmail.com

Response

{"email":"test@gmail.com","valid":true,"syntax_valid":true,"mx_valid":true,"mx_records":["gmail-smtp-in.l.google.com","alt1.gmail-smtp-in.l.google.com",...],"domain":"gmail.com"}

Try It

GET/timezone/{location}

Get timezone information and current time for a location.

Parameters

NameTypeRequiredDescription
locationstringYesIANA timezone identifier (e.g. Europe/Madrid)

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/timezone/Europe/Madrid

Response

{"timezone":"Europe/Madrid","offset":"+01:00","offset_seconds":3600,"current_time":"2025-12-29T12:53:42+01:00","is_dst":false}

Try It

GET/timezones

Get all world timezones with country bindings. Filter by country code.

Parameters

NameTypeRequiredDescription
countryqueryNoISO 2-letter country code to filter (e.g. ES, RU, US)

Example Request

curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/timezones?country=ES"

Response

{"count":6,"timezones":[{"timezone":"Europe/Madrid","utc_offset":"+01:00","offset_seconds":3600,"countries":[{"code":"ES","name":"Spain"}]},...]}

Try It

GET/business-day/{country}/{date}

Check if a date is a business day (not weekend or holiday).

Parameters

NameTypeRequiredDescription
countrystringYesISO 2-letter country code
datestringYesDate in YYYY-MM-DD format

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/business-day/ES/2025-12-25

Response

{"date":"2025-12-25","country_code":"ES","is_business_day":false,"is_weekend":false,"is_holiday":true,"holiday_name":"Christmas Day","day_of_week":"Thursday"}

Try It

GET/holiday/{country}/{year}

Get public holidays for a country and year.

Parameters

NameTypeRequiredDescription
countrystringYesISO 2-letter country code
yearintYesYear (e.g. 2025)
typequeryNoFilter by holiday type (e.g. Public)

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/holiday/ES/2025

Response

{"country_code":"ES","year":2025,"holidays":[{"date":"2025-01-01","name":"New Year's Day"},{"date":"2025-01-06","name":"Epiphany"},{"date":"2025-12-25","name":"Christmas Day"},...]}

Try It

GET/languages

Get all world languages with country mappings.

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/languages

Response

{"count":279,"languages":[{"code":"aa","name":"Afar","native_name":"Afaraf","family":"Afro-Asiatic","is_regional":false,"countries":[{"country_code":"DJ","is_official":true},...]},...]}

Try It

GET/languages/{code}

Get a single language by ISO 639 code.

Parameters

NameTypeRequiredDescription
codestringYesISO 639-1 (2-char) or ISO 639-3 (3-char) language code

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/languages/es

Response

{"code":"es","name":"Spanish","native_name":"EspaΓ±ol","family":"Indo-European","is_regional":false,"countries":[{"country_code":"ES","is_official":true},{"country_code":"MX","is_official":true},...]}

Try It

GET/languages/country/{code}

Get all languages spoken in a country, including regional and minority languages.

Parameters

NameTypeRequiredDescription
codestringYesISO 3166-1 alpha-2 country code

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/languages/country/ES

Response

{"count":8,"languages":[{"code":"es","name":"Spanish","native_name":"EspaΓ±ol","family":"Indo-European","is_regional":false,"countries":[{"country_code":"ES","is_official":true}]},{"code":"ca","name":"Catalan","native_name":"CatalΓ ",...},...]}

Try It

POST/language/detect

Detect the language of a text.

Request Body

NameTypeRequiredDescription
textstringYesText to analyze

Example Request

curl -X POST -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"text":"Hola, ΒΏcΓ³mo estΓ‘s?"}' \
  https://baas.dapita.net/language/detect

Response

{"language":"Spanish","code":"es","confidence":0.66}

Try It

POST/useragent/parse

Parse User-Agent string to get browser, OS, and device information.

Request Body

NameTypeRequiredDescription
user_agentstringYesUser-Agent string to parse

Example Request

curl -X POST -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}' \
  https://baas.dapita.net/useragent/parse

Response

{"user_agent":"Mozilla/5.0...","browser":"Chrome","browser_version":"120.0","os":"Windows 10/11","os_version":"10.0","device":"PC","is_mobile":false,"is_tablet":false,"is_desktop":true,"is_bot":false}

Try It

GET/whois/{domain}

Get WHOIS information for a domain.

Parameters

NameTypeRequiredDescription
domainstringYesDomain name (e.g. google.com)

Example Request

curl -H "X-API-Key: YOUR_KEY" https://baas.dapita.net/whois/google.com

Response

{"domain":"google.com","registrar":"MarkMonitor Inc.","created_date":"1997-09-15T04:00:00Z","expiry_date":"2028-09-14T04:00:00Z","updated_date":"2019-09-09T15:39:04Z","name_servers":["ns1.google.com","ns2.google.com","ns3.google.com","ns4.google.com"],"domain_available":false}

Try It

GET/dns/lookup/{domain}?type={type}

DNS lookup for domain. Returns A, AAAA, MX, TXT, CNAME, or NS records. Useful for email validation and domain verification.

Parameters

NameTypeRequiredDescription
domainstringYesDomain name (e.g. google.com)
typequeryNoRecord type: A, AAAA, MX, TXT, CNAME, NS (default: A)

Example Request

curl -H "X-API-Key: YOUR_KEY" "https://baas.dapita.net/dns/lookup/google.com?type=MX"

Response

{"domain":"google.com","query_type":"MX","records":[{"host":"smtp.google.com","priority":10}],"count":1}

Try It

This Month
0
of 0 limit
Errors
0
Success Rate
-
Avg Response
-

πŸ“ˆ Requests Over Time

🎯 Requests by Endpoint

⚠️ Errors by Endpoint

EndpointRequestsErrorsError RateLast Error
No errors

πŸ“‹ Detailed Stats

DateEndpointRequestsErrorsAvg Response
Select a project
CURRENT PLAN

Free ForeverFree

1,000 requests/month β€’ 5 requests/hour

Free Forever

Β£0/forever
  • βœ“ 1,000 requests/month
  • βœ“ 5 requests/hour
  • βœ“ All 30+ APIs
  • βœ“ 1 organization
  • βœ“ 1 project
  • βœ“ 1 API key
  • βœ— IP Whitelist
  • βœ— Support

Pay-as-you-go

Β£5/month
  • βœ“ 5,000 requests/month
  • βœ“ 20 requests/hour
  • βœ“ All 30+ APIs
  • βœ“ 3 organizations
  • βœ“ 3 projects each
  • βœ“ 3 API keys per project
  • βœ“ Email support
  • +Β£5 per 5,000 extra

Scale

Β£30/month
  • βœ“ 500,000 requests/month
  • βœ“ 700 requests/hour
  • βœ“ All 30+ APIs
  • βœ“ Unlimited organizations
  • βœ“ Unlimited projects
  • βœ“ Unlimited API keys
  • βœ“ IP Whitelist
  • βœ“ SLA 99.9%
  • βœ“ Dedicated support

⚑ API Rate Limits

β–Ό

Enterprise

Custom limits, dedicated infrastructure, SLA guarantees.

Contact Sales

Top Up Extra Requests

Need more requests? Purchase extra requests that never expire.

Billing History

DateDescriptionAmountStatusInvoice
No billing history yet

πŸ”’ Secure payment via Stripe. Cancel anytime. All prices in GBP.