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 2 days 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 plus event-specific attributes.

Event-specific payload attributes

Depending on the event type triggered, the webhook payload will contain specific attributes:

Event type
Props value example

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

HTTP REST API to access to 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.

Example Payload

{
  "event": "create",
  "time": 1749581447,
  "object": "conversationevent",
  "objectId": 1266,
  "props": {
    "eventType": "media.OCRDone",  // <-- common payload attribute
    "eventCode": 41,  // <-- common payload attribute
    "conversationId": 548,  // <-- common payload attribute
    "ticketId": 361,  // <-- common payload attribute
    "text": "text captured by OCR" // <-- event-specific attribute
    }
}

Payload Fields

To get a complete list of the webhooks payload attributes and how to configure webhooks, please refer to Webhooks.

 "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"
Authentication

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 payload attributes
  • HTTP REST API to access to ticket's events
  • GETGet an event list for a ticket.
  • Listen to webhook callbacks