Our Products

erapi

Validation, Türkiye data, TCMB FX and developer tools in one API.

Key features

Validation

Endpoints to validate Turkish ID numbers, IBANs and tax numbers.

Türkiye data

Türkiye-specific data services for your applications.

TCMB FX rates

Get TCMB exchange rates through the API.

Developer tools

UUID, hash, QR code and barcode generation.

The same response shape on every endpoint

Every endpoint returns the same JSON envelope: success flag, data, error code and timing metadata. One piece of client code is enough.

Swagger and live try-out

Call the endpoints in your browser without writing code, using the public Swagger interface and the “Try it” panel on each service page.

Call straight from the browser

The API routes accept cross-origin (CORS) requests, so your front-end application can call the endpoints directly.

Fair-use limit

A per-IP quota applies to the API routes; when exceeded you get a clear 429 response, and the interface and documentation are not affected by the limit.

Product documentation

Overview

Validation (Turkish ID, IBAN, tax number), Türkiye data, finance (TCMB FX) and developer tools (UUID, hash, QR, barcode) in a single API.

Note: Turkish ID, IBAN and tax number validation is algorithmic (format and check digit). It is not an official lookup in NVİ, GİB or bank records and does not prove that the number belongs to a real person, account or taxpayer.

Response format

The same JSON envelope on every endpoint

Every endpoint returns the same envelope:

  • success: whether the request succeeded.
  • data: the result of the service.
  • error: on failure, the code and message fields.
  • meta: the service name, processing time (elapsedMs) and data source (source: live, cache or offline).

Endpoint paths follow the form /api/v1/<category>/<service>.

Validation endpoints

POST /api/v1/dogrulama

Body: {"value":"..."}

  • /tckimlik: algorithmic validation of the Turkish ID number.
  • /vergino: algorithmic validation of the tax number (VKN).
  • /iban: TR IBAN validation; when valid, it returns the bank and the formatted IBAN.
  • /kredikarti: Luhn validation; when valid, it returns the card type.
  • /eposta: format check and a DNS lookup of the domain.

For invalid values the reason field explains why. The ID, tax number, IBAN and card checks are algorithmic; no official registry is queried.

Türkiye data

GET /api/v1/turkiye

  • /iller: the list of 81 provinces with plate code, name, region and area code.
  • /plaka?kod=34 and /il?plaka=34: province by plate code.
  • /alankodu?kod=312: province by telephone area code.
  • /postakodu?kod=34000: the first two digits of the postal code correspond to the plate code.
  • /ilceler?plaka=34: the districts of a province.

A missing required parameter returns 400 with INVALID_REQUEST.

TCMB exchange rates and conversion

GET /api/v1/finans

  • /doviz: TCMB daily exchange rates; ?kod=USD filters a single rate.
  • /cevir?amount=100&from=USD&to=TRY: converts an amount using TCMB rates; the calculation goes through TRY using the forex selling rate.
  • /birim?value=100&from=km&to=mil: length, weight and temperature unit conversion (offline).

Rates are cached briefly; meta.source tells you whether the response came live or from the cache. If TCMB is unreachable and there is no cache, you get 502 with UPSTREAM_UNAVAILABLE.

Developer tools

/api/v1/arac

  • GET /uuid: generates between one and 100 UUIDs.
  • GET /parola: generates a password of 4–128 characters; symbols, digits and upper case are selectable.
  • POST /hash: computes a hash.
  • POST /base64: encodes or decodes Base64 (encode / decode).
  • POST /slug: turns text into a URL-friendly slug.
  • POST /qr: generates a QR code (up to 2000 characters).
  • POST /barkod: generates a barcode (up to 200 characters).

Invalid input returns 400 with INVALID_REQUEST and an explanatory message.

Error codes and limits

  • 400 / INVALID_REQUEST: a missing or invalid parameter.
  • 404 / NOT_FOUND: unknown routes under /api are answered with the same JSON envelope rather than an HTML page.
  • 429: the per-IP quota (120 requests per 60 seconds) was exceeded.
  • 502 / UPSTREAM_UNAVAILABLE: an external source such as TCMB is unreachable.

The limit applies only to the API routes; the interface, documentation and Swagger are not affected by the quota. The API routes accept cross-origin requests.

Trying and monitoring

  • Catalogue: the home page and service list; each service page has a Try it panel.
  • Swagger: public documentation and a call interface for every endpoint at /swagger.
  • Health endpoint: /healthz returns status and version, and can be wired to monitoring tools.
  • The interface is available in Turkish and English.

Today vs. with erapi

ID, IBAN and tax number checks

Today (manual / spreadsheets)Validation code is rewritten in every project, or skipped.

With erapiTurkish ID, IBAN and tax number validation are called from ready endpoints.

Exchange rates

Today (manual / spreadsheets)Rates are copied from a web page, or every app writes its own reader.

With erapiCentral bank exchange rates are fetched through the API.

Integration

Today (manual / spreadsheets)Each service returns a different format and client code multiplies.

With erapiEvery endpoint returns the same JSON envelope; try them without code via Swagger and the «Try» box.

How does pricing work?

Pricing depends on the modules you use and on the number of users and companies. Try it free first or ask for a short live demo; once the scope is clear, we send a written quote.

  • We are with you during installation and initial setup.
  • No credit card or payment details needed for the trial.
  • The quote states the scope, number of users and support period clearly.

Install in 3 steps

  1. 1. Browse the catalogue

    Explore the services in four categories (Validation, Tools, Finance, Türkiye); each service page lists its parameters and a sample response.

  2. 2. Try it in the browser

    Send a real request to an endpoint from the “Try it” panel on the service page or from the Swagger interface.

  3. 3. Connect it to your application

    Send the same request from your own code; since the response envelope is identical on every endpoint, a single client class covers all services.

Frequently asked questions

How can I try erapi?

Explore the services at erapi.erp.tr and request a quote for business use.

Does the ID or IBAN validation query an official registry?

No. The ID number, tax number, IBAN and credit card checks are algorithmic; no official registry or bank is queried. Credit cards are checked with the Luhn algorithm.

Where do the exchange rates come from?

From the TCMB daily exchange rates. Rates are cached briefly, and the meta.source field in the response shows whether the data came live or from the cache.

What happens if I exceed the quota?

The API routes have a limit of 120 requests per 60 seconds per IP. When it is exceeded you receive a 429 response; the interface and documentation are not affected.

Can I call the API from my browser front end?

Yes. The API routes accept cross-origin (CORS) requests, so your front-end application can call the endpoints directly.

How can I try it?

Every service page in the catalogue has a Try it panel, and you can call every endpoint from the interface at /swagger. For any other question, fill in the quote form.

Keep me informed

Choose how you would like to hear about erapi: news by email, or a call from us.

How would you like to be informed? (one or both)

Trial, demo or quote

What would you like?

Ideas and suggestions

Would you like a feature in erapi, have a suggestion or hit a problem? Tell us; the team reads every message and shapes the roadmap accordingly.

Type

Name and email are optional; leave an email if you would like us to get back to you.