# Kitsu Event Types Events are emitted in real-time via Server-Sent Events (SSE) and stored in the event log. ## Listening to Events ```python import gazu gazu.set_host("https://kitsu.mystudio.com/api") gazu.set_event_host("https://kitsu.mystudio.com") # no /api suffix gazu.log_in("user@studio.com", "password") event_client = gazu.events.init() def handler(data): print(data) gazu.events.add_listener(event_client, "task:status-changed", handler) gazu.events.run_client(event_client) # blocks ``` Run the listener in a separate thread since `run_client()` blocks. ## Event Naming Convention Pattern: `entity_type:action` Entity type is the model name lowercased with spaces replaced by hyphens. ## Callback Data The callback `data` dict always includes: - The entity ID (e.g., `asset_id`, `shot_id`, `task_id`) - `project_id` when relevant ## Complete Event List ### Assets - `asset:new` — Asset created - `asset:update` — Asset updated - `asset:delete` — Asset deleted - `asset:new-link` — Asset linked to another entity - `asset:remove-link` — Asset link removed - `asset:casting-update` — Asset casting changed - `asset-type:new` — Asset type created - `asset-type:update` — Asset type updated - `asset-type:delete` — Asset type deleted - `asset-instance:new` — Asset instance created - `asset-instance:update` — Asset instance updated - `asset-instance:delete` — Asset instance deleted ### Shots / Sequences / Episodes / Scenes - `shot:new` — Shot created - `shot:update` — Shot updated - `shot:delete` — Shot deleted - `shot:casting-update` — Shot casting changed - `sequence:new` — Sequence created - `sequence:update` — Sequence updated - `sequence:delete` — Sequence deleted - `episode:new` — Episode created - `episode:update` — Episode updated - `episode:delete` — Episode deleted - `scene:new` — Scene created - `scene:update` — Scene updated - `scene:delete` — Scene deleted ### Tasks - `task:new` — Task created - `task:update` — Task updated - `task:delete` — Task deleted - `task:assign` — Person assigned to task - `task:unassign` — Person unassigned from task - `task:status-changed` — Task status changed (via comment) - `task:to-review` — Task sent for review - `task-type:new` — Task type created - `task-type:update` — Task type updated - `task-type:delete` — Task type deleted - `task-status:new` — Task status created - `task-status:update` — Task status updated - `task-status:delete` — Task status deleted ### Comments - `comment:new` — Comment posted - `comment:update` — Comment edited - `comment:delete` — Comment removed - `comment:reply` — Reply added to comment - `comment:acknowledge` — Comment acknowledged ### Files - `preview-file:new` — Preview file uploaded - `preview-file:update` — Preview file updated - `working-file:new` — Working file created - `output-file:new` — Output file created - `output-file:update` — Output file updated - `output-file:delete` — Output file deleted ### Persons - `person:new` — Person created - `person:update` — Person updated - `person:delete` — Person deleted ### Projects - `project:new` — Project created - `project:update` — Project updated - `project:delete` — Project deleted ### Edits & Concepts - `edit:new` — Edit created - `edit:update` — Edit updated - `edit:delete` — Edit deleted - `concept:new` — Concept created - `concept:update` — Concept updated - `concept:delete` — Concept deleted ### Playlists - `playlist:new` — Playlist created - `playlist:update` — Playlist updated - `playlist:delete` — Playlist deleted ### Notifications - `notification:new` — Notification created - `notification:update` — Notification updated - `notification:delete` — Notification deleted ### Chat - `chat:new` — Chat created - `chat:update` — Chat updated - `chat:delete` — Chat deleted - `chat-message:new` — Message sent - `chat-message:update` — Message edited - `chat-message:delete` — Message deleted ### News - `news:new` — News item created - `news:update` — News item updated - `news:delete` — News item deleted ### Entity Links - `entity-link:new` — Entity link created - `entity-link:delete` — Entity link removed ### Budget - `budget:new` — Budget created - `budget:update` — Budget updated - `budget:delete` — Budget deleted - `budget-entry:new` — Budget entry created - `budget-entry:update` — Budget entry updated - `budget-entry:delete` — Budget entry deleted ### Schedule - `schedule-item:new` — Schedule item created - `schedule-item:update` — Schedule item updated - `schedule-item:delete` — Schedule item deleted - `milestone:new` — Milestone created - `milestone:update` — Milestone updated - `milestone:delete` — Milestone deleted ### Time Tracking - `time-spent:new` — Time entry created - `time-spent:update` — Time entry updated - `time-spent:delete` — Time entry deleted ### Build Jobs - `build-job:new` — Build job created - `build-job:update` — Build job updated - `build-job:delete` — Build job deleted ## Reading Event History ```python # Recent events events = gazu.client.get("data/events/last?page_size=100") # Filter by date events = gazu.client.get("data/events/last?page_size=100&before=2024-02-01&after=2024-01-01") # File events only events = gazu.client.get("data/events/last?page_size=100&only_files=true") # Login logs logs = gazu.client.get("data/events/login-logs/last") ```