curl --request GET \
--url https://api.meetingkit.com/api/v1/webhook_events \
--header 'Authorization: <api-key>'import requests
url = "https://api.meetingkit.com/api/v1/webhook_events"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.meetingkit.com/api/v1/webhook_events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meetingkit.com/api/v1/webhook_events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.meetingkit.com/api/v1/webhook_events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.meetingkit.com/api/v1/webhook_events")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetingkit.com/api/v1/webhook_events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"object": "<string>",
"data": [
{
"id": "evt_01k0h4x0n7r2c5m8q9v3b6d1ef",
"object": "<string>",
"type": "meeting.finished",
"workspace_id": "wks_01k6a2r9s8x7c2dvq3m5n6p4ab",
"test": true,
"created_at": "2023-11-07T05:31:56Z",
"data": {
"object": {}
},
"deliveries": [
{
"endpoint_id": "whe_01k6d4a1b2c3d4e5f6g7h8j9km",
"status": "pending",
"attempt_count": 123,
"last_attempt": {
"number": 123,
"status": "pending",
"response_code": 500,
"response_body": "<string>",
"error": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z"
},
"attempts": [
{
"number": 123,
"status": "pending",
"response_code": 500,
"response_body": "<string>",
"error": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
]
}
],
"has_more": true,
"_links": {
"next": {
"url": "<string>"
}
}
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}List webhook events
The events sent to the endpoints of the workspaces the key administers, newest first, for 90 days. Each carries how every delivery went; fetch one event for its payload and each attempt. Only events some endpoint subscribed to are kept.
To recover after an outage, list the events with delivery_status=failed since it
started and process the ones you have not stored.
curl --request GET \
--url https://api.meetingkit.com/api/v1/webhook_events \
--header 'Authorization: <api-key>'import requests
url = "https://api.meetingkit.com/api/v1/webhook_events"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.meetingkit.com/api/v1/webhook_events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meetingkit.com/api/v1/webhook_events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.meetingkit.com/api/v1/webhook_events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.meetingkit.com/api/v1/webhook_events")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetingkit.com/api/v1/webhook_events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"object": "<string>",
"data": [
{
"id": "evt_01k0h4x0n7r2c5m8q9v3b6d1ef",
"object": "<string>",
"type": "meeting.finished",
"workspace_id": "wks_01k6a2r9s8x7c2dvq3m5n6p4ab",
"test": true,
"created_at": "2023-11-07T05:31:56Z",
"data": {
"object": {}
},
"deliveries": [
{
"endpoint_id": "whe_01k6d4a1b2c3d4e5f6g7h8j9km",
"status": "pending",
"attempt_count": 123,
"last_attempt": {
"number": 123,
"status": "pending",
"response_code": 500,
"response_body": "<string>",
"error": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z"
},
"attempts": [
{
"number": 123,
"status": "pending",
"response_code": 500,
"response_body": "<string>",
"error": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
]
}
],
"has_more": true,
"_links": {
"next": {
"url": "<string>"
}
}
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}Authorizations
Your API key, sent bare. See Authentication.
Query Parameters
Only this workspace's events. A wks_ id; integer workspace ids are still accepted.
"wks_01k6a2r9s8x7c2dvq3m5n6p4ab"
Only events of this type.
"meeting.finished"
Only events delivered to this endpoint.
"whe_01k6d4a1b2c3d4e5f6g7h8j9km"
Only events with a delivery in this state, to endpoint_id when given.
pending: not answered yet.succeeded: your receiver returned2xx.failed: its last attempt failed; it is retried until it succeeds or 21 attempts are used.cancelled: the endpoint was disabled, stopped receiving the event, or could not be sent to.
pending, succeeded, failed, cancelled Only events at or after this ISO 8601 time.
Only events before this ISO 8601 time.
Page size, 1 to 100.
1 <= x <= 100Opaque. Follow _links.next.url rather than building it.