API soçon - Rade enondaedje
Vosse prumire integråcion corespond sol minme waitroûle.
Sayîz asteure - nole clé, nole eredjistrer
Drovi cisse adresse dins vosse betchteu. Vos veyoz des evenmints d 'ene sampe.
https://timtim.live/api/partner-network/demo?city=Washington- 1
Prinde ene tape di saye
S ' elodjî, dici ki vos estoz, eyet tchôkîz Fé ene tape di saye. Çouchal s' enondèt avou «t_test_» et seulmint vey li mostre evenmint.
- 2
Trover evenmints
Dimander des evenmints dins ene cisse.
curl "https://api.timtim.live/v1/events?city=Washington&category=music" \ -H "Authorization: Bearer tt_test_YOUR_KEY" - 3
Disfacer ci cayet ci
Tchaeke evenmint a ene no, li date, l' plaece, l' imådje, l' price et les etiketes prepareyes po vosse cåte.
- 4
Eployî l 'know_urn_e
Eployî l 'kwing_url ki vos dvoz. C 'est c' est ç' i gn a. Manaedjeu di TimTim.Live
- 5
Vey les rzultats
Vos veyoz les djins evoyîs, les tites sol tabulåcion et les coûsses, oudonbén vos dmander.
GET https://api.timtim.live/v1/earnings
Riferince
Dji n' sai inicyî Bonobo
https://api.timtim.live/v1Vosse clé di raloyaedje
Evoyî vosse clé el tiestire d 'ovrijhaedje. Les clés di saye (t_test_) vey ki l' evenmint d' egzimpe. Les clés del waibe (tt_pk_live_) polèt seter dins ene pådje waibe eyet seulmint lére des events. Clés do sierveu (tt_sk_live_) ki dmeure sol sierveu eyet ki vos ploz lére les rendinces. On håynêye ene clé d ' ene fwaite, ewè l' såvrité.
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;
}Fitchîs
city- Evenmints dins cisse vile ci.
country- Côde payis di deus letes, metans US.
category- Egzimpe, festival ou conferince.
from- Evenmints ou après cisse date chal (2026- 10- 20).
to- Nou discrijhaedje di cisse date ci.
changed_since- Seulmint les evenmints ki ont candjî après cist eure ci.
commissioned- Vraiy = seulmint evenmints ki payexhèt ene rén.
minimum_earnings- Seulmint d 'evenmints ki payèt pol moens ça bén pa bit.
near- Ene plaece, metans, près=Paris, FR.
limit- Comint d 'evenmints pa pådje, 1 a 100 (20 si vos l' leyîz).
Seulmint di me çki c 'est candjî
Schaper l' eure di vosse dierin sincronijhaedje eyet l' evoyî come candjî. Vos n ' avoz ki des evenmints ki sont candjîs, metans les candjmints eyet les mostraedjes ki vos vloz. I n ' a pont d' foû. Evenmints ki vos dvoz arester d ' håynaedje a rtourner dins l' djivêye e rexhowe.
GET https://api.timtim.live/v1/events?changed_since=2026-10-06T10:00:00ZPus d' ene pådje
Si l ' response a shuvant, evoyîz- l come cursoe= po aveur li pådje shuvante. Cwand l 'après est vude, vos avoz tot.
GET https://api.timtim.live/v1/events?city=Paris&cursor=eyJtIjoiZCIs…Finixhant
Tchaeke evenmint a fini. Si cwît. n 'est nén fén, l' evenmint n' a pont d' rénçmint, c' est co la peur mostrer. Si c' est vraiy, fay.description dici çou k' vos avoz, metans "$5 pa tite ewal". Si l 'achete est ritourné, li recompens est a rtourné.
Foû d ' floû (totes dins on fitchî)
Èn schaper ene flote sol tåvlea. Adon, aberweter tchaeke evenmint k' i tape dins on fitchî zip, avou vosse clé di sierveu: GET /v1/bulk/FEED_ID.ndjson.gz ou .csv.gz. Radjouter ? cand_sine= po ki çou k ' est candjî, ça k' i gn a des evenmints evoyîs. Les clés di saye polèt sayî asteure; l 'eployaedje vive a mezåjhe d' ene rivizeye di TimTim.Live.
GET https://api.timtim.live/v1/bulk/bfs_YOURFEED.ndjson.gz?changed_since=2026-10-06T00:00:00ZVuwe des tites dins vosse aplikete (coûtche embarcêye)
Large partners can keep buyers in their own app. Ask GET /v1/events/EVENT_ID/tickets for what is on sale, then POST /v1/orders with the buyer's choice. You get a TimTim.Live payment link to open for the buyer; the sale is credited to your company directly. Test keys can try it now. Live use needs a TimTim.Live review and card payments switched on.
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": "…"}Ofrixhaedjes ki sont loyîs a cådes (bakes et programes di recompenses)
GET /v1/ offers mostre tchaeke evenmint ki paye ene recompense come ovraedje. Tchaeke ovraedje a l 'organizeu, les dates ki vos ploz acheter, li price, l' plaece eyet l' recompense. Vosse cliyint l 'eployî pa vosse loyén ki vos ploz trover, eyet l' recompense est payêye a vosse compania a travi d' /v1/earnings. Les clés di saye vey les ovraedjes del sample. Les offertes di live ont i gn a des TimTim.Live candjmint. Li payaedje ki corespond direk a des cwåtes a mezåjhe d 'un accord avou ene rantoele ou ene banke, et n' est nén raloyî.
GET https://api.timtim.live/v1/offers?country=USEstat d' evenmint et bites
Li estat est programé, disraloyî, raployî, rinoncî, sold_out ou fini. tites. Dji n' a savu drovi %s.
GET https://api.timtim.live/v1/events/evt_test_washington_konpaComint roedeu vos ploz dimander
Clés di saye: 60 dmandèt ene munute. Clés en vive: 120 på minme. I gn a pus roedeu a- z aveur ene response 429 avou Rissayî après, li nombe di segondes a ratinde.
Novea radjoû
Evenmints ki TimTim.Live organizåcions ahivant eyet tchoezi pol pårtaedjî. Evenmints ki nos abaguè des ôtes sites des tites ni sont måy includjîs, cåze ki nou n' avoz nén l' droet di les saetchî.
Cwè nou måy d' evoyî
Nos d ' acheteur, adresses emile, adresses måjhon, limeros di telefone eyet detays des cwåtes. L 'associante API pårtaedjî des informåcions d' evenmint, et nén nos mimbes.
Ahesse waibeComment
Ene roye di HTML håynêye des evenmints so tolminme waibe. Eployî ene clé waibe (tt_pk_live_) eyet radjouter vosse waibe viè l' djivêye permetowe. Sins nole clé, il mostre des evenmints d ' egzimpe.
<script src="https://timtim.live/widget/events.js"
data-key="tt_pk_live_YOUR_WEBSITE_KEY"
data-city="Washington" data-category="music" async></script>Tchuzes: cinte des dnêyes, payis di dnêyes, categoreye des dnêyes, limite d 'dinêye (1-24), earn= "vraiy", lilang des dnêyes eyet coleur des dnêyes.
OAuth 2.0 (grandes integråcions)
Tchuzes Fé ene cliyint OAuth el tåvlea. Eployî l 'idintité eyet l' secrexhance des cliyints po on toke d' accès ki dira ene eure. Evoyî l 'etikete ci el plaece d' ene clé. Li secret ni vaye nén avou vos houcaedjes d 'API, eyet vos ploz dmander pus d' espåces ki l' cliyint a.
# 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"Po fé ene buze, POST el a /v1/oauth/revove avou l' minme ID et l' secret. Dismete li cliyint sol tabulåcion fén totes sis prôpietés.
Eployî ene tape sol sierveu
Tchuzes So vosse tabulåcion, trover ene clé di sierveu, sayî clé ou cliyint OAuth. Drovi «Locaedje ås sierveus» et eployî les adresses publikes di vosse sierveu. Houcaedjes — eyet des dimandes d 'etikete — a pårti d' l' ôte pårticion onk est rifuzé avou ip_not_waled, minme avou l' droete clé.
Acertineures cliyint (mTLS), po les grandès compôzêyes: dinez- li cåte d 'id (un acertineure) di vosse sierveu eyet l' pinez so ene clé. Adon live avou https://api.tim.live. Nou risponde ki li sierveu ki n 'a nén l' acertineure.
# 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"Tchôke- divins WordPressComment
Use WordPress? Install TimTim.Live Events: a block and a shortcode that show events with your own TimTim.Live ticket links. It is made by TimTim.Live, talks only to timtim.live, and updates only from timtim.live.
Upload the file in Plugins → Add New → Upload Plugin. Paste your website key in Settings → TimTim.Live Events and press Test Connection. Then add the TimTim.Live Events block to any page.
Aberweter li tchôke- divins WordPress[timtim_events city="Washington" category="music" limit="6"]Floûs
Les minmes evenmints ki JSON Feed, RSS, XML, CSV ou on fitchî di calindrî (.ics). Calindrî di Google, Apple Calindrjie et Outlook polèt discrijhaedje del calindrî. Les lijheus des fômes èn pout nén evoyî les tiestires, adon mete ene clé waibe ou ene clé di saye e ?key=. Èn pus dmander ene clé di sierveu.
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=ParisBårs waibe
Radjouter ene adresse sol tabulåcion eyet vs evoyîz ene messaedje cwand ene sacwè candjmint: evenmint.changed ou redjons.changed. Webhooks sont opcionås — candjîs_son vos dne les minmes informåcions.
{
"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"
}
}
}Verifyî tchaeke messaedje: il est siné avou vosse secret. Rifuzer tolminme ki pus vî ki cinq munutes, eyet passer houte on TimTim-Livery-Id vos avoz ddja manaedjeu.
// 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);
});Responde avou ene minme 2x x di 10 segondes. Si n ' est nén, c' est nou rsayî après 1 munute, 5 munutes, 30 munutes et adon 2, 6, 12 eyet 24 eures, adon arester. Èn pus shuvîs des ritournaedjes.
Li boesse di såvrité
Les clés di saye trover des evenmints metowes dins l 'EVENT DOSTE - NONE VRAIY MOYE. Drouve ene key_url, tchôkîz Accepter l 'Tite d' saye, adon dimander vos rendinces. Simuler ene rimplixhaedje eyet l 'observer a rtourner.
Cwand ene sacwè s 'i gn a manke
Les arokes explijhîs dins des mots simpes, avou on tite eyet cwè fé shuvant. Tchaeke response done on TimTim-Request-Id. Evoyîz- l a- z et trover vosse dmande.
- 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 'contract
Li complete discrijhaedje di tchaeke tchaeche, dins l 'cogne OpenAPI vos usteyes polèt lére.
Aberbweter openapi.yamlKimint les clés en alaedje sont drovous
Vosse clé d ' saye ovre moens. Po les clés en vive, ene djin a TimTim.Live ovrêye li no di vosse compania, vosse waibe eyet comint ki vos vs mostrez des éndants. Vos voeyoz li response sol tåvlea.
TimTim.Live Mete a djoû API
Li modêye 1 n 'est ki l' pus grande. Vos radjouter des noveas ôtes. En nén oister ou candjî c 'est k' est ddja i gn a.
- — Les responses d 'evenmint asteure ner on ETag. Evoyî en erî come Si - Noun - Cotch po aveur ene roedeu 304 cwand rén candjî. Tchuzes
- — Les clés del waibe contèt asteure tchaeke passeteu so vosse, do côp ki les sites ovrés dobant ovrer. I gn a pont d 'accion.
- — Les acertineures cliyint (mTLS) sont drovous: pinez vosse acertineure viè ene clé di vosse boesse di scriftôr. Tchuzes I gn a pont d 'accion.
- — Tchaeke evenmint ki vos ploz mostrer, dins onk fitchî, e GET / v1/bulk. Tchuzes I gn a pont d 'accion.
- — L' API a vosse adresse: https://api.tim.live/v1. https://tim.liver/v1. I gn a pont d 'accion.
- — Vosse prumire pådje di corwaitaedje a Tim.live/checkout. Tchuzes I gn a pont d 'accion.
- — Vendez des tites dins vosse prumire programe: GET /v1/events/EVENT_ID/tickets eyet POST /v1/ ordres. Tchuzes I gn a pont d 'accion.
- — Ene pådje d 'statut publike a /partners/status, clitchî tchaeke munute. I gn a pont d 'accion.
- — Categoreyes di moes po les compôzaedjes: GET /v1/tårdjaedjes. I gn a pont d 'accion.
- — Rizultats: radjouter ?sub_id= a on loyén d 'acheyaedje eyet nos l' evoyîm a vos avou l' vwaye. Tchuzes I gn a pont d 'accion.
- — Ofrixhaedjes a-z eployîs po les banques et les programes ki bénèt: GET /v1/ offs. Tchuzes I gn a pont d 'accion.
- — Calindrî: /v1/feeds/events.ics po Google Calendar, Apple Calendar et Outlook I gn a pont d 'accion.
- — Eclayî ene clé so vos sierveus: IP permetes asteure, acertineures cliyint (mTLS) so api.tim.live. Tchuzes I gn a pont d 'accion.
- — OAuth 2.0 kel cliyint po les grandes integråcions: POST /v1/oauth/token eyet /v1/outh/revoke. Les clés contént ovrer. I gn a pont d 'accion.
- — Tchôke- divins WordPress 1. 0. 0: on blok, on court code eyet ene pådje d ' apontiaedjes. El mete a djoû di tim.live. I gn a pont d 'accion.
- — Ahesse waibe, floû JSON/RSS/XML/CSV eyet webhooks (evenmint. changed, redjes.changed). I gn a pont d 'accion.
- — API soçon v1: evenmints, onk evenmint, les cognes, eyet l' boesse di boesse ås tchôkes. I gn a pont d 'accion.