Журнал событий
Что хранится в истории, сколько она живёт, как забрать её файлом и что удаляется через 90 дней.
За каждой цифрой в панели стоит журнал событий — история, где один факт равен одной строке: фан подписался, платёж прошёл, сообщение ушло. Отчёты не «записываются раз и навсегда», а пересобираются из этих строк, поэтому цифру за прошлый месяц можно пересчитать заново, а не поверить на слово.
История живёт 90 дней
Строки старше 90 дней удаляются. Заберите выгрузку заранее — удалённую строку восстановить нельзя. Ежесуточный слепок сохраняет состояние (кто подписан, сколько заплатил) и после этого срока; истекает именно пошаговая история.
Что можно забрать
Сводка
Сколько строк лежит, с какого дня, сколько уже старше срока.
Выгрузка за период
События построчным JSON — файл, который читается без нашего кода.
Слепок
Состояние на дату одним файлом.
Всё — по адресу https://app.tease.link/api/admin/journal, Bearer-al_live_*
ключом. Ответ привязан к владельцу
ключа: чужой строки в выгрузке быть не может.
Сводка
curl https://app.tease.link/api/admin/journal/summary \
-H "Authorization: Bearer $TEASE_API_KEY"В ответе — total (сколько строк), oldest_at (с какого дня история), retention_days
(срок хранения), older_than_retention (сколько уже старше срока) и kept_forever
(о нём ниже).
Выгрузка
# всё за последние 30 дней
curl "https://app.tease.link/api/admin/journal/export?since=$(( $(date +%s) - 2592000 ))" \
-H "Authorization: Bearer $TEASE_API_KEY" \
-o journal-export.jsonlsince и until — unix-секунды; опустить значит «без границы». Формат — построчный JSON:
одна строка = одно событие, и она самодостаточна, чтобы файл читался через годы:
{"seq":4711,"type":"fan.subscribed","version":1,"entity_type":"fan","entity_id":"88213",
"account_id":"acc_1","occurred_at":1795000000,"recorded_at":1795000042,"source":"poll",
"payload":{"fan_id":"88213","sub_price_cents":999,"current_action":"subscribe"}}Слишком широкий период не обрезается молча — приходит отказ period_too_wide с просьбой
взять период короче. Обрезанный файл выглядит полным, и о пропаже узнают через год; честная
ошибка дешевле.
Слепок
curl "https://app.tease.link/api/admin/journal/snapshot?entity=fans" \
-H "Authorization: Bearer $TEASE_API_KEY" \
-o snapshot-fans.jsonСлепок снимается раз в сутки проигрыванием журнала, а не копированием готовой витрины: иначе ошибка витрины застыла бы в слепке навсегда. Внутри — дата, номер журнала, на котором слепок снят, и само состояние.
Что не удаляется никогда
События, для которых витрина ещё не написана — например платежи до выхода витрины денег, —
хранятся без срока, сколько бы им ни было лет. Удалить их означало бы потерять историю,
которую нечем восстановить. Такие типы перечислены в поле kept_forever сводки.
В панели
То же самое — в Настройки → Данные: сколько записей, с какого дня, кнопка выгрузки за выбранный период и кнопка слепка. Срок хранения написан рядом с кнопкой, а не только здесь.
Хранилище контента
Индексируйте, ищите и анализируйте своё хранилище OnlyFans — находите любое медиа за одно нажатие, видьте, что реально продаётся, и получайте подобранные по когортам рекомендации контента.
FAQ
Прямые ответы об API-ключах, лимитах запросов, владении данными и экспорте, хранении сообщений, скорости отправки, тенант-изоляции и безопасности аккаунта.