Content Marketing: Dev.to Article (API Portfolio Launch)

---
title: "I Built 13 Free APIs for Developers - Here's What I Learned"
published: false
description: "A solo developer's journey building a free API hub with 100+ endpoints. QR codes, crypto prices, email validation, PDF tools, TTS, and more."
tags: api, webdev, opensource, tutorial
cover_image: 
canonical_url: 
---

# I Built 13 Free APIs for Developers - Here's What I Learned

About eight months ago I was halfway through building a side project and needed to validate some email addresses. I looked at the options: $29/month for one service, $49/month for another, free tiers that cap at 50 requests. For an email check. A DNS lookup and some string parsing.

I thought: *I can build this myself in an afternoon.*

That afternoon turned into a weekend. That weekend turned into a month. And that month turned into 13 fully-functional APIs, 104 endpoints, and an API hub that I now use for all my own projects.

I'm sharing everything for free. Here's what I built and what I learned along the way.

---

## Why I Built This

I kept running into the same problem. Every side project needs a few utility APIs -- generate a QR code here, convert some currency there, check if an email is valid. And every time, I'd end up:

1. Signing up for a service I'd forget about
2. Hitting a paywall after 3 days
3. Getting rate-limited at the worst possible moment
4. Dealing with an API that went offline with no warning

So I started building my own. One API became two. Two became five. And once I had the gateway infrastructure figured out, adding new services became almost trivial.

The whole thing runs on a single server. No Kubernetes. No microservices mesh. Just FastAPI, some Python, and a reverse proxy.

## The 13 APIs

Here's everything that's live right now. Every API is free (100 requests/day with a free key), documented with Swagger, and returns clean JSON.

### 1. QR Forge API (6 endpoints)
Professional QR code generation with 6+ styles -- rounded, dots, blocks, and more. You pass in data, you get back a PNG. I use this constantly for generating links in invoices and receipts.

### 2. Email Validator (3 endpoints)
Full email validation: syntax check, DNS/MX record lookup, disposable domain detection (5,000+ domains in the blocklist), SPF/DMARC checks, typo suggestions. This one alone would cost you $20+/month elsewhere.

### 3. AI Text Tools (12 endpoints)
Summarization, translation, rewriting, sentiment analysis. Powered by real AI models, not regex hacks. Useful for content pipelines and chatbot preprocessing.

### 4. Screenshot API (2 endpoints)
Point it at a URL, get back a screenshot. Uses a headless browser under the hood. I built this because I needed OG image previews for a link aggregator I was working on.

### 5. URL Toolkit (4 endpoints)
URL shortener and metadata extraction. Give it any URL and it pulls the title, description, OG tags, favicon -- everything you need for a link preview card.

### 6. DevTools API (26 endpoints)
This is the Swiss Army knife. Hashing (MD5, SHA-256, etc.), Base64 encoding/decoding, UUID generation, password generation, JSON formatting, text analysis, regex testing. 26 utilities that I used to Google for one-off tools every time.

### 7. Invoice Forge API (4 endpoints)
Generate professional PDF invoices, receipts, and quotes from JSON. I built this for a freelancer friend who was paying $15/month for an invoice generator. Now it's an API call.

### 8. IP Geolocation API (5 endpoints)
IP to location, ISP, ASN, timezone, currency, VPN/proxy detection. Feed it an IP, get back everything you'd want to know about it.

### 9. PDF Toolkit (12 endpoints)
Merge, split, compress, rotate, watermark, extract text, add password protection, add page numbers. I needed PDF merge for a document management tool and ended up building the whole suite.

### 10. Image Generation API (10 endpoints)
Dynamic placeholders, social cards, OG images, avatars, badges, gradients, patterns, banners. Great for prototyping -- instead of hunting for placeholder images, just call the API.

### 11. Currency Exchange API (6 endpoints)
Real-time exchange rates for 31 currencies, conversion, historical data, time series, fluctuation analysis. Data sourced from the European Central Bank.

### 12. Crypto Price API (9 endpoints)
Real-time prices for 10,000+ coins. Market data, trending coins, historical charts. Powered by CoinGecko data. This was the API that got the most interest from friends.

### 13. Text-to-Speech API (5 endpoints)
Neural TTS with 300+ voices in 70+ languages. MP3 output with adjustable speed and pitch. Built this because Google's TTS API pricing made me physically wince.

---

## Show Me the Code

Enough talking. Here's what it actually looks like to use these APIs.

### Validate an Email Address

```bash
curl -H "X-API-Key: YOUR_KEY" \
  "http://147.224.212.116/api/email/validate/test@gmail.com"
```

Response:
```json
{
  "email": "test@gmail.com",
  "valid": true,
  "syntax_valid": true,
  "domain_exists": true,
  "has_mx_records": true,
  "is_disposable": false,
  "is_free_provider": true,
  "typo_suggestion": null,
  "score": 100,
  "has_spf": true,
  "has_dmarc": true,
  "disposable_domains_checked": 5171
}
```

One GET request. No SDK. No OAuth dance. Just a clean JSON response with everything you need to decide whether that email is legit.

### Get Real-Time Crypto Prices

```bash
curl -H "X-API-Key: YOUR_KEY" \
  "http://147.224.212.116/api/crypto/price/bitcoin"
```

Response (trimmed):
```json
{
  "success": true,
  "coin": {
    "id": "bitcoin",
    "name": "Bitcoin",
    "market_data": {
      "current_price_usd": 68033,
      "market_cap_usd": 1360060830141,
      "market_cap_rank": 1,
      "high_24h_usd": 68226,
      "low_24h_usd": 66585,
      "price_change_pct_24h": 1.29,
      "ath_usd": 126080,
      "circulating_supply": 19992515.0,
      "max_supply": 21000000.0
    },
    "genesis_date": "2009-01-03"
  },
  "source": "CoinGecko"
}
```

### Look Up Any IP Address

```bash
curl -H "X-API-Key: YOUR_KEY" \
  "http://147.224.212.116/api/ip-geo/lookup/8.8.8.8"
```

Response:
```json
{
  "ip": "8.8.8.8",
  "continent": "North America",
  "country": "United States",
  "country_code": "US",
  "region_name": "Virginia",
  "city": "Ashburn",
  "latitude": 39.03,
  "longitude": -77.5,
  "timezone": "America/New_York",
  "currency": "USD",
  "isp": "Google LLC",
  "org": "Google Public DNS",
  "is_mobile": false,
  "is_proxy": false,
  "is_hosting": true
}
```

### Using it in JavaScript

Here's a real-world example -- a signup form that validates emails before submission:

```javascript
async function validateEmail(email) {
  const res = await fetch(
    `http://147.224.212.116/api/email/validate/${email}`,
    { headers: { "X-API-Key": "YOUR_KEY" } }
  );
  const data = await res.json();
  
  if (!data.valid) return { ok: false, reason: "Invalid email" };
  if (data.is_disposable) return { ok: false, reason: "Disposable emails not allowed" };
  if (data.typo_suggestion) return { ok: false, reason: `Did you mean ${data.typo_suggestion}?` };
  
  return { ok: true };
}

// In your form handler
const result = await validateEmail("user@gmial.com");
// { ok: false, reason: "Did you mean user@gmail.com?" }
```

### Python: Build a Crypto Dashboard

```python
import requests

API_KEY = "YOUR_KEY"
BASE = "http://147.224.212.116"
HEADERS = {"X-API-Key": API_KEY}

coins = ["bitcoin", "ethereum", "solana"]

for coin in coins:
    r = requests.get(f"{BASE}/api/crypto/price/{coin}", headers=HEADERS)
    data = r.json()["coin"]["market_data"]
    
    price = f"${data['current_price_usd']:,.0f}"
    change = data["price_change_pct_24h"]
    arrow = "+" if change > 0 else ""
    
    print(f"{coin.title():12} {price:>10}  {arrow}{change:.1f}%")

# Output:
# Bitcoin       $68,033  +1.3%
# Ethereum       $2,641  -0.8%
# Solana           $142  +3.2%
```

---

## What I Learned Building This

### 1. Rate Limiting Is Everything

The first version had no rate limiting. Within a week of sharing it with a few people, someone wrote a script that hammered the QR endpoint 40,000 times. Lesson learned. Now every API key gets 100 requests/day on the free tier. It's generous enough to be useful, strict enough to keep the server alive.

### 2. Swagger Docs Pay for Themselves

I almost skipped auto-generated docs because "it's just for me." But the moment I shared the APIs with anyone, the first question was always "where are the docs?" FastAPI's built-in Swagger UI saved me hours of writing documentation.

### 3. One Server Is Fine, Actually

There's a certain cult in tech that says everything needs to be distributed across 14 availability zones. This entire hub -- 13 services, 104 endpoints -- runs on a single server. It handles everything I throw at it. Start simple. Scale when you actually need to.

### 4. The "Simple" APIs Get the Most Use

I expected the AI and TTS endpoints to be the stars. Nope. The most-used endpoints are email validation, QR codes, and UUID generation. Boring utilities that developers need every single day.

### 5. Free Doesn't Mean Low Quality

Every response is properly typed, every error returns a consistent JSON structure, every endpoint has documentation. Free APIs have a reputation for being flaky side projects that disappear after 6 months. I'm trying to break that pattern.

---

## Try It

The whole hub is live right now:

**API Hub:** [https://refine-survival-realty-php.trycloudflare.com](https://refine-survival-realty-php.trycloudflare.com)

**Direct access:** [http://147.224.212.116](http://147.224.212.116)

**Full docs with Swagger UI:** [http://147.224.212.116/docs](http://147.224.212.116/docs)

**Blog (build logs and tutorials):** [http://147.224.212.116/blog](http://147.224.212.116/blog)

Sign up takes 10 seconds, no credit card, and you get an API key immediately. 100 free requests per day across all 13 APIs.

If you build something with it, I'd genuinely love to see it. Drop a comment or reach out.

---

*Built as a solo project. No VC funding. No 47-person team. Just one developer who got tired of paying $30/month to validate an email address.*

Browse API Landing PagesGet Free API Key