FREE Global Distribution Live: Submit Your Song or Video
Увайсці

195 Краін3 400 716 Месцаў3 022 009+ Старонак артыстаў 13 577 979+ Старонак бізнесу · Даступна на 417+ мовах

Хуткі запуск

Ваша першая інтэграцыя працуе на адным экране.

Паспрабуйце цяпер - без ключа, без падпісвання

Адкрыць гэты адрас у Вашым браўзэры Вы адразу ўбачыце прыклады здарэння.

https://timtim.live/api/partner-network/demo?city=Washington
  1. 1

    Атрымаць праверку ключа

    Падпісвацца, скажы нам хто вы і націсніце тэставы ключ. Пачынаецца з tt_test_ і бачцыцца толькі ўзоры здарэнняў.

  2. 2

    Знайсці падзеі

    Запытваць аб падзеях у горадзе.

    curl "https://api.timtim.live/v1/events?city=Washington&category=music" \
      -H "Authorization: Bearer tt_test_YOUR_KEY"
  3. 3

    Паказаць падзею

    Кожная падзея мае назву, дату, месца, малюнак, цэны і гатова зробленыя этыкеткі вашай карты.

  4. 4

    Выкарыстоўваць _адрас купінаў

    Выкарыстайце крыніцу купіна. Вось і ўсё. Асобныя спасылкі - TimTim.Live.

  5. 5

    Прагляд вынікаў

    Глядзіце, як людзі адпраўляюць, купляюць і зарабляюць на панэль прыладаў, ці просіць у іх.

    GET https://api.timtim.live/v1/earnings

TimTim.Live Стан

Спасылка

Дзе пасылаць запыты

https://api.timtim.live/v1

Ваш ключ злучэння

Адправіць ваш ключ у загаловак аўтарызацыі. Праверка ключоў (tt_ test_) можна ўбачыць толькі спіс здарэнняў. Ключы веб- сайтаў (tt_ pk_ live_) могуць сядзець на вэб- старонцы і чытаць толькі падзеі. Ключы сервера (tt_ ssk_ live_) знаходзіцца на серверы і могуць таксама атрымаць заробкі. Аднойчы мы паказваем ключ - трымаць яго ў бяспецы.

curl
curl "https://api.timtim.live/v1/events?city=Washington&category=music" \
  -H "Authorization: Bearer tt_test_YOUR_KEY"
JavaScript
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
// 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();
Python
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
<?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;
}

Фільтры

city
Падзеі ў гэтым горадзе.
country
Кадзінскі код, напрыклад, US.
category
Напрыклад, музыка, фестываль альбо канферэнцыя.
from
Падзеі ў гэтую дату або пасля (2026- 10- 20).
to
Падзеі на або да гэтай даты.
changed_since
Падзеі, якія змяніліся пасля гэтага часу.
commissioned
ісціна = падзеі, якія плацяць узнагаду.
minimum_earnings
Толькі выпадкі, якія плацяць хоць бы так шмат за кожны квитак.
near
Месца, напрыклад побач=Парыж, FR.
limit
Колькі падзеі на старонцы, ад 1 да 100 (20, калі вы пакінеце).

Толькі сказаць мне, што змянілася

Запісаць час апошняй сінхранізацыі і даслаць яго як зменены_ пасля. Вы атрымаеце толькі змененыя падзеі, уключаючы скасаванне працы і выпраўленыя праграмы. Не трэба вэб-хухка. Падзеі, якія вы павінны перастаць паказваць, вярнуліся ў спіс выключана.

GET https://api.timtim.live/v1/events?changed_since=2026-10-06T10:00:00Z

Больш адной старонкі

Калі адказ далей, адпраўляйце яго назад як курсор=, каб атрымаць на наступнай старонцы. Калі наступная пустая, у вас ёсць усё.

GET https://api.timtim.live/v1/events?city=Paris&cursor=eyJtIjoiZCIs…

Зарабшэнне

Кожная падзея зарабляе. Калі гатова, то падзея не мае ўзнагароды. Яно ўсё яшчэ варта паказаць. Калі гэта праўда, то $3. scription кажа, што вы атрымаеце, напрыклад, "$5 за атрыманы кампенсацыйны билет". Калі пакуп будзе вярнута, узнагарода будзе зваротна зваротная.

Колькасць стужак (у адным файле)

Захаваць масовую стужку на панэлі прылад. Затым загрузіць усе падзеі, якія яны накладаюць у адзін сапсаваны файл, з вашым ключом сервера: Get / v1/bulk/FEED_ID.ndjson.gz або .csv.gz. Дадаць? changed_ since= толькі для таго, што змянілася, уключаючы здарэнні, занесеныя ўніз. Тэст- ключы могуць паспрабаваць цяпер. Выкарыстанне ў жыцці патрабуе агляду TimTim.Live.

GET https://api.timtim.live/v1/bulk/bfs_YOURFEED.ndjson.gz?changed_since=2026-10-06T00:00:00Z

Прадаць билеты ў вашай прыкладання (знешкоджаная гандаль)

Вялікі партнёры могуць трымаць купцаў у сваёй праграме. Спытайце GET / v1/events/EVENT_ID/tickets для продажу, а потым POST / v1/ парадкі з выбарам купца. Вы атрымаеце TimTim.Live кампаніі, каб адчыніць для купца; прадаж будзе крэдытавана вашай кампаніе непасрэдна. Праверыць клавішы могуць паспрабаваць цяпер. Выкарыстаць патрэбу агляду ў жыцьце TimTim.Live і ўключылі выплаты картаў.

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": "…"}

Стыль зліццявання картаў (банкі і ўзнагароды праграм)

GEET / v1/ofers паказвае кожную падзею, якая плаціць ўзнагароду ў прапанове. Кожная прапаноўка мае арганізатара, даты, якія вы можаце купіць, кошт, месца і ўзнагароду. Ваш кліент уключае яе праз спасылку, на якой вы карыстаецеся, і ўзнагарода будзе заплацяцца вашай кампаніі праз / v1/зарабы. Праверка ключоў убачыць прапановы фармат. Жыццё мае патрэбу ў прапанове TimTim.Live. Адпавяданне выплат картаў непасрэдна патрабуе дагадкі з сеткай картаў ці банкам і не падключаецца.

GET https://api.timtim.live/v1/offers?country=US

Стан падзеі і ўкладкі

Стан запланаваны, адтэрмінаваны, адменены, распазнаваны або завяршены. Калі падзея скасавана, знішчыце яе.

GET https://api.timtim.live/v1/events/evt_test_washington_konpa

Як хутка вы можаце спытаць

Ключы праверкі: 60 запытаў на хвіліну. Ключы ўživо: 120 на хвіліну. Гэта хутка атрымлівае 429 адказ пры паўторы- пасля, колькасць секунд чакаць.

Якія падзеі вы атрымліваеце

Падзеі, якія TimTim.Live арганізатары ствараюць і выбіраюць для апублікавання. Падзеі, якія мы імпартоўвалі з іншых сайтаў-кантактаў, ніколі не ўключаюцца, таму што мы не маем права дзяліцца імі.

Што мы ніколі не дасылаем

Пазнакі купцаў, адрасы электроннай пошты, адрасы дома, нумары тэлефонаў і падрабязнасці картаў. Partner API дзяліцца інфармацыяй падзеі, а не нашымі сябрамі.

Віджэт Web- сайту

Адзін радок HTML паказвае падзеі на любым сайце. Выкарыстайце ключ веб- сайта (tt_ pk_live_) і дадайце свой веб- сайт у спіс дазволеных ключоў. Не ключом ён паказвае ўзор падзеяў.

<script src="https://timtim.live/widget/events.js"
        data-key="tt_pk_live_YOUR_WEBSITE_KEY"
        data-city="Washington" data-category="music" async></script>

Параметры: град, краіна дадзеных, катэгорыя, мяжа дадзеных (1– 24), атрыманне дадзеных=" ісціна", дадзены- ланг і колер.

OAuth 2. 0 (вялікая інтэграцыя)

Дадатковы. Зрабіць кліент OAuth на панэлі прылад. Кіраваць яго ідэнтыфікатарам кліента і сакрэтным ключом доступу, які працягнецца ад гадзіны. Адправіць гэты ключ замест ключа. Таямніца ніколі не падарожнічае з дапамогай вашых выклікаў з боку API, і вы можаце папрасіць менш вобласці бачнасці, чым кліент.

# 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"

Каб пакінуць значак рана, POST яго ў /v1/oauth/revoke з тым жа ідэнтыфікатарам кліента і сакрэт. Адключэнне кліента на панэлі прылад канчатак ўсіх яго значкоў адначасова.

Заблакаваць ключ да вашых сервераў

Дадатковы. На вашай панэлі прылад знайсці ключ сервера, праверка або кліент OAuth. Адкрыць "Заблакаваць на маіх серверах" і паказаць ім публічныя адрасы. Выклікі і запыты ключа з любога месца адмоўляюцца з дапамогай ip_ not_ dozволенага, нават калі ён зададзены правільным ключом.

Сертыфікаты кліента (mTLS), для вялікіх кампаній: дайце нам ID- карту сервера і перашпільце яе да ключа. Тады выклічце https://api.tim. жыць з ім. Мы адказваем толькі на сервер, які змяшчае гэты сертыфікат.

# 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"

Comment=Прыватная бібліятэкаName

Выкарыстаць WordPress? Усталяваць TimTim.Live падзеі: блок і кароткі код, якія адлюстроўваюць падзеі з дапамогай асабістых TimTim.Live спасылак на билеты. Яна зроблена TimTim.Live, прамовы толькі з Timtim.live, і абнаўленні толькі ад timtim.liv.

Загрузіце файл у Убудовы → Дадаць новую → Загрузіць убудову. Устаўце ключ свайго сайта ў Налады → TimTim.Live Events і націсніце «Праверыць злучэнне». Потым дадайце блок TimTim.Live Events на любую старонку.

Сцягнуць модуль WordPress
[timtim_events city="Washington" category="music" limit="6"]

& Стужка:

Тех самых падзеяў, што і Падаць JSON, RSS, XML, CSV або файл каляндара (.ics). Google Календар, Apple каляндар і Outlook могуць падпісвацца на каляндар. Чытальнікі стужак не могуць пасылаць загалоўкі, таму змесціце ключ веб- сайта або праверку ключа?key=. Ніколі не дадаваць ключ сервера ў спасылку.

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=Paris

Веб- пстрычкіName

Дадаць адрас на сваю панэль прылад, і мы пасылаем яго паведамленне ў якім змянілася падзея. Зменены альбо змянены. Веб- падлікі з' яўляюцца неабавязковымі — changed_ since дае вам такую ж інфармацыю.

{
  "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"
    }
  }
}

Правяраць усе паведамленні: гэтае паведамленне падпісана з вашым сакрэтным. Адмаўляць што-небудзь старэйшыя за пяць хвілін, і ігнараваць TimTim- Delivery- ID, які вы ўжо апрацоўвалі.

// 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);
});

Адказ на любога 2xx праз 10 секунд. У адваротным выпадку мы паспрабуем праз 1 хвіліну, 5 хвілін, 30 хвілін, 2, 6, 12 і 24 гадзіны, тады спыніцца. Пасля перанакіроўкі не будзе.

Працавая копія

Тэставая падзея ўзору прысутнічае "ТЕST Event" - < real > Адкрыць заробку на buy_ url, націсніце Тэставая адзнака Buy, а потым папытаеце аб заробцы. Сымуляцыя вяртання і прагляд яго назад.

Калі нешта пойдзе не так

Памылка тлумачыцца простымі словамі, з загалоўкам і што рабіць далей. Кожны адказ нясе TimTim-Запытка-Id. Адправіць яго нам, і мы можам знайсці ваш запыт.

  • 401missing_keyPlease add your TimTim.Live key. Send it as: Authorization: Bearer tt_test_… — get a test key at /partners/dashboard.
  • 401invalid_keyWe do not recognise that key. Check you copied the whole key, or make a new one at /partners/dashboard.
  • 401revoked_keyThat key was switched off. Make a new key at /partners/dashboard.
  • 403partner_inactiveThis partner account cannot use live keys right now. Your test key still works. Contact TimTim.Live partnerships to review the account.
  • 403missing_scopeThis key is not allowed to do that. Earnings need a secret key (tt_sk_live_…) or a test key, used from your server.
  • 403domain_not_allowedThis website is not allowed to use this key. Add the website to the key's allowed domains at /partners/dashboard.
  • 400unknown_parameterWe do not know one of those parameters. See /partners/docs for the list.
  • 400invalid_countryWe could not read that country. Use a two-letter code, for example country=US or country=FR.
  • 400invalid_dateWe could not read that date. Dates look like 2026-10-20.
  • 400invalid_changed_sinceWe could not read changed_since. Use a full time, for example changed_since=2026-10-06T10:00:00Z.
  • 400invalid_booleanThat value must be true or false. For example commissioned=true.
  • 400invalid_numberThat value must be a number. For example minimum_earnings=5.
  • 400invalid_nearWe could not find that place. Try near=Paris,FR or city=Paris&country=FR.
  • 400invalid_locationWe could not read that location. Send lat, lng and optionally radius in kilometres.
  • 400invalid_limitlimit must be between 1 and 100. Leave it out to get 20.
  • 400invalid_cursorThat cursor is not one we gave you. Use the `next` value from the previous page exactly as it came.
  • 404event_not_foundWe could not find that event. It may have been removed, or it is not shared with partners.
  • 403capability_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.
  • 403server_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.
  • 403commerce_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.
  • 503checkout_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.
  • 409ticket_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.
  • 400order_invalidWe could not read that order. See /partners/docs for the fields an order needs.
  • 409idempotency_conflictThat Idempotency-Key was already used for a different order. Send exactly the same order to get the same answer back, or use a new Idempotency-Key for a new order.
  • 400idempotency_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.
  • 404order_not_foundWe could not find that order. Only orders your company began with this kind of key (test or live) can be read here.
  • 403bulk_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.
  • 404bulk_not_foundWe could not find that bulk feed. Use the address shown on /partners/dashboard: /v1/bulk/<subscription id>.ndjson.gz or .csv.gz.
  • 429bulk_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.
  • 410event_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.
  • 400invalid_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.
  • 404not_foundThere is nothing at this address. The Partner API lives at /v1/events, /v1/events/{id}, /v1/offers and /v1/earnings.
  • 405method_not_allowedThis address does not answer that method. The Allow header lists the methods it answers.
  • 401key_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.
  • 403ip_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.
  • 401certificate_requiredThis key needs your client certificate. Connect to https://api.timtim.live with the TLS client certificate pinned to this key.
  • 401certificate_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.
  • 429rate_limitedToo many requests — please slow down. Wait the number of seconds in Retry-After, then try again.
  • 503unavailableThe Partner API is resting for a moment. Please try again in a minute.
  • 500server_errorSomething went wrong on our side. Please try again. If it keeps happening, send us your TimTim Request ID.

Кантракт

Поўнае апісанне кожнага поля ў фармату OpenAPI

Спампаваць openapi.yaml

Як жыць ключы

Ваш тэставы ключ працуе адразу. Для жывых ключоў чалавек у TimTim.Live глядзіць на імя кампаніі, на вашым сайце і як вы будзеце прадставіць падзеі. Вы бачыце адказ на панэль прылад.

Аднаўленне TimTim.Live API

Версія 1 расце толькі. Мы дадаем новыя рэчы. Мы не выдаляем і не змяняем назвы таго, што ўжо ёсць.

  • — Падзея адказы цяпер мае ETag. Пасылаць назад, як Калі няма, то каб атрымаць хуткае 304 калі нічога не змянілася. Дадатковы.
  • — Ключы веб- сайтаў цяпер лічыць кожны наведвальнік на сваім, так што занятыя сайты працягваюць працаваць. Няма неабходнага дзеяння.
  • — Скасавана. Дадатковы. Няма неабходнага дзеяння.
  • — Колькасць стужак навін: Дадатковы. Няма неабходнага дзеяння.
  • — ААП мае свой адрас: https://api.tim.live/v1. https://timtim.life/v1 працягвае працаваць. Няма неабходнага дзеяння.
  • — Ваша ўласная пазначаная старонка на Timtim.live/ checkout. Дадатковы. Няма неабходнага дзеяння.
  • — Прадаць билеты ў вашай праграме: GET / v1/events/EVENT_ID/tickets і POST / v1/orders. Дадатковы. Няма неабходнага дзеяння.
  • — Старонка грамадскага стану: /partners/ status, адзначана кожную хвіліну. Няма неабходнага дзеяння.
  • — Штомесяц выдаткаў: GET / v1/ дата разліку. Няма неабходнага дзеяння.
  • — Папярэджанні: дадайце спасылку?sub_id= і мы адпраўляем яе вам пры продажы. Дадатковы. Няма неабходнага дзеяння.
  • — Праекты, звязаныя з картамі, прапаноўваюць банкам і праграме ўзнагароджавання: GET / v1/offers. Дадатковы. Няма неабходнага дзеяння.
  • — Каляндарная стужка: /v1/feeds/events.ics для Google Calendar, Apple Calendar і Outlook. Нічога рабіць не трэба.
  • — Заблакаваць вашы серверы: IP дазволяе спісы карыстачоў, сертыфікаты кліентаў (mTLS) на api.tim.live. Дадатковы. Няма неабходнага дзеяння.
  • — Каардынаты OAuth 2. 0 для вялікай інтэграцыі: POST / v1/ oauth/token і / v1/oauth / revoke. Ключы трымаць працуюць. Няма неабходнага дзеяння.
  • — Утулка WordPress 1. 0. 0: блок, кароткі код і наладка старонкі. Name Яна абнаўляе сябе ад timtim.live. Няма неабходнага дзеяння.
  • — Віджэт веб- сайтаў, JSON/RSS/ XML/ CSV, стужкі навінаў і web- hooks (event.změнены, змянены, змянены). Няма неабходнага дзеяння.
  • — Partner API v1: падзеі, заробкі і працоўнае асяроддзе. Няма неабходнага дзеяння.