# iletiMerkezi — Developer Index > Developer-focused index of iletiMerkezi (BTK-licensed Turkish SMS platform). Covers REST API, SDKs, MCP server, webhooks, error codes, and integration patterns. For product/regulatory content see https://www.iletimerkezi.com/llms-general.txt — for the consolidated reference see https://www.iletimerkezi.com/llms-full.txt. > Last updated: 2026-04-30 > Languages: Turkish (primary), English (full parallel coverage at /en/*) ## Single entry point for AI / LLM teams - [iletiMerkezi for AI (TR)](https://www.iletimerkezi.com/ai) · [(EN)](https://www.iletimerkezi.com/en/ai) — Landing with MCP setup snippets (Claude Desktop / Cursor / Cline), pointers to manifest/sitemap, and links into developer + content paths ## Quick start - **Base URL:** `https://api.iletimerkezi.com/v1/` - **Auth:** API Key + API Hash (in `request.authentication`); see [authentication](https://www.iletimerkezi.com/docs/api/authentication) - **Content-Type:** `application/json` (POST), querystring (GET) - **Test sender:** `APITEST` — sends only to your registered test number, free of charge - **Free credit:** 100 SMS welcome bonus on new accounts - **Sign up:** https://panel.iletimerkezi.com/auth/signup ## Machine-readable resources - [API manifest (JSON)](https://www.iletimerkezi.com/api/manifest.json): 12 endpoints + webhook spec, generated from docs frontmatter — single source of truth - [LLM sitemap (XML)](https://www.iletimerkezi.com/sitemap-llm.xml): Every HTML and raw `.md` URL for LLM crawlers - Raw markdown access: append `.md` to any `/docs/...` URL (e.g. `/docs/api/send-sms.md`); served with `Content-Type: text/markdown` ## REST API endpoints Each endpoint has a TR + EN page; the manifest derives schemas from the same frontmatter. | Endpoint | Path | Doc (TR) | Doc (EN) | |---|---|---|---| | Overview | — | [/docs/api/overview](https://www.iletimerkezi.com/docs/api/overview) | [/en/docs/api/overview](https://www.iletimerkezi.com/en/docs/api/overview) | | Authentication | — | [/docs/api/authentication](https://www.iletimerkezi.com/docs/api/authentication) | [/en/docs/api/authentication](https://www.iletimerkezi.com/en/docs/api/authentication) | | Send SMS | `POST /send-sms/json` | [/docs/api/send-sms](https://www.iletimerkezi.com/docs/api/send-sms) | [/en/docs/api/send-sms](https://www.iletimerkezi.com/en/docs/api/send-sms) | | Cancel order | `POST /cancel-order/json` | [/docs/api/cancel-order](https://www.iletimerkezi.com/docs/api/cancel-order) | [/en/docs/api/cancel-order](https://www.iletimerkezi.com/en/docs/api/cancel-order) | | Get report | `POST /get-report/json` | [/docs/api/get-report](https://www.iletimerkezi.com/docs/api/get-report) | [/en/docs/api/get-report](https://www.iletimerkezi.com/en/docs/api/get-report) | | Get reports (range) | `POST /get-reports/json` | [/docs/api/get-reports](https://www.iletimerkezi.com/docs/api/get-reports) | [/en/docs/api/get-reports](https://www.iletimerkezi.com/en/docs/api/get-reports) | | Get balance | `GET /get-balance/json` | [/docs/api/get-balance](https://www.iletimerkezi.com/docs/api/get-balance) | [/en/docs/api/get-balance](https://www.iletimerkezi.com/en/docs/api/get-balance) | | Get sender | `GET /get-sender/json` | [/docs/api/get-sender](https://www.iletimerkezi.com/docs/api/get-sender) | [/en/docs/api/get-sender](https://www.iletimerkezi.com/en/docs/api/get-sender) | | Get blacklist | `POST /get-blacklist/json` | [/docs/api/get-blacklist](https://www.iletimerkezi.com/docs/api/get-blacklist) | [/en/docs/api/get-blacklist](https://www.iletimerkezi.com/en/docs/api/get-blacklist) | | Add blacklist | `POST /add-blacklist/json` | [/docs/api/add-blacklist](https://www.iletimerkezi.com/docs/api/add-blacklist) | [/en/docs/api/add-blacklist](https://www.iletimerkezi.com/en/docs/api/add-blacklist) | | Delete blacklist | `POST /delete-blacklist/json` | [/docs/api/delete-blacklist](https://www.iletimerkezi.com/docs/api/delete-blacklist) | [/en/docs/api/delete-blacklist](https://www.iletimerkezi.com/en/docs/api/delete-blacklist) | | İYS register | `POST /consent/create/json` | [/docs/api/iys-register](https://www.iletimerkezi.com/docs/api/iys-register) | [/en/docs/api/iys-register](https://www.iletimerkezi.com/en/docs/api/iys-register) | | İYS check | `POST /consent/check/json` | [/docs/api/iys-check](https://www.iletimerkezi.com/docs/api/iys-check) | [/en/docs/api/iys-check](https://www.iletimerkezi.com/en/docs/api/iys-check) | | Inbox | `GET /inbox/json` | [/docs/api/inbox](https://www.iletimerkezi.com/docs/api/inbox) | [/en/docs/api/inbox](https://www.iletimerkezi.com/en/docs/api/inbox) | | Webhooks | (push) | [/docs/api/webhooks](https://www.iletimerkezi.com/docs/api/webhooks) | [/en/docs/api/webhooks](https://www.iletimerkezi.com/en/docs/api/webhooks) | | Error codes | — | [/docs/api/error-codes](https://www.iletimerkezi.com/docs/api/error-codes) | [/en/docs/api/error-codes](https://www.iletimerkezi.com/en/docs/api/error-codes) | | Test mode | — | [/docs/api/test-mode](https://www.iletimerkezi.com/docs/api/test-mode) | [/en/docs/api/test-mode](https://www.iletimerkezi.com/en/docs/api/test-mode) | ## SDKs - [PHP](https://packagist.org/packages/iletimerkezi/iletimerkezi-php) — `composer require iletimerkezi/iletimerkezi-php` - [Node.js](https://www.npmjs.com/package/@iletimerkezi/iletimerkezi-node) — `npm install @iletimerkezi/iletimerkezi-node` - [Python](https://github.com/iletimerkezi/iletimerkezi-python) — GitHub - [Go](https://github.com/iletimerkezi/iletimerkezi-go) — GitHub - [Java](https://github.com/iletimerkezi/iletimerkezi-java) — GitHub - [Ruby](https://github.com/iletimerkezi/iletimerkezi-ruby) — GitHub - [C#](https://github.com/iletimerkezi/iletimerkezi-csharp) — GitHub - [Laravel](https://github.com/iletimerkezi/iletimerkezi-laravel) — GitHub ## MCP server (LLM-native channel) - **Package:** [`@iletimerkezi/mcp-server`](https://www.npmjs.com/package/@iletimerkezi/mcp-server) on npm - **Repo:** https://github.com/iletimerkezi/iletimerkezi-mcp-server - **Install:** `npx -y @iletimerkezi/mcp-server` - **Auth env:** `ILETIMERKEZI_API_KEY`, `ILETIMERKEZI_API_HASH` - **Tools (12):** `send_sms`, `cancel_order`, `get_report`, `get_reports`, `get_balance`, `get_sender`, `get_blacklist`, `add_blacklist`, `delete_blacklist`, `iys_register`, `iys_check`, `get_inbox` - **Setup guide:** [/docs/mcp (TR)](https://www.iletimerkezi.com/docs/mcp) · [/en/docs/mcp (EN)](https://www.iletimerkezi.com/en/docs/mcp) - **Tool definitions:** Fetched at runtime from `https://www.iletimerkezi.com/api/manifest.json` (24h cache + build-time fallback). Server has zero hard-coded tool schemas — single source of truth is the docs frontmatter. ## Pre-flight checklist (most common 401 cause) Before any API call, ensure the panel's "API kullanımına izin ver" toggle is on: - Panel → Ayarlar → Güvenlik → Erişim İzinleri → "API kullanımına izin ver" must be enabled - If disabled, every endpoint returns `401` with `Üyelik bilgileri hatalı` - This is the most frequent first-call failure — see [authentication](https://www.iletimerkezi.com/docs/api/authentication) ## Common request envelope Every JSON endpoint uses the same outer shape: ```json { "request": { "authentication": { "key": "API_KEY", "hash": "API_HASH" }, "...": "endpoint-specific payload" } } ``` Schemas (per-endpoint) and example responses live in the docs and the manifest. ## Webhooks - **Pattern:** Single webhook URL per account; iletiMerkezi POSTs JSON delivery reports - **Multi-app filtering:** Use `report.body` markers (no app-id field exists) - **Idempotency:** First callback `received_at`, subsequent callbacks update status; key off `report.id + report.status` - **Signature:** None today; protect with URL-token pattern (random path segment per app) - **Status enum:** Documented in [webhooks](https://www.iletimerkezi.com/docs/api/webhooks) ## Test mode (APITEST) - Sender ID `APITEST` works for every account - Sends only to the account's registered test phone number - Recipient sees a fixed test message (real content is replaced) - Not billed — entire integration (API + webhooks + reporting) can be exercised end-to-end before sender ID approval - See [test-mode](https://www.iletimerkezi.com/docs/api/test-mode) ## Rate limits / fair use No published numerical limit. Fair-use applies; recommended posture: - Exponential backoff on 4xx/5xx - Coordinate with `destek@emarka.com.tr` before high-volume campaigns - For bulk sends, prefer one request with multiple recipients over many parallel single-recipient requests - Anomalous traffic may be throttled See [overview "Usage and fair use"](https://www.iletimerkezi.com/en/docs/api/overview). ## Turkey-specific behaviours - **Carriers:** Turkcell, Vodafone, Türk Telekom (direct integration) - **Encoding:** GSM-7 = max 160 chars; UCS-2 (Turkish chars) = max 70 chars; B186 carrier-header format applies (first part 155/153, multi-part) - **Multi-part cap:** Up to 7 parts (~1071 chars) - **Undelivered SMS = free:** Source of truth is `get-report.delivered` + `price` - **İYS consent:** Required for commercial content; pass `iys=1` in `send-sms` to validate before dispatch - **Sender ID:** BTK approval required for branded sender; use `APITEST` until approved - **Order cancellation:** Only future-scheduled orders that have not started dispatch can be cancelled ## Cross-domain references - [toplusmsapi.com](https://toplusmsapi.com): Turkish API documentation (Docusaurus) - [a2psmsapi.com](https://a2psmsapi.com): English / international A2P SMS API documentation - These domains are kept in sync with iletimerkezi.com/docs/api via the [sync checklist](https://github.com/iletimerkezi/apidocs-website/issues) ## Status / drift register Open backend documentation drift issues (asynchronous, not blockers): - https://github.com/iletimerkezi/apidocs-website/issues — drift between docs and live API behaviour is logged here per endpoint ## Contact - Developer support: `destek@emarka.com.tr` - Sales/account: https://www.iletimerkezi.com/iletisim - Status / incident page: covered by https://www.iletimerkezi.com/bilgi-guvenligi