Skip to content

Webhook Events

You can set up webhooks to react to production changes.

Quickstart

It's possible to listen to events and trigger callbacks as they occur.

Because listening to events blocks the current thread, we recommend that you set it up in a different thread than the main one.

python
gazu.set_host("https://kitsu.mystudio.com/api")
gazu.set_event_host("https://kitsu.mystudio.com")
gazu.log_in("email", "password")


def my_callback(data):
    print("Asset created %s" % data["asset_id"])

event_client = gazu.events.init()
gazu.events.add_listener(event_client, "asset:new", my_callback)
gazu.events.run_client(event_client)

Available events

Generic events

For each model listed in the Available data section, there are three events available: new, update and delete. Each event follows this naming convention:

py
model_name.lower().replace(' ', '-') + ':' + action
  • person:new
  • person:update
  • person:deletetion
  • notifications:new
  • project:update
  • metadata-descriptor:new
  • metadata-descriptor:update
  • metadata-descriptor:delete
  • asset-type:new
  • asset:new
  • asset:update
  • asset:delete
  • asset:new-link
  • asset:remove-link
  • asset:deletion
  • casting:update
  • asset_instance:new
  • asset_instance:add-to-shot
  • asset_instance:remove-from-shot
  • asset_instance:new
  • shot:new
  • shot:update
  • shot:deletion
  • scene:new
  • scene:deletion
  • sequence:new
  • episode:new
  • task:new
  • task:update
  • task:deletion
  • task_type:new
  • task:unassign
  • task:assign
  • task:start
  • task:to-review
  • task_status:new
  • task_status:update
  • comment:new
  • comment:deletion
  • preview:add
  • preview-file:set-main
  • working_file:new
  • output_file:new
  • preview_file:deletion

All generic events provide an ID.

Special events

Some actions generate special events:

  • asset-instance:add-to-shot
  • asset-instance:remove-from-shot
  • organisation:set-thumbnail
  • person:set-thumbnail
  • project:set-thumbnail
  • preview-file:add-file
  • preview-file:set-main
  • shot:casting-update
  • task:unassign
  • task:assign
  • task:status-changed

Search Logs

You can access the latest events with raw functions:

py
events = gazu.client.get("data/events/last?page_size=100")
events = gazu.client.get("data/events/last?page_size=100&before=2019-02-01")
events = gazu.client.get("data/events/last?page_size=100&before=2019-02-01&after=2019-01-01")
events = gazu.client.get("data/events/last?page_size=100&only_files=true")