1,000 free requests/month — No credit card required

All-in-One Backend for E-commerce

24+ production-ready APIs: geolocation, currency conversion, VAT validation, phone & email verification, and more. Everything your online store needs in one place.

24+
API Endpoints
<50ms
Avg Response
99.9%
Uptime SLA
252
Countries
Why BaaS?

Built for E-commerce Scale

Everything you need to power your online business, from checkout to analytics

🛒

E-commerce Ready

VAT rates, currency conversion, address validation — all the APIs your checkout needs in one unified platform.

Lightning Fast

Redis caching + optimized PostgreSQL. Sub-50ms response times globally.

🔐

IP Whitelists

Restrict API access to specific IPs. Full control over who can use your keys.

👥

Team Collaboration

Organizations, projects, shared API keys. Admin, Member, and Analyst roles.

📊

Real-time Analytics

Monitor usage, track errors, optimize performance with detailed dashboards.

🌍

Global Coverage

252 countries, 3M+ cities, 171 currencies. Complete geographical data.

API Reference

24+ Powerful Endpoints

Everything from IP geolocation to VAT validation — one subscription, all APIs

🌍

IP & Geolocation

7 endpoints
/geo/ip/{ip}Location by IP address
/ip/meCurrent user's location
/ip/reputation/{ip}Spam, VPN, Tor detection
/geo/countries252 countries with details
/geo/regionsStates, provinces, oblasts
/geo/cities3M+ cities with postcodes
/country/{code}Flags, currencies, languages
💱

Currency & Finance

4 endpoints
/currency/rates/{base}171 real-time exchange rates
/currency/convertInstant conversion
/currency/historyHistorical rates by date
/currency/listCurrencies with symbols
🧾

VAT & Tax

2 endpoints
/vat/rates/{country}Standard & reduced rates
/vat/validate/{number}VIES validation + company info

Validation

5 endpoints
/phone/validate/{number}Format, carrier, type
/phone/mask/{country}Input masks for forms
/phone/format/{number}E.164, national, international
/email/validate/{email}Syntax + MX records check
/whois/{domain}Domain registration info
🕐

Date & Time

3 endpoints
/timezone/{location}Timezone + current time
/business-day/{country}/{date}Working day check
/holiday/{country}/{year}Public holidays list
🛠️

Utilities

3 endpoints
/language/detectAuto-detect text language
/useragent/parseBrowser, OS, device info
/healthAPI status check
🎁

Start Building Today — It's Free!

Register now and get 1,000 free API requests every month — forever. No credit card required, no hidden fees, no expiration.

1,000 requests/month free
All 24+ APIs included
No credit card needed
Free forever
Create Free Account

Setup in 2 minutes • Instant API access

Use Cases

Perfect for Your Business

🛍️

Online Stores

Auto-detect customer location, show local prices and VAT, validate shipping addresses.

💳

Payment Platforms

Multi-currency support, real-time conversion, fraud detection via IP reputation.

📦

Logistics

Business day calculation, holiday awareness, timezone-aware delivery estimates.

🔒

Security

VPN/Tor detection, IP reputation scoring, domain verification, fraud prevention.

Pricing

Simple, Transparent Pricing

Start free, scale as you grow. No hidden fees.

Free Forever

£0 /forever

Perfect for testing and hobby projects

  • 1,000 requests/month
  • 5 requests/hour
  • All 24+ APIs included
  • 1 organization
  • 1 project
  • 1 API key
  • IP Whitelist
  • Support
Start Free

Pay-as-you-go

£5 /month

For small projects and startups

  • 5,000 requests/month
  • 20 requests/hour
  • All 24+ APIs included
  • 3 organizations
  • 3 projects each
  • 3 API keys per project
  • Email support
  • +£5 per 5,000 extra
Get Started

Scale

£30 /month

For high-volume applications

  • 500,000 requests/month
  • 700 requests/hour
  • All 24+ APIs included
  • Unlimited organizations
  • Unlimited projects
  • Unlimited API keys
  • IP Whitelist
  • SLA 99.9%
  • Dedicated support
Get Started
Code Examples

Easy to Integrate

Get started in minutes with any programming language

🌍 Get Location by IP

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

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

response = requests.get(
    "https://baas.dapita.net/geo/ip/8.8.8.8",
    headers={"X-API-Key": "your_api_key"}
)

data = response.json()
print(f"Country: {data['country']}")
print(f"Timezone: {data['timezone']}")
const response = await fetch("https://baas.dapita.net/geo/ip/8.8.8.8", {
  headers: { "X-API-Key": "your_api_key" }
});

const data = await response.json();
console.log(`Country: ${data.country}`);
console.log(`Timezone: ${data.timezone}`);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://baas.dapita.net/geo/ip/8.8.8.8");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["X-API-Key: your_api_key"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$data = json_decode($response, true);

echo "Country: " . $data["country"];
req, _ := http.NewRequest("GET", "https://baas.dapita.net/geo/ip/8.8.8.8", nil)
req.Header.Set("X-API-Key", "your_api_key")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)
fmt.Println("Country:", data["country"])

📱 Validate Phone Number

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

# 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"
  }
}
import requests

response = requests.get(
    "https://baas.dapita.net/phone/validate/+34612345678",
    headers={"X-API-Key": "your_api_key"}
)

data = response.json()
if data["valid"]:
    print(f"Type: {data['type']}")
    print(f"Carrier: {data['carrier']}")
    print(f"Formatted: {data['formatted']['international']}")
const response = await fetch(
  "https://baas.dapita.net/phone/validate/+34612345678",
  { headers: { "X-API-Key": "your_api_key" } }
);

const data = await response.json();
if (data.valid) {
  console.log(`Type: ${data.type}`);
  console.log(`Carrier: ${data.carrier}`);
}

🧾 Get VAT Rates

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

# 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"
}
import requests

response = requests.get(
    "https://baas.dapita.net/vat/rates/ES",
    headers={"X-API-Key": "your_api_key"}
)

vat = response.json()
print(f"Standard VAT: {vat['standard_rate']}%")
print(f"Reduced rates: {vat['reduced_rates']}")
const response = await fetch("https://baas.dapita.net/vat/rates/ES", {
  headers: { "X-API-Key": "your_api_key" }
});

const vat = await response.json();
console.log(`Standard VAT: ${vat.standard_rate}%`);
console.log(`Local name: ${vat.local_name}`);

💱 Convert Currency

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

# Response:
{
  "from": "EUR",
  "to": "USD",
  "amount": 100,
  "result": 108.45,
  "rate": 1.0845,
  "date": "2025-12-29"
}
import requests

response = requests.get(
    "https://baas.dapita.net/currency/convert",
    params={"from": "EUR", "to": "USD", "amount": 100},
    headers={"X-API-Key": "your_api_key"}
)

data = response.json()
print(f"€100 = ${data['result']}")
const params = new URLSearchParams({
  from: "EUR", to: "USD", amount: 100
});

const response = await fetch(
  `https://baas.dapita.net/currency/convert?${params}`,
  { headers: { "X-API-Key": "your_api_key" } }
);

const data = await response.json();
console.log(`€100 = $${data.result}`);

📧 Validate Email

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

# 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"
}
import requests

response = requests.get(
    "https://baas.dapita.net/email/validate/test@gmail.com",
    headers={"X-API-Key": "your_api_key"}
)

data = response.json()
if data["valid"]:
    print(f"Email is valid")
    print(f"MX: {data['mx_records'][0]}")
const response = await fetch(
  "https://baas.dapita.net/email/validate/test@gmail.com",
  { headers: { "X-API-Key": "your_api_key" } }
);

const data = await response.json();
console.log(`Valid: ${data.valid}`);
console.log(`Domain: ${data.domain}`);

🔤 Detect Language

curl -X POST "https://baas.dapita.net/language/detect" \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hola, como estas?"}'

# Response:
{
  "language": "Spanish",
  "code": "es",
  "confidence": 0.94
}
import requests

response = requests.post(
    "https://baas.dapita.net/language/detect",
    headers={
        "X-API-Key": "your_api_key",
        "Content-Type": "application/json"
    },
    json={"text": "Hola, como estas?"}
)

data = response.json()
print(f"Language: {data['language']} ({data['code']})")
const response = await fetch("https://baas.dapita.net/language/detect", {
  method: "POST",
  headers: {
    "X-API-Key": "your_api_key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ text: "Hola, como estas?" })
});

const data = await response.json();
console.log(`Language: ${data.language}`);
FAQ

Common Questions

The free plan includes 1,000 requests per month across all 24+ APIs with a rate limit of 5 requests per hour. You get access to geolocation, currency conversion, VAT validation, phone/email verification, and more. No credit card required to start.

IP Whitelist lets you restrict which IP addresses can use your API keys. Only requests from whitelisted IPs will be accepted, adding an extra layer of security against key theft. Available on Growth and Scale plans.

Yes! You can change your plan at any time. Upgrades take effect immediately with prorated billing. Downgrades apply at the next billing cycle.

On free plans, requests are blocked after the limit. On Pay-as-you-go plan, you can purchase extra requests (5,000 for £5). On Growth and Scale plans, you can upgrade or contact support for custom solutions.

Create organizations and invite team members with different roles: Admin (full access), Member (use APIs, view analytics), or Analyst (view-only). Share projects and API keys across your team.

Scale plan includes 99.9% uptime SLA. If we don't meet it, you get service credits. All plans benefit from our redundant infrastructure and global CDN.

Ready to Power Your E-commerce?

Join thousands of developers. Start with 1,000 free requests today.

No credit card required • Setup in 2 minutes • Cancel anytime