Partneru API — ātrais sākums
Jūsu pirmā integrācija iekļaujas vienā ekrānā.
Izmēģini tagad — bez atslēgas, bez reģistrācijas
Atveriet šo adresi savā pārlūkprogrammā. Jūs redzēsiet paraugu notikumus uzreiz.
https://timtim.live/api/partner-network/demo?city=Washington- 1
Iegūt testa atslēgu
Pierakstieties, pastāstiet mums, kas jūs esat, un nospiediet pogu Izveidot testa atslēgu. Tas sākas ar tt_test_ un redz tikai parauga notikumus.
- 2
Meklēt pasākumus
Jautājiet par notikumiem pilsētā.
curl "https://api.timtim.live/v1/events?city=Washington&category=music" \ -H "Authorization: Bearer tt_test_YOUR_KEY" - 3
Rādīt notikumu
Katram notikumam ir vārds, datums, vieta, attēls, cena un gatavas uzlīmes jūsu kartei.
- 4
Izmantojiet buy_url
Izmantojiet buy_url mēs jums. Tieši tā. TimTim.Live rokturi piešķiršanu iekšpusē šo saiti.
- 5
Skatīt rezultātus
Skatiet nosūtītos cilvēkus, pārdotās biļetes un ieņēmumus savā informācijas panelī vai jautājiet par tiem.
GET https://api.timtim.live/v1/earnings
Atsauce
Kur sūtīt pieprasījumus
https://api.timtim.live/v1Jūsu savienojuma atslēga
Nosūtiet atslēgu autorizācijas galvenē. Testa atslēgas (tt_test_) skatīt tikai parauga notikumus. Website keys (tt_pk_live_) var sēdēt mājas lapā un tikai lasīt notikumus. Servera atslēgas (ttt_sk_live_) palikt uz servera, un var arī lasīt peļņu. Mēs vienreiz parādām atslēgu - turiet to drošībā.
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;
}Filtri
city- Notikumi šajā pilsētā.
country- Divburtu valsts kods, piemēram, ASV.
category- Piemēram, mūzika, festivāls vai konference.
from- Notikumi šajā datumā vai pēc tā (2026-10-20).
to- Pasākumi šajā datumā vai pirms šī datuma.
changed_since- Tikai notikumi, kas mainījās pēc šī laika.
commissioned- true = tikai notikumi, kas maksā atlīdzību.
minimum_earnings- Tikai notikumi, kas maksā vismaz tik daudz par biļeti.
near- Vieta, piemēram, netālu = Parīze,FR.
limit- Cik daudz notikumu vienā lappusē, no 1 līdz 100 (20, ja jūs atstājat to ārā).
Tikai pasakiet man, kas mainījies
Saglabā pēdējās sinhronizācijas laiku un sūti to kā changed_since. Tu saņemsi tikai mainītos pasākumus — arī atceltos un izpārdotos. Webhook nav vajadzīgs. Pasākumi, kurus vairs nedrīkst rādīt, tiek atgriezti sarakstā withdrawn.
GET https://api.timtim.live/v1/events?changed_since=2026-10-06T10:00:00ZVairāk par vienu lapu
Ja atbilde ir nākamā, nosūtiet to atpakaļ kā kursoru = lai saņemtu nākamo lapu. Kad nākamā ir tukša, jums ir viss.
GET https://api.timtim.live/v1/events?city=Paris&cursor=eyJtIjoiZCIs…Ieņēmumi
Katram pasākumam ir earn. Ja earn.eligible ir false, pasākumam nav atlīdzības — to tomēr ir vērts rādīt. Ja tas ir true, earn.description norāda, ko tu saņem, piemēram, "$5 par katru atbilstošo biļeti". Ja pirkumam tiek atmaksāta nauda, atlīdzība tiek atcelta.
Lielapjoma plūsmas (viss vienā failā)
Saglabājiet lielapjoma plūsmu jūsu informācijas panelī. Pēc tam lejupielādējiet katru notikumu, ko tas aptver vienā zip failā, ar servera atslēgu: GET / v1/bulk/FEED_ID.ndjson.gz vai .csv.gz. Add ?changed_since= tikai tam, kas ir mainījies, ieskaitot notikumus, kas ir atcelti. Testa atslēgas var izmēģināt to tagad; dzīvot lietošanai nepieciešams TimTim.Live pārskatīšanu.
GET https://api.timtim.live/v1/bulk/bfs_YOURFEED.ndjson.gz?changed_since=2026-10-06T00:00:00ZPārdodiet biļetes savā lietotnē (iegultā komercija)
Lielie partneri var saglabāt pircējus savā lietotnē. Jautājiet GET / v1/pasākumi / EVENT_ID / biļetes par to, kas ir pārdošanā, tad POST / v1/pasūtījumi ar pircēja izvēli. Jūs saņemat TimTim.Live maksājuma saiti, lai atvērtu pircējam; pārdošana tiek ieskaitīta tieši jūsu uzņēmumā. Testa atslēgas var izmēģināt to tagad. Tiešraides lietošanai ir nepieciešams TimTim.Live pārskats un ieslēgti karšu maksājumi.
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": "…"}Piedāvājumi, kas saistīti ar kartēm (bankas un atlīdzības programmas)
GET /v1/piedāvājumi parāda katru notikumu, kas kā piedāvājumu maksā atlīdzību. Katram piedāvājumam ir organizators, datumi, kurus varat iegādāties, cena, vieta un atlīdzība. Jūsu klients to aktivizē, izmantojot jūsu izsekoto saiti, un atlīdzība tiek izmaksāta jūsu uzņēmumam, izmantojot / v1/peļņu. Testa atslēgas skatīt paraugu piedāvājumus. Tiešraides piedāvājumiem nepieciešams TimTim.Live pārskats. Karšu maksājumu saskaņošanai tieši ir nepieciešams līgums ar karšu tīklu vai banku, un tas nav saistīts.
GET https://api.timtim.live/v1/offers?country=USPasākuma statuss un biļetes
statuss ir ieplānots, atlikts, pārcelts, atcelts, pārdots vai pabeigts. Pieejamība ir pieejama, ierobežota, pārdota, nav_on_sale vai beigusies. Kad notikums tiek atcelts, noņemiet to.
GET https://api.timtim.live/v1/events/evt_test_washington_konpaCik ātri jūs varat jautāt
Testa atslēgas: 60 pieprasījumi minūtē. Dzīvie taustiņi: 120 minūtes. Going ātrāk saņem 429 atbildi ar mēģināt-After, cik sekundes jāgaida.
Kādus pasākumus jūs saņemat
Pasākumus, ko TimTim.Live organizatori izveido un izvēlas kopīgot. Notikumi, kurus mēs importējām no citām biļešu vietnēm, nekad netiek iekļauti, jo mums nepieder tiesības tos kopīgot.
Ko mēs nekad nesūtām
Pircēju vārdi, e-pasta adreses, mājas adreses, tālruņa numuri un kartes dati. Partner API koplieto pasākuma informāciju, nevis mūsu dalībniekus.
Tīmekļa vietnes logrīks
Viena HTML rinda parāda notikumus jebkurā tīmekļa vietnē. Izmantojiet tīmekļa vietnes atslēgu (ttt_pk_live_) un pievienojiet savu tīmekļa vietni atslēgas atļauto sarakstu. Bez atslēgas tas rāda parauga notikumus.
<script src="https://timtim.live/widget/events.js"
data-key="tt_pk_live_YOUR_WEBSITE_KEY"
data-city="Washington" data-category="music" async></script>Opcijas: data-city, data-country, data-category, data-limit (1–24), data-earn="true", data-lang un data-color.
OAuth 2.0 (lielas integrācijas)
Pēc izvēles. Izveidojiet OAuth klientu informācijas panelī. Tirgojiet savu klienta ID un noslēpumu piekļuves pilnvarai, kas ilgst vienu stundu. Atsūti marķieri atslēgas vietā. Noslēpums nekad ceļo ar jūsu API zvaniem, un jūs varat lūgt mazāk jomu nekā klients.
# 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"Lai izbeigtu marķierierīci agri, POST to /v1/oauth/revoke ar to pašu klienta ID un noslēpumu. Klienta izslēgšana informācijas panelī beidzas visus savus žetonus uzreiz.
Bloķēt atslēgu saviem serveriem
Pēc izvēles. Savā informācijas panelī atrodiet servera atslēgu, testa atslēgu vai OAuth klientu. Atveriet "Lock to my servers" un norādiet serveru publiskās adreses. Zvani un marķieru pieprasījumi no jebkuras vietas tiek noraidīti ar ip_not_atļauts, pat ar pareizo atslēgu.
Klienta sertifikāti (mTLS), lieliem uzņēmumiem: dodiet mums sava servera ID karti (sertifikātu) un piestipriniet to atslēgai. Tad zvaniet https://api.tim.live ar to. Mēs atbildam tikai serverim, kuram ir šis sertifikāts.
# 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 spraudnis
Izmantot WordPress? Instalējiet TimTim.Live Events: bloks un shortcode, kas parāda notikumus ar savām TimTim.Live biļešu saitēm. Tas ir izgatavots ar TimTim.Live, sarunas tikai tim.live, un atjaunina tikai no tim.life.
Augšupielādē failu sadaļā Spraudņi → Pievienot jaunu → Augšupielādēt spraudni. Ielīmē savas vietnes atslēgu sadaļā Iestatījumi → TimTim.Live Events un nospied Test Connection. Pēc tam pievieno bloku TimTim.Live Events jebkurai lapai.
Lejupielādēt WordPress spraudni[timtim_events city="Washington" category="music" limit="6"]Barotnes
Tie paši notikumi kā JSON Feed, RSS, XML, CSV vai kalendāra fails (.ics). Google kalendārs, Apple kalendārs un Outlook var abonēt kalendāru. Plūsmas lasītāji nevar sūtīt galvenes, tāpēc ievietojiet tīmekļa vietnes atslēgu vai pārbaudes atslēgu iekš ?key=. Nekad nelieciet servera atslēgu saitē.
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=ParisWebhooks
Pievieno adresi savā informācijas panelī, un mēs tai nosūtīsim ziņu, kad kaut kas mainās: event.changed vai earnings.changed. Webhooks nav obligāti — changed_since sniedz to pašu informāciju.
{
"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"
}
}
}Pārbaudiet katru ziņojumu: tas ir parakstīts ar savu noslēpumu. Atsakieties no visa, kas vecāks par piecām minūtēm, un ignorējiet Timtim-Delivery-Id, ko jau esat apstrādājis.
// 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);
});Atbildiet ar jebkuru 2xx 10 sekunžu laikā. Ja nē, mēs mēģinām vēlreiz pēc 1 minūtes, 5 minūtēm, 30 minūtēm, tad 2, 6, 12 un 24 stundām, tad apstāties. Mēs nekad nesekojam pāradresācijai.
Smilšu kaste
Testa atslēgas saņem parauga pasākumus ar atzīmi TEST EVENT — NO REAL MONEY. Atver buy_url, nospied Buy Test Ticket un tad pieprasi savus ienākumus. Simulē atmaksu un vēro, kā tā tiek atcelta.
Kad kaut kas noiet greizi
Kļūdas izskaidro sevi vienkāršos vārdos, ar nosaukumu un ko darīt tālāk. Katrā atbildē ir TimTim-Request-Id. Nosūtiet to mums, un mēs varam atrast jūsu pieprasījumu.
- 401
missing_keyPlease add your TimTim.Live key. Send it as: Authorization: Bearer tt_test_… — get a test key at /partners/dashboard. - 401
invalid_keyWe do not recognise that key. Check you copied the whole key, or make a new one at /partners/dashboard. - 401
revoked_keyThat key was switched off. Make a new key at /partners/dashboard. - 403
partner_inactiveThis partner account cannot use live keys right now. Your test key still works. Contact TimTim.Live partnerships to review the account. - 403
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. - 403
domain_not_allowedThis website is not allowed to use this key. Add the website to the key's allowed domains at /partners/dashboard. - 400
unknown_parameterWe do not know one of those parameters. See /partners/docs for the list. - 400
invalid_countryWe could not read that country. Use a two-letter code, for example country=US or country=FR. - 400
invalid_dateWe could not read that date. Dates look like 2026-10-20. - 400
invalid_changed_sinceWe could not read changed_since. Use a full time, for example changed_since=2026-10-06T10:00:00Z. - 400
invalid_booleanThat value must be true or false. For example commissioned=true. - 400
invalid_numberThat value must be a number. For example minimum_earnings=5. - 400
invalid_nearWe could not find that place. Try near=Paris,FR or city=Paris&country=FR. - 400
invalid_locationWe could not read that location. Send lat, lng and optionally radius in kilometres. - 400
invalid_limitlimit must be between 1 and 100. Leave it out to get 20. - 400
invalid_cursorThat cursor is not one we gave you. Use the `next` value from the previous page exactly as it came. - 404
event_not_foundWe could not find that event. It may have been removed, or it is not shared with partners. - 403
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. - 403
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. - 403
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. - 503
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. - 409
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. - 400
order_invalidWe could not read that order. See /partners/docs for the fields an order needs. - 409
idempotency_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. - 400
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. - 404
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. - 403
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. - 404
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. - 429
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. - 410
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. - 400
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. - 404
not_foundThere is nothing at this address. The Partner API lives at /v1/events, /v1/events/{id}, /v1/offers and /v1/earnings. - 405
method_not_allowedThis address does not answer that method. The Allow header lists the methods it answers. - 401
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. - 403
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. - 401
certificate_requiredThis key needs your client certificate. Connect to https://api.timtim.live with the TLS client certificate pinned to this key. - 401
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. - 429
rate_limitedToo many requests — please slow down. Wait the number of seconds in Retry-After, then try again. - 500
server_errorSomething went wrong on our side. Please try again. If it keeps happening, send us your TimTim Request ID.
Līgums
Katra lauka pilns apraksts OpenAPI formātā, kuru jūsu rīki var izlasīt.
Lejupielādēt openapi.yamlKā atvērt dzīvās atslēgas
Jūsu testa atslēga darbojas uzreiz. Tiešraides atslēgām TimTim.Live darbinieks skatās uz jūsu uzņēmuma nosaukumu, jūsu mājas lapu un to, kā jūs parādīsiet notikumus. Jūs redzat atbildi savā informācijas panelī.
TimTim.Live API atjauninājumi
1. versija tikai aug. Mēs pievienojam jaunas lietas. Mēs nenoņemam vai nepārdēvējam to, kas jau ir tur.
- — Notikuma atbildēm tagad ir ETag. Nosūtiet to atpakaļ kā If-None-Match, lai iegūtu ātru 304, kad nekas nav mainījies. Pēc izvēles.
- — Mājas lapas atslēgas tagad skaita katrs apmeklētājs par to pašu, tāpēc aizņemts vietnes turpina strādāt. Rīcība nav nepieciešama.
- — Klienta sertifikāti (mTLS) ir atvērti: piespraudiet sertifikātu atslēgai informācijas panelī. Pēc izvēles. Rīcība nav nepieciešama.
- — Lielapjoma plūsmas: katru notikumu jūs varat parādīt, vienā failā, pie GET / v1/bulk. Pēc izvēles. Rīcība nav nepieciešama.
- — API ir sava adrese: https://api.tim.live/v1. https://tim.live / v1 tur strādā. Rīcība nav nepieciešama.
- — Jūsu firmas izrakstīšanās lapa vietnē tim.live/checkout. Pēc izvēles. Rīcība nav nepieciešama.
- — Pārdod biļetes savā lietotnē: GET /v1/events / EVENT_ID/biļetes un POST /v1/pasūtījumi. Pēc izvēles. Rīcība nav nepieciešama.
- — Publiskā statusa lapa /partners/status, pārbaudīta katru minūti. Rīcība nav nepieciešama.
- — Ikmēneša pārskati uzņēmumiem: GET /v1/settlements. Rīcība nav nepieciešama.
- — Postbacks: pievienot ?sub_id = pirkt saiti, un mēs nosūtīsim to atpakaļ uz jums ar pārdošanu. Pēc izvēles. Rīcība nav nepieciešama.
- — Kartes piesaistīti piedāvājumi bankām un atlīdzības programmas: GET / v1/piedāvā. Pēc izvēles. Rīcība nav nepieciešama.
- — Kalendāra plūsma: /v1/feeds/events.ics Google kalendāram, Apple kalendāram un Outlook. Rīcība nav nepieciešama.
- — Bloķējiet atslēgu saviem serveriem: IP atļauju saraksti tagad, klientu sertifikāti (mTLS) api.tim.live. Pēc izvēles. Rīcība nav nepieciešama.
- — OAuth 2.0 klienta akreditācijas dati lielām integrācijām: POST / v1/oauth/token un / v1/ oauth/revoke. Atslēgas turpina strādāt. Rīcība nav nepieciešama.
- — WordPress spraudnis 1.0.0: bloks, shortcode un iestatījumu lapa. Tā atjaunina sevi no tim.live. Rīcība nav nepieciešama.
- — Website widget, JSON/RSS/XML/CSV barotnes un webhooks (event.changed, profits.changd). Rīcība nav nepieciešama.
- — Partnera API v1: notikumi, viens notikums, peļņa un smilšu kaste. Rīcība nav nepieciešama.