Доступ только на чтение к статистике ваших проектов: аккаунты, дневные метрики, видео, ежедневные снимки и кампании UGC с учтёнными просмотрами и суммами к оплате. Для платформ, которые платят креаторам за просмотры и хотят показывать клиентам те же цифры.
| GET | /api/v1/projects |
| GET | /api/v1/projects/{project}/accounts |
| GET | /api/v1/accounts/{handle} |
| GET | /api/v1/accounts/{handle}/daily?from&to |
| GET | /api/v1/accounts/{handle}/videos?updated_since&cursor&limit |
| GET | /api/v1/videos/{account}/{video_id} |
| GET | /api/v1/videos/{account}/{video_id}/snapshots?from&to |
| GET | /api/v1/projects/{project}/campaigns |
| GET | /api/v1/campaigns/{id} |
| GET | /api/v1/campaigns/{id}/videos?status&updated_since&cursor&limit |
| POST | /api/v1/embeds |
| POST | /api/v1/projects/{project}/invites |
Мы отправляем JSON методом POST на ваш адрес https и подписываем его: Lumorastat-Signature: t=<время unix>,v1=<HMAC-SHA256 от "t.тело">. Неудачная доставка повторяется через 1 мин, 5 мин, 30 мин, 2 ч и 12 ч. Номер события постоянный: обрабатывайте каждый один раз.
import hashlib, hmac, time
def verify(secret: str, header: str, body: bytes) -> bool:
parts = dict(p.split("=", 1) for p in header.split(","))
signed = parts["t"].encode() + b"." + body
expected = hmac.new(secret.encode(), signed, hashlib.sha256).hexdigest()
fresh = abs(time.time() - int(parts["t"])) < 300
return fresh and hmac.compare_digest(expected, parts["v1"])Напишите нам, чтобы получить ключ и полное описание (docs/api.md). Сообщите адрес вебхука и сайт, где будут виджеты.
hello@lumorastat.com