Přejít na obsah

Veřejné API

Přihlášení klíčem, pět endpointů pro kampaně a videa, stránkování, pole odpovědí, chyby a limit požadavků.

Aktualizováno 17. 10. 2026

Veřejné API data vaší značky jen čte. Adresa je https://api.tiklify.com/v1/api. API klíč posílejte v hlavičce Authorization: Bearer tklfy_… nebo x-api-key: tklfy_…. Na jeden API klíč přijmeme 60 požadavků za minutu a nejvýše 20 za sekundu, dohromady na všech endpointech; vlastní počítadlo dostane klíč od druhého požadavku po úspěšném ověření, do té doby platí počítadlo adresy. Když z jedné adresy přijde během minuty více než 10 neplatných API klíčů, dostává tato adresa 60 sekund odpověď 429 s kódem API_KEY_RATE_LIMITED a hlavičkou Retry-After; klíče, které se v posledních přibližně 10 minutách úspěšně ověřily, procházejí dál.

curl "https://api.tiklify.com/v1/api/campaigns?status=live&limit=20" \
  -H "Authorization: Bearer $TIKLIFY_API_KEY"

Endpointy

  • GET /me — vaše značka (brand s poli id, name, currency) a scopes klíče.
  • GET /campaigns — seznam kampaní. Filtry status a q (hledá v názvu).
  • GET /campaigns/:id — detail kampaně, navíc s description.
  • GET /campaigns/:id/submissions — videa kampaně. Filtr state.
  • GET /submissions/:id — jedno video.

Stránkování

Seznamy přijímají limit (výchozí 50; vyšší hodnotu než 100 snížíme na 100) a cursor a vracejí items a nextCursor. Další stránku načtete s cursor rovným nextCursor; na poslední stránce je null.

Pole odpovědí

Kampaň má pro každou platformu jeden cíl v targets:

{
  "id": "31999db1-6be4-4cce-81cc-aee51f5e8efb",
  "title": "Podzimní kolekce",
  "description": "Ukažte, jak nosíte naši podzimní kolekci.",
  "category": "fashion",
  "status": "live",
  "visibility": "public",
  "contentType": "ugc",
  "payoutModel": "goal",
  "launchMode": "open",
  "currency": "CZK",
  "budgetAmount": "30000.00",
  "startsAt": "2026-10-01T08:00:00.000Z",
  "endsAt": "2026-10-31T22:59:59.000Z",
  "createdAt": "2026-09-28T12:00:00.000Z",
  "targets": [
    {
      "id": "67c4fe02-65e3-4621-a742-994e863d04c7",
      "platform": "tiktok",
      "contentKind": "video",
      "status": "live",
      "rewardAmount": "1500.00",
      "requiredViews": 10000,
      "maxVideos": 20,
      "pricePerUnit": null,
      "viewUnit": null,
      "requiredMention": null
    }
  ],
  "requiredHashtag": null,
  "linkTracking": { "enabled": false, "destinationUrl": null }
}

Video:

{
  "id": "cf2b7a29-fa3c-42e9-9414-9b3db1dd07b1",
  "campaignId": "31999db1-6be4-4cce-81cc-aee51f5e8efb",
  "targetId": "67c4fe02-65e3-4621-a742-994e863d04c7",
  "platform": "tiktok",
  "state": "monitoring",
  "videoUrl": "https://www.tiktok.com/@creator/video/7426512345678901234",
  "title": null,
  "submittedAt": "2026-10-14T16:05:00.000Z",
  "approvedAt": null,
  "rejectedAt": null,
  "views": null,
  "rewardAmount": "1500.00",
  "currency": "CZK",
  "creator": { "nickname": "anna.tvori" }
}

Možné hodnoty:

status (kampaň i cíl)   draft | scheduled | live | paused | stopped | ended | cancelled | archived
state (video)           submitted | validated | monitoring | threshold_reached | fraud_review |
                        pending_approval | approved | rejected | paid_out | disputed | expired |
                        queued_for_slot
visibility              public | exclusive | invite_only
contentType             ugc | klip
payoutModel             goal | perviews
launchMode              open | masslaunch
platform                tiktok | instagram | youtube
contentKind             video (tiktok) | reel (instagram) | short (youtube)
currency                EUR | CZK | PLN
částky                  text se dvěma desetinnými místy ("1500.00"); pricePerUnit se čtyřmi
časy                    ISO 8601, UTC
views                   aktuální počet zhlédnutí od platformy; null, dokud ho platforma nenahlásí,
                        a znovu, když uložená data z platformy vyprší
rewardAmount (video)    Cíl: pevná odměna videa; Za zhlédnutí: null do schválení,
                        pak částka za zhlédnutí videa

null neznamená nulu. Tvůrce uvádíme jen přezdívkou.

Chyby

400  :id není UUID
400  neplatný status, state nebo q (1–200 znaků), cursor není UUID, nebo limit není celé číslo od 1;
     tělo má message "Validation failed" a seznam errors s poli field a message
400  cursor není položkou tohoto seznamu: code INVALID_CURSOR
401  klíč chybí nebo má špatný tvar: code API_KEY_REQUIRED
401  klíč je neplatný nebo odvolaný: code API_KEY_INVALID
403  klíč nemá oprávnění „Čtení“: code API_KEY_SCOPE
404  kampaň nebo video neexistuje, nebo patří jiné značce
429  překročili jste limit požadavků

Každé tělo chyby obsahuje statusCode a message.

Nepomohlo? Napište nám na hello@tiklify.com.

Veřejné API — Nápověda Tiklify