Loc' hañ buan
Ho enkorfadur gentañ a glot war ur skramm.
Klask bremañ - alc'hwez ebet, sinañ ebet
Digeriñ ar chomlec'h-mañ en ho merdeer. Gwelet e vo degouezhoù standilhon diouzhtu.
https://timtim.live/api/partner-network/demo?city=Washington- 1
Kaout un alc'hwez arnod
Kennaskañ, lârit deomp peseurt oc'h, ha bouezit war an alc'hwez arnodiñ. Kregiñ a ra gant tt_test_ ha gwelout degouezhoù standilhon hepken.
- 2
Klask an darvoudoù
Goulenn deizioù en ur gêr.
curl "https://api.timtim.live/v1/events?city=Washington&category=music" \ -H "Authorization: Bearer tt_test_YOUR_KEY" - 3
Diskouez an degouezh
Anv, deiziad, lec'hiadur, skeudenn, werzh hag prest eus an degouezhoù evit ho gartenn.
- 4
Arverañ an key_url
Arverañ ar builh_url deoc'h. Setu. An dornelloù TimTim.Live e-barzh an ere-mañ.
- 5
Gwelout an disoc'hoù
Gwelet 'rez an dud kaset, biljedoù a vellet ha pe goulennet war ho taolenn-taol pe goulenn a-raok.
GET https://api.timtim.live/v1/earnings
Daveenn
Pegoulz kas goulennoù
https://api.timtim.live/v1Ho alc' hwez kennaskañ
Kas ho alc' hwez e reollin an aotrouniezh. Arnodiñ alc'hwezioù (t_test_) gwelout degouezhoù standilhonañ hepken. Alc'hwezioù al lec'hienn (tt_pk_live_) a c'hall bezañ echu war ur bajenn web ha lenn an degouezhoù hepken. Alc'hwezioù an dafariad (tt_sk_live_) chom war ho dafariad ha lenn ivez ar gontoù. Diskouezet e oa un alc'hwez, mirout anezhañ.
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;
}Siloù
city- Degouezhoù er gêr-mañ.
country- Kod ar vro daou lizher, da skouer US.
category- Da skouer, ur soñj pe un emvod.
from- Degouezhoù war pe goude an deiziad- mañ (2026- 10- 20).
to- Degouezhoù war pe a- raok an deiziad-mañ.
changed_since- Degouezhoù kemmet goude an dro- mañ hepken.
commissioned- gwir = darvoudoù hepken o paveiñ ur werzh.
minimum_earnings- Darvoudoù hepken a vo graet an dra-se da vihanañ dre biket.
near- Ur lec'h, da skouer e-kichen=Paris, FR.
limit- Pet darvoudoù dre bajenn, 1 betek 100 (20 mar lakait anezhañ).
Lâr din petra kemmet hepken
Enrollañ eur ho sink diwezhañ ha kas anezhañ evel kemmet Degouezhoù kemmet hepken a-gostez - enlakaat an nulladurioù hag an dilugañ. N'eo ket ezhomm ebet. Degouezhoù ret eo deoc'h paouezout diskouez en-dro er roll dilec'hiet.
GET https://api.timtim.live/v1/events?changed_since=2026-10-06T10:00:00ZMuioc'h eget ur bajenn
Ma 'z eus ar respont da heul, kas anezhi en-dro evel reti= evit kavout ar bajenn da heul. Pa 'zo goullo war-lerc'h, 'vit pep tra.
GET https://api.timtim.live/v1/events?city=Paris&cursor=eyJtIjoiZCIs…O pellgargañ
Pep darvoud 'zo graet. N'eus n'eo ket an degouezh ebet, n'eus ket an deiz - gwir eo diskouez. Ma 'z eo gwir e lâr pezh a gouzout, da skouer "$5 dre bilet dereat". Ma 'z eo dilec'hiet an prennañ, ez eo ar werzh.
Ostilh mangañ
Enrollañ ur benn a- bell war ho pakad- kleiz. Pep dargouezh e golver gant ur restr zip, gant ho alc'hwez dafariad : GET /v1/bulk/FEED_ID.ndjson.gz pe .csv.gz. Ouzhpennañ ?changed_sine= evit petra kemmet hepken, en oa kemmet an darvoudoù. Gant an alc'hwezioù arnodiñ a c'hall bezañ klasket bremañ ; ezhomm eo un dibenn TimTim.Live.
GET https://api.timtim.live/v1/bulk/bfs_YOURFEED.ndjson.gz?changed_since=2026-10-06T00:00:00ZPrennañ titloù en hoc'h arload (aozadur ebet)
Ar c'hoarier bras a vez miret ar c'hoarvezioù en o arload. Goulenn GET /v1/events/EVENT_ID/tickets evit ar pezh a zo en diwall, a laka POST /v1/ urzhoù gant dibab ar c'harrer. Degemer a ra deoc'h ur liamm pezh TimTim.Live da zigeriñ evit ar c'hoarier ; aozet eo ar gont gant ho c'hompagniñ. Arnodiñ an alc' hwezioù a c'hall bezañ klasket bremañ. Ezhomm ezhomm eus un dibenn TimTim.Live hag ar gontoù kartoù gweredekaet.
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": "…"}Oberoù ereet gant ar gartoù (bankoù ha goulevioù a bep seurt)
GAT /v1/stouroù a ziskouez pep darvoud a vo graet ur werzh evel ur goulev. Ar goulev hag an deizioù a c'hallez prennañ, ar werzh, an lec'h hag ar werzh. Loc'hañ a ra ho c'hoarier dre ho liamm a-sevel, hag e vo paket ar werzh da c'hompagnañ dre /v1/earnings. Arnodiñ ar stokelloù gwelet a ra deoc'h kinnigoù standilhon. Ezhomm ezhomm eus un dibenn TimTim.Live. Ezhomm ez eus un emglev gant ur rouedad kartennoù pe ur bank, ha n'eo ket kevreet.
GET https://api.timtim.live/v1/offers?country=USStad an degouezh ha tizetoù
skrammet eo ar stad, dilamet, adstennet, nullet, sald_out pe echu. tickets.Disoc'h eo hegerz, bevennet, sellt_out, non_on_sale pe echuet. Pa vez nullet un degouezh, kas anezhañ.
GET https://api.timtim.live/v1/events/evt_test_washington_konpaPeseurt buan e c' hellit goulenn
Alc'hwezioù arnodiñ : 60 goulennet a ra ur munutenn. Alc'hwezioù bev : 120 munutenn. Mont a ra un respont 429 gant ar c'hlask- goude, an niver a eilennoù da c'hortoz.
Peseurt darvoudoù ho peus
Degouezhoù a grou TimTim.Live aozerien ha dibab rannañ. Degouezhoù enporzhiet hon eus diouzh lec'hiennoù biket all n'eo ket morse, peogwir n'ho peus ket tud da rannañ anezho.
Petra ne kas ket
Anvioù, chomlec'hioù postel, chomadoù ar gêr, niveroù pellgomz ha munudoù kartenn. Rannañ titouroù an darvoudoù, n'eo ket ar c'hemmoù.
Widget lec' hienn
Ur linenn HTML a ziskouez degouezhoù war pep lec' hienn. Arverañ un alc'hwez lec'hienn (tt_pk_live_) ha ouzhpennañ ho lec'hel d'ar roll aotreet an alc' hwez. Gant alc'hwez ebet a ziskouez degouezhoù standilhon.
<script src="https://timtim.live/widget/events.js"
data-key="tt_pk_live_YOUR_WEBSITE_KEY"
data-city="Washington" data-category="music" async></script>Dibarzhioù : gerzhad ar roadennoù, ar vro roadennoù, rummad ar roadoù, bevenn ar roadennoù (1–24), roadennoù-earn="true", roadennoùlang ha liv roadennoù.
OAuth 2.0 (enkorfadurioù bras)
Dibarzhoù Lakaat ur c' hoarier OAuth war ho taolenn- taolenn. Kemmañ e anv an arval hag an kuzh evit un arload hag un eurvezh a dalvo. Kas an arouezenn- se e-lerc'h un alc' hwez. Ar c'huzhlevr ne vo ket tremenet gant ho c'hervell API, ha c'hellit goulenn evit nebeutoc'h lec'h eget ar c'hliant.
# 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"A-benn echuiñ un token diouzhtu, post da /v1/oauth/revoke gant an hevelep naoudi ar c'hliant hag ar kuzh. Diweredekaat ar c' hoarier war ho taolenn- stur echuiñ an holl reollinoù diouzhtu.
Prennañ un alc' hwez war ho dafariad
Dibarzhoù Gant ho stokellaoueg, kavout un alc' hwez dafariad, arnodiñ an alc'hwez pe an arval OAuth. Digeriñ "Prennañ ouzh ma dafariad" ha roll chomlec'hioù foran ho dafariad. Galvadurioù — ha goulennoù diouzh an hini all e vez nac'het gant ip_not_alled, kit gant an alc'hwez dereat.
Testenioù an arval (mTLS), evit ar c'hompagnadoù bras : roit deomp kartenn ID ho servijer (un testeni) hag enrollañ eñ d'un alc'hwez. Gervel gant https://api.tim.live gant se. Respont a ra ar servijer gant an testeni.
# 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"Lugent WordpressComment
Implijit WordPress ? Staliañ TimTim.Live Dargouezhioù: ul bloc'h hag ur kod berr a ziskouez darvoudoù gant ho ereoù TimTim.Live biljet. Graet eo gant TimTim.Live, komzoù da tim.live hepken, ha hizivaat diouzh tim.liv hepken.
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.
Enkargañ an enlugellad WordPress[timtim_events city="Washington" category="music" limit="6"]Labourioù
An hevelep degouezhoù eget liv JSON, RSS, XML, CSV pe ur restr deiziadur (.ics). Deiziadur Google, Apple Deiziadur ha Outlook a c' hellit enrinegañ ouzh an deiziadur. N'haller ket kas ar reollinoù ar renkelloù da ober, neuze lakait un alc'hwez lec'hienn pe un alc’hwez arnod e ?key=. Morse lakaat alc'hwez an dafariad en un ere.
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
Ouzhpennañ ur chomlec'h war ho pakad klevet hag e kas ur gemennadenn pa vez kemmet un tamm : degouezh.changed pe debug.changed.changd. Dibarzhoù dibabet eo ar webhooks - changed_sond a ro deoc'h an hevelep titouroù.
{
"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"
}
}
}Gwiriekaat pep kemennad : sinet eo gant ho kuzh. Nac'hañ pep tra kozh eget pemp munutenn ha leuskel un TimTim-Levery-Id a oa dornata dija.
// 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);
});Respont gant ne vern pe 2xx e-barzh 10 eilenn. Ma n'eo ket, klaskit en-dro goude 1 munutenn, 5 munutoù, 30 munutenn ha 2, 6, 12 ha 24 eurvezh, paouez. N'eo ket heuliet ar c'harradurioù.
Ar sandfazi
Ar stokelloù arnodiñ a-benn kaout degouezhoù standilhonañ merket EVENT - N'EH TRENNET KAET. Digeriñ ur builh_url, bouezit war Prouadiñ ar Bilet, ha goulenn ho pezh. Darvanañ un dilec'hiadur hag gwelout anezhañ en-dro.
Pa vez c'hwitet un dra
Ar fazioù a zespizañ anezho gant ar gerioù leun, gant ur titl ha petra da ober war-lerc'h. Pep respont ez eus ur TimTim-Request-Id. Kas anezhi deomp ha kavout ho goulenn.
- 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.
Ar gevreadenn
Deskrivadur leun pep takad, e mentrezh OpenAPI e c'hall lenn ho binvioù.
Pellgargañ openapi.yamlPenaos digor an alc' hwezioù bev
Ho alc'hwez arnodiñ a virout diouzhtu. Evit alc'hwezioù bev, un hini e TimTim.Live a sell ho anv kompañ, ho lec'hienn ha penaos e vo diskouezet darvoudoù. Gwelout a rit ar respont war ho taolenn- ov.
Hizivadennoù API TimTim.Live
Ledanaat an handelv 1 hepken. Ouzhpennañ a ra traoù nevez. Ne zilemel ket pe adenvel pe pep tra a zo dija.
- — Respontoù an degouezh ez eus ur ETag bremañ. Kas anezhi en-dro evel Ma-None-Match evit kaout un 304 herrek mar bez kemmet ebet. Dibarzhoù
- — Alc'hwezioù al lec'hienn bremañ a chom pep gwell hag eñ eñ e labourat ar lec'hioù ac'hubet. N' eus gwezhiad ebet.
- — Testenioù an arval (mTLS) zo digor : pennañ ho testeni d' un alc'hwez war ho panell deskrivadur. Dibarzhoù N' eus gwezhiad ebet.
- — Ostilh mang : pep darvoud a c'hellit diskouez en ur restr, e GET /v1/bulk. Dibarzhoù N' eus gwezhiad ebet.
- — Emaoc'h chomlec'h ez eus gant an API : https://api.tim.live/v1. https://tim.liver/v1 elec'h labourat. N' eus gwezhiad ebet.
- — Ho pajenn marc'het e tim.live/checkout. Dibarzhoù N' eus gwezhiad ebet.
- — Perzhioù a-fet gant ho arload : GET /v1/events/EVENT_ID/tickets ha POST /v1/ords. Dibarzhoù N' eus gwezhiad ebet.
- — Ur bajenn stad foran e /partners/status, gwiriet bep munutenn. N' eus gwezhiad ebet.
- — Stlennoù mizvezh evit ar c'hompagnennoù : GET /v1/deskemmadurioù. N' eus gwezhiad ebet.
- — Distreiñ : ouzhpennañ ?sub_id= d'ur liamm prennañ ha kaset anezhi en-dro ac'hanoc'h gant ar gael. Dibarzhoù N' eus gwezhiad ebet.
- — Oberoù ar c'hartennoù ereet evit ar bankoù hag ar goulevioù : GET /v1/offers. Dibarzhoù N' eus gwezhiad ebet.
- — Kefluniadur an deiziadur N' eus gwezhiad ebet.
- — Prennañ un alc' hwez d' ho dafariad : rolloù aotreoù IP bremañ, testeni an arval (mTLS) war api.tim.live. Dibarzhoù N' eus gwezhiad ebet.
- — Dibarzhoù an arval OAuth 2.0 evit an enkorfadurioù bras : POST /v1/oauth/token ha /v1/outh/revoke. Labourat an alc' hwezioù. N' eus gwezhiad ebet.
- — Enlugellad WordPress 1. 0. 0 : ur bloc'had, ur kod berr hag ur bajenn arventennoù. Hizivaet eo diouzh tim.live. N' eus gwezhiad ebet.
- — Widget al lec'hienn, feurioù JSON/RSS/XML/CSV ha webhooks (event.changed, debugs.changed). N' eus gwezhiad ebet.
- — API ar c'hengomz v1 : darvoudoù, un degouezh, ar goulev hag ar sandfazi. N' eus gwezhiad ebet.