FREE Global Distribution Live: Submit Your Song or Video
Најави се

195 Земји3.400.716 Места3.004.607+ Страници за уметници 11.023.107+ Страници за бизниси · Достапно на 417+ јазици

Партнерот API њуку брзо почеток

Вашата прва интеграција се совпаѓа на еден екран.

Обиди се сега, нема клуч, нема потпишување.

Отвори ја оваа адреса во твојот прелистувач. Веднаш ќе видите некои настани.

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

Вашиот клуч за поврзување

Испрати го твојот клуч во заглавието за авторизација. Клучеви за тестирање (t_est_) можат да видат само настани со примероци. Копчињата од веб- страницата (t_pk_live_) можат да седат на веб- страница и само да читаат настани. Клучеви од серверот (t_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 ако ја оставите настрана).

Само кажи ми што се промени?

Зачувајте го времето на последната синхронизација и испратете го како променето_ од сега. Добиваш само настани кои се променија, вклучувајќи и откажувања и распродадени емисии. Нема потреба од веб-компанија. Настаните кои мора да престанат да се покажуваат се враќаат во повлечената листа.

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$ по билет." Ако купувањето се врати, наградата е обратна.

Масовни доводи (се во една датотека)

Сочувајте ги доводите на вашата табла. Потоа симнете го секој настан што го покрива во една zipped датотека, со вашиот серверски клуч: CRET / v1/bult/FED_ID.ndjson.gz или .csv.gz. Додај ? changed_fination= само за она што се промени, вклучувајќи ги и настаните преземени. Копчињата за тестирање може да го пробате сега; во живо треба да се прегледа TimTim.Live.

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

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

Големите партнери можат да ги задржат купувачите во сопствена апликација. Прашајте го ЗА ШТО се продава /v1/events/Evient_ID/ticts за тоа што е на продажба, потоа 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": "…"}

Понудни понуди (банкови и награди)

ЗАРАБОТУВАЊАТА го прикажуваат секој настан кој како понуда плаќа награда. Секоја понуда има организатор, датуми кои можете да ги купите, цена, место и награда. Вашиот клиент го активира преку вашиот следен линк, и наградата е платена на вашата компанија преку Iv1/earlings. Клучеви од тест види ги понудите за примероци. Во живо понудите се потребни 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 и избираат да ги споделат. Никогаш не се вклучени настани кои ги увезовме од други билети, бидејќи немаме право да ги делиме.

Што никогаш не испраќаме

Имиња на купувачи, имејл адреси, домашни адреси, телефонски броеви и детали за карти. Партнерот АПИ споделува информации за настанот, а не нашите членови.

Виџет за веб-страница

Една линија на HTML прикажува настани на секоја веб страница. Користи клуч од веб- страницата (t_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), податочна= "вистинска", податочно и податочен-колор.

Outh 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_bused, дури и со правилниот клуч.

Сертификати на клиенти (MTLS), за големи компании: дајте ни ја личната карта на вашиот сервер (идентификација) и прикачи ја на клуч. Потоа јавете се на https://api.timtim.во живо со тоа. Одговараме само на серверот што го содржи тој сертификат.

# 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, и се известува само од timtimm.live.

Ја вчитува датотеката во приклучоците → Додај нов → приклучок за качување. Внесете го вашиот клуч од веб- страницата во Поставувања → TimTim.Live настана и притиснете на Test Connection. Потоа додадете ги TimTim.Live-те настани на која било страна.

Го симнува приклучокот за WordPress
[timtim_events city="Washington" category="music" limit="6"]

Доводи

Истите настани како Json Feed, RSS, XML, CSV или датотека со календари. 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

Додадете адреса на вашата табла и испраќаме порака кога нешто ќе се промени. Сменети или заработени. Сменети. Веб хаковите се незаменливи и ви ги даваат истите информации.

{
  "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 часа, тогаш престани. Никогаш не ги следиме пренасочувањата.

Песочната кутија

Ако ги тестираш клучевите, примероците на настаните ќе бидат означени како ТЕСТ НЕ МОНИ. Отвори листа за купување_урл, притисни "Купи тест" потоа барај ја твојата заработувачка. Симулирај враќање на парите и гледај како се врти.

Кога нешто ќе тргне наопаку

Грешките се објаснуваат со едноставни зборови, со титула и со што да се направи следно. Секој одговор носи Тим Тим-Освојување-Ид. Прати ни го и ќе го најдеме твоето барање.

  • 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 расте. Додаваме нови работи. Не го отстрануваме или преименуваме она што веќе постои.

  • — Одговорите на настанот сега носат етаг. Прати го како "Ако-Не-Меч" да добие брзо 304 кога ништо не се смени. Изборен.
  • — Копчињата на веб - страницата сега сами го бројат секој посетител, па затоа зафатените сајтови продолжуваат да работат. Нема потреба од акција.
  • — Сертификати за клиенти (MTLS) се отворени: закачи си го сертификатот на клуч на таблата. Изборен. Нема потреба од акција.
  • — Масовни доводи: секој настан што можете да го покажете, во едно досие, во CRET /v1/bulk. Изборен. Нема потреба од акција.
  • — API има своја адреса: https://api.timtim.live/v1. https://timtim.live/v1 продолжува да работи. Не треба ништо да правите.
  • — Вашата сопствена означена страница за проверка на timtim. live/fefout. Изборен. Нема потреба од акција.
  • — Продавајте билети во вашата апликација: GRET /V1/Events/EVENT_ID/ticheps и POST /v1/ нарачки. Изборен. Нема потреба од акција.
  • — Страница со јавен статус на / парнери/статус, проверена секоја минута. Нема потреба од акција.
  • — Месечни изјави за компании: Getting /v1/ settingments. Нема потреба од акција.
  • — Постбекови: додадете ?sub_id= на линк за купување и ви го испраќаме назад со продажбата. Изборен. Нема потреба од акција.
  • — Понудни понуди за банки и награди: Изборен. Нема потреба од акција.
  • — Довод на календар: /v1/feeds/events.ics за Google календарот, Apple календарот и Outlook. Нема потреба од акција.
  • — Го заклучува клучот до вашите сервери: IP- дозволи сега, сертификати за клиенти (MTLS) на atpi.tim. live. Изборен. Нема потреба од акција.
  • — OAut 2.0 Клиентски акредитиви за големи интеграции: POST /v1/oauth/Token и /v1 /out/revoke. Клучевите продолжуваат да работат. Нема потреба од акција.
  • — WordPress приклучок 1. 0.0: блок, краток код и страница за подесувања. Се ажурира од timtim.live. Нема потреба од акција.
  • — Графика на веб- страницата, JSon/RS/XML/CSV внесувања и веб- хаки (настан. менување, заработка. изменето). Нема потреба од акција.
  • — Партнер API v1: настани, еден настан, заработувачка и песочна кутија. Нема потреба од акција.