195 Земаља3.400.716 Места3.004.607+ страница уметника 12.030.638+ страница фирми · Доступно на 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

    Користи УРЛ куповине

    Користи купни url који ти дајемо. То је то. TimTim.Live рукује приписивањем унутар те везе.

  5. 5

    Резултати приказа

    Погледајте људе који шаљу, продају карте и зараде на вашој табли, или тражите их.

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

TimTim.Live стање

упућивач

Где да пошаљем захт› јеве

https://api.timtim.live/v1

Ваш кључ везе

Пошаљите кључ у заглавље овлашћења. Пробни кључеви (tt_ test_) видећете само узорке догађаја. Кључеви веб сајта (tt_ pk_live_) могу да седе на веб страници и само да читају догађаје. Кључеви сервера (tt_sk_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
Двословни код земље, на пример САД.
category
На пример музика, фестивал или конференција.
from
Догађаји на или након овог датума (2026- 10- 20).
to
Догађаји на или пре овог датума.
changed_since
Само догађаји који су се променили након овог пута.
commissioned
Тачно = само догађаји који плаћају награду.
minimum_earnings
Само догађаји који плаћају бар оволико по карти.
near
Место, на пример у близини = Париз, ФР.
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…

Зарађујем

Сваки догађај зарађује. Ако је зарађење лажно, догађај нема награде — још увек вреди да се покаже. Ако је истина, зарађујте. опис каже оно што добијете, на пример "5 долара по прихватљивој карти". Ако се куповина врати, награда је обрнута.

Височина довода (све у једном фајлу)

Сачувај масовну храну на таблу. Затим преузмите сваки догађај који покрива у једном компирисаном фајлу, са вашим серверским кључем: GET / v1/ bunk/FEED_ID.ndjson.gz или .csv.gz. Додај ~@ ¦пром› ијењено¦promjenjeno¦_odes= само за оно што се променило, укључујући и срушене догађаје. Тест кључеви могу сада да пробају; потребна употреба уживо прегледа TimTim.Live.

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

Продај карте у својој апликацији (продадена трговина)

Велики партнери могу држати купце у својој апликацији. Питајте ГЕТ / v1/events/EVENT_ID/kets за оно што је на распродаји, онда ПОСТ / 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": "…"}

Понуде повезане са картицама (банке и програми за награде)

Гет / v1/понуда показује сваки догађај који плаћа награду као понуду. Свака понуда има организатора, датуме које можете купити, цену, место и награду. Ваш клијент га активира кроз ваш праћење везу, а награда се плаћа компанији кроз /v1/зарађивање. Тест кључеви виде узорке понуде. Ливе понуде треба преглед TimTim.Live. Поклапање уплата картица директно треба договор са картицом или банком, и није повезано.

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

Стање догађаја и карте

статус је заказан, одложен, одложено, отказано, продато или завршено. улазнице. Доступност је доступна, ограничена, распродана, непродана или завршена. Када је догађај отказан, спусти га.

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

Колико брзо можете питати

Тест кључеви: 60 захтева у минуту. Живи кључеви: 120 минута. Одлазак брже добија 429 одговор са Опет-Афтер, број секунди да сачека.

Који догађаји добијате

Догађаји које TimTim.Live организатори стварају и изаберу за д› ијељење. Догађаји које смо увезли са других карата сајтова никада нису укључени, јер ми немамо право да их делимо.

Оно што никада не шаљемо

Имена купца, адресе е‐ поште, кућне адресе, телефонске бројеве и детаље картице. Партнер АПИ деле информације о догађају, не наши чланови.

Виџет веб сајта

Један ред ХТМЛ приказује догађаје на било којем сајту. Користите кључ веб сајта (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), број подака=" true", ланг података и боја података.

ОАУТ 2. 0 (велике интеграције)

Необавезно. Направите ОАутх клијент на вашем таблу. Традинг његов ИД клијента и тајна за приступни знак који траје један сат. Пошаљи тај жетон уместо кључа. Тајна никада не путује са својим АПИ позивима, и можете тражити мање ниша од клијента има.

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

Да би завршили жетон раније, ПОСТ га на /v1/oauth/revoke са истим ИД клијента и тајном. Искључивање клијента на таблу завршава све своје жетоне одједном.

Закључавање кључа на сервере

Необавезно. На вашој табли, нађите кључ сервера, тест кључ или ОАут клијент. Отворите „ Лоцк на моји сервери “ и напишите јавне адресе ваших сервера. Позиви — и захт› јеви за жетоне — од било где другде се одбијају са ip_ not_ dozвољено, чак и са правим кључем.

Клијентски сертификати (mTLS) за велике компаније: дајте нам ИД картицу сервера (сертификат) и прикачите је на кључ. Затим позови https://api.tim.live са њим. Одговарамо само на сервер који држи тај сертификат.

# 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 додатак

Користити WordPress? Инсталирај TimTim.Live догађаје: блок и кратак код који приказује догађаје са сопственим TimTim.Live картама. Направљена је од TimTim.Live. Разговара само са Timtim.live, и ажурира се само од Timem.live.

Отпреми фајл у Додаци → Додај нови → Отпреми додатак. Налепи кључ свог сајта у Подешавања → TimTim.Live Events и притисни Тестирај везу. Затим додај блок TimTim.Live Events на било коју страницу.

Преузми прикључак за ~@ ¦ WordPress¦
[timtim_events city="Washington" category="music" limit="6"]

Доводи

Исти догађаји као ЈСОН довод, РСС, ИксМЛ, ЦСВ или календарски фајл (.ics). Календар Гугла, календар Apple и изглед могу да се претплате на календар. Читачи довода не могу да шаљу заглавља, па ставите кључ веб сајта или пробни кључ ? 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

Вебхукови

Додај адресу на таблу и послаћемо јој поруку када се нешто промени: догађај.пром› ијењен или зараде. пром› ијене. Веб- куглице су опционе — промене_ јер вам даје исте информације.

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

Проверите сваку поруку: потписана је вашом тајном. Одбиј било шта старије од пет минута, и игнориши Тимтим-Ид достављања сте већ руковали.

// 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 сата, онда престани. Никада не пратимо преусмеравања.

П› јешчаница

Тест кључеви добијају узорке догађаја означене Тест догађај - Нема стварног новца. Отвори баy_ url, притисните Купи тест карту, а затим тражите зараду. Симулирај повратак и гледај како се обрће.

Када нешто крене наопако

Грешка се објашњава обичним речима, са насловом и шта даље да радимо. Сваки одговор носи Тим-Ид. Пошаљи нам га и можемо наћи ваш захтев.

  • 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 АПИ ажурирања

Верзија 1 само расте. Додајемо нове ствари. Не уклањамо или не преименујемо оно што је већ тамо.

  • — Одговори догађаја сада носе ЕТАГ. Пошаљите га назад као Ако-Ништа-Мач добити брзо 304 када се ништа није променило. Необавезно.
  • — Тастери веб сајта сада рачунају сваког посетиоца сами, тако заузети сајтови настављају да раде. Није потребна акција.
  • — Клијентски сертификати (mTLS) су отворени: прикачите свој сертификат на кључ на табли. Необавезно. Није потребна акција.
  • — Доводи: сваки догађај који можете приказати, у једном фајлу, на ГЕТ / v1/ bunk. Необавезно. Није потребна акција.
  • — АПИ има сопствену адресу: https://api.tim.live/v1. https://tim.lives/v1 наставља да ради. Није потребна акција.
  • — Ваш сопствени брендирани одјављивање странице на Тимтим.живо/подешавање. Необавезно. Није потребна акција.
  • — Продај карте у својој апликацији: ГЕТ / v1/events/EVENT_ID/tickets и POST / v1/ orders. Необавезно. Није потребна акција.
  • — Страница стања јавности на /partners/status, проверава се сваког минута. Није потребна акција.
  • — Месечни изјави за компаније: ГЕТ / v1/насељења. Није потребна акција.
  • — Постбацкс: додај ?sub_id = на везу за куповину и ми га пошаљемо назад са распродаје. Необавезно. Није потребна акција.
  • — Понуде повезане са картицама за банке и програме за награде: Гет / v1/понуда. Необавезно. Није потребна акција.
  • — Довод календара: // v1/feeds/events.ics за Гугл календар, ~@ ¦Епл‐ календар¦Epl‐ a¦ и ~@ TRANSLATORS Није потребна акција.
  • — Закључајте кључ на сервере: ИП дозвољава списке сада, сертификати клијента (mTLS) на api.tim. live. Необавезно. Није потребна акција.
  • — ОАУТ 2. 0 клијентске акредитиве за велике интеграције: POST / v1/oauth/taken и / v1/auth / revoke. Кључеви настављају да раде. Није потребна акција.
  • — Прикључак ~@ ¦ WordPress¦ 1. 0. 0: блок, кратак код и подешавање странице. Ажурира се из Тимтима.живо. Није потребна акција.
  • — Виџет веб сајта, ЈСОН/ РСС/ ИксМЛ/ ЦСВ довода и веб- кухиња (еvent.промењен, зарада. пром› ијењен). Није потребна акција.
  • — Партнер API v1: догађаји, један догађај, зараде, и песак. Није потребна акција.