登入

195 個國家3,400,716 個地方3,004,607+ 個藝人專頁 11,023,107+ 個商戶專頁 · 提供 417+ 種語言

伙伴 API - 快速開始

在一個螢幕上你的第一個整合符合。

现在就嘗試它 - 沒有鑰匙, 沒有簽署就緒

在您的瀏覽器中開啟此地址 。 你很快就會看到樣本事件 。

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

    取得測試鑰匙

    簽署, 請告訴我們您是誰, 並且按下測試密鑰 。 開始於 tt_t_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

    使用買方輸入方式(_U)

    使用購物位顯示你使用 URL 。 夠了 。 TimTim.Live 處理這個連結內的歸檔 。

  5. 5

    檢視結果

    參閱到人寄送、賣出及收成的票,或要求他們。

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

TimTim.Live 狀態

參考

要傳送的地址

https://api.timtim.live/v1

您的連接密鑰

在授權稿中傳送您的密鑰 。 鎖定密鑰( t_est_) 只看到樣本事件 。 網站密鑰(t_pk_live_ ) 可以在網頁上加入,但只能讀取事件 。 伺服器密鑰( tt_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
一個地方,例如 near=Paris,FR。
limit
每頁的事件有多少, 1 至 100 (20)

只告訴我有什么改變

儲存你上次同步的時間,並將它傳送為 _ since. 你只有變更的事件,包括取消及銷售節目 。 沒有需要 Webook 。 有事件要停止到已撤回的清單中來 。

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

比一個頁面( U)

如果下一個回答沒有回應, 把它轉回游標= 取得下一頁 。 當下一個是空的, 你擁有一切 。

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

下載已續傳

每一事件都有收入 。 如果賺錢. 配得上是假的, 我們就沒有獎勵 — 它仍然值一提。 如果是真實的, 賺了。 dunced 表示你所得到的情況, 例如『 每張合$5』 。 如果買字被退回, 獎勵會被逆轉 。

批量資料(全部放喺一個檔案)

喺你嘅主頁儲存一個批量資料。然後用你嘅伺服器金鑰,將佢包括嘅所有活動下載成一個壓縮檔:GET /v1/bulk/FEED_ID.ndjson.gz 或者 .csv.gz。加 ?changed_since= 就只會攞有改動嘅,包括已經落架嘅活動。測試金鑰而家就試得;正式使用要 TimTim.Live 審查。

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

在您的app (海床商業) 銷售票

大型合作夥伴可以俾買家留喺自己個 app 入面。用 GET /v1/events/EVENT_ID/tickets 問有咩喺度賣,然後用 POST /v1/orders 送出買家嘅選擇。你會收到一條 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": "…"}

載入卡的機會(bank及獎勵方案)

取得 /v1/offers顯示每一個事件會以發送一次獎勵。 每一個服務都有的组织者、可買到的日期、 價格、地方與獎勵。 你的客戶透過您的追蹤鏈接啟動它,並且用 /v1/ earnings支付給您的公司。 測試密鑰, 請見樣本提供的 。 單一檔案需要評價 TimTim.Live 。 將牌支付直接需要同牌子網絡或银行協議, 而唔連線 。

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

事件狀態及票

已排定、 延遲、 取消、 銷售_ 或完成 。 可用、 有限、 銷出、 不作 或 結束 。 當某事件取消時, 請取下 來 。

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

你可問及的速度

鎖定密鑰 : 關鍵字: a 分鐘 120 。 將要更快地從重新開始搜尋及等待的秒數 。

你取得的事件

TimTim.Live组织者建立和選擇分享的大小大小。 我們從其他票房匯出的事件未包括內部 , 因為我們沒有擁有分享它們的權利 。

我們從未傳送

買方名稱、郵件地址、家地址、電話號碼及卡片细节 。 Partner API 分享事件資訊, 不是我們的成員 。

網站元件

在任何網站上顯示 HTML 事件一行 。 使用網站鑰匙(tt_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) , 資料來源=“了解” 。

OAuth 2.0(大型整合)

可選 在您的路板上製作 Oauth 用戶端。 將客戶端代碼與保密出售至一個小時的存取標誌 。 傳送此標誌(而非密鑰 。 不帶你的 API 呼叫之秘密, 你可以要求的範圍少於客戶。

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

想提早結束一個 token,就用同一個客戶端 ID 同密鑰 POST 去 /v1/oauth/revoke。喺你嘅主頁關咗個客戶端,就會一次過結束佢所有 token。

為您的伺服器鎖定鑰匙

可選 在您的运算板上, 請尋找伺服器鑰匙、測試金鑰或 OAuth 用戶端。 開啟「鎖定到我的伺服器」 ,並列出您的伺服器的公共地址 。 有位 ICQ 用戶批準/ 拒絕了無權限的請求,甚至以正確的鑰匙。

客戶端證書(mTLS),俾大公司用:將你伺服器嘅身份證(一張證書)交俾我哋,再綁定一條金鑰。之後用佢嚟 call https://api.timtim.live。我哋只會回應持有呢張證書嘅伺服器。

# 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 開發的, 只為 Tim.liv 。 只有由 Tim Tim. Lav 製作並提供更新 。

上傳 Pidgin 的設定值加入新的 ‘ 上傳的插件 ’ 。 在設定 \ TimTim.Live 事件與按下 Test Connection 中貼上網站鑰匙 。 然后將 TimTim.Live 事件區塊加入任何頁面 。

下載 WordPress 插件
[timtim_events city="Washington" category="music" limit="6"]

饋送器

和 JSON Feed、 RSS、 XML、 CSV 或日历檔案同樣的事件 (.ics) 。 Google 行事曆、蘋果行事曆和前景可以啟動日历。 feed 閱讀器不能傳送頭部, 因此在 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

網頁邊界

喺你嘅控制台加個地址,有嘢變嘅時候我哋就會傳訊息俾佢:event.changed 或者 earnings.changed。Webhooks 係可選嘅 — changed_since 會俾你一樣嘅資料。

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

檢查所有訊息: 它已經以您的秘密簽名 。 拒絕任何超過五分鐘的情況,並且忽略了TimTim- Delivery-Id 你已經處理過了 。

// 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 分鐘 , 然後停止。 我們從未跟上方向 。

沙盤

測試密鑰 : 開啟購買 URL, 按下 Buy 測試標籤, 然後要求你的收入 。 模擬回報並期待它逆轉 。

某些錯誤

有錯誤, 以單字解释自己, 然後要做什麼 。 每一個回答都會帶一個 TimTim- Request- RID 。 傳送到我們,我們可以找到你的請求 。

  • 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 只增长 。 加入新項目 。 我們並沒有移除或重新命名已經存在 。

  • — 事件儲存目前使用 ETag 。 把它送回去, 如沒有變更時需要迅速的 304 。 可選
  • — 網站密鑰現在各有訪客數, 因此忙碌的網站繼續工作 。 沒有需要動作 。
  • — 客戶端憑證( mTLS) 已開啟: 請將您的憑證貼上 。 可選 沒有需要動作 。
  • — blak feed: 每一個檔案中都顯示一部份/v1/bulk 。 可選 沒有需要動作 。
  • — API 有自己嘅地址:https://api.timtim.live/v1。https://timtim.live/v1 繼續用得。唔使做任何嘢。
  • — 喺 timtim.live/checkout 有你自己品牌嘅付款頁。可選。唔使做任何嘢。
  • — 喺你自己個 app 賣飛:GET /v1/events/EVENT_ID/tickets 同 POST /v1/orders。可選。唔使做任何嘢。
  • — 喺 /partners/status 有個公開狀態頁,每分鐘檢查一次。唔使做任何嘢。
  • — 公司每月結單:GET /v1/settlements。唔使做任何嘢。
  • — 回報: 後退一格=去買點連結, 然後把它傳送給您。 可選 沒有需要動作 。
  • — 載入式的銀行與獎勵程式: get /v1/offers。 可選 沒有需要動作 。
  • — 日曆資料:/v1/feeds/events.ics,用喺 Google Calendar、Apple Calendar 同 Outlook。唔使做任何嘢。
  • — 將您的伺服器的金鑰鎖定: IP允许清單在pi. Tim.liv 上 。 可選 沒有需要動作 。
  • — 大型整合用嘅 OAuth 2.0 客戶端憑證:POST /v1/oauth/token 同 /v1/oauth/revoke。金鑰繼續用得。唔使做任何嘢。
  • — WordPress 外掛 1.0.0:一個區塊、一個短代碼同一個設定頁。佢會自己由 timtim.live 更新。唔使做任何嘢。
  • — 網站小工具、JSON/RSS/XML/CSV 資料同 webhooks(event.changed、earnings.changed)。唔使做任何嘢。
  • — 合作夥伴 API v1:活動、單一活動、收入同沙盒。唔使做任何嘢。