{
    "slug": "platform-events",
    "name": "Platform Events",
    "summary": "TikTok, YouTube, Twitch, Kick, Facebook, Instagram ve Trovo eventlerini ve hediye kataloglarını 14 dilde, tek ortak şemada listeler.",
    "description": "Canlı yayın platformlarının sabit eventlerini (katılma, yorum, beğeni, takip, abonelik, bağış, moderasyon…) ve Chrome eklentisinin topladığı global hediye kataloglarını ortak bir şemada döndürür. Her kayıt kalıcı, noktalı bir kimlik taşır (tiktok.comment, tiktok.gift.5655). Dil yalnızca ?lang= ile seçilir; varsayılan tr.",
    "version": "3.0.0",
    "status": "beta",
    "updated": "2026-10-07",
    "methods": [
        "GET",
        "POST"
    ],
    "format": "json",
    "auth": "GET herkese açık; POST ingest.php için X-Ingest-Token",
    "tags": [
        "tiktok",
        "youtube",
        "twitch",
        "kick",
        "facebook",
        "instagram",
        "trovo",
        "events",
        "gifts",
        "i18n",
        "ingest"
    ],
    "consumers": [
        "Launcher",
        "Falcon",
        "EventFabric",
        "Chrome eklentisi"
    ],
    "endpoint": "https://api.streamember.com/platform-events/",
    "docs_html": "https://api.streamember.com/?docs=platform-events",
    "docs_markdown": "https://api.streamember.com/platform-events/API.md",
    "manifest_json": "https://api.streamember.com/?docs=platform-events&format=json",
    "pages": [
        {
            "title": "Ayrıntılı referans",
            "markdown": "https://api.streamember.com/platform-events/README.md",
            "html": "https://api.streamember.com/?docs=platform-events&page=README.md"
        },
        {
            "title": "Ingest sözleşmesi (Chrome eklentisi)",
            "markdown": "https://api.streamember.com/platform-events/INGEST.md",
            "html": "https://api.streamember.com/?docs=platform-events&page=INGEST.md"
        }
    ],
    "examples": [
        {
            "title": "Yapay zekâ için örnek (önerilen ilk istek)",
            "url": "https://api.streamember.com/platform-events/?view=sample&lang=en",
            "description": "Tüm kind'lar, platform başına 5 event ve en fazla 20 temsilî hediye."
        },
        {
            "title": "TikTok sabit eventleri (Türkçe)",
            "url": "https://api.streamember.com/platform-events/?platform=tiktok&lang=tr"
        },
        {
            "title": "Launcher listesi — platform ve kategori grupları",
            "url": "https://api.streamember.com/platform-events/?view=all&group=platform,category&lang=tr",
            "description": "Platform adı ve ikonlarıyla gruplu tam liste."
        },
        {
            "title": "Tek platformun tam listesi (düz)",
            "url": "https://api.streamember.com/platform-events/?view=all&platform=tiktok&lang=tr"
        },
        {
            "title": "YouTube hediyeleri, pahalıdan ucuza",
            "url": "https://api.streamember.com/platform-events/?view=items&platform=youtube&sort=value_desc&lang=vi"
        },
        {
            "title": "Herhangi bir platformdaki moderasyon eventleri",
            "url": "https://api.streamember.com/platform-events/?category=moderation&lang=en"
        },
        {
            "title": "Kimlikle kayıt",
            "url": "https://api.streamember.com/platform-events/?id=tiktok.gift.5655,twitch.cheer&lang=zh-Hant"
        },
        {
            "title": "Kanonik türler (Markdown)",
            "url": "https://api.streamember.com/platform-events/?view=kinds&lang=tr&format=md"
        },
        {
            "title": "Desteklenen diller",
            "url": "https://api.streamember.com/platform-events/?view=languages"
        },
        {
            "title": "TikTok hediyelerinin görüldüğü yayıncı bölgeleri",
            "url": "https://api.streamember.com/platform-events/?view=regions&platform=tiktok"
        }
    ],
    "body_markdown": "## Genel bakış\n\nBu API, canlı yayın platformlarında olabilecek her şeyi **tek bir sözlükte** toplar. Launcher, Falcon ve EventFabric aynı kimlikleri kullanır; böylece bir tetikleyici \"TikTok Gül hediyesi\", \"herhangi bir platformda yorum\" ya da \"her türlü moderasyon eventi\" gibi seçimler yapabilir.\n\nHer kayıt dört seviyeden birine bağlanır:\n\n| Seviye | Örnek | Ne seçer |\n|---|---|---|\n| Kategori (`category`) | `support` | Hediye, bağış, hazine sandığı… |\n| Kanonik tür (`kind`) | `comment` | Hangi platformdan gelirse gelsin her yorum |\n| Platform eventi (`id`) | `youtube.super_chat` | Platformun kendi adıyla tek bir event |\n| Katalog öğesi (`id`) | `tiktok.gift.5655` | Tek bir hediye, Power-up ya da spell |\n\nKayıtlar iki türdür: `record: \"event\"` (elle tanımlı sabit eventler, `data/platforms/*.json`) ve `record: \"item\"` (Chrome eklentisinin topladığı hediyeler ile sabit Twitch Power-up'ları). Katalog **globaldir**: farklı ülkelerde görülen hediyeler tek listede birleşir ve hiçbir öğe silinmez.\n\n## Hızlı başlangıç\n\nYapıyı tüm listeyi indirmeden öğrenmek için:\n\n```text\nGET https://api.streamember.com/platform-events/?view=sample&lang=en\n```\n\nGruplu tam liste (yapay zekâ araçları ve Falcon MCP bunu kullanır): her platform grubunun başında adı ve ikonları, altında kategori grupları ve kayıtlar:\n\n```text\nGET https://api.streamember.com/platform-events/?view=all&group=platform,category&lang=tr\n```\n\n```json\n[\n  {\n    \"group\": \"platform\", \"id\": \"tiktok\", \"name\": \"TikTok\",\n    \"icon\": \"https://api.streamember.com/platform-events/media/platforms/color/tiktok.webp\",\n    \"icon_flat\": \"https://api.streamember.com/platform-events/media/platforms/flat/tiktok.webp\",\n    \"order\": 10, \"units\": [\"tiktok_coin\"], \"item_types\": [\"gift\"], \"count\": 694,\n    \"groups\": [\n      { \"group\": \"category\", \"id\": \"audience\", \"name\": \"İzleyici\", \"order\": 10, \"count\": 6, \"items\": [ … ] },\n      { \"group\": \"category\", \"id\": \"support\", \"name\": \"Destek\", \"order\": 30, \"count\": 674, \"items\": [ … ] }\n    ]\n  }\n]\n```\n\nAynı veri düz liste olarak da alınabilir (sabit eventler önce, hediyeler değere göre, community hediyeleri en sonda):\n\n```text\nGET https://api.streamember.com/platform-events/?view=all&platform=tiktok&lang=tr\n```\n\n```json\n[\n  { \"id\": \"tiktok.join\", \"record\": \"event\", \"platform\": \"tiktok\", \"platform_name\": \"TikTok\",\n    \"kind\": \"join\", \"kind_name\": \"Yayına katılma\", \"category\": \"audience\", \"category_name\": \"İzleyici\",\n    \"native\": \"join\", \"name\": \"Yayına katılma\", \"description\": null,\n    \"icon\": \"https://api.streamember.com/platform-events/media/tiktok/events/join.webp\", \"order\": 10 },\n  { \"id\": \"tiktok.gift.5655\", \"record\": \"item\", \"platform\": \"tiktok\", \"platform_name\": \"TikTok\",\n    \"kind\": \"gift\", \"kind_name\": \"Hediye\", \"category\": \"support\", \"category_name\": \"Destek\",\n    \"item_type\": \"gift\", \"native_id\": \"5655\", \"name\": \"Gül\", \"description\": null,\n    \"value\": { \"amount\": 1, \"unit\": \"tiktok_coin\" }, \"icon\": \"https://p16-webcast.tiktokcdn.com/…\",\n    \"flags\": { \"community\": false, \"streakable\": true }, \"attributes\": { \"tiktok.gift_type\": 1 },\n    \"langs\": [\"tr\", \"vi\", \"zh-Hans\"], \"regions\": [\"VN\"],\n    \"first_seen\": \"2026-10-07T11:48:56Z\", \"last_seen\": \"2026-10-07T11:48:56Z\" }\n]\n```\n\n## Parametreler\n\n| Parametre | Tür | Varsayılan | Açıklama |\n|---|---|---|---|\n| `lang` | metin | `tr` | Her biçimde kabul edilir (`tr`, `tr-TR`, `zh_TW`) ve 14 koddan birine çözülür. Başlık okunmaz. |\n| `view` | metin | `events` | `sample`, `platforms`, `categories`, `kinds`, `events`, `items`, `all`, `languages`, `regions` |\n| `id` | liste | — | Virgülle ayrılmış kimlikler. Verilirse `view` yok sayılır. |\n| `group` | liste | — | `platform`, `category`, `kind` ya da virgülle iç içe sıra (`platform,category`). `events`, `items`, `all` ve `id` ile kullanılır. |\n| `platform` | liste | tümü | `tiktok,youtube,twitch,kick,facebook,instagram,trovo` |\n| `kind` / `category` | liste | — | `kind=gift,donation`, `category=moderation` |\n| `item_type` | liste | tümü | `gift`, `power_up`, `spell`, `sticker` |\n| `q` | metin | — | İstenen dilde ve İngilizcede ad, kimlik ya da native alanında arama. |\n| `community` | metin | `last` | `last` (sona), `exclude` (çıkar), `only` (yalnızca community) |\n| `min_value` / `max_value` | sayı | — | Platform biriminde değer aralığı (yalnızca öğeler). |\n| `sort` | metin | `default` | `default`, `value`, `value_desc`, `name`, `newest` |\n| `fields` | liste | tümü | Yalnızca istenen alanlar: `id,name,value,icon` |\n| `details` | bool | `0` | `{ meta, data }` sarmalayıcısı: çözülen dil, filtreler, toplam. |\n| `format` | metin | `json` | `json` ya da `md` (yapay zekâ araçları için Markdown tablo). |\n\nBoolean değerler `1`, `true`, `yes`, `on` kabul eder.\n\n## Yanıt biçimi\n\nVarsayılan yanıt düz bir dizidir (`view=sample` bir nesnedir). Toplam kayıt `X-Total-Count` başlığında, çözülen dil `Content-Language` başlığında gelir. Her yanıtta `ETag` vardır; `If-None-Match` gönderen istemci değişiklik yoksa `304` alır.\n\n**Gruplu yanıt** (`group=…`): her düğüm `group` (seviye), `id`, `name` (istenen dilde), `order`, `count` (grubun toplam kaydı) taşır. Platform düğümü ayrıca `icon`, `icon_flat`, `units`, `item_types` içerir. Alt seviyesi olan düğümde `groups`, en alttaki düğümde `items` (o grubun bütün kayıtları) bulunur. Grup sırası platform `order` ve taksonomi sırasıdır; kayıt sırası düz listedekiyle aynıdır.\n\nHer kayıt grup başlıkları için `platform_name`, `kind_name` ve `category_name` alanlarını da taşır; düz liste tek başına gruplanabilir.\n\n**Event alanları:** `id`, `record`, `platform`, `kind`, `category`, `native` (platformdaki ad), `name`, `description`, `icon` (bizim CDN'imiz, yoksa `null`), `order`.\n\n**Öğe alanları:** `id`, `record`, `platform`, `kind`, `category`, `item_type`, `native_id`, `name`, `description`, `value` (`{amount, unit}` ya da bilinmiyorsa `null`), `icon` (platformun URL'si, kopyalanmaz), `flags` (`community`, `streakable`), `attributes` (platforma özgü, `{platform}.{alan}`), `langs`, `regions` (görüldüğü yayıncı ülkeleri, yalnızca bilgi), `first_seen`, `last_seen`, `order` (platformun `items_order` değeri; sabit eventlerle birlikte sıralamak için).\n\n**Bölge kapsamı** (`view=regions`): katalogdaki hediyelerin görüldüğü her yayıncı bölgesi için `region` (ISO 3166-1 alpha-2), `items` (o bölgede görülen hediye sayısı), `last_seen`, `platforms`. Hangi ülkelerden yayıncı taranması gerektiğini planlamak içindir.\n\nDeğer birimleri: `tiktok_coin`, `youtube_jewel`, `twitch_bit`, `kick_kick`, `trovo_mana`, `trovo_elixir`.\n\nKategoriler, 35 kanonik tür, platform başına eventler ve dil kuralları [Ayrıntılı referans](README.md) sayfasındadır.\n\n## Ingest (yazma)\n\nHediye listeleri `POST ingest.php` ile yalnızca Stream Ember Chrome eklentisinden gelir. Gövde sözleşmesi, hata kodları ve platform eşleme rehberi: [Ingest sözleşmesi](INGEST.md). JSON Schema: `GET ingest.php?schema=1`.\n\n## Hatalar\n\n| HTTP | `error` | Ne zaman |\n|---|---|---|\n| 400 | `invalid_parameter` | Bilinmeyen `view`, `platform`, `sort`, `community` ya da `format`. |\n| 405 | `method_not_allowed` | `index.php`'ye GET dışı istek. |\n| 500 | `internal_error` | Veri dosyası okunamadı; `message` ayrıntıyı içerir. |\n\n## Önbellek ve sınırlar\n\n- Yanıtlar `Cache-Control: public, max-age=300` ve veri sürümünden üretilen `ETag` taşır; ingest sonrası ETag değişir.\n- Sayfalama ve kayıt sınırı yoktur: her yanıt eşleşen kayıtların tamamını döner. Yapıyı öğrenmek için önce `view=sample`.\n- Ad bulunamazsa sırayla yakın dil (`zh-Hant` ↔ `zh-Hans`, `pt` ↔ `es`), `en`, `tr` ve öğenin bilinen ilk dili denenir.\n\n## Değişiklik geçmişi\n\n- **3.0.0** — `limit`/`page` ve `has_more` kaldırıldı; `items`, `all` ve gruplu yanıtlar her zaman tam listedir.\n- **2.2.0** — `view=regions`: katalogdaki hediyelerin görüldüğü yayıncı bölgeleri (Chrome eklentisi toplama turunu planlamak için kullanır).\n- **2.1.0** — `group` parametresi (platform → kategori → tür iç içe gruplar, platform başlığında ad ve ikonlar); kayıtlara `platform_name`, `kind_name`, `category_name`.\n- **2.0.0** — Sıfırdan yeniden yazıldı. Noktalı kimlikler, 36 kanonik tür ve 7 kategori, 14 dil, global ve kalıcı hediye kataloğu, Chrome eklentisi için `ingest.php`, `view` parametresi. v1 kimlikleri ve Tikfinity'ye otomatik bağımlılık kaldırıldı.\n"
}