{
  "schema_version": "1",
  "generated_at": "2026-04-29T21:11:52.333Z",
  "source": "iletimerkezi-website (frontmatter + api-endpoint-meta.js)",
  "base_url": "https://api.iletimerkezi.com",
  "authentication": {
    "type": "api-key-and-hash",
    "location": "request.authentication.{key,hash}",
    "panel_prerequisite": "Settings → Security → Access Permissions → Allow API usage",
    "panel_url": "panel.iletimerkezi.com/settings/security/access"
  },
  "endpoints": [
    {
      "slug": "send-sms",
      "method": "POST",
      "base_url": "https://api.iletimerkezi.com",
      "path": "/v1/send-sms/json",
      "full_url": "https://api.iletimerkezi.com/v1/send-sms/json",
      "auth": "api-key-and-hash",
      "request_shape": "request.{authentication:{key,hash}, order:{sender, sendDateTime?, iys, iysList, message:{text, receipents:{number[]}}}}",
      "response_success_shape": "response.{status:{code,message}, order:{id}}",
      "error_codes": [
        200,
        401,
        419,
        421,
        422,
        423,
        424,
        425,
        451,
        452
      ],
      "notes": "iys + iysList ticari mesaj için zorunlu. APITEST sender pre-approval testte sabit metni gönderir.",
      "summary": {
        "tr": "`send-sms` endpoint'i tek bir istekle bir veya birden çok cep telefonuna SMS gönderir. İstek bir **sipariş (order)** olarak kabul edilir; başarılı yanıtta dönen `orderId` ile teslimat raporlarını takip edebilir, ileri tarihli siparişleri iptal edebilirsiniz. İstek başına yalnızca bir sipariş, sipariş başına bir sender (başlık) gönderilir.",
        "en": "The `send-sms` endpoint delivers an SMS to one or many mobile numbers in a single request. Each request is treated as an **order**; the response returns an `orderId` you can use to retrieve delivery reports or cancel scheduled orders. One order per request, one sender (header) per order."
      },
      "title": {
        "tr": "SMS Gönderme API (send-sms)",
        "en": "Send SMS API (send-sms)"
      },
      "description": {
        "tr": "send-sms endpoint'i ile tek seferde tek veya çoklu numaraya SMS gönderirsiniz. Sender ID, İYS bayrağı, mesaj metni ve alıcı listesi ile çalışır.",
        "en": "Use the send-sms endpoint to deliver an SMS to one or many mobile numbers in a single request. Sender ID, IYS flag, message text, and recipient list."
      },
      "last_updated": "2026-04-29",
      "doc_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/send-sms",
        "en": "https://www.iletimerkezi.com/en/docs/api/send-sms"
      },
      "md_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/send-sms.md",
        "en": "https://www.iletimerkezi.com/en/docs/api/send-sms.md"
      },
      "mcp_tool": "send_sms",
      "input_schema": {
        "type": "object",
        "properties": {
          "order": {
            "type": "object",
            "properties": {
              "sender": {
                "type": "string",
                "maxLength": 11,
                "description": "Approved sender ID (header). Use APITEST for pre-approval testing."
              },
              "sendDateTime": {
                "type": "string",
                "description": "Optional scheduled send time, format: dd/MM/yyyy HH:mm:ss (Turkey local time)."
              },
              "iys": {
                "type": "string",
                "enum": [
                  "0",
                  "1"
                ],
                "description": "\"1\" for commercial messages (iysList required), \"0\" for transactional/OTP (iysList may be omitted). Required."
              },
              "iysList": {
                "type": "string",
                "enum": [
                  "BIREYSEL",
                  "TACIR"
                ],
                "description": "Recipient list type, required when iys=\"1\": BIREYSEL (individuals) or TACIR (businesses)."
              },
              "message": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "description": "Message body. B186 operator code is appended automatically. Limits: 155/153 GSM-7, 150/148 Turkish, 65/63 Unicode (first/subsequent parts). Max 7 parts ≈ 1071 chars."
                  },
                  "receipents": {
                    "type": "object",
                    "properties": {
                      "number": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "minItems": 1,
                        "description": "Recipient phone numbers. Accepted formats: 905XXXXXXXXX, +905XXXXXXXXX, 5XXXXXXXXX."
                      }
                    },
                    "required": [
                      "number"
                    ]
                  }
                },
                "required": [
                  "text",
                  "receipents"
                ]
              }
            },
            "required": [
              "sender",
              "iys",
              "message"
            ],
            "allOf": [
              {
                "if": {
                  "properties": {
                    "iys": {
                      "const": "1"
                    }
                  },
                  "required": [
                    "iys"
                  ]
                },
                "then": {
                  "required": [
                    "iysList"
                  ]
                }
              }
            ]
          }
        },
        "required": [
          "order"
        ]
      }
    },
    {
      "slug": "get-report",
      "method": "POST",
      "base_url": "https://api.iletimerkezi.com",
      "path": "/v1/get-report/json",
      "full_url": "https://api.iletimerkezi.com/v1/get-report/json",
      "auth": "api-key-and-hash",
      "request_shape": "request.{authentication, order:{id, page?, rowCount?}}",
      "response_success_shape": "response.{status, order:{id, status, total, delivered, undelivered, waiting, submitAt, sendAt, sender, price, message:[{number, status}]}}",
      "error_codes": [
        200,
        401,
        426
      ],
      "notes": "order.status kodları send-sms yaşam döngüsündedir; message[].status numerik (110/111/112).",
      "summary": {
        "tr": "`get-report` endpoint'i, [`send-sms`](./send-sms.md) ile oluşturulan bir siparişin teslimat raporunu döner. Sipariş genel durumu, sayaçlar (toplam / teslim edilen / edilemeyen / bekleyen), zaman damgaları, sipariş bedeli ve her bir mesajın alıcı bazında durumu tek yanıtta gelir. Büyük siparişler `page` + `rowCount` ile sayfalanır.",
        "en": "The `get-report` endpoint returns the delivery report for an order created via [`send-sms`](./send-sms.md). One response carries the overall order status, summary counters (total / delivered / undelivered / waiting), timestamps, sender, order price, and per-recipient delivery status. Large orders paginate via `page` + `rowCount`."
      },
      "title": {
        "tr": "Sipariş Raporu API (get-report)",
        "en": "Order Report API (get-report)"
      },
      "description": {
        "tr": "send-sms ile oluşturulan siparişin teslimat raporunu sorgulayın. Sipariş özeti, mesaj başına teslim durumu, sayfalama.",
        "en": "Fetch the delivery report for a send-sms order. Order summary, per-recipient delivery status, pagination."
      },
      "last_updated": "2026-04-29",
      "doc_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/get-report",
        "en": "https://www.iletimerkezi.com/en/docs/api/get-report"
      },
      "md_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/get-report.md",
        "en": "https://www.iletimerkezi.com/en/docs/api/get-report.md"
      },
      "mcp_tool": "get_report",
      "input_schema": {
        "type": "object",
        "properties": {
          "order": {
            "type": "object",
            "properties": {
              "id": {
                "type": [
                  "string",
                  "integer"
                ],
                "description": "Order id returned from a previous send-sms call."
              },
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "Page number for paginated per-recipient results."
              },
              "rowCount": {
                "type": "integer",
                "minimum": 1,
                "description": "Number of recipient rows per page."
              }
            },
            "required": [
              "id"
            ]
          }
        },
        "required": [
          "order"
        ]
      }
    },
    {
      "slug": "get-balance",
      "method": "POST",
      "base_url": "https://api.iletimerkezi.com",
      "path": "/v1/get-balance/json",
      "full_url": "https://api.iletimerkezi.com/v1/get-balance/json",
      "auth": "api-key-and-hash",
      "request_shape": "request.{authentication}",
      "response_success_shape": "response.{status, balance:{amount:number, sms:integer}}",
      "error_codes": [
        200,
        401
      ],
      "notes": "amount float (TL), sms integer. Yan etkisiz, kontör harcamaz.",
      "summary": {
        "tr": "`get-balance` endpoint'i, hesabınızda kalan TL bakiyesini ve bu bakiye ile gönderebileceğiniz SMS adedini döner. Yan etkisi yoktur, kontör harcamaz; auth doğrulaması ve kalan bütçe kontrolü için ideal başlangıç çağrısıdır.",
        "en": "The `get-balance` endpoint returns the TL balance remaining on your account and the number of standard SMS messages that balance can fund. It has no side effects and consumes no credits, making it the safest call for verifying authentication and checking remaining budget before a campaign."
      },
      "title": {
        "tr": "Bakiye Sorgulama API (get-balance)",
        "en": "Get Balance API (get-balance)"
      },
      "description": {
        "tr": "Hesabınızdaki TL bakiyesini ve gönderilebilir SMS adedini tek istekle alın. Yan etkisiz, kontör harcamaz.",
        "en": "Retrieve the remaining TL balance and SMS quota on your account in one call. No side effects, no credit consumed."
      },
      "last_updated": "2026-04-29",
      "doc_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/get-balance",
        "en": "https://www.iletimerkezi.com/en/docs/api/get-balance"
      },
      "md_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/get-balance.md",
        "en": "https://www.iletimerkezi.com/en/docs/api/get-balance.md"
      },
      "mcp_tool": "get_balance",
      "input_schema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    },
    {
      "slug": "get-sender",
      "method": "POST",
      "base_url": "https://api.iletimerkezi.com",
      "path": "/v1/get-sender/json",
      "full_url": "https://api.iletimerkezi.com/v1/get-sender/json",
      "auth": "api-key-and-hash",
      "request_shape": "request.{authentication}",
      "response_success_shape": "response.{status, senders:{sender:[string]}}",
      "error_codes": [
        200,
        401
      ],
      "notes": "send-sms order.sender alanı yalnızca bu listedeki onaylı başlıkları kabul eder.",
      "summary": {
        "tr": "`get-sender` endpoint'i, hesabınızda tanımlanmış ve iletiMerkezi tarafından onaylanmış **sender ID (başlık)** listesini döner. `send-sms` çağrılarında `order.sender` alanına sadece bu listedeki başlıklardan biri yazılabilir; aksi halde mesaj gönderilemez. Yan etkisi yoktur, kontör harcamaz.",
        "en": "The `get-sender` endpoint returns the list of **sender IDs (headers)** registered and approved on your account. The `order.sender` field of [`send-sms`](./send-sms.md) only accepts values from this list; using anything else is rejected. The call has no side effects and consumes no credits."
      },
      "title": {
        "tr": "Onaylı Başlık Listesi API (get-sender)",
        "en": "Approved Sender IDs API (get-sender)"
      },
      "description": {
        "tr": "Hesabınızda tanımlanmış ve iletiMerkezi tarafından onaylanmış sender ID (başlık) listesini alın. send-sms öncesi başlık doğrulaması için ideal.",
        "en": "Retrieve the list of sender IDs (headers) approved on your account. Use it to validate the sender before send-sms calls."
      },
      "last_updated": "2026-04-29",
      "doc_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/get-sender",
        "en": "https://www.iletimerkezi.com/en/docs/api/get-sender"
      },
      "md_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/get-sender.md",
        "en": "https://www.iletimerkezi.com/en/docs/api/get-sender.md"
      },
      "mcp_tool": "get_sender",
      "input_schema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    },
    {
      "slug": "get-blacklist",
      "method": "POST",
      "base_url": "https://api.iletimerkezi.com",
      "path": "/v1/get-blacklist/json",
      "full_url": "https://api.iletimerkezi.com/v1/get-blacklist/json",
      "auth": "api-key-and-hash",
      "request_shape": "request.{authentication, page?, rowCount?}",
      "response_success_shape": "response.{status, blacklist:{number:[string], totalRows}}",
      "error_codes": [
        200,
        401
      ],
      "notes": "Sayfalı; rowCount default değeri sınırlıdır, büyük listelerde page döngüsü.",
      "summary": {
        "tr": "`get-blacklist` endpoint'i, hesabınızdaki kara listeye eklenmiş numaraları döner. Mesaj göndermek istemediğiniz numaralar bu listeye eklenir; `send-sms` çağrılarında bu listedeki numaralara mesaj iletimi atlanır. Yan etkisiz, kontör harcamaz.",
        "en": "The `get-blacklist` endpoint returns the list of phone numbers that you have blocked on your account. Numbers on this list are skipped during `send-sms` delivery. The call has no side effects and consumes no credits."
      },
      "title": {
        "tr": "Engellenmiş Numara Listesi API (get-blacklist)",
        "en": "Get Blacklist API (get-blacklist)"
      },
      "description": {
        "tr": "Hesabınızdaki engellenmiş (kara liste) numaraları sayfalı şekilde alın. Tarih aralığı filtresi, 1000'lik sayfalama.",
        "en": "Retrieve the list of blocked phone numbers on your account, with date filter and pagination."
      },
      "last_updated": "2026-04-29",
      "doc_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/get-blacklist",
        "en": "https://www.iletimerkezi.com/en/docs/api/get-blacklist"
      },
      "md_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/get-blacklist.md",
        "en": "https://www.iletimerkezi.com/en/docs/api/get-blacklist.md"
      },
      "mcp_tool": "get_blacklist",
      "input_schema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for paginated results."
          },
          "rowCount": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of numbers per page."
          }
        }
      }
    },
    {
      "slug": "add-blacklist",
      "method": "POST",
      "base_url": "https://api.iletimerkezi.com",
      "path": "/v1/add-blacklist/json",
      "full_url": "https://api.iletimerkezi.com/v1/add-blacklist/json",
      "auth": "api-key-and-hash",
      "request_shape": "request.{authentication, blacklist:{number:string}}",
      "response_success_shape": "response.{status:{code:200, message}}",
      "error_codes": [
        200,
        401,
        472
      ],
      "notes": "Idempotent: aynı numara ikinci kez eklenirse 200 döner. İstek başına bir numara.",
      "summary": {
        "tr": "`add-blacklist` endpoint'i, SMS gönderilmesini istemediğiniz bir cep telefonu numarasını hesabınızın kara listesine ekler. Bu listedeki numaralara `send-sms` çağrılarında mesaj iletilmez. **Idempotent**: aynı numarayı ikinci kez eklemek hata değil, 200 döndürür. İstek başına yalnızca **bir** numara eklenir.",
        "en": "The `add-blacklist` endpoint adds one phone number to your account's blacklist so it is skipped by `send-sms`. **Idempotent**: re-adding the same number returns 200 instead of an error. One number per request."
      },
      "title": {
        "tr": "Numara Engelle API (add-blacklist)",
        "en": "Add Blacklist API (add-blacklist)"
      },
      "description": {
        "tr": "SMS gönderilmesini istemediğiniz bir cep numarasını kara listeye ekleyin. Idempotent: aynı numara tekrar eklenirse 200 döner.",
        "en": "Add a phone number to your blacklist so send-sms skips delivery to it. Idempotent: re-adding returns 200, not an error."
      },
      "last_updated": "2026-04-29",
      "doc_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/add-blacklist",
        "en": "https://www.iletimerkezi.com/en/docs/api/add-blacklist"
      },
      "md_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/add-blacklist.md",
        "en": "https://www.iletimerkezi.com/en/docs/api/add-blacklist.md"
      },
      "mcp_tool": "add_blacklist",
      "input_schema": {
        "type": "object",
        "properties": {
          "blacklist": {
            "type": "object",
            "properties": {
              "number": {
                "type": "string",
                "description": "Phone number to block. Accepted formats: 905XXXXXXXXX, +905XXXXXXXXX, 5XXXXXXXXX."
              }
            },
            "required": [
              "number"
            ]
          }
        },
        "required": [
          "blacklist"
        ]
      }
    },
    {
      "slug": "delete-blacklist",
      "method": "POST",
      "base_url": "https://api.iletimerkezi.com",
      "path": "/v1/delete-blacklist/json",
      "full_url": "https://api.iletimerkezi.com/v1/delete-blacklist/json",
      "auth": "api-key-and-hash",
      "request_shape": "request.{authentication, blacklist:{number:string}}",
      "response_success_shape": "response.{status:{code:200, message}}",
      "error_codes": [
        200,
        401,
        474
      ],
      "notes": "Idempotent değil: numara listede yoksa 474 döner. İstek başına bir numara.",
      "summary": {
        "tr": "`delete-blacklist` endpoint'i, kara listeye eklenmiş bir cep telefonu numarasını listeden çıkarır. Çıkarılan numaraya `send-sms` çağrıları artık iletilebilir hale gelir. İstek başına yalnızca **bir** numara işlenir; numara listede yoksa hata döner (idempotent değil).",
        "en": "The `delete-blacklist` endpoint removes a phone number from your account's blacklist. After removal, `send-sms` can deliver to that number again. One number per request; **not idempotent** — removing a number that is not on the list returns an error."
      },
      "title": {
        "tr": "Engelleme Kaldır API (delete-blacklist)",
        "en": "Delete Blacklist API (delete-blacklist)"
      },
      "description": {
        "tr": "Kara listeye eklenmiş bir cep numarasını listeden çıkarın. İstek başına tek numara.",
        "en": "Remove a previously blocked phone number from your blacklist. One number per request, not idempotent."
      },
      "last_updated": "2026-04-29",
      "doc_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/delete-blacklist",
        "en": "https://www.iletimerkezi.com/en/docs/api/delete-blacklist"
      },
      "md_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/delete-blacklist.md",
        "en": "https://www.iletimerkezi.com/en/docs/api/delete-blacklist.md"
      },
      "mcp_tool": "delete_blacklist",
      "input_schema": {
        "type": "object",
        "properties": {
          "blacklist": {
            "type": "object",
            "properties": {
              "number": {
                "type": "string",
                "description": "Phone number to remove from blacklist. Accepted formats: 905XXXXXXXXX, +905XXXXXXXXX, 5XXXXXXXXX."
              }
            },
            "required": [
              "number"
            ]
          }
        },
        "required": [
          "blacklist"
        ]
      }
    },
    {
      "slug": "inbox",
      "method": "POST",
      "base_url": "https://api.iletimerkezi.com",
      "path": "/v1/get-inbox/json",
      "full_url": "https://api.iletimerkezi.com/v1/get-inbox/json",
      "auth": "api-key-and-hash",
      "request_shape": "request.{authentication}",
      "response_success_shape": "response.{status, orders:{totalRows, order:[{id, date, sender, number, text}]}}",
      "error_codes": [
        200,
        401
      ],
      "notes": "Endpoint apidocs-website#4 drift: dokümante edilmemiş. Yapı canlı testten kanıtlandı.",
      "summary": {
        "tr": "`get-inbox` endpoint'i, iletiMerkezi hesabınıza gelen SMS mesajlarını listeler. Hesabınızdaki numaralara dış dünyadan gönderilen mesajlar (genellikle abonelik iptal anahtar kelimeleri \"RET\", müşteri yanıtları, kısa kod gönderimleri) bu endpoint üzerinden okunur. Yan etkisiz, kontör harcamaz.",
        "en": "The `get-inbox` endpoint returns the SMS messages your iletiMerkezi account has received. Inbound traffic from external senders to your account numbers — most often subscription opt-out keywords (`RET`), customer replies, and short-code messages — surfaces here. The call has no side effects and consumes no credits."
      },
      "title": {
        "tr": "Gelen SMS API (get-inbox)",
        "en": "Inbox API (get-inbox)"
      },
      "description": {
        "tr": "Hesabınıza gelen SMS mesajlarını listeleyin. Tarih, gönderici, içerik ve hesap numarası bilgisini tek yanıtta alın.",
        "en": "List inbound SMS messages received on your account. Date, sender, content, and your account number in one response."
      },
      "last_updated": "2026-04-29",
      "doc_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/inbox",
        "en": "https://www.iletimerkezi.com/en/docs/api/inbox"
      },
      "md_url": {
        "tr": "https://www.iletimerkezi.com/docs/api/inbox.md",
        "en": "https://www.iletimerkezi.com/en/docs/api/inbox.md"
      }
    }
  ],
  "webhook": {
    "type": "configuration",
    "config_url": "panel.iletimerkezi.com/settings/api/webhooks",
    "delivery": {
      "method": "POST",
      "content_type": "application/json",
      "payload_shape": "{report:{id, packet_id, status, to, body}}",
      "status_values": [
        "accepted",
        "delivered",
        "undelivered"
      ]
    },
    "security": {
      "signature": false,
      "recommended_pattern": "url-token",
      "recommended_pattern_example": "POST https://yourapp/webhook?token=SECRET"
    },
    "multi_app_filtering": "All SMS for the account land on a single webhook URL. Filter by report.body marker (e.g., short link domain) for multi-app accounts.",
    "idempotency": {
      "key": "report.id + report.status",
      "pattern": "first callback writes delivery_received_at; subsequent callbacks only update status"
    },
    "doc_url": {
      "tr": "https://www.iletimerkezi.com/docs/api/webhooks",
      "en": "https://www.iletimerkezi.com/en/docs/api/webhooks"
    }
  },
  "llm_resources": {
    "overview_doc": "https://www.iletimerkezi.com/docs/api/overview",
    "error_codes_doc": "https://www.iletimerkezi.com/docs/api/error-codes",
    "sitemap_llm": "https://www.iletimerkezi.com/sitemap-llm.xml",
    "raw_md_pattern": "https://www.iletimerkezi.com/{tr|en}/docs/api/<slug>.md"
  }
}
