
🏠 Yuva
Umut İnşa Et
Her ailenin yuva diyebileceği bir yeri olmasına yardım et — vergiden muaf, kâr amacı gütmeyen kuruluşumuz OseloHelp.com aracılığıyla finanse edilir.
Küresel müzik dağıtımı: çok yakında!
3.004.606+ Sanatçı Sayfası · 8.684.003+ İşletme Sayfası · 417+ Dilde mevcut

İlk bağlantınız tek bir ekrana sığar.
Bu adresi tarayıcınızda açın. Örnek etkinlikleri hemen görürsünüz.
https://timtim.live/api/partner-network/demo?city=WashingtonGiriş yapın, kim olduğunuzu söyleyin ve Test Anahtarı Oluştur'a basın. Anahtar tt_test_ ile başlar ve sadece örnek etkinlikleri görür.
Bir şehirdeki etkinlikleri isteyin.
curl "https://api.timtim.live/v1/events?city=Washington&category=music" \
-H "Authorization: Bearer tt_test_YOUR_KEY"Her etkinliğin adı, tarihi, yeri, görseli, fiyatı ve kartınız için hazır etiketleri vardır.
Size verdiğimiz buy_url'yi kullanın. Hepsi bu. Satışın kaynağını TimTim.Live o bağlantının içinde kaydeder.
Gönderdiğiniz kişileri, satılan biletleri ve kazançları panelinizde görün ya da isteyin.
GET https://api.timtim.live/v1/earningshttps://api.timtim.live/v1Anahtarınızı Authorization başlığında gönderin. Test anahtarları (tt_test_) sadece örnek etkinlikleri görür. Site anahtarları (tt_pk_live_) bir web sayfasında durabilir ve sadece etkinlikleri okur. Sunucu anahtarları (tt_sk_live_) sunucunuzda kalır ve kazançları da okuyabilir. Bir anahtarı sadece bir kez gösteririz — güvende tutun.
curl "https://api.timtim.live/v1/events?city=Washington&category=music" \
-H "Authorization: Bearer tt_test_YOUR_KEY"const res = await fetch("https://api.timtim.live/v1/events?city=Washington&category=music", {
headers: { Authorization: "Bearer tt_test_YOUR_KEY" },
});
const { events, next } = await res.json();
for (const event of events) {
console.log(event.name, event.display.date_label, event.tickets.buy_url);
}// Node 18+ — keep server keys (tt_sk_live_) on the server
const res = await fetch("https://api.timtim.live/v1/events?city=Washington", {
headers: { Authorization: `Bearer ${process.env.TIMTIM_KEY}` },
});
if (!res.ok) {
const problem = await res.json();
throw new Error(`${problem.title} (${problem.request_id})`);
}
const { events } = await res.json();import os, requests
res = requests.get(
"https://api.timtim.live/v1/events",
params={"city": "Washington", "category": "music"},
headers={"Authorization": f"Bearer {os.environ['TIMTIM_KEY']}"},
)
res.raise_for_status()
for event in res.json()["events"]:
print(event["name"], event["tickets"]["buy_url"])<?php
$ch = curl_init("https://api.timtim.live/v1/events?city=Washington&category=music");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer " . getenv("TIMTIM_KEY")]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch), true);
foreach ($data["events"] as $event) {
echo $event["name"] . " " . $event["tickets"]["buy_url"] . PHP_EOL;
}citycountrycategoryfromtochanged_sincecommissionedminimum_earningsnearlimitSon eşitleme zamanınızı kaydedin ve changed_since olarak gönderin. Sadece değişen etkinlikleri alırsınız — iptaller ve biletleri tükenen gösteriler dahil. Webhook gerekmez. Göstermeyi bırakman gereken etkinlikler withdrawn listesinde gelir.
GET https://api.timtim.live/v1/events?changed_since=2026-10-06T10:00:00ZYanıtta next varsa, sonraki sayfayı almak için onu cursor= olarak geri gönderin. next boş olduğunda her şeyi almışsınız demektir.
GET https://api.timtim.live/v1/events?city=Paris&cursor=eyJtIjoiZCIs…Her etkinlikte earn vardır. earn.eligible false ise etkinliğin ödülü yoktur — yine de göstermeye değer. true ise earn.description ne alacağınızı söyler, örneğin "uygun bilet başına $5". Satın alma iade edilirse ödül geri alınır.
Panelinizde bir toplu akış kaydedin, sonra kapsadığı tüm etkinlikleri tek bir sıkıştırılmış dosyada indirin: GET /v1/bulk/FEED_ID.ndjson.gz veya .csv.gz, sunucu anahtarınızla. Yalnızca değişenler için ?changed_since= ekleyin, kaldırılan etkinlikler de dahil. Test anahtarları şimdiden deneyebilir; gerçek kullanım için TimTim.Live incelemesi gerekir.
GET https://api.timtim.live/v1/bulk/bfs_YOURFEED.ndjson.gz?changed_since=2026-10-06T00:00:00ZBüyük ortaklar alıcıları kendi uygulamalarında tutabilir. Satışta ne olduğunu görmek için GET /v1/events/EVENT_ID/tickets isteyin, sonra alıcının seçimiyle POST /v1/orders gönderin. Alıcı için açacağınız bir TimTim.Live ödeme bağlantısı alırsınız; satış doğrudan şirketinize yazılır. Test anahtarları bunu şimdi deneyebilir. Gerçek kullanım için TimTim.Live incelemesi ve kartla ödemenin açık olması gerekir.
POST https://api.timtim.live/v1/orders (Idempotency-Key: …) {"event_id": "evt_test_washington_konpa", "ticket_type_id": "tt_test_washington_konpa", "quantity": 2, "buyer_email": "…", "buyer_name": "…"}GET /v1/offers ödül ödeyen her etkinliği bir teklif olarak verir: organizatör, satın alınabilecek tarihler, fiyat, yer ve ödül. Müşteriniz bunu takip edilen bağlantınız üzerinden etkinleştirir, ödül de /v1/earnings üzerinden şirketinize ödenir. Test anahtarları örnek teklifleri görür. Gerçek teklifler için TimTim.Live incelemesi gerekir. Kart ödemelerini doğrudan eşleştirmek bir kart ağı veya bankayla anlaşma gerektirir ve bağlı değildir.
GET https://api.timtim.live/v1/offers?country=USstatus değeri scheduled, postponed, rescheduled, cancelled, sold_out veya completed olur. tickets.availability değeri available, limited, sold_out, not_on_sale veya ended olur. Bir etkinlik iptal edilince onu kaldırın.
GET https://api.timtim.live/v1/events/evt_test_washington_konpaTest anahtarları: dakikada 60 istek. Gerçek anahtarlar: dakikada 120. Daha hızlı giderseniz Retry-After ile birlikte 429 yanıtı alırsınız; bu, kaç saniye beklemeniz gerektiğidir.
TimTim.Live organizatörlerinin oluşturduğu ve paylaşmayı seçtiği etkinlikler. Başka bilet sitelerinden aldığımız etkinlikler asla dahil edilmez, çünkü onları paylaşma hakkımız yok.
Alıcı adları, e-posta adresleri, ev adresleri, telefon numaraları ve kart bilgileri. Partner API etkinlik bilgisini paylaşır, üyelerimizi değil.
Tek satır HTML, etkinlikleri herhangi bir sitede gösterir. Bir site anahtarı (tt_pk_live_) kullanın ve sitenizi anahtarın izinli listesine ekleyin. Anahtar yoksa örnek etkinlikler gösterir.
<script src="https://timtim.live/widget/events.js"
data-key="tt_pk_live_YOUR_WEBSITE_KEY"
data-city="Washington" data-category="music" async></script>Seçenekler: data-city, data-country, data-category, data-limit (1–24), data-earn="true", data-lang ve data-color.
İsteğe bağlı. Panelinizde bir OAuth istemcisi oluşturun. Sonra istemci kimliğini ve sırrını bir saatlik erişim jetonuyla değiştirin ve anahtar yerine bu jetonu gönderin. Sır, API isteklerinizle asla gitmez ve istemcinin sahip olduğundan daha az yetki (scopes) isteyebilirsiniz.
# 1. Trade the client ID and secret for a one-hour token
curl -u "$CLIENT_ID:$CLIENT_SECRET" \
-d grant_type=client_credentials -d "scope=events:read events:details" \
https://api.timtim.live/v1/oauth/token
# → {"access_token":"tt_at_…","token_type":"Bearer","expires_in":3600,"scope":"events:read events:details"}
# 2. Use the token exactly like a key
curl -H "Authorization: Bearer $ACCESS_TOKEN" "https://api.timtim.live/v1/events?city=Washington"Bir jetonu erken bitirmek için onu aynı istemci kimliği ve sırla POST ile /v1/oauth/revoke adresine gönderin. İstemciyi panelinizde kapatırsanız tüm jetonları bir anda biter.
İsteğe bağlı. Panelinizde bir sunucu anahtarı, test anahtarı veya OAuth istemcisinin altındaki "Sunucularıma kilitle" bölümünü açın ve sunucularınızın genel adreslerini yazın. Başka her yerden gelen çağrılar — ve token istekleri — doğru anahtarla bile ip_not_allowed ile reddedilir.
İstemci sertifikaları (mTLS): TLS istemci sertifikanızı bir anahtara bağlayın, sonra https://api.timtim.live adresini bu sertifikayla çağırın. Her çağrı o sertifikayı göstermelidir; TLS el sıkışması, özel anahtarına sahip olduğunuzu kanıtlar.
# Your certificate's SHA-256 — paste this (or the PEM) under "Lock to my servers"
openssl x509 -in client.crt -noout -fingerprint -sha256
# Every call then presents the certificate
curl --cert client.crt --key client.key \
-H "Authorization: Bearer $KEY" "https://api.timtim.live/v1/events?city=Washington"WordPress mi kullanıyorsunuz? TimTim.Live Events'i kurun: kendi TimTim.Live bilet bağlantılarınızla etkinlikleri gösteren bir blok ve bir kısa kod. TimTim.Live tarafından yapıldı, yalnızca timtim.live ile konuşur ve yalnızca timtim.live üzerinden güncellenir.
Dosyayı Eklentiler → Yeni ekle → Eklenti yükle bölümünden yükleyin. Site anahtarınızı Ayarlar → TimTim.Live Events bölümüne yapıştırın ve Test Connection düğmesine basın. Sonra TimTim.Live Events bloğunu istediğiniz sayfaya ekleyin.
WordPress eklentisini indir[timtim_events city="Washington" category="music" limit="6"]Aynı etkinlikler JSON Feed, RSS, XML, CSV veya Google Calendar, Apple Calendar ve Outlook'un abone olabileceği bir takvim (.ics) olarak. Akış okuyucular başlık gönderemez, bu yüzden site anahtarını veya test anahtarını ?key= içine koyun. Sunucu anahtarını asla bir bağlantıya koymayın.
https://timtim.live/v1/feeds/events.json?key=tt_pk_live_YOUR_KEY&city=Paris
https://timtim.live/v1/feeds/events.rss?key=tt_pk_live_YOUR_KEY&city=Paris
https://timtim.live/v1/feeds/events.xml?key=tt_pk_live_YOUR_KEY&city=Paris
https://timtim.live/v1/feeds/events.csv?key=tt_pk_live_YOUR_KEY&city=Paris
https://timtim.live/v1/feeds/events.ics?key=tt_pk_live_YOUR_KEY&city=ParisPanelinizde "Adres Ekle"ye basın; bir şey değişince o adrese mesaj göndeririz: event.changed veya earnings.changed. Webhook'lar isteğe bağlıdır — changed_since size aynı bilgiyi verir.
{
"id": "whd_8Fk2mQxR7tLp",
"type": "event.changed",
"created_at": "2026-10-06T15:04:05.000Z",
"mode": "live",
"data": {
"event": {
"id": "ev_…",
"name": "…",
"status": "cancelled",
"tickets": {
"availability": "ended",
"buy_url": "https://timtim.live/b/…"
},
"…": "the same event object as GET /v1/events"
}
}
}Her mesajı kontrol edin: mesaj sizin gizli anahtarınızla imzalıdır. Beş dakikadan eski her şeyi reddedin ve daha önce işlediğiniz bir TimTim-Delivery-Id'yi yok sayın.
// Node — Express with the RAW body (do not JSON.parse before checking)
import crypto from "node:crypto";
app.post("/timtim", express.raw({ type: "application/json" }), (req, res) => {
const header = req.get("TimTim-Signature") ?? ""; // t=1700000000,v1=<hex>
const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
const body = req.body.toString("utf8");
const expected = crypto.createHmac("sha256", process.env.TIMTIM_WEBHOOK_SECRET)
.update(`${parts.t}.${body}`).digest("hex");
const fresh = Math.abs(Date.now() / 1000 - Number(parts.t)) <= 300;
const same = expected.length === (parts.v1 ?? "").length &&
crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
if (!fresh || !same) return res.sendStatus(400);
const message = JSON.parse(body); // { id, type, mode, data }
if (alreadyHandled(req.get("TimTim-Delivery-Id"))) return res.sendStatus(200);
// message.type === "event.changed" → message.data.event
// message.type === "earnings.changed" → message.data.earning
res.sendStatus(200);
});10 saniye içinde herhangi bir 2xx ile yanıt verin. Vermezseniz 1 dakika, 5 dakika, 30 dakika, sonra 2, 6, 12 ve 24 saat sonra tekrar deneriz, sonra dururuz. Yönlendirmeleri asla takip etmeyiz.
Test anahtarları TEST ETKİNLİĞİ — GERÇEK PARA YOK etiketli örnek etkinlikler alır. Bir buy_url açın, Test Bileti Al'a basın, sonra kazançlarınızı isteyin. Bir iadeyi deneyin ve geri alındığını görün.
Hatalar kendilerini basit sözlerle, bir başlık ve sonra ne yapılacağıyla açıklar. Her yanıtta bir TimTim-Request-Id bulunur. Bize gönderin, isteğinizi bulalım.
missing_keyPlease add your TimTim.Live key. Send it as: Authorization: Bearer tt_test_… — get a test key at /partners/dashboard.invalid_keyWe do not recognise that key. Check you copied the whole key, or make a new one at /partners/dashboard.revoked_keyThat key was switched off. Make a new key at /partners/dashboard.partner_inactiveThis partner account cannot use live keys right now. Your test key still works. Contact TimTim.Live partnerships to review the account.missing_scopeThis key is not allowed to do that. Earnings need a secret key (tt_sk_live_…) or a test key, used from your server.domain_not_allowedThis website is not allowed to use this key. Add the website to the key's allowed domains at /partners/dashboard.unknown_parameterWe do not know one of those parameters. See /partners/docs for the list.invalid_countryWe could not read that country. Use a two-letter code, for example country=US or country=FR.invalid_dateWe could not read that date. Dates look like 2026-10-20.invalid_changed_sinceWe could not read changed_since. Use a full time, for example changed_since=2026-10-06T10:00:00Z.invalid_booleanThat value must be true or false. For example commissioned=true.invalid_numberThat value must be a number. For example minimum_earnings=5.invalid_nearWe could not find that place. Try near=Paris,FR or city=Paris&country=FR.invalid_locationWe could not read that location. Send lat, lng and optionally radius in kilometres.invalid_limitlimit must be between 1 and 100. Leave it out to get 20.invalid_cursorThat cursor is not one we gave you. Use the `next` value from the previous page exactly as it came.event_not_foundWe could not find that event. It may have been removed, or it is not shared with partners.capability_requiredCard-linked offers are not switched on for your account. Offers are an enterprise feature. Your test key shows sample offers now; ask TimTim.Live partnerships to review your account for live offers.server_key_requiredThis is for your server only. Use a secret key (tt_sk_live_…) or a test key from your server, never a website key in a web page.commerce_not_enabledSelling tickets in your own app is not switched on for your account. This is an enterprise feature (EMBEDDED_CHECKOUT). Your test key can try it now; ask TimTim.Live partnerships to review your account. Until then, use each event's buy_url.checkout_not_openCard payments are not open on TimTim.Live yet. Send the buyer to the event's buy_url instead. Your test key can still rehearse orders.ticket_not_availableThat ticket cannot be bought right now. It may be sold out, not on sale yet, or no longer on sale. Ask /v1/events/{id}/tickets for what is on sale now.order_invalidWe could not read that order. See /partners/docs for the fields an order needs.idempotency_key_requiredPlease send an Idempotency-Key header. 8 to 80 letters, digits, - or _. Send the same key again to retry safely — you will get the same order, never a second one.order_not_foundWe could not find that order. Only orders your company began with this kind of key (test or live) can be read here.bulk_not_enabledBulk feeds are not switched on for your account. This is an enterprise feature (BULK_FEEDS). Your test key can try it now; ask TimTim.Live partnerships to review your account. Until then, page through /v1/events or the feeds.bulk_not_foundWe could not find that bulk feed. Use the address shown on /partners/dashboard: /v1/bulk/<subscription id>.ndjson.gz or .csv.gz.bulk_too_soonA full file was made for this feed a few minutes ago. Full files can be made every 15 minutes. For what changed since, add changed_since=<time> — that is not limited.event_withdrawnThis event is no longer shared with partners. Stop showing it and remove its buy_url. Nothing else is needed — your old link still takes people to the event page.invalid_trackWe could not read that tracking signal. Send {"type":"impression"}, {"type":"event_view","event_id":"…"} or {"type":"event_click","event_id":"…"}. Sales are recorded by TimTim.Live, never sent from a page.not_foundThere is nothing at this address. The Partner API lives at /v1/events, /v1/events/{id}, /v1/offers and /v1/earnings.method_not_allowedThis address does not answer that method. The Allow header lists the methods it answers.key_in_urlSend your key in the Authorization header. Only /v1/feeds reads a key from the URL (?key=). Everywhere else use Authorization: Bearer <key> — keys in URLs end up in logs.ip_not_allowedThis key only works from your listed servers. Call from an address on the key's allowlist, or change the list at /partners/dashboard.certificate_requiredThis key needs your client certificate. Connect to https://api.timtim.live with the TLS client certificate pinned to this key.certificate_mismatchThat is not the certificate pinned to this key. Use the certificate whose SHA-256 is on your dashboard, or pin the new one there.rate_limitedToo many requests — please slow down. Wait the number of seconds in Retry-After, then try again.server_errorSomething went wrong on our side. Please try again. If it keeps happening, send us your TimTim Request ID.Test anahtarınız hemen çalışır. Canlı anahtarlar için TimTim.Live'dan bir kişi şirketinizin adına, web sitenize ve etkinlikleri nasıl göstereceğinize bakar. Cevabı panelinizde görürsünüz.
Sürüm 1 sadece büyür. Yeni şeyler ekleriz. Var olanı silmeyiz ve adını değiştirmeyiz.
Amacımız
Herkesi insanlık için bir miras bırakmaya yardım etmeye davet ediyoruz.
Hepimizden Uzun Yaşayacak Üç Göreve Katıl

Umut İnşa Et
Her ailenin yuva diyebileceği bir yeri olmasına yardım et — vergiden muaf, kâr amacı gütmeyen kuruluşumuz OseloHelp.com aracılığıyla finanse edilir.

İnsanlığı Müzikle Koru
İnsanlığın müziğini ve hikâyelerini önümüzdeki 1.000+ yıl için koru.

Yeni Nesil Kâşiflere İlham Ver
Uzayı keşfetme fırsatını herkese aç.

Roketle fırlatılmak yerine pistten havalanan bir uzay uçağının tasarımı. Bu bir konsept, tamamlanmış bir araç değil.
Nasıl çalıştığını görünHer şey nasıl bağlanıyor
Buradaki hiçbir şey ayrı bir iş değil — her aşama bir sonrakini güçlendirir.
Tek amaç. Birbirini güçlendiren birçok iş.
İster bir şarkı dinle, ister bir hikâye paylaş, ürünleri giy, bir konsere git, şarkı sözlerini çevir, bir ülke öner ya da sadece bir arkadaşına anlat — nesiller boyu sürmek için tasarlanmış bir şeyin parçası olursun.
Herkes katılabilir. Hiçbir katkı küçük değildir.
TimTim.Live — Dünyayı Müzikle Keşfet.
195 ülkede insanları birbirine bağlıyoruz; şu anda 3.004.606+ sanatçı sayfası var ve 4+ milyona kadar büyüyor · 8.684.003+ işletme sayfası var ve 400 milyona kadar büyüyor · site dünya genelinde 417 yerel dile çevrilecek.
TimTim.Live şimdiden 195 ülkenin tamamında 233.870 yeri haritalıyor ve nüfusu 1.000 kişi kadar küçük topluluklara ulaşıyor; bunların arasında:
257 eyalet • 1.690 il • 4.808 kontluk • 41.161 ilçe • 13.471 şehir • 117.896 kasaba • 40.988 köy
© 2026 TimTim.Live. Tüm Hakları Saklıdır.