Se connectar

195 Païses3 400 716 Luòcs3 004 607+ Paginas d'artistas 12 030 638+ Paginas d'entrepresas · Disponible en 417+ Lengas

Comment

Vòstra primièra integracion correspond sus unecran.

Ensajar-lo ara - pas cap de clau, pas de seguiment

Dobrir aquesta adreça dins vòstre navigador. @ info

https://timtim.live/api/partner-network/demo?city=Washington
  1. 1

    Obténer una clau de tèst

    Logitz, ditz-nos qui es, e clicatz Create Test Clave. Comença amb tt_test_ e vei pas qu'eveniments d'escandalhatge.

  2. 2

    Trobar d'eveniments

    @ info: tooltip

    curl "https://api.timtim.live/v1/events?city=Washington&category=music" \
      -H "Authorization: Bearer tt_test_YOUR_KEY"
  3. 3

    @ info: whatsthis

    Cada eveniment a un nom, data, de l'environament, l'imatge, la priça e las etiquetas per vòstra carta.

  4. 4

    Utilizar l'acquisicion_url

    Utilizatz l'ai_rla que vos donam. Es aquò. Atribucion de las traças de TimTim.Live dins aqueste ligam.

  5. 5

    Afichar los resultats

    Vejatz las personas enviadas, vengudas de billets e vengudas sus vòstre tablèu de calendièr, o demandatz-los.

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

TimTim.Live Status

Preferéncias

Ont mandar demandas

https://api.timtim.live/v1

Name

Mandar vòstra clau dins l' entèsta d' autorizacion. Les claus de tèst (t_test_) veson sonque los eveniments d'eveniments. Las claus del site Web (tt_pk_live_) pòdon seure sus una pagina Web e solament legir los eveniments. Las claus del servidor (tt_sk_live_) demorar sus vòstre servidor e pòdon tanben legir los beneficis. Anam afichar una clau un còp, gardar-la en segur.

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;
}

Filtre

city
Eveniments dins aquesta vila.
country
Còde de camp de doas letras, per exemple dels EUA.
category
Per exemple, musica, festival o conferéncia.
from
@ info: whatsthis
to
@ info: whatsthis
changed_since
@ info
commissioned
verai = sonque d'eveniments que pagan una recompensa.
minimum_earnings
Sonque los eveniments que pagan al mens aquel fòrça per taula.
near
Un liure, per exemple prèp=Paris, FR.
limit
Quant d'eveniments per pagina, 1 a 100 (20 se lo deixarètz).

Diz-me solament çò que s'ha cambiat

Enregistrar l' ora de vòstra última sincronizacion e lo mandar coma modificat_ dempuèi. Avètz pas d'eveniments modificats — coma las anullacions e l'afichatge de vendas. Pas cap de webhook necessari. @ info

GET https://api.timtim.live/v1/events?changed_since=2026-10-06T10:00:00Z

Mai d' una pagina

@ info: whatsthis Quand seguent es void, abatz tot.

GET https://api.timtim.live/v1/events?city=Paris&cursor=eyJtIjoiZCIs…

Ajudament

Cada eveniment a guanyat. En cas de guany.elegable es fals, l'eveniment a pas de recompensa — es encara la pena d'afichar. Se es verai, lucre.description dich çò qu'obténètz, per example "$5 per bilatge elegibilisat". Se l'acquisicion es restituida, la recompensa es invertida.

Name

Name Alara telecarga cada eveniment que cobre dins un fichièr zip, amb vòstre servidor de clau: GET /v1/bulk/FEED_ID.ndjson.gz o .csv.gz. Apondre ?changed_sine= per sonque çò que s'a cambiat, coma d'eveniments prenguts. Las claus de tèst la pòdon ensajar ara; en dirècte l'utilizacion necessària una revisura de TimTim.Live.

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

Vend de billets dins vòstra aplicacion (comèrci embostat)

Los grands partejars pòdon gardar los compradors dins lor pròcha aplicacion. Demanar GET /v1/events/EVENT_ID/tickets per çò que es en venda, puèi POST /v1/ òrdres amb la causida de l'acquirent. Avètz un ligam de pausament de TimTim.Live per dobrir pel comprador ; la venda es creditada directament a vòstra empresa. Tèst de las tòcas pòt ensajar ara. L'utilizacion en dirècte necessita d'una revisura de TimTim.Live e de pagaments de cartas activats

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": "…"}

Ofrendas ligadas a las cartas (bankas e programas recompensas)

GET /v1/ofers aficha cada eveniment que paga una recompensa coma oferta. Cada ofrenda a l'organizador, las datas que podètz comprar, la priça, lo liure e la recompensa. Vòstre client lo activa a travèrs de vòstre ligam seguit, e la recompensa es pagada a vòstra companyia via /v1/earnings. Tèst de las tòcas veire las ofertas d'escandalhatge. Las ofrendas en dirècte avián d'una recèrca de TimTim.Live La correspondéncia dels pagaments de las cartas necessita d'un acord amb una ret o una banca de cartas, e es pas connectada.

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

Estatut d'eveniment e de billets

L'estat es planificat, retardat, replanat, anulat, sald_out o acabat. billets. disponibilitat es disponibla, limitada, sold_out, non_on_sale o acabada. @ info: whatsthis

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

Comment

Claus de tèst : 60 demanda una minuta. Las claus en dirècte : 120 per minuta Al anar mai rapid recebre una responsa 429 amb Recuperar- Après, lo nombre de segondas a esperar.

@ info

Events that TimTim.Live organizers create and choose to share. Events we imported from other ticket sites are never included, because we do not own the right to share them.

Lo que jamai mandam

Noms de comprador, adreças electronicas, adreça personala, numeric e de detalhs de las cartas. L'API partenariá partejat d'informacions sus l'eveniment, pas lors membres.

Comment

Una linha de HTML aficha d'eveniments sus quina que siti. Utilizar una clau del site Web (tt_pk_live_) e apondre vòstre site a la lista autorizada de la clau. Sen cap d' clau es afichat d' eveniments d' escandalhatges.

<script src="https://timtim.live/widget/events.js"
        data-key="tt_pk_live_YOUR_WEBSITE_KEY"
        data-city="Washington" data-category="music" async></script>

Opcions: ciutat de donadas, païs de las donadas, categoria de Donadas, limite de donadas (1–24), data-earn= "verrat", lenga de donadas e color de donadas.

Autentificacion 2. 0 (grans integracions)

Opcional Far un client d'OAuth sus vòstre tablèu de bòrd Tractar sa identificacion e sa secreta de clients per un marcador d'accès que dura una ora. Mandar aqueste motiu puslèu de una clau. Lo secret se n'envia jamai amb vòstres apèls API, e podètz demandar mens d'amplada que lo client.

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

Per acabar amb un motiu primièr, lo POST a /v1/oaut/revocar amb lo meteis client ID e secret. @ info: whatsthis

Name

Opcional Dins vòstre tablèu, trobatz una clau de servidor, una clau de tèst o un client d'OAuth. Dobrir « Varrolhar a mon servidor » e listatz las adreças publicas de vòstre servidor. Los apèls — e las requèstas d'identificant — d'autra part son refusadas amb ip_non_autorizats, quitament amb la clau correcta.

Certificats clients (mTLS), per las grandes companhas : donatz-nos la carta ID de vòstre servidor (un certificat) e lo pinz a una clau. Aviatz https://api.tim.live amb ela. @ info

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

Comment

Utilizar WordPress ? Installar TimTim.Live Eveniments: un blòt e un cort còde que aficha d'eveniments amb vòstres projèctes de TimTim.Live ligams de billet. Es fagut per TimTim.Live, parla que a tim.live, e met a jorn sonque dempuèi tim.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.

Name
[timtim_events city="Washington" category="music" limit="6"]

Fluses

@ info: status Calendièr Google, Calendièr d'Apple e Outlook pòdon subscriure lo calendièr. Los lectors de flus pòdon pas mandar los entèstas, doncas plaçatz una clau del site o una clau de tèst dins ?key=. Pas plaçar jamai una clau de servidor dins un ligam.

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

Webhooks

Apondre una adreça sus vòstre tablèu de bòrd e lo mandarem un messatge quand una quicòm cambia : eveniment.changed o redimes.changed. Los webhooks son opcionals - change_jat vos donan las meteisas informacions.

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

Verificar totes los messatges : Refusar quina que siá anciana que cinc minutas, e ignorar un TimTim-Livery-Id qu'avètz ja tractat.

// 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);
});

Responsa amb 2xx en 10 segondas. Se pas, tornam ensajar après 1 minuta, 5 minutas, 30 minutas, puèi 2, 6, 12 e 24 oras, puèi arrestar. N'em jamai seguim de redireccions.

Lo nauc de sabla

Las claus de tèst obténen d'eveniments d'escandalhatge marcat TEST EVENT - NO MONE REAL. Dobrir un buy_url, clicar en Comprar un billet de tèst, puèi demandar vòstras ganacions. Simular una restitucion e veire l'invertit.

Quand quicòm an malaur

Las errors s'explican amb de mots simples, amb un títol e çò de far. Cada responsa porta un TimTim-Request-Id. Mandatz-lo a nos e podèm trobar vòstra demanda.

  • 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.

Lo contrat

La descripcion completa de cada camp, al format OpenAPI vòstras aisinas pòdon legir.

Telecargar openapi.yaml

Name

Name Per las claus en dirècte, una persona a TimTim.Live vei a vòstre nom de companyia, vòstre site Web e coma fará afichar los eveniments. Name

Mesas a jorn API TimTim.Live

La version 1 sonque granda. Anam apondre de causas novèlas. Nom pas suprimir o renomenar çò que es ja i a.

  • — @ info: whatsthis Enviatz-lo coma S-Non-Match per obténer un 304 rapid quand pas res cambiat. Opcional
  • — Las claus del site compten ara cada visitant son sola, tanben los sites ocupats contunhan a trabalhar. Pas cap d' accion necessaria.
  • — Remplaçar lo fichièr? Opcional Pas cap d' accion necessaria.
  • — Flus en massa : cada eveniment que podètz afichar, dins un fichièr, a GET /v1/bulk. Opcional Pas cap d' accion necessaria.
  • — L'API a sa pròpia adreça : https://api.tim.live/v1. https://tim.liver/v1 continua a trabalhar. Pas cap d' accion necessaria.
  • — Vòstra pròpia pagina de verificacion a tim.live/checkout Opcional Pas cap d' accion necessaria.
  • — Vend de billets dins vòstra aplicacion : GET /v1/events/EVENT_ID/tickets e POST /v1/òrds. Opcional Pas cap d' accion necessaria.
  • — Una pagina d'estat publica a /partners/status, marca cada minuta. Pas cap d' accion necessaria.
  • — Declaracion mensuala per las entrepresas : GET /v1/reduccions. Pas cap d' accion necessaria.
  • — Postbacks : apondètz ?sub_id= a un ligam de compra e vos lo mandam amb la venda. Opcional Pas cap d' accion necessaria.
  • — Ofertas ligadas a las cartas per los banques e recompensa los programas : GET /v1/ofers. Opcional Pas cap d' accion necessaria.
  • — Flus de calendièr: /v1/feeds/events.ics per Google Calendièr, Apple Calendièr e Outlook Pas cap d' accion necessaria.
  • — Varrolhar una clau a vòstres servidors : IP autorizacion ara, certificats clients (mTLS) sus api.timtim.live. Opcional Pas cap d' accion necessaria.
  • — Referéncias de clients OAuth 2.0 per de grandas integracions: POST /v1/oaut/token e /v1/oth/revoke. Las claus continuan a funcionar. Pas cap d' accion necessaria.
  • — Comment Mesa a jorn dempuèi tim.live. Pas cap d' accion necessaria.
  • — Sits web, fluses JSON/RSS/XML/CSV e webhooks (event.changed, redimes.changed). Pas cap d' accion necessaria.
  • — Partner API v1: eveniments, un eveniment, un rendiment, e lo nauc de sabla. Pas cap d' accion necessaria.