Toolenza · API v1
Toolenza API · v1

Every Toolenza tool, one bearer token.

Currency conversion, geocoding, IP lookup, JSON formatting, QR codes, unit conversions — production-ready endpoints with predictable latency, transparent pricing, and a 1,000-call free tier.

Pricing

Free

$0/month
1,000 calls/mo · 30/min

Starter

$19/month
50,000 calls/mo · 120/min
Most popular

Pro

$99/month
500,000 calls/mo · 600/min

Scale

$499/month
5,000,000 calls/mo · 6000/min

Authentication

Send your key as a bearer token on every request.

curl https://toolenza.codenzia.com/api/v1/currency/convert?from=USD&to=EUR&amount=100 \
  -H "Authorization: Bearer tlz_live_••••••••••••••••••••••••••••••••••••••••"

Quotas reset 30 days after first use. Hitting the cap returns 429 quota_exceeded; spike-rate limits return 429 too_many_requests. Both responses ship a JSON body with details and an upgrade link.

Endpoints

GET /api/v1/currency/convert Live FX conversion
Params
from=USD&to=EUR&amount=100
Response
{"from":"USD","to":"EUR","amount":100,"rate":0.94,"converted":94.00,"as_of":"…"}
GET /api/v1/units/convert Length / weight / volume / speed / area
Params
from=feet&to=meters&amount=100
Response
{"from":"feet","to":"meters","amount":100,"converted":30.48}
GET /api/v1/geo/geocode Address → lat/lng (OpenStreetMap)
Params
q=Eiffel%20Tower&limit=3
Response
{"results":[{"lat":48.858,"lng":2.295,"display":"Tour Eiffel, Paris…"},…]}
GET /api/v1/geo/reverse Coords → address
Params
lat=48.858&lng=2.295
Response
{"display":"…","address":{…}}
GET /api/v1/geo/ip IP → country / city / ISP
Params
ip=8.8.8.8
Response
{"country":"United States","city":"Mountain View","isp":"Google LLC",…}
GET /api/v1/geo/elevation Altitude (m + ft)
Params
lat=27.988&lng=86.925
Response
{"metres":8771,"feet":28776.25}
GET /api/v1/geo/timezone IANA timezone for coords
Params
lat=48.858&lng=2.295
Response
{"timeZone":"Europe/Paris","utcOffset":7200,…}
POST /api/v1/json/format Pretty-print JSON
Params
{"json":"{…}","indent":2}
Response
{"formatted":"{ … }"}
POST /api/v1/json/validate Validate JSON spec
Params
{"json":"{…}"}
Response
{"valid":true} or {"valid":false,"error":"…"}
GET /api/v1/qr Generate QR code as SVG
Params
data=hello&size=256
Response
{"svg":"<svg…","data_url":"data:image/svg+xml;base64,…"}
POST /api/v1/hash MD5 / SHA-1 / SHA-256 / SHA-384 / SHA-512 + HMAC
Params
{"input":"hello","algo":"sha256"}
Response
{"algo":"sha256","mode":"plain","digest":"2cf24d…","length_bytes":32}
POST /api/v1/base64 Encode / decode, with optional URL-safe variant
Params
{"input":"hello","mode":"encode","url_safe":true}
Response
{"mode":"encode","url_safe":true,"output":"aGVsbG8","length":7}
POST /api/v1/text Case / slugify / count / reverse / trim
Params
{"input":"Hello, World!","op":"slugify"}
Response
{"op":"slugify","input_length":13,"output":"hello-world"}
POST /api/v1/password Bulk-generate strong passwords (max 100/call)
Params
{"count":3,"length":16,"upper":true,"lower":true,"digits":true,"symbols":false}
Response
{"count":3,"length":16,"charset_size":47,"passwords":["…","…","…"],"entropy_bits_per_password":88.84}
POST /api/v1/regex/test Test a PCRE pattern, return matches + named groups
Params
{"pattern":"/(?<y>\\d{4})/","input":"2026-05-13"}
Response
{"pattern":"/(?<y>…)/","match_count":1,"matches":[{"match":"2026","offset":0,"groups":{"y":"2026"}}]}

Quick start

JavaScript
const r = await fetch(
  'https://toolenza.codenzia.com/api/v1/currency/convert?from=USD&to=EUR&amount=100',
  { headers: { Authorization: 'Bearer ' + KEY } }
);
console.log(await r.json());
Python
import requests
r = requests.get(
    'https://toolenza.codenzia.com/api/v1/geo/geocode',
    params={'q': 'Eiffel Tower'},
    headers={'Authorization': f'Bearer {KEY}'},
)
print(r.json())
cURL
curl -X POST \
  https://toolenza.codenzia.com/api/v1/json/format \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"json":"{\"a\":1}","indent":2}'

Ready to build?

Free tier ships with 1,000 calls/mo — no credit card.

Generate your API key