ApiRTC
BlogSupportSign UpConsole
  • ApiRTC Developer Portal
  • Status Page
  • What is ApiRTC?
    • Key Concepts
    • ApiRTC Architecture
    • Supported browsers
      • Vintage Browsers Compatibility
    • Billing
    • Product Roadmap and releases
  • Terms & Privacy Policies
    • 🍪Cookies
  • Get help & support
  • ApiRTC JS Library
    • QuickStart Guide
    • Where to find ApiRTC library?
    • Developers Guide
    • Video Communication LifeCycle
    • Demo App & Resources
    • Authentication
    • SDKs & Frameworks
      • ReactJS Libraries
        • Getting Started with ApiRTC React Hooks
        • ApiRTC React Hook Lib Reference
      • ReactNative library
      • Android SDK Reference
      • iOS SDK Reference
    • ApiRTC.js Reference
    • Changelog
  • REST APIs & Integration
    • Introduction
    • Apizee REST APIs
      • Session Events API
    • 3rd-party software integration
    • Webhooks
    • Rate Limits
    • Try it out
  • Other Resources
    • SDK License Agreement
    • ApiRTC Website
    • Blog
    • ApiRTC Community Github
Powered by GitBook
On this page
Edit on GitHub
  1. REST APIs & Integration
  2. Apizee REST APIs

Session Events API

This documentation describes how to interact with the Apizee API to retrieve events that occur during video sessions ("video-assistance").

PreviousApizee REST APIsNext3rd-party software integration

Last updated 1 day ago

Introduction

Apizee sessions can include interactions such as OCR scans, chat messages, media captures, or survey completions. Until now, this data was not accessible externally.

With the new Session Events API, all meaningful in-session actions are exposed via:

  • a REST API attached to each ticket

  • a webhook that triggers on each new event

These capabilities enable IT systems to:

  • Monitor what happens during video sessions

  • Automate processes based on session content

  • Archive or analyze interaction data

Authentication and Permissions

Access to these endpoints requires:

  • A valid Bearer token

  • Proper role permissions to access ticket data

See for a step by step documentation.

Rate limiting applies to all event endpoints. See Rate Limits for more details.

Event Model

Each event in the ticket timeline follows a common structure:

{
  "id": "evt_123456",
  "eventName": "media.OCRDone",
  "timestamp": "2025-06-01T09:15:30Z",
  "source": "agent",
  "data": {
    "text": "REF-98213"
  }
}

Common fields:

Field
Type
Description

id

string

Unique identifier for the event

eventName

string

Type of event

timestamp

string

ISO 8601 UTC timestamp of the event

source

string

agent, guest, or system

data

object

Event-specific payload


Event-specific data field

eventName
data attribute value

consent.accepted

ticket.sessionStarted

geo.ansAllowed

geo.ansDisallowed

ticket.approved

ticket.new

ticket.assigned

ticket.completed

ticket.cancelled

ticket.closed

mediaDevice.allowed

mediaDevice.disallowed

mediaDevice.cameraAllowed

mediaDevice.cameraDisallowed

mediaDevice.micAllowed

mediaDevice.micDisallowed

session.established

ticket.priorityChanged

ticket.invitationSent

ticket.invitationResent

ticket.invitationAccepted

ticket.invitationDeclined

ticket.invitationExpired

ticket.invitationClicked

ticket.invitationNotclicked

session.agentContacted

media.pictureTaken

media.pictureSent

survey.answered

session.agentLeft

session.userLeft

media.OCRDone

Access to a ticket's events

Listen to webhook callbacks

The conversationevent.create webhook notifies your system in real time whenever a new event occurs during a video session linked to a support ticket. It enables your backend to react immediately to user interactions such as media capture, OCR scans, or survey responses.

How It Works

Once configured, the webhook is triggered for each new event in a ticket's timeline. Your endpoint receives a POST request with a JSON payload describing the event.

To know more about webhooks and how to configure them, please refer to Webhooks.

Example Payload

{
  "event": "create",
  "time": 1741778698,
  "object": "conversationevent",
  "objectId": 178546982,
  "props": {
    "eventType": "media.OCRDone",
    "eventCode": 87,
    "conversationId": 54132,
    "ticketId": 339856,
    "text": "ABC1234"
  }
}

Payload Fields

Field
Type
Description

event

string

Action type (create)

time

integer

Unix timestamp of the event

object

string

Always "conversationevent"

objectId

integer

Unique ID of the event

props

Detailed information about the event

eventType

string

Type of event (e.g., media.OCRDone, ticket.new)

ticketId

integer

ID of the ticket where the event occurred

conversationId

integer

ID of the video session (if applicable)

other fields..

varies

depends on the

 "geoloc":{
  "lat": 48.650032799999998,
  "lng": -3.3655395000000001
 }
"agent": {
    "email": "john.doe@apizee.com",
    "phone": "+3316565454",
    "firstname": "John",
    "lastname": "Doe"
},
"agent": {
    "email": "john.doe@apizee.com",
    "phone": "+3316565454",
    "firstname": "John",
    "lastname": "Doe"
},
"agent": {
    "email": "john.doe@apizee.com",
    "phone": "+3316565454",
    "firstname": "John",
    "lastname": "Doe"
},
"agent": {
    "email": "john.doe@apizee.com",
    "phone": "+3316565454",
    "firstname": "John",
    "lastname": "Doe"
},
"agent": {
    "email": "john.doe@apizee.com",
    "phone": "+3316565454",
    "firstname": "John",
    "lastname": "Doe"
},
"agent": {
    "email": "john.doe@apizee.com",
    "phone": "+3316565454",
    "firstname": "John",
    "lastname": "Doe"
},
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"agent": {
    "email": "francois.legoff.ext@apizee.com",
    "phone": "",
    "firstname": "François",
    "lastname": "Le Goff"
 },
"oldPriority": 1,
"newPriority": 0
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"agent": {
    "email": "john.doe@apizee.com",
    "phone": "+3316565454",
    "firstname": "John",
    "lastname": "Doe"
},
“mediaId”: 342432
“mediaId”: 342432
"requestor": {
    "email": "contact@flegoff.fr",
    "phone": "",
    "firstname": "",
    "lastname": "contact Flegoff"
 },
"surveyAnswer": {
  "questions" : [
    {"id":12, //SurveyQuestionAnswer id
    "label": {"fr":"Première question ?","en":"Question one?"}, 
    "answer": "Not satisfied" //Not satisfied, Satisfied, Very satisfied
     }, 
    {"id":14, 
    "label": {"fr":"Deuxième question ?","en":"Question two?"}, 
    "answer": "Satisfied" //Not satisfied, Satisfied, Very satisfied
     }
   ], 
   "feedback": "Ceci est un feedback"  
}
"agent": {
    "email": "john.doe@apizee.com",
    "phone": "+3316565454",
    "firstname": "John",
    "lastname": "Doe"
},
"requestor": {
    "email": "jane.doe@issues.llc",
    "phone": "0605040302",
    "firstname": "Jane",
    "lastname": "Doe"
  },
"text": "Lorem\nipsum"
Event-specific data field

Get an event list for a ticket.

get
Authorizations
Path parameters
ticketIdintegerRequired

ID of the wanted ticket

Responses
200
Good case
application/json
Responseany
403
Forbidden
application/json
404
Not found case
application/json
get
GET /api/v3/tickets/{ticketId}/events HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "id": 56473,
    "eventType": "ticket.invitationAccepted",
    "timestamp": 1741621530,
    "conversationId": 1345324,
    "data": {
      "requestor": {
        "email": "jane.doe@issues.llc",
        "phone": "+3316565454",
        "firstname": "Jane",
        "lastname": "Doe"
      },
      "oldPriority": 1,
      "newPriority": 0
    }
  },
  {
    "id": 56474,
    "eventType": "ticket.priorityChanged",
    "timestamp": 1741621543,
    "conversationId": 1345324,
    "data": {
      "agent": {
        "email": "john.doe@apizee.com",
        "phone": "",
        "firstname": "John",
        "lastname": "Doe"
      },
      "oldPriority": 1,
      "newPriority": 0
    }
  },
  {
    "id": 56475,
    "eventType": "media.pictureTaken",
    "timestamp": 1741621550,
    "conversationId": 1345324,
    "data": {
      "mediaId": 342432
    }
  }
]
  • Introduction
  • Authentication and Permissions
  • Event Model
  • Event-specific data field
  • Access to a ticket's events
  • GETGet an event list for a ticket.
  • Listen to webhook callbacks
Authentication