Skip to content
FolioSign inStart your trial

Webhook event catalogue

Live events

5 events. All groups

live.started#

Carries contentA live stream began.

Carries what the REST read of the same resource returns for a key with the matching read scope: titles, summaries, sections and references. Never secrets.

data.object.object is live_stream.

Fields of data.object for live.started
FieldTypeDescription
audio_ms requiredintegerMilliseconds of audio received.
billed_ms requiredintegerMilliseconds billed against the plan.
created_at requiredstring (date-time)When the stream was created.
end_reason requiredstring | nullWhy it ended: finalized, idle, stopped, revoked or failed; null while running.
id requiredstringThe live stream id.
language requiredstringThe spoken language.
last_seq requiredintegerThe last caption sequence number.
object requiredenum: live_streamAlways live_stream.
public_captions requiredbooleanTrue when captions are public.
source requiredstringThe stream source name.
status requiredenum: created | live | reconnecting | ended | failedWhere the stream stands.
status_transitions requiredobjectWhen the stream reached each state.
deleted_at requiredstring (date-time) | nullWhen it was deleted.
disconnected_at requiredstring (date-time) | nullWhen the feed last dropped.
ended_at requiredstring (date-time) | nullWhen it ended.
started_at requiredstring (date-time) | nullWhen it began.
teaching requiredobject | nullThe teaching created from the service, null until it exists.
id requiredstringThe teaching id.
name requiredstringThe teaching title, as every reference object names itself.
object requiredenum: teachingAlways teaching.
recorded_at requiredstring (date-time) | nullWhen the teaching was recorded.
speaker requiredstringThe speaker, empty when unknown.
title requiredstringThe teaching title.

On updates, data.previous_attributes holds the earlier value of any of these that changed: status.

Example live.started body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "audio_ms": 2412000,
      "billed_ms": 2412000,
      "created_at": "2026-10-13T09:12:10Z",
      "end_reason": "finalized",
      "id": "live_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "language": "en",
      "last_seq": 1873,
      "object": "live_stream",
      "public_captions": true,
      "source": "main",
      "status": "ended",
      "status_transitions": {
        "deleted_at": "2026-10-13T09:12:10Z",
        "disconnected_at": "2026-10-13T08:41:00Z",
        "ended_at": "2026-10-13T09:12:10Z",
        "started_at": "2026-10-13T08:30:00Z"
      },
      "teaching": {
        "id": "tch_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "name": "Romans 8: Nothing can separate us",
        "object": "teaching",
        "recorded_at": "2026-10-11T10:00:00Z",
        "speaker": "Pastor Ada Okafor",
        "title": "Romans 8: Nothing can separate us"
      }
    },
    "previous_attributes": {
      "status": "created"
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "live.started"
}

live.reconnecting#

Carries contentThe feed dropped and the stream is waiting for the encoder to return.

Carries what the REST read of the same resource returns for a key with the matching read scope: titles, summaries, sections and references. Never secrets.

data.object.object is live_stream.

Fields of data.object for live.reconnecting
FieldTypeDescription
audio_ms requiredintegerMilliseconds of audio received.
billed_ms requiredintegerMilliseconds billed against the plan.
created_at requiredstring (date-time)When the stream was created.
end_reason requiredstring | nullWhy it ended: finalized, idle, stopped, revoked or failed; null while running.
id requiredstringThe live stream id.
language requiredstringThe spoken language.
last_seq requiredintegerThe last caption sequence number.
object requiredenum: live_streamAlways live_stream.
public_captions requiredbooleanTrue when captions are public.
source requiredstringThe stream source name.
status requiredenum: created | live | reconnecting | ended | failedWhere the stream stands.
status_transitions requiredobjectWhen the stream reached each state.
deleted_at requiredstring (date-time) | nullWhen it was deleted.
disconnected_at requiredstring (date-time) | nullWhen the feed last dropped.
ended_at requiredstring (date-time) | nullWhen it ended.
started_at requiredstring (date-time) | nullWhen it began.
teaching requiredobject | nullThe teaching created from the service, null until it exists.
id requiredstringThe teaching id.
name requiredstringThe teaching title, as every reference object names itself.
object requiredenum: teachingAlways teaching.
recorded_at requiredstring (date-time) | nullWhen the teaching was recorded.
speaker requiredstringThe speaker, empty when unknown.
title requiredstringThe teaching title.

On updates, data.previous_attributes holds the earlier value of any of these that changed: status.

Example live.reconnecting body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "audio_ms": 2412000,
      "billed_ms": 2412000,
      "created_at": "2026-10-13T09:12:10Z",
      "end_reason": "finalized",
      "id": "live_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "language": "en",
      "last_seq": 1873,
      "object": "live_stream",
      "public_captions": true,
      "source": "main",
      "status": "ended",
      "status_transitions": {
        "deleted_at": "2026-10-13T09:12:10Z",
        "disconnected_at": "2026-10-13T08:41:00Z",
        "ended_at": "2026-10-13T09:12:10Z",
        "started_at": "2026-10-13T08:30:00Z"
      },
      "teaching": {
        "id": "tch_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "name": "Romans 8: Nothing can separate us",
        "object": "teaching",
        "recorded_at": "2026-10-11T10:00:00Z",
        "speaker": "Pastor Ada Okafor",
        "title": "Romans 8: Nothing can separate us"
      }
    },
    "previous_attributes": {
      "status": "created"
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "live.reconnecting"
}

live.ended#

Carries contentA live stream ended, whether finished, stopped, idle, revoked or failed. status and end_reason say which.

Carries what the REST read of the same resource returns for a key with the matching read scope: titles, summaries, sections and references. Never secrets.

data.object.object is live_stream.

Fields of data.object for live.ended
FieldTypeDescription
audio_ms requiredintegerMilliseconds of audio received.
billed_ms requiredintegerMilliseconds billed against the plan.
created_at requiredstring (date-time)When the stream was created.
end_reason requiredstring | nullWhy it ended: finalized, idle, stopped, revoked or failed; null while running.
id requiredstringThe live stream id.
language requiredstringThe spoken language.
last_seq requiredintegerThe last caption sequence number.
object requiredenum: live_streamAlways live_stream.
public_captions requiredbooleanTrue when captions are public.
source requiredstringThe stream source name.
status requiredenum: created | live | reconnecting | ended | failedWhere the stream stands.
status_transitions requiredobjectWhen the stream reached each state.
deleted_at requiredstring (date-time) | nullWhen it was deleted.
disconnected_at requiredstring (date-time) | nullWhen the feed last dropped.
ended_at requiredstring (date-time) | nullWhen it ended.
started_at requiredstring (date-time) | nullWhen it began.
teaching requiredobject | nullThe teaching created from the service, null until it exists.
id requiredstringThe teaching id.
name requiredstringThe teaching title, as every reference object names itself.
object requiredenum: teachingAlways teaching.
recorded_at requiredstring (date-time) | nullWhen the teaching was recorded.
speaker requiredstringThe speaker, empty when unknown.
title requiredstringThe teaching title.

On updates, data.previous_attributes holds the earlier value of any of these that changed: status.

Example live.ended body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "audio_ms": 2412000,
      "billed_ms": 2412000,
      "created_at": "2026-10-13T09:12:10Z",
      "end_reason": "finalized",
      "id": "live_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "language": "en",
      "last_seq": 1873,
      "object": "live_stream",
      "public_captions": true,
      "source": "main",
      "status": "ended",
      "status_transitions": {
        "deleted_at": "2026-10-13T09:12:10Z",
        "disconnected_at": "2026-10-13T08:41:00Z",
        "ended_at": "2026-10-13T09:12:10Z",
        "started_at": "2026-10-13T08:30:00Z"
      },
      "teaching": {
        "id": "tch_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "name": "Romans 8: Nothing can separate us",
        "object": "teaching",
        "recorded_at": "2026-10-11T10:00:00Z",
        "speaker": "Pastor Ada Okafor",
        "title": "Romans 8: Nothing can separate us"
      }
    },
    "previous_attributes": {
      "status": "created"
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "live.ended"
}

live.stream.deleted#

Carries contentA finished live stream was deleted, with its captions, recordings and timeline. The teaching made from it is kept.

Carries what the REST read of the same resource returns for a key with the matching read scope: titles, summaries, sections and references. Never secrets.

data.object.object is live_stream.

Fields of data.object for live.stream.deleted
FieldTypeDescription
audio_ms requiredintegerMilliseconds of audio received.
billed_ms requiredintegerMilliseconds billed against the plan.
created_at requiredstring (date-time)When the stream was created.
end_reason requiredstring | nullWhy it ended: finalized, idle, stopped, revoked or failed; null while running.
id requiredstringThe live stream id.
language requiredstringThe spoken language.
last_seq requiredintegerThe last caption sequence number.
object requiredenum: live_streamAlways live_stream.
public_captions requiredbooleanTrue when captions are public.
source requiredstringThe stream source name.
status requiredenum: created | live | reconnecting | ended | failedWhere the stream stands.
status_transitions requiredobjectWhen the stream reached each state.
deleted_at requiredstring (date-time) | nullWhen it was deleted.
disconnected_at requiredstring (date-time) | nullWhen the feed last dropped.
ended_at requiredstring (date-time) | nullWhen it ended.
started_at requiredstring (date-time) | nullWhen it began.
teaching requiredobject | nullThe teaching created from the service, null until it exists.
id requiredstringThe teaching id.
name requiredstringThe teaching title, as every reference object names itself.
object requiredenum: teachingAlways teaching.
recorded_at requiredstring (date-time) | nullWhen the teaching was recorded.
speaker requiredstringThe speaker, empty when unknown.
title requiredstringThe teaching title.
Example live.stream.deleted body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "audio_ms": 2412000,
      "billed_ms": 2412000,
      "created_at": "2026-10-13T09:12:10Z",
      "end_reason": "finalized",
      "id": "live_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "language": "en",
      "last_seq": 1873,
      "object": "live_stream",
      "public_captions": true,
      "source": "main",
      "status": "ended",
      "status_transitions": {
        "deleted_at": "2026-10-13T09:12:10Z",
        "disconnected_at": "2026-10-13T08:41:00Z",
        "ended_at": "2026-10-13T09:12:10Z",
        "started_at": "2026-10-13T08:30:00Z"
      },
      "teaching": {
        "id": "tch_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "name": "Romans 8: Nothing can separate us",
        "object": "teaching",
        "recorded_at": "2026-10-11T10:00:00Z",
        "speaker": "Pastor Ada Okafor",
        "title": "Romans 8: Nothing can separate us"
      }
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "live.stream.deleted"
}

live.teaching_created#

Carries contentA finished live service became a teaching with its captions as the transcript. teaching points to it.

Carries what the REST read of the same resource returns for a key with the matching read scope: titles, summaries, sections and references. Never secrets.

data.object.object is live_stream.

Fields of data.object for live.teaching_created
FieldTypeDescription
audio_ms requiredintegerMilliseconds of audio received.
billed_ms requiredintegerMilliseconds billed against the plan.
created_at requiredstring (date-time)When the stream was created.
end_reason requiredstring | nullWhy it ended: finalized, idle, stopped, revoked or failed; null while running.
id requiredstringThe live stream id.
language requiredstringThe spoken language.
last_seq requiredintegerThe last caption sequence number.
object requiredenum: live_streamAlways live_stream.
public_captions requiredbooleanTrue when captions are public.
source requiredstringThe stream source name.
status requiredenum: created | live | reconnecting | ended | failedWhere the stream stands.
status_transitions requiredobjectWhen the stream reached each state.
deleted_at requiredstring (date-time) | nullWhen it was deleted.
disconnected_at requiredstring (date-time) | nullWhen the feed last dropped.
ended_at requiredstring (date-time) | nullWhen it ended.
started_at requiredstring (date-time) | nullWhen it began.
teaching requiredobject | nullThe teaching created from the service, null until it exists.
id requiredstringThe teaching id.
name requiredstringThe teaching title, as every reference object names itself.
object requiredenum: teachingAlways teaching.
recorded_at requiredstring (date-time) | nullWhen the teaching was recorded.
speaker requiredstringThe speaker, empty when unknown.
title requiredstringThe teaching title.
Example live.teaching_created body
{
  "actor": null,
  "api_version": "2026-12-01",
  "created": "2026-10-13T09:12:10Z",
  "data": {
    "object": {
      "audio_ms": 2412000,
      "billed_ms": 2412000,
      "created_at": "2026-10-13T09:12:10Z",
      "end_reason": "finalized",
      "id": "live_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
      "language": "en",
      "last_seq": 1873,
      "object": "live_stream",
      "public_captions": true,
      "source": "main",
      "status": "ended",
      "status_transitions": {
        "deleted_at": "2026-10-13T09:12:10Z",
        "disconnected_at": "2026-10-13T08:41:00Z",
        "ended_at": "2026-10-13T09:12:10Z",
        "started_at": "2026-10-13T08:30:00Z"
      },
      "teaching": {
        "id": "tch_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
        "name": "Romans 8: Nothing can separate us",
        "object": "teaching",
        "recorded_at": "2026-10-11T10:00:00Z",
        "speaker": "Pastor Ada Okafor",
        "title": "Romans 8: Nothing can separate us"
      }
    }
  },
  "id": "evt_0192f7a8-3b1c-7d2e-9a40-5c6d7e8f9012",
  "livemode": false,
  "object": "event",
  "request": {
    "id": "req_5f3c9a1e7b2d4c68a0e1f2d3c4b5a697",
    "idempotency_key": null
  },
  "type": "live.teaching_created"
}

Verified against API version 0.0.0-dev. Generated from the live OpenAPI document.