Getting started
- 1Open the product on the marketplace and activate the Free plan.
- 2Copy your plaintext API key — it is shown only once.
- 3Send requests with the X-ApiDeposu-Key header or Authorization: Bearer.
- 4Verify your first call from the Test Lab or with curl.
Authentication
Activate the Free plan from the product's marketplace page. Your key is shown once — save it somewhere safe.
- Base URL
- https://api.apideposu.com
- Auth header
- X-ApiDeposu-Key: <token>
Example request
curl -X POST https://api.apideposu.com/v1/tr-validation/iban/validate \
-H "X-ApiDeposu-Key: apd_live_..." \
-H "Content-Type: application/json" \
-d '{"iban":"TR33 0006 1005 1978 6457 8413 26"}'const res = await fetch(
"https://api.apideposu.com/v1/tr-validation/iban/validate",
{
method: "POST",
headers: {
"X-ApiDeposu-Key": process.env.APIDEPOSU_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ iban: "TR33 0006 1005 1978 6457 8413 26" }),
},
);
const data = await res.json();import os, requests
resp = requests.post(
"https://api.apideposu.com/v1/tr-validation/iban/validate",
headers={
"X-ApiDeposu-Key": os.environ["APIDEPOSU_KEY"],
"Content-Type": "application/json",
},
json={"iban": "TR33 0006 1005 1978 6457 8413 26"},
timeout=10,
)
resp.raise_for_status()
data = resp.json()Endpoints
/v1/tr-validation/iban/validateValidate IBAN format and checksum
/v1/tr-validation/phone/normalizeNormalise a phone number
/v1/tr-validation/id/validateTCKN/VKN format and checksum
/v1/tr-validation/locations/provincesList provinces
/v1/tr-validation/locations/districtsList districts in a province
/v1/tr-validation/locations/resolveResolve free-form province/district
/v1/tr-validation/text/normalizeNormalise Turkish text
/v1/tr-validation/address/normalizeNormalise Turkish address
/v1/tr-validation/bulk/validateBulk validate up to 25 items
Error codes
The gateway returns the HTTP codes below when a request fails authentication, ownership, or quota checks.
Body or query validation failure — e.g. iban field missing.
API key is missing, invalid, revoked, or expired.
Key belongs to a different product, product/subscription is not active, or the period has ended.
Per-minute rate limit or monthly quota exceeded. Inspect the headers and back off.
Transient server error. Retry; if it persists, please report it.
Rate limit
Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. Exceeding the limit returns 429 and resets at the next minute boundary.
Monthly quota
Your monthly quota resets at the start of each billing period. X-Quota-Limit and X-Quota-Remaining response headers show your standing.