Skip to content

integrations/video/whereby/dist/runtime

Interfaces

ParseWherebyWebhookRequestOptions

Properties

nowSeconds?
optional nowSeconds?: number;
requireSignature?
optional requireSignature?: boolean;
timestampToleranceSeconds?
optional timestampToleranceSeconds?: number;
verifier?
optional verifier?: (input) => boolean | Promise<boolean>;
Parameters
Parameter Type
input { rawBody: string; request: Request; signatureHeader: string; }
input.rawBody string
input.request Request
input.signatureHeader string
Returns

boolean | Promise\<boolean>

webhookSigningSecret?
optional webhookSigningSecret?: string;

ValidateWherebyWebhookSignatureInput

Properties

nowSeconds?
optional nowSeconds?: number;
rawBody
rawBody: string | Buffer<ArrayBufferLike>;
signatureHeader
signatureHeader: string;
timestampToleranceSeconds?
optional timestampToleranceSeconds?: number;
webhookSigningSecret
webhookSigningSecret: string;

WherebyAccessLinkInput

Properties

validForSeconds?
optional validForSeconds?: number;

WherebyAccessLinkResource

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

accessLink: string;
expires
expires: number;

WherebyCreateMeetingInput

Properties

additionalFields?
optional additionalFields?: WherebyVideoProviderExtensionFields;
endDate
endDate: string;
fields?
optional fields?: WherebyMeetingField[];
isLocked?
optional isLocked?: boolean;
liveTranscription?
optional liveTranscription?: WherebyLiveTranscriptionOptions;
recording?
optional recording?: WherebyRecordingOptions;
roomMode?
optional roomMode?: WherebyRoomMode;
roomNamePattern?
optional roomNamePattern?: WherebyRoomNamePattern;
roomNamePrefix?
optional roomNamePrefix?: string;
streaming?
optional streaming?: WherebyStreamingOptions;
templateType?
optional templateType?: "viewerMode";

WherebyCreateSummaryInput

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

template?
optional template?: string;
transcriptionId
transcriptionId: string;

WherebyCreateTranscriptionInput

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

recordingId
recordingId: string;

WherebyCredentialStatusInput

Properties

apiAccessConfigured?
optional apiAccessConfigured?: boolean;
apiKey?
optional apiKey?: string;
organizationId?
optional organizationId?: string;
providerClientConfigured?
optional providerClientConfigured?: boolean;
roomTemplateConfigured?
optional roomTemplateConfigured?: boolean;
scopes?
optional scopes?: string[];
subdomain?
optional subdomain?: string;
webhookSigningSecret?
optional webhookSigningSecret?: string;

WherebyCursorListInput

Properties

cursor?
optional cursor?: string;
limit?
optional limit?: number;

WherebyFullApiGeneratedClient

Methods

BulkDeleteRecordings()
BulkDeleteRecordings(...args): Promise<{
  data?: {
     msLeft?: number;
  };
  error?: string;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"POST /recordings/bulk-delete">]
Returns

Promise\<{ data?: { msLeft?: number; }; error?: string; }>

BulkDeleteTranscriptions()
BulkDeleteTranscriptions(...args): Promise<{
  data?: {
     msLeft?: number;
  };
  error?: string;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"POST /transcriptions/bulk-delete">]
Returns

Promise\<{ data?: { msLeft?: number; }; error?: string; }>

CreateMeeting()
CreateMeeting(...args): Promise<WherebyFullApiSchemaMeeting>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"POST /meetings">]
Returns

Promise\<WherebyFullApiSchemaMeeting>

CreateSummary()
CreateSummary(...args): Promise<{
  summaryId?: string;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"POST /summaries">]
Returns

Promise\<{ summaryId?: string; }>

CreateTranscription()
CreateTranscription(...args): Promise<{
  transcriptionId?: string;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"POST /transcriptions">]
Returns

Promise\<{ transcriptionId?: string; }>

DeleteMeeting()
DeleteMeeting(...args): Promise<{
  data?: {
     msLeft?: number;
  };
  error?: string;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"DELETE /meetings/{meetingId}">]
Returns

Promise\<{ data?: { msLeft?: number; }; error?: string; }>

DeleteRecording()
DeleteRecording(...args): Promise<{
  data?: {
     msLeft?: number;
  };
  error?: string;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"DELETE /recordings/{recordingId}">]
Returns

Promise\<{ data?: { msLeft?: number; }; error?: string; }>

DeleteSummary()
DeleteSummary(...args): Promise<{
  data?: {
     msLeft?: number;
  };
  error?: string;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"DELETE /summaries/{summaryId}">]
Returns

Promise\<{ data?: { msLeft?: number; }; error?: string; }>

DeleteTranscription()
DeleteTranscription(...args): Promise<{
  data?: {
     msLeft?: number;
  };
  error?: string;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"DELETE /transcriptions/{transcriptionId}">]
Returns

Promise\<{ data?: { msLeft?: number; }; error?: string; }>

GetDetailsForAParticipantInASession()
GetDetailsForAParticipantInASession(...args): Promise<readonly {
  displayName: string;
  sampleRateMs: number;
  samples: {
  };
  timeStamp: string;
  userAgent: string;
  userRole: string;
}[]>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /insights/participant">]
Returns

Promise\<readonly { displayName: string; sampleRateMs: number; samples: { }; timeStamp: string; userAgent: string; userRole: string; }[]>

GetMeeting()
GetMeeting(...args): Promise<WherebyFullApiSchemaMeeting>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /meetings/{meetingId}">]
Returns

Promise\<WherebyFullApiSchemaMeeting>

GetMeetings()
GetMeetings(...args): Promise<{
  cursor: string;
  results: readonly WherebyFullApiSchemaMeeting[];
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /meetings">]
Returns

Promise\<{ cursor: string; results: readonly WherebyFullApiSchemaMeeting[]; }>

GetParticipants()
GetParticipants(...args): Promise<{
  cursor?: string;
  results?: readonly {
     comment?: string;
     deviceId: string;
     displayName: string;
     externalId: string;
     joinedAt: string;
     leftAt: string;
     participantId: string;
     rating?: number;
     roleName: string;
     roomSessionId: string;
     tags?: readonly string[];
     userId: string;
  }[];
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /insights/participants">]
Returns

Promise\<{ cursor?: string; results?: readonly { comment?: string; deviceId: string; displayName: string; externalId: string; joinedAt: string; leftAt: string; participantId: string; rating?: number; roleName: string; roomSessionId: string; tags?: readonly string[]; userId: string; }[]; }>

GetRecording()
GetRecording(...args): Promise<WherebyFullApiSchemaRecording>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /recordings/{recordingId}">]
Returns

Promise\<WherebyFullApiSchemaRecording>

GetRecordingAccessLink(...args): Promise<{
  accessLink: string;
  expires: number;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /recordings/{recordingId}/access-link">]
Returns

Promise\<{ accessLink: string; expires: number; }>

GetRecordings()
GetRecordings(...args): Promise<{
  cursor: string;
  results: readonly WherebyFullApiSchemaRecording[];
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /recordings">]
Returns

Promise\<{ cursor: string; results: readonly WherebyFullApiSchemaRecording[]; }>

GetRoomInsights()
GetRoomInsights(...args): Promise<{
  cursor?: string;
  results?: readonly {
     createdAt: string;
     endAt: string;
     firstSessionStartedAt: string;
     lastSessionStartedAt: string;
     rating?: number;
     roomName: string;
     totalParticipantMinutes: number;
     totalRatings?: number;
     totalRecorderMinutes: number;
     totalSessions: number;
     totalStreamerMinutes: number;
     totalUniqueParticipants: number;
     totalUniqueRecorders: number;
     totalUniqueStreamers: number;
  }[];
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /insights/rooms">]
Returns

Promise\<{ cursor?: string; results?: readonly { createdAt: string; endAt: string; firstSessionStartedAt: string; lastSessionStartedAt: string; rating?: number; roomName: string; totalParticipantMinutes: number; totalRatings?: number; totalRecorderMinutes: number; totalSessions: number; totalStreamerMinutes: number; totalUniqueParticipants: number; totalUniqueRecorders: number; totalUniqueStreamers: number; }[]; }>

GetRoomSessionInsights()
GetRoomSessionInsights(...args): Promise<{
  cursor?: string;
  results?: readonly {
     endedAt?: string;
     rating?: number;
     roomName: string;
     roomSessionId: string;
     startedAt?: string;
     totalParticipantMinutes: number;
     totalRatings?: number;
     totalRecorderMinutes: number;
     totalStreamerMinutes: number;
     totalUniqueParticipants: number;
     totalUniqueRecorders: number;
     totalUniqueStreamers: number;
  }[];
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /insights/room-sessions">]
Returns

Promise\<{ cursor?: string; results?: readonly { endedAt?: string; rating?: number; roomName: string; roomSessionId: string; startedAt?: string; totalParticipantMinutes: number; totalRatings?: number; totalRecorderMinutes: number; totalStreamerMinutes: number; totalUniqueParticipants: number; totalUniqueRecorders: number; totalUniqueStreamers: number; }[]; }>

GetSummaries()
GetSummaries(...args): Promise<{
  results: readonly WherebyFullApiSchemaSummary[];
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /summaries">]
Returns

Promise\<{ results: readonly WherebyFullApiSchemaSummary[]; }>

GetSummary()
GetSummary(...args): Promise<WherebyFullApiSchemaSummary>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /summaries/{summaryId}">]
Returns

Promise\<WherebyFullApiSchemaSummary>

GetTranscription()
GetTranscription(...args): Promise<WherebyFullApiSchemaTranscription>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /transcriptions/{transcriptionId}">]
Returns

Promise\<WherebyFullApiSchemaTranscription>

GetTranscriptionAccessLink(...args): Promise<{
  accessLink: string;
  expires: number;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /transcriptions/{transcriptionId}/access-link">]
Returns

Promise\<{ accessLink: string; expires: number; }>

GetTranscriptions()
GetTranscriptions(...args): Promise<{
  results: readonly WherebyFullApiSchemaTranscription[];
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"GET /transcriptions">]
Returns

Promise\<{ results: readonly WherebyFullApiSchemaTranscription[]; }>

SetRoomBackground()
SetRoomBackground(...args): Promise<{
  data?: {
     msLeft?: number;
  };
  error?: string;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"PUT /rooms/{roomName}/theme/room-background">]
Returns

Promise\<{ data?: { msLeft?: number; }; error?: string; }>

SetRoomColors()
SetRoomColors(...args): Promise<{
  data?: {
     msLeft?: number;
  };
  error?: string;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"PUT /rooms/{roomName}/theme/tokens">]
Returns

Promise\<{ data?: { msLeft?: number; }; error?: string; }>

SetRoomKnockPageBackground()
SetRoomKnockPageBackground(...args): Promise<{
  data?: {
     msLeft?: number;
  };
  error?: string;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"PUT /rooms/{roomName}/theme/room-knock-page-background">]
Returns

Promise\<{ data?: { msLeft?: number; }; error?: string; }>

SetRoomLogo(...args): Promise<{
  data?: {
     msLeft?: number;
  };
  error?: string;
}>;
Parameters
Parameter Type
...args [WherebyFullApiOperationInput\<"PUT /rooms/{roomName}/theme/logo">]
Returns

Promise\<{ data?: { msLeft?: number; }; error?: string; }>


WherebyFullApiOperation

Properties

functionName
functionName: string;
method
method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
operationId
operationId: string;
path
path: string;
summary
summary: string;
tags
tags: readonly string[];
uid
uid: string;

WherebyFullApiOperationQueryMap

Properties

DELETE /meetings/{meetingId}
DELETE /meetings/{meetingId}: {
};
DELETE /recordings/{recordingId}
DELETE /recordings/{recordingId}: {
};
DELETE /summaries/{summaryId}
DELETE /summaries/{summaryId}: {
};
DELETE /transcriptions/{transcriptionId}
DELETE /transcriptions/{transcriptionId}: {
};
GET /insights/participant
GET /insights/participant: {
  participantId: WherebyFullApiSchemaJsonValue;
  roomSessionId: WherebyFullApiSchemaJsonValue;
};
participantId
participantId: WherebyFullApiSchemaJsonValue;
roomSessionId
roomSessionId: WherebyFullApiSchemaJsonValue;
GET /insights/participants
GET /insights/participants: {
  cursor?: WherebyFullApiSchemaJsonValue;
  externalId?: WherebyFullApiSchemaJsonValue;
  limit?: number;
  roomSessionId: WherebyFullApiSchemaJsonValue;
  sortBy?: WherebyFullApiSchemaJsonValue;
};
cursor?
optional cursor?: WherebyFullApiSchemaJsonValue;
externalId?
optional externalId?: WherebyFullApiSchemaJsonValue;
limit?
optional limit?: number;
roomSessionId
roomSessionId: WherebyFullApiSchemaJsonValue;
sortBy?
optional sortBy?: WherebyFullApiSchemaJsonValue;
GET /insights/room-sessions
GET /insights/room-sessions: {
  cursor?: WherebyFullApiSchemaJsonValue;
  limit?: number;
  roomName: WherebyFullApiSchemaJsonValue;
  roomSessionId?: WherebyFullApiSchemaJsonValue;
  sortBy?: WherebyFullApiSchemaJsonValue;
};
cursor?
optional cursor?: WherebyFullApiSchemaJsonValue;
limit?
optional limit?: number;
roomName
roomName: WherebyFullApiSchemaJsonValue;
roomSessionId?
optional roomSessionId?: WherebyFullApiSchemaJsonValue;
sortBy?
optional sortBy?: WherebyFullApiSchemaJsonValue;
GET /insights/rooms
GET /insights/rooms: {
  createdAt?: {
     from?: string;
     to?: string;
  };
  cursor?: WherebyFullApiSchemaJsonValue;
  limit?: number;
  roomName?: {
     contains?: string;
     exact?: string;
     startsWith?: string;
  };
  sortBy?: WherebyFullApiSchemaJsonValue;
};
createdAt?
optional createdAt?: {
  from?: string;
  to?: string;
};
createdAt.from?
optional from?: string;
createdAt.to?
optional to?: string;
cursor?
optional cursor?: WherebyFullApiSchemaJsonValue;
limit?
optional limit?: number;
roomName?
optional roomName?: {
  contains?: string;
  exact?: string;
  startsWith?: string;
};
roomName.contains?
optional contains?: string;
roomName.exact?
optional exact?: string;
roomName.startsWith?
optional startsWith?: string;
sortBy?
optional sortBy?: WherebyFullApiSchemaJsonValue;
GET /meetings
GET /meetings: {
  cursor?: string;
  fields?: WherebyFullApiSchemaFields;
  limit?: number;
};
cursor?
optional cursor?: string;
fields?
optional fields?: WherebyFullApiSchemaFields;
limit?
optional limit?: number;
GET /meetings/{meetingId}
GET /meetings/{meetingId}: {
  fields?: WherebyFullApiSchemaFields;
};
fields?
optional fields?: WherebyFullApiSchemaFields;
GET /recordings
GET /recordings: {
  cursor?: string;
  limit?: number;
  roomName?: string;
  sortBy?: WherebyFullApiSchemaJsonValue;
};
cursor?
optional cursor?: string;
limit?
optional limit?: number;
roomName?
optional roomName?: string;
sortBy?
optional sortBy?: WherebyFullApiSchemaJsonValue;
GET /recordings/{recordingId}
GET /recordings/{recordingId}: {
};
GET /recordings/{recordingId}/access-link: {
  validForSeconds?: number;
};
validForSeconds?
optional validForSeconds?: number;
GET /summaries
GET /summaries: {
  cursor?: string;
  limit?: number;
  sortBy?: WherebyFullApiSchemaJsonValue;
};
cursor?
optional cursor?: string;
limit?
optional limit?: number;
sortBy?
optional sortBy?: WherebyFullApiSchemaJsonValue;
GET /summaries/{summaryId}
GET /summaries/{summaryId}: {
};
GET /transcriptions
GET /transcriptions: {
  cursor?: string;
  limit?: number;
  roomName?: string;
  sortBy?: WherebyFullApiSchemaJsonValue;
};
cursor?
optional cursor?: string;
limit?
optional limit?: number;
roomName?
optional roomName?: string;
sortBy?
optional sortBy?: WherebyFullApiSchemaJsonValue;
GET /transcriptions/{transcriptionId}
GET /transcriptions/{transcriptionId}: {
};
GET /transcriptions/{transcriptionId}/access-link: {
  validForSeconds?: number;
};
validForSeconds?
optional validForSeconds?: number;
POST /meetings
POST /meetings: {
};
POST /recordings/bulk-delete
POST /recordings/bulk-delete: {
};
POST /summaries
POST /summaries: {
};
POST /transcriptions
POST /transcriptions: {
};
POST /transcriptions/bulk-delete
POST /transcriptions/bulk-delete: {
};
PUT /rooms/{roomName}/theme/logo: {
};
PUT /rooms/{roomName}/theme/room-background
PUT /rooms/{roomName}/theme/room-background: {
};
PUT /rooms/{roomName}/theme/room-knock-page-background
PUT /rooms/{roomName}/theme/room-knock-page-background: {
};
PUT /rooms/{roomName}/theme/tokens
PUT /rooms/{roomName}/theme/tokens: {
};

WherebyFullApiOperationQueryRequiredMap

Properties

DELETE /meetings/{meetingId}
DELETE /meetings/{meetingId}: false;
DELETE /recordings/{recordingId}
DELETE /recordings/{recordingId}: false;
DELETE /summaries/{summaryId}
DELETE /summaries/{summaryId}: false;
DELETE /transcriptions/{transcriptionId}
DELETE /transcriptions/{transcriptionId}: false;
GET /insights/participant
GET /insights/participant: true;
GET /insights/participants
GET /insights/participants: true;
GET /insights/room-sessions
GET /insights/room-sessions: true;
GET /insights/rooms
GET /insights/rooms: false;
GET /meetings
GET /meetings: false;
GET /meetings/{meetingId}
GET /meetings/{meetingId}: false;
GET /recordings
GET /recordings: false;
GET /recordings/{recordingId}
GET /recordings/{recordingId}: false;
GET /recordings/{recordingId}/access-link: false;
GET /summaries
GET /summaries: false;
GET /summaries/{summaryId}
GET /summaries/{summaryId}: false;
GET /transcriptions
GET /transcriptions: false;
GET /transcriptions/{transcriptionId}
GET /transcriptions/{transcriptionId}: false;
GET /transcriptions/{transcriptionId}/access-link: false;
POST /meetings
POST /meetings: false;
POST /recordings/bulk-delete
POST /recordings/bulk-delete: false;
POST /summaries
POST /summaries: false;
POST /transcriptions
POST /transcriptions: false;
POST /transcriptions/bulk-delete
POST /transcriptions/bulk-delete: false;
PUT /rooms/{roomName}/theme/logo
PUT /rooms/{roomName}/theme/logo: false;
PUT /rooms/{roomName}/theme/room-background
PUT /rooms/{roomName}/theme/room-background: false;
PUT /rooms/{roomName}/theme/room-knock-page-background
PUT /rooms/{roomName}/theme/room-knock-page-background: false;
PUT /rooms/{roomName}/theme/tokens
PUT /rooms/{roomName}/theme/tokens: false;

WherebyFullApiOperationRequestBodyMap

Properties

DELETE /meetings/{meetingId}
DELETE /meetings/{meetingId}: never;
DELETE /recordings/{recordingId}
DELETE /recordings/{recordingId}: never;
DELETE /summaries/{summaryId}
DELETE /summaries/{summaryId}: never;
DELETE /transcriptions/{transcriptionId}
DELETE /transcriptions/{transcriptionId}: never;
GET /insights/participant
GET /insights/participant: never;
GET /insights/participants
GET /insights/participants: never;
GET /insights/room-sessions
GET /insights/room-sessions: never;
GET /insights/rooms
GET /insights/rooms: never;
GET /meetings
GET /meetings: never;
GET /meetings/{meetingId}
GET /meetings/{meetingId}: never;
GET /recordings
GET /recordings: never;
GET /recordings/{recordingId}
GET /recordings/{recordingId}: never;
GET /recordings/{recordingId}/access-link: never;
GET /summaries
GET /summaries: never;
GET /summaries/{summaryId}
GET /summaries/{summaryId}: never;
GET /transcriptions
GET /transcriptions: never;
GET /transcriptions/{transcriptionId}
GET /transcriptions/{transcriptionId}: never;
GET /transcriptions/{transcriptionId}/access-link: never;
POST /meetings
POST /meetings: {
  endDate: string;
  fields?: WherebyFullApiSchemaFields;
  isLocked?: boolean;
  liveTranscription?: {
     destination: {
        accessKeyId?: string;
        accessKeySecret?: string;
        authenticationType?: "accessKey" | "roleBased";
        bucket?: string;
        oidcRoleArn?: string;
        provider: "whereby" | "s3";
        region?: string;
     };
     language?:   | "ca,"
        | "zh,"
        | "zh-TW,"
        | "cs,"
        | "da,"
        | "nl,"
        | "en,"
        | "en-US,"
        | "en-GB,"
        | "fi,"
        | "fr,"
        | "de,"
        | "de-CH,"
        | "el,"
        | "hi,"
        | "id,"
        | "it,"
        | "ja,"
        | "ko,"
        | "lv,"
        | "ms,"
        | "no,"
        | "pl,"
        | "pt,"
        | "pt-BR,"
        | "ro,"
        | "ru,"
        | "sk,"
        | "es,"
        | "sv,"
        | "th,"
        | "uk,"
        | "vi,";
     liveCaptions?: boolean;
     startTrigger: "none" | "automatic" | "automatic-2nd-participant" | "manual";
  };
  recording?: {
     destination: {
        accessKeyId?: string;
        accessKeySecret?: string;
        authenticationType?: "accessKey" | "roleBased";
        bucket?: string;
        fileFormat?: "mkv" | "mp4";
        oidcRoleArn?: string;
        provider: "whereby" | "s3";
     };
     startTrigger: "none" | "prompt" | "automatic" | "automatic-2nd-participant";
     type: "none" | "local" | "cloud";
  };
  roomMode?: "normal" | "group";
  roomNamePattern?: "uuid" | "human-short";
  roomNamePrefix?: string;
  startDate?: string;
  streaming?: {
     destination: {
        url: string;
     };
     startTrigger: "none" | "prompt" | "automatic";
  };
  templateType?: "viewerMode";
};
endDate
endDate: string;
fields?
optional fields?: WherebyFullApiSchemaFields;
isLocked?
optional isLocked?: boolean;
liveTranscription?
optional liveTranscription?: {
  destination: {
     accessKeyId?: string;
     accessKeySecret?: string;
     authenticationType?: "accessKey" | "roleBased";
     bucket?: string;
     oidcRoleArn?: string;
     provider: "whereby" | "s3";
     region?: string;
  };
  language?:   | "ca,"
     | "zh,"
     | "zh-TW,"
     | "cs,"
     | "da,"
     | "nl,"
     | "en,"
     | "en-US,"
     | "en-GB,"
     | "fi,"
     | "fr,"
     | "de,"
     | "de-CH,"
     | "el,"
     | "hi,"
     | "id,"
     | "it,"
     | "ja,"
     | "ko,"
     | "lv,"
     | "ms,"
     | "no,"
     | "pl,"
     | "pt,"
     | "pt-BR,"
     | "ro,"
     | "ru,"
     | "sk,"
     | "es,"
     | "sv,"
     | "th,"
     | "uk,"
     | "vi,";
  liveCaptions?: boolean;
  startTrigger: "none" | "automatic" | "automatic-2nd-participant" | "manual";
};
liveTranscription.destination
destination: {
  accessKeyId?: string;
  accessKeySecret?: string;
  authenticationType?: "accessKey" | "roleBased";
  bucket?: string;
  oidcRoleArn?: string;
  provider: "whereby" | "s3";
  region?: string;
};
liveTranscription.destination.accessKeyId?
optional accessKeyId?: string;
liveTranscription.destination.accessKeySecret?
optional accessKeySecret?: string;
liveTranscription.destination.authenticationType?
optional authenticationType?: "accessKey" | "roleBased";
liveTranscription.destination.bucket?
optional bucket?: string;
liveTranscription.destination.oidcRoleArn?
optional oidcRoleArn?: string;
liveTranscription.destination.provider
provider: "whereby" | "s3";
liveTranscription.destination.region?
optional region?: string;
liveTranscription.language?
optional language?:
  | "ca,"
  | "zh,"
  | "zh-TW,"
  | "cs,"
  | "da,"
  | "nl,"
  | "en,"
  | "en-US,"
  | "en-GB,"
  | "fi,"
  | "fr,"
  | "de,"
  | "de-CH,"
  | "el,"
  | "hi,"
  | "id,"
  | "it,"
  | "ja,"
  | "ko,"
  | "lv,"
  | "ms,"
  | "no,"
  | "pl,"
  | "pt,"
  | "pt-BR,"
  | "ro,"
  | "ru,"
  | "sk,"
  | "es,"
  | "sv,"
  | "th,"
  | "uk,"
  | "vi,";
liveTranscription.liveCaptions?
optional liveCaptions?: boolean;
liveTranscription.startTrigger
startTrigger: "none" | "automatic" | "automatic-2nd-participant" | "manual";
recording?
optional recording?: {
  destination: {
     accessKeyId?: string;
     accessKeySecret?: string;
     authenticationType?: "accessKey" | "roleBased";
     bucket?: string;
     fileFormat?: "mkv" | "mp4";
     oidcRoleArn?: string;
     provider: "whereby" | "s3";
  };
  startTrigger: "none" | "prompt" | "automatic" | "automatic-2nd-participant";
  type: "none" | "local" | "cloud";
};
recording.destination
destination: {
  accessKeyId?: string;
  accessKeySecret?: string;
  authenticationType?: "accessKey" | "roleBased";
  bucket?: string;
  fileFormat?: "mkv" | "mp4";
  oidcRoleArn?: string;
  provider: "whereby" | "s3";
};
recording.destination.accessKeyId?
optional accessKeyId?: string;
recording.destination.accessKeySecret?
optional accessKeySecret?: string;
recording.destination.authenticationType?
optional authenticationType?: "accessKey" | "roleBased";
recording.destination.bucket?
optional bucket?: string;
recording.destination.fileFormat?
optional fileFormat?: "mkv" | "mp4";
recording.destination.oidcRoleArn?
optional oidcRoleArn?: string;
recording.destination.provider
provider: "whereby" | "s3";
recording.startTrigger
startTrigger: "none" | "prompt" | "automatic" | "automatic-2nd-participant";
recording.type
type: "none" | "local" | "cloud";
roomMode?
optional roomMode?: "normal" | "group";
roomNamePattern?
optional roomNamePattern?: "uuid" | "human-short";
roomNamePrefix?
optional roomNamePrefix?: string;
startDate?
optional startDate?: string;
streaming?
optional streaming?: {
  destination: {
     url: string;
  };
  startTrigger: "none" | "prompt" | "automatic";
};
streaming.destination
destination: {
  url: string;
};
streaming.destination.url
url: string;
streaming.startTrigger
startTrigger: "none" | "prompt" | "automatic";
templateType?
optional templateType?: "viewerMode";
POST /recordings/bulk-delete
POST /recordings/bulk-delete: {
  recordingIds: readonly string[];
};
recordingIds
recordingIds: readonly string[];
POST /summaries
POST /summaries: {
  template?:   | "SOAP"
     | "Extended SOAP"
     | "General Narrative"
     | "General Bulleted"
     | "Educational Lecture"
     | "Educational Tutoring";
  transcriptionId: string;
};
template?
optional template?:
  | "SOAP"
  | "Extended SOAP"
  | "General Narrative"
  | "General Bulleted"
  | "Educational Lecture"
  | "Educational Tutoring";
transcriptionId
transcriptionId: string;
POST /transcriptions
POST /transcriptions: {
  recordingId: string;
};
recordingId
recordingId: string;
POST /transcriptions/bulk-delete
POST /transcriptions/bulk-delete: {
  transcriptionIds: readonly string[];
};
transcriptionIds
transcriptionIds: readonly string[];
PUT /rooms/{roomName}/theme/logo
PUT /rooms/{roomName}/theme/logo: {
  theme?: "default";
};
theme?
optional theme?: "default";
PUT /rooms/{roomName}/theme/room-background
PUT /rooms/{roomName}/theme/room-background: {
  palette?: "default" | "grey" | "purple" | "burgund";
  theme?: "default" | "mountains" | "characters" | "rocks";
};
palette?
optional palette?: "default" | "grey" | "purple" | "burgund";
theme?
optional theme?: "default" | "mountains" | "characters" | "rocks";
PUT /rooms/{roomName}/theme/room-knock-page-background
PUT /rooms/{roomName}/theme/room-knock-page-background: {
  palette?: "default" | "grey" | "purple" | "burgund";
  theme?: "default" | "mountains" | "characters" | "rocks";
};
palette?
optional palette?: "default" | "grey" | "purple" | "burgund";
theme?
optional theme?: "default" | "mountains" | "characters" | "rocks";
PUT /rooms/{roomName}/theme/tokens
PUT /rooms/{roomName}/theme/tokens: {
  tokens?: {
     colors?: {
        focus?: string;
        primary?: string;
        secondary?: string;
     };
  };
  tokensPreset?: "custom" | "default";
};
tokens?
optional tokens?: {
  colors?: {
     focus?: string;
     primary?: string;
     secondary?: string;
  };
};
tokens.colors?
optional colors?: {
  focus?: string;
  primary?: string;
  secondary?: string;
};
tokens.colors.focus?
optional focus?: string;
tokens.colors.primary?
optional primary?: string;
tokens.colors.secondary?
optional secondary?: string;
tokensPreset?
optional tokensPreset?: "custom" | "default";

WherebyFullApiOperationRequestBodyRequiredMap

Properties

DELETE /meetings/{meetingId}
DELETE /meetings/{meetingId}: false;
DELETE /recordings/{recordingId}
DELETE /recordings/{recordingId}: false;
DELETE /summaries/{summaryId}
DELETE /summaries/{summaryId}: false;
DELETE /transcriptions/{transcriptionId}
DELETE /transcriptions/{transcriptionId}: false;
GET /insights/participant
GET /insights/participant: false;
GET /insights/participants
GET /insights/participants: false;
GET /insights/room-sessions
GET /insights/room-sessions: false;
GET /insights/rooms
GET /insights/rooms: false;
GET /meetings
GET /meetings: false;
GET /meetings/{meetingId}
GET /meetings/{meetingId}: false;
GET /recordings
GET /recordings: false;
GET /recordings/{recordingId}
GET /recordings/{recordingId}: false;
GET /recordings/{recordingId}/access-link: false;
GET /summaries
GET /summaries: false;
GET /summaries/{summaryId}
GET /summaries/{summaryId}: false;
GET /transcriptions
GET /transcriptions: false;
GET /transcriptions/{transcriptionId}
GET /transcriptions/{transcriptionId}: false;
GET /transcriptions/{transcriptionId}/access-link: false;
POST /meetings
POST /meetings: false;
POST /recordings/bulk-delete
POST /recordings/bulk-delete: false;
POST /summaries
POST /summaries: false;
POST /transcriptions
POST /transcriptions: false;
POST /transcriptions/bulk-delete
POST /transcriptions/bulk-delete: false;
PUT /rooms/{roomName}/theme/logo
PUT /rooms/{roomName}/theme/logo: false;
PUT /rooms/{roomName}/theme/room-background
PUT /rooms/{roomName}/theme/room-background: false;
PUT /rooms/{roomName}/theme/room-knock-page-background
PUT /rooms/{roomName}/theme/room-knock-page-background: false;
PUT /rooms/{roomName}/theme/tokens
PUT /rooms/{roomName}/theme/tokens: false;

WherebyFullApiOperationResponseMap

Properties

DELETE /meetings/{meetingId}
DELETE /meetings/{meetingId}: {
  data?: {
     msLeft?: number;
  };
  error?: string;
};
data?
optional data?: {
  msLeft?: number;
};
data.msLeft?
optional msLeft?: number;
error?
optional error?: string;
DELETE /recordings/{recordingId}
DELETE /recordings/{recordingId}: {
  data?: {
     msLeft?: number;
  };
  error?: string;
};
data?
optional data?: {
  msLeft?: number;
};
data.msLeft?
optional msLeft?: number;
error?
optional error?: string;
DELETE /summaries/{summaryId}
DELETE /summaries/{summaryId}: {
  data?: {
     msLeft?: number;
  };
  error?: string;
};
data?
optional data?: {
  msLeft?: number;
};
data.msLeft?
optional msLeft?: number;
error?
optional error?: string;
DELETE /transcriptions/{transcriptionId}
DELETE /transcriptions/{transcriptionId}: {
  data?: {
     msLeft?: number;
  };
  error?: string;
};
data?
optional data?: {
  msLeft?: number;
};
data.msLeft?
optional msLeft?: number;
error?
optional error?: string;
GET /insights/participant
GET /insights/participant: readonly {
  displayName: string;
  sampleRateMs: number;
  samples: {
  };
  timeStamp: string;
  userAgent: string;
  userRole: string;
}[];
GET /insights/participants
GET /insights/participants: {
  cursor?: string;
  results?: readonly {
     comment?: string;
     deviceId: string;
     displayName: string;
     externalId: string;
     joinedAt: string;
     leftAt: string;
     participantId: string;
     rating?: number;
     roleName: string;
     roomSessionId: string;
     tags?: readonly string[];
     userId: string;
  }[];
};
cursor?
optional cursor?: string;
results?
optional results?: readonly {
  comment?: string;
  deviceId: string;
  displayName: string;
  externalId: string;
  joinedAt: string;
  leftAt: string;
  participantId: string;
  rating?: number;
  roleName: string;
  roomSessionId: string;
  tags?: readonly string[];
  userId: string;
}[];
GET /insights/room-sessions
GET /insights/room-sessions: {
  cursor?: string;
  results?: readonly {
     endedAt?: string;
     rating?: number;
     roomName: string;
     roomSessionId: string;
     startedAt?: string;
     totalParticipantMinutes: number;
     totalRatings?: number;
     totalRecorderMinutes: number;
     totalStreamerMinutes: number;
     totalUniqueParticipants: number;
     totalUniqueRecorders: number;
     totalUniqueStreamers: number;
  }[];
};
cursor?
optional cursor?: string;
results?
optional results?: readonly {
  endedAt?: string;
  rating?: number;
  roomName: string;
  roomSessionId: string;
  startedAt?: string;
  totalParticipantMinutes: number;
  totalRatings?: number;
  totalRecorderMinutes: number;
  totalStreamerMinutes: number;
  totalUniqueParticipants: number;
  totalUniqueRecorders: number;
  totalUniqueStreamers: number;
}[];
GET /insights/rooms
GET /insights/rooms: {
  cursor?: string;
  results?: readonly {
     createdAt: string;
     endAt: string;
     firstSessionStartedAt: string;
     lastSessionStartedAt: string;
     rating?: number;
     roomName: string;
     totalParticipantMinutes: number;
     totalRatings?: number;
     totalRecorderMinutes: number;
     totalSessions: number;
     totalStreamerMinutes: number;
     totalUniqueParticipants: number;
     totalUniqueRecorders: number;
     totalUniqueStreamers: number;
  }[];
};
cursor?
optional cursor?: string;
results?
optional results?: readonly {
  createdAt: string;
  endAt: string;
  firstSessionStartedAt: string;
  lastSessionStartedAt: string;
  rating?: number;
  roomName: string;
  totalParticipantMinutes: number;
  totalRatings?: number;
  totalRecorderMinutes: number;
  totalSessions: number;
  totalStreamerMinutes: number;
  totalUniqueParticipants: number;
  totalUniqueRecorders: number;
  totalUniqueStreamers: number;
}[];
GET /meetings
GET /meetings: {
  cursor: string;
  results: readonly WherebyFullApiSchemaMeeting[];
};
cursor
cursor: string;
results
results: readonly WherebyFullApiSchemaMeeting[];
GET /meetings/{meetingId}
GET /meetings/{meetingId}: WherebyFullApiSchemaMeeting;
GET /recordings
GET /recordings: {
  cursor: string;
  results: readonly WherebyFullApiSchemaRecording[];
};
cursor
cursor: string;
results
results: readonly WherebyFullApiSchemaRecording[];
GET /recordings/{recordingId}
GET /recordings/{recordingId}: WherebyFullApiSchemaRecording;
GET /recordings/{recordingId}/access-link: {
  accessLink: string;
  expires: number;
};
accessLink: string;
expires
expires: number;
GET /summaries
GET /summaries: {
  results: readonly WherebyFullApiSchemaSummary[];
};
results
results: readonly WherebyFullApiSchemaSummary[];
GET /summaries/{summaryId}
GET /summaries/{summaryId}: WherebyFullApiSchemaSummary;
GET /transcriptions
GET /transcriptions: {
  results: readonly WherebyFullApiSchemaTranscription[];
};
results
results: readonly WherebyFullApiSchemaTranscription[];
GET /transcriptions/{transcriptionId}
GET /transcriptions/{transcriptionId}: WherebyFullApiSchemaTranscription;
GET /transcriptions/{transcriptionId}/access-link: {
  accessLink: string;
  expires: number;
};
accessLink: string;
expires
expires: number;
POST /meetings
POST /meetings: WherebyFullApiSchemaMeeting;
POST /recordings/bulk-delete
POST /recordings/bulk-delete: {
  data?: {
     msLeft?: number;
  };
  error?: string;
};
data?
optional data?: {
  msLeft?: number;
};
data.msLeft?
optional msLeft?: number;
error?
optional error?: string;
POST /summaries
POST /summaries: {
  summaryId?: string;
};
summaryId?
optional summaryId?: string;
POST /transcriptions
POST /transcriptions: {
  transcriptionId?: string;
};
transcriptionId?
optional transcriptionId?: string;
POST /transcriptions/bulk-delete
POST /transcriptions/bulk-delete: {
  data?: {
     msLeft?: number;
  };
  error?: string;
};
data?
optional data?: {
  msLeft?: number;
};
data.msLeft?
optional msLeft?: number;
error?
optional error?: string;
PUT /rooms/{roomName}/theme/logo
PUT /rooms/{roomName}/theme/logo: {
  data?: {
     msLeft?: number;
  };
  error?: string;
};
data?
optional data?: {
  msLeft?: number;
};
data.msLeft?
optional msLeft?: number;
error?
optional error?: string;
PUT /rooms/{roomName}/theme/room-background
PUT /rooms/{roomName}/theme/room-background: {
  data?: {
     msLeft?: number;
  };
  error?: string;
};
data?
optional data?: {
  msLeft?: number;
};
data.msLeft?
optional msLeft?: number;
error?
optional error?: string;
PUT /rooms/{roomName}/theme/room-knock-page-background
PUT /rooms/{roomName}/theme/room-knock-page-background: {
  data?: {
     msLeft?: number;
  };
  error?: string;
};
data?
optional data?: {
  msLeft?: number;
};
data.msLeft?
optional msLeft?: number;
error?
optional error?: string;
PUT /rooms/{roomName}/theme/tokens
PUT /rooms/{roomName}/theme/tokens: {
  data?: {
     msLeft?: number;
  };
  error?: string;
};
data?
optional data?: {
  msLeft?: number;
};
data.msLeft?
optional msLeft?: number;
error?
optional error?: string;

WherebyGetMeetingInput

Properties

fields?
optional fields?: WherebyMeetingField[];

WherebyInsightsListResponse

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

cursor
cursor: string;
results
results: WherebyVideoJsonObject[];

WherebyInsightsQueryInput

Extended by

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

cursor?
optional cursor?: string;
limit?
optional limit?: number;
sortBy?
optional sortBy?: string;

WherebyListMeetingsInput

Properties

cursor?
optional cursor?: string;
fields?
optional fields?: WherebyMeetingField[];
limit?
optional limit?: number;

WherebyListMeetingsResponse

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

cursor
cursor: string;
results
results: WherebyMeetingResource[];

WherebyListRecordingsResponse

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

cursor
cursor: string;
results
results: WherebyRecordingResource[];

WherebyListSummariesResponse

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

cursor
cursor: string;
results
results: WherebySummaryResource[];

WherebyListTranscriptionsResponse

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

cursor
cursor: string;
results
results: WherebyTranscriptionResource[];

WherebyLiveCheckOptions

Extends

Properties

apiKey?
optional apiKey?: string;
Inherited from

WherebyVideoClientOptions.apiKey

baseUrl?
optional baseUrl?: string;
Inherited from

WherebyVideoClientOptions.baseUrl

client?
optional client?: Pick<WherebyVideoClient, "listMeetings">;
fetch?
optional fetch?: {
  (input, init?): Promise<Response>;
  (input, init?): Promise<Response>;
};
Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input URL | RequestInfo
init? RequestInit
Returns

Promise\<Response>

Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input string | Request | URL
init? RequestInit
Returns

Promise\<Response>

Inherited from

WherebyVideoClientOptions.fetch

providerClient?
optional providerClient?: WherebyVideoProviderClient;
Inherited from

WherebyVideoClientOptions.providerClient

retry?
optional retry?:
  | number
  | WherebyProviderJsonRetryOptions;
Inherited from

WherebyVideoClientOptions.retry

signal?
optional signal?: AbortSignal;
Inherited from

WherebyVideoClientOptions.signal

timeoutMs?
optional timeoutMs?: number;
Inherited from

WherebyVideoClientOptions.timeoutMs


WherebyLiveTranscriptionOptions

Properties

destination?
optional destination?: WherebyStorageDestination;
language?
optional language?: string;
liveCaptions?
optional liveCaptions?: boolean;
startTrigger?
optional startTrigger?: WherebyLiveTranscriptionStartTrigger;

WherebyMeetingResource

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

endDate
endDate: string;
hostRoomUrl?
optional hostRoomUrl?: string;
meetingId
meetingId: string;
roomName?
optional roomName?: string;
roomUrl
roomUrl: string;
startDate?
optional startDate?: string;
viewerRoomUrl?
optional viewerRoomUrl?: string;

WherebyOperationRequestInput

Properties

body?
optional body?: WherebyVideoProviderPayload;
headers?
optional headers?: Record<string, string>;
pathParams?
optional pathParams?: Record<string, string | number | boolean>;
query?
optional query?: WherebyVideoProviderQuery;

WherebyParticipantInsightsInput

Extends

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

cursor?
optional cursor?: string;
Inherited from

WherebyInsightsQueryInput.cursor

externalId?
optional externalId?: string;
limit?
optional limit?: number;
Inherited from

WherebyInsightsQueryInput.limit

participantId?
optional participantId?: string;
roomSessionId?
optional roomSessionId?: string;
sortBy?
optional sortBy?: string;
Inherited from

WherebyInsightsQueryInput.sortBy


WherebyProviderJsonRetryOptions

Properties

attempts?
optional attempts?: number;
baseDelayMs?
optional baseDelayMs?: number;
maxDelayMs?
optional maxDelayMs?: number;
statusCodes?
optional statusCodes?: readonly number[];

WherebyRecordingOptions

Properties

destination?
optional destination?: WherebyStorageDestination;
startTrigger?
optional startTrigger?: WherebyRecordingStartTrigger;
type
type: WherebyRecordingType;

WherebyRecordingResource

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

endDate?
optional endDate?: string;
filename?
optional filename?: string;
recordingId
recordingId: string;
roomName?
optional roomName?: string;
roomSessionId?
optional roomSessionId?: string;
sizeInMegaBytes?
optional sizeInMegaBytes?: number;
startDate?
optional startDate?: string;

WherebyResource

Indexable

[key: string]: WherebyVideoProviderExtensionValue

WherebyRoomThemeTokensInput

Properties

tokens?
optional tokens?: {
[key: string]: WherebyVideoProviderExtensionValue;
  colors?: {
   [key: string]: WherebyVideoProviderExtensionValue;
     focus?: string;
     primary?: string;
     secondary?: string;
  };
};
Index Signature
[key: string]: WherebyVideoProviderExtensionValue
colors?
optional colors?: {
[key: string]: WherebyVideoProviderExtensionValue;
  focus?: string;
  primary?: string;
  secondary?: string;
};
Index Signature
[key: string]: WherebyVideoProviderExtensionValue
colors.focus?
optional focus?: string;
colors.primary?
optional primary?: string;
colors.secondary?
optional secondary?: string;
tokensPreset?
optional tokensPreset?: "custom" | "default";

WherebySignedWebhookRequest

Properties

contentType?
optional contentType?: string;
data?
optional data?: {
[key: string]: WherebyVideoProviderExtensionValue;
  displayName?: string;
  externalId?: string;
  meetingId?: string;
  metadata?: string;
  participantId?: string;
  recordingId?: string;
  roleName?: string;
  roomName?: string;
  roomSessionId?: string;
  status?: string;
  subdomain?: string;
  transcriptionId?: string;
};
Index Signature
[key: string]: WherebyVideoProviderExtensionValue
displayName?
optional displayName?: string;
externalId?
optional externalId?: string;
meetingId?
optional meetingId?: string;
metadata?
optional metadata?: string;
participantId?
optional participantId?: string;
recordingId?
optional recordingId?: string;
roleName?
optional roleName?: string;
roomName?
optional roomName?: string;
roomSessionId?
optional roomSessionId?: string;
status?
optional status?: string;
subdomain?
optional subdomain?: string;
transcriptionId?
optional transcriptionId?: string;
eventType?
optional eventType?: string;
json?
optional json?: WherebyWebhookEvent;
rawBody
rawBody: string;
signatureHeader?
optional signatureHeader?: string;
verified
verified: boolean;

WherebyStorageDestination

Properties

accessKeyId?
optional accessKeyId?: string;
accessKeySecret?
optional accessKeySecret?: string;
authenticationType?
optional authenticationType?: WherebyStorageAuthenticationType;
bucket?
optional bucket?: string;
oidcRoleArn?
optional oidcRoleArn?: string;
provider
provider: WherebyStorageProvider;
region?
optional region?: string;

WherebyStreamingOptions

Properties

destination?
optional destination?: {
  url: string;
};
url
url: string;
startTrigger?
optional startTrigger?: WherebyStreamingStartTrigger;

WherebySummaryResource

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

state?
optional state?: string;
summaryId
summaryId: string;
text?
optional text?: string;
transcriptionId?
optional transcriptionId?: string;

WherebyTranscriptionResource

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

createdAt?
optional createdAt?: string;
durationInSeconds?
optional durationInSeconds?: number;
endDate?
optional endDate?: string;
recordingId?
optional recordingId?: string;
roomName?
optional roomName?: string;
roomSessionId?
optional roomSessionId?: string;
startDate?
optional startDate?: string;
state?
optional state?: "ready" | "failed" | "in_progress";
storageType?
optional storageType?: "WHEREBY_HOSTED" | "SELF_HOSTED";
transcriptionId
transcriptionId: string;
type?
optional type?: "LIVE_TRANSCRIPTION" | "RECORDING_TRANSCRIPTION";

WherebyVideoClient

Properties

fullApi
fullApi: WherebyFullApiGeneratedClient;
providerClient
providerClient: WherebyVideoProviderClient;
requestOperation
requestOperation: WherebyGeneratedOperationCaller;

Methods

bulkDeleteRecordings()
bulkDeleteRecordings(recordingIds): Promise<Record<string, never>>;
Parameters
Parameter Type
recordingIds string[]
Returns

Promise\<Record\<string, never>>

bulkDeleteTranscriptions()
bulkDeleteTranscriptions(transcriptionIds): Promise<Record<string, never>>;
Parameters
Parameter Type
transcriptionIds string[]
Returns

Promise\<Record\<string, never>>

createMeeting()
createMeeting(input): Promise<WherebyMeetingResource>;
Parameters
Parameter Type
input WherebyCreateMeetingInput
Returns

Promise\<WherebyMeetingResource>

createSummary()
createSummary(input): Promise<WherebySummaryResource>;
Parameters
Parameter Type
input WherebyCreateSummaryInput
Returns

Promise\<WherebySummaryResource>

createTranscription()
createTranscription(input): Promise<WherebyTranscriptionResource>;
Parameters
Parameter Type
input WherebyCreateTranscriptionInput
Returns

Promise\<WherebyTranscriptionResource>

deleteMeeting()
deleteMeeting(meetingId): Promise<Record<string, never>>;
Parameters
Parameter Type
meetingId string
Returns

Promise\<Record\<string, never>>

deleteRecording()
deleteRecording(recordingId): Promise<Record<string, never>>;
Parameters
Parameter Type
recordingId string
Returns

Promise\<Record\<string, never>>

deleteSummary()
deleteSummary(summaryId): Promise<Record<string, never>>;
Parameters
Parameter Type
summaryId string
Returns

Promise\<Record\<string, never>>

deleteTranscription()
deleteTranscription(transcriptionId): Promise<Record<string, never>>;
Parameters
Parameter Type
transcriptionId string
Returns

Promise\<Record\<string, never>>

getMeeting()
getMeeting(meetingId, input?): Promise<WherebyMeetingResource>;
Parameters
Parameter Type
meetingId string
input? WherebyGetMeetingInput
Returns

Promise\<WherebyMeetingResource>

getParticipantInsights()
getParticipantInsights(input): Promise<WherebyVideoJsonObject[]>;
Parameters
Parameter Type
input WherebyParticipantInsightsInput & { participantId: string; roomSessionId: string; }
Returns

Promise\<WherebyVideoJsonObject[]>

getRecording()
getRecording(recordingId): Promise<WherebyRecordingResource>;
Parameters
Parameter Type
recordingId string
Returns

Promise\<WherebyRecordingResource>

getRecordingAccessLink(recordingId, input?): Promise<WherebyAccessLinkResource>;
Parameters
Parameter Type
recordingId string
input? WherebyAccessLinkInput
Returns

Promise\<WherebyAccessLinkResource>

getRoomInsights()
getRoomInsights(input?): Promise<WherebyInsightsListResponse>;
Parameters
Parameter Type
input? WherebyInsightsQueryInput
Returns

Promise\<WherebyInsightsListResponse>

getRoomSessionInsights()
getRoomSessionInsights(input): Promise<WherebyInsightsListResponse>;
Parameters
Parameter Type
input WherebyInsightsQueryInput & { roomName: string; }
Returns

Promise\<WherebyInsightsListResponse>

getSummary()
getSummary(summaryId): Promise<WherebySummaryResource>;
Parameters
Parameter Type
summaryId string
Returns

Promise\<WherebySummaryResource>

getTranscription()
getTranscription(transcriptionId): Promise<WherebyTranscriptionResource>;
Parameters
Parameter Type
transcriptionId string
Returns

Promise\<WherebyTranscriptionResource>

getTranscriptionAccessLink(transcriptionId, input?): Promise<WherebyAccessLinkResource>;
Parameters
Parameter Type
transcriptionId string
input? WherebyAccessLinkInput
Returns

Promise\<WherebyAccessLinkResource>

listMeetings()
listMeetings(input?): Promise<WherebyListMeetingsResponse>;
Parameters
Parameter Type
input? WherebyListMeetingsInput
Returns

Promise\<WherebyListMeetingsResponse>

listParticipants()
listParticipants(input): Promise<WherebyInsightsListResponse>;
Parameters
Parameter Type
input WherebyParticipantInsightsInput
Returns

Promise\<WherebyInsightsListResponse>

listRecordings()
listRecordings(input?): Promise<WherebyListRecordingsResponse>;
Parameters
Parameter Type
input? WherebyCursorListInput
Returns

Promise\<WherebyListRecordingsResponse>

listSummaries()
listSummaries(input?): Promise<WherebyListSummariesResponse>;
Parameters
Parameter Type
input? WherebyCursorListInput
Returns

Promise\<WherebyListSummariesResponse>

listTranscriptions()
listTranscriptions(input?): Promise<WherebyListTranscriptionsResponse>;
Parameters
Parameter Type
input? WherebyCursorListInput
Returns

Promise\<WherebyListTranscriptionsResponse>

setRoomBackground()
setRoomBackground(roomName, input): Promise<Record<string, never>>;
Parameters
Parameter Type
roomName string
input WherebyThemeMediaInput
Returns

Promise\<Record\<string, never>>

setRoomKnockPageBackground()
setRoomKnockPageBackground(roomName, input): Promise<Record<string, never>>;
Parameters
Parameter Type
roomName string
input WherebyThemeMediaInput
Returns

Promise\<Record\<string, never>>

setRoomLogo()
setRoomLogo(roomName, input): Promise<Record<string, never>>;
Parameters
Parameter Type
roomName string
input WherebyThemeMediaInput
Returns

Promise\<Record\<string, never>>

setRoomThemeTokens()
setRoomThemeTokens(roomName, input): Promise<Record<string, never>>;
Parameters
Parameter Type
roomName string
input WherebyRoomThemeTokensInput
Returns

Promise\<Record\<string, never>>


WherebyVideoClientOptions

Extended by

Properties

apiKey?
optional apiKey?: string;
baseUrl?
optional baseUrl?: string;
fetch?
optional fetch?: {
  (input, init?): Promise<Response>;
  (input, init?): Promise<Response>;
};
Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input URL | RequestInfo
init? RequestInit
Returns

Promise\<Response>

Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input string | Request | URL
init? RequestInit
Returns

Promise\<Response>

providerClient?
optional providerClient?: WherebyVideoProviderClient;
retry?
optional retry?:
  | number
  | WherebyProviderJsonRetryOptions;
signal?
optional signal?: AbortSignal;
timeoutMs?
optional timeoutMs?: number;

WherebyVideoJsonObject

Extended by

Indexable

[key: string]: WherebyVideoProviderExtensionValue

WherebyVideoProviderClient

Methods

requestOperation()
requestOperation(operationKey, input?): Promise<unknown>;
Parameters
Parameter Type
operationKey WherebyFullApiOperationKey
input? WherebyOperationRequestInput
Returns

Promise\<unknown>


WherebyVideoProviderExtensionFields

Extends

Indexable

[key: string]: WherebyVideoProviderExtensionValue

WherebyVideoProviderResponse

Extends

Indexable

[key: string]: WherebyVideoProviderExtensionValue

WherebyWebhookEvent

Indexable

[key: string]: WherebyVideoProviderExtensionValue

Properties

apiVersion?
optional apiVersion?: string;
createdAt?
optional createdAt?: string;
data?
optional data?: {
[key: string]: WherebyVideoProviderExtensionValue;
  displayName?: string;
  externalId?: string;
  meetingId?: string;
  metadata?: string;
  participantId?: string;
  recordingId?: string;
  roleName?: string;
  roomName?: string;
  roomSessionId?: string;
  status?: string;
  subdomain?: string;
  transcriptionId?: string;
};
Index Signature
[key: string]: WherebyVideoProviderExtensionValue
displayName?
optional displayName?: string;
externalId?
optional externalId?: string;
meetingId?
optional meetingId?: string;
metadata?
optional metadata?: string;
participantId?
optional participantId?: string;
recordingId?
optional recordingId?: string;
roleName?
optional roleName?: string;
roomName?
optional roomName?: string;
roomSessionId?
optional roomSessionId?: string;
status?
optional status?: string;
subdomain?
optional subdomain?: string;
transcriptionId?
optional transcriptionId?: string;
id
id: string;
type
type: string;

Type Aliases

WherebyFullApiOperationUid

type WherebyFullApiOperationUid = typeof WHEREBY_FULL_API_OPERATION_UIDS[number];

WherebyFullApiSchemaFields

type WherebyFullApiSchemaFields = ReadonlyArray<"hostRoomUrl" | "viewerRoomUrl">;

WherebyFullApiSchemaJsonPrimitive

type WherebyFullApiSchemaJsonPrimitive = string | number | boolean | null;

WherebyFullApiSchemaJsonValue

type WherebyFullApiSchemaJsonValue =
  | WherebyFullApiSchemaJsonPrimitive
  | readonly WherebyFullApiSchemaJsonValue[]
  | {
[key: string]: WherebyFullApiSchemaJsonValue;
};

WherebyFullApiSchemaMeeting

type WherebyFullApiSchemaMeeting = {
  endDate: string;
  hostRoomUrl?: string;
  meetingId: string;
  roomName?: string;
  roomUrl: string;
  startDate?: string;
  viewerRoomUrl?: string;
};

Properties

endDate
endDate: string;
hostRoomUrl?
optional hostRoomUrl?: string;
meetingId
meetingId: string;
roomName?
optional roomName?: string;
roomUrl
roomUrl: string;
startDate?
optional startDate?: string;
viewerRoomUrl?
optional viewerRoomUrl?: string;

WherebyFullApiSchemaRecording

type WherebyFullApiSchemaRecording = {
};

WherebyFullApiSchemaSummary

type WherebyFullApiSchemaSummary = {
};

WherebyFullApiSchemaTranscription

type WherebyFullApiSchemaTranscription = {
  createdAt: string;
  durationInSeconds?: number;
  endDate: string;
  filename?: string;
  roomName: string;
  roomSessionId: string;
  startDate: string;
  state: "ready" | "failed" | "in_progress";
  storageType?: "WHEREBY_HOSTED" | "SELF_HOSTED";
  transcriptionId: string;
  type: "LIVE_TRANSCRIPTION" | "RECORDING_TRANSCRIPTION";
};

Properties

createdAt
createdAt: string;
durationInSeconds?
optional durationInSeconds?: number;
endDate
endDate: string;
filename?
optional filename?: string;
roomName
roomName: string;
roomSessionId
roomSessionId: string;
startDate
startDate: string;
state
state: "ready" | "failed" | "in_progress";
storageType?
optional storageType?: "WHEREBY_HOSTED" | "SELF_HOSTED";
transcriptionId
transcriptionId: string;
type
type: "LIVE_TRANSCRIPTION" | "RECORDING_TRANSCRIPTION";

WherebyGeneratedOperationCaller

type WherebyGeneratedOperationCaller = <OperationKey>(operationKey, ...args) => Promise<WherebyFullApiOperationResponseMap[OperationKey]>;

Type Parameters

Type Parameter
OperationKey extends WherebyFullApiOperationKey

Parameters

Parameter Type
operationKey OperationKey
...args WherebyFullApiOperationArgs\<OperationKey>

Returns

Promise\<WherebyFullApiOperationResponseMap[OperationKey]>


WherebyHttpMethod

type WherebyHttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";

WherebyLiveTranscriptionStartTrigger

type WherebyLiveTranscriptionStartTrigger = "none" | "manual" | "automatic" | "automatic-2nd-participant";

WherebyMeetingField

type WherebyMeetingField = "hostRoomUrl" | "viewerRoomUrl";

WherebyRecordingStartTrigger

type WherebyRecordingStartTrigger = "none" | "prompt" | "automatic" | "automatic-2nd-participant";

WherebyRecordingType

type WherebyRecordingType = "none" | "local" | "cloud";

WherebyRoomMode

type WherebyRoomMode = "normal" | "group";

WherebyRoomNamePattern

type WherebyRoomNamePattern = "uuid" | "human-short";

WherebyStorageAuthenticationType

type WherebyStorageAuthenticationType = "accessKey" | "roleBased";

WherebyStorageProvider

type WherebyStorageProvider = "s3" | "whereby";

WherebyStreamingStartTrigger

type WherebyStreamingStartTrigger = "none" | "prompt" | "automatic";

WherebyTemplateType

type WherebyTemplateType = "viewerMode";

WherebyThemeMediaInput

type WherebyThemeMediaInput = FormData | WherebyVideoJsonObject;

WherebyVideoJsonPrimitive

type WherebyVideoJsonPrimitive = string | number | boolean | null;

WherebyVideoJsonValue

type WherebyVideoJsonValue =
  | WherebyVideoJsonPrimitive
  | WherebyVideoJsonObject
  | readonly WherebyVideoJsonValue[];

WherebyVideoProviderExtensionValue

type WherebyVideoProviderExtensionValue = WherebyVideoJsonValue | object | undefined;

WherebyVideoProviderPayload

type WherebyVideoProviderPayload = WherebyVideoJsonObject | object;

WherebyVideoProviderQuery

type WherebyVideoProviderQuery = Record<string, WherebyVideoProviderExtensionValue>;

Variables

WHEREBY_FULL_API_DOCS_SOURCE

const WHEREBY_FULL_API_DOCS_SOURCE: "https://docs.whereby.com/reference/whereby-rest-api-reference/meetings" = "https://docs.whereby.com/reference/whereby-rest-api-reference/meetings";

WHEREBY_FULL_API_GENERATED_AT

const WHEREBY_FULL_API_GENERATED_AT: "2026-06-18" = "2026-06-18";

WHEREBY_FULL_API_GENERATED_FUNCTION_COUNT

const WHEREBY_FULL_API_GENERATED_FUNCTION_COUNT: 27;

WHEREBY_FULL_API_GENERATED_FUNCTION_NAMES

const WHEREBY_FULL_API_GENERATED_FUNCTION_NAMES: readonly ["CreateMeeting", "GetMeetings", "DeleteMeeting", "GetMeeting", "GetRecordings", "DeleteRecording", "GetRecording", "GetRecordingAccessLink", "BulkDeleteRecordings", "CreateTranscription", "GetTranscriptions", "DeleteTranscription", "GetTranscription", "GetTranscriptionAccessLink", "BulkDeleteTranscriptions", "CreateSummary", "GetSummaries", "DeleteSummary", "GetSummary", "SetRoomColors", "SetRoomLogo", "SetRoomBackground", "SetRoomKnockPageBackground", "GetRoomInsights", "GetRoomSessionInsights", "GetParticipants", "GetDetailsForAParticipantInASession"];

WHEREBY_FULL_API_OPENAPI_VERSION

const WHEREBY_FULL_API_OPENAPI_VERSION: "3.0.0" = "3.0.0";

WHEREBY_FULL_API_OPERATION_BY_ID

const WHEREBY_FULL_API_OPERATION_BY_ID: Map<string, WherebyFullApiOperation>;

WHEREBY_FULL_API_OPERATION_BY_UID

const WHEREBY_FULL_API_OPERATION_BY_UID: Map<string, WherebyFullApiOperation>;

WHEREBY_FULL_API_OPERATION_COUNT

const WHEREBY_FULL_API_OPERATION_COUNT: 27 = 27;

WHEREBY_FULL_API_OPERATIONS

const WHEREBY_FULL_API_OPERATIONS: readonly WherebyFullApiOperation[];

WHEREBY_FULL_API_PATH_COUNT

const WHEREBY_FULL_API_PATH_COUNT: 20 = 20;

WHEREBY_FULL_API_SPEC_SOURCE

const WHEREBY_FULL_API_SPEC_SOURCE: "https://raw.githubusercontent.com/whereby/docs/main/.gitbook/assets/_api-reference-docs-openapi.json" = "https://raw.githubusercontent.com/whereby/docs/main/.gitbook/assets/_api-reference-docs-openapi.json";

WHEREBY_FULL_API_SPEC_VERSION

const WHEREBY_FULL_API_SPEC_VERSION: "v1" = "v1";

wherebyVideoIntegration

const wherebyVideoIntegration: DefinedIntegration<{
  capabilities: {
     audiences?: ("customer-facing" | "internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: boolean;
     description?: string;
     exposesSensitiveData?: boolean;
     extension?: boolean;
     label?: string;
     metadata?: Record<string, unknown>;
     providerObjects?: {
        description?: string;
        kind: string;
        label?: string;
        metadata?: Record<string, unknown>;
        schemaName?: string;
     }[];
     requiresCredential?: boolean;
     sideEffect?: boolean;
  }[];
  category: string;
  channelAudiences: ("customer-facing" | "internal-support" | "mixed")[];
  coverage: {
     evidence: {
        label: string;
        url?: string;
     }[];
     notes: string[];
     scope:   | "provider-api-subset"
        | "support-workflow-subset"
        | "connector-required"
        | "local-protocol"
        | "full-provider-api";
  };
  credentialRequirements: {
     description?: string;
     id: string;
     label?: string;
     metadata?: Record<string, unknown>;
     required: boolean;
     scopes: string[];
  }[];
  directions: (
     | "inbound-only"
     | "outbound-only"
     | "bidirectional"
     | "receive-only"
    | "send-only")[];
  id: string;
  limitations: string[];
  maintainers: {
     name: string;
     type: "unknown" | "official" | "community" | "partner";
     url?: string;
  }[];
  metadata?: Record<string, unknown>;
  name: string;
  operations: {
     alias: string;
     audience?: "customer-facing" | "internal-support" | "mixed";
     audiences?: ("customer-facing" | "internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: boolean;
     description?: string;
     exposesSensitiveData?: boolean;
     extension: boolean;
     externallyVisible?: boolean;
     inputSchema?: unknown;
     inputSchemaName?: string;
     inputSchemaRef?: string;
     label?: string;
     metadata?: Record<string, unknown>;
     outputSchema?: unknown;
     outputSchemaName?: string;
     outputSchemaRef?: string;
     providerObject?: string;
     providerObjects?: {
        description?: string;
        kind: string;
        label?: string;
        metadata?: Record<string, unknown>;
        schemaName?: string;
     }[];
     providerOperation?: string;
     requiredPolicyIds?: string[];
     requiresApproval?: boolean;
     requiresCredential?: boolean;
     sideEffect?: boolean;
  }[];
  packageName: string;
  privacyNotes: string[];
  provider: string;
  trustLevel: "official" | "community" | "verified" | "experimental";
} & {
  capabilities: readonly [{
     audiences: readonly ["customer-facing", "internal-support", "mixed"];
     capability: "schedule";
     changesWorkflow: true;
     description: "Creates transient Whereby Embedded meeting rooms from SDK-user-owned scheduling and escalation policy.";
     exposesSensitiveData: true;
     label: "Schedule Whereby video rooms";
     providerObjects: readonly [{
        kind: "wherebyMeeting";
        label: "Whereby Meeting";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: readonly ["customer-facing", "internal-support", "mixed"];
     capability: "create-provider-object";
     changesWorkflow: true;
     description: "Creates Whereby transient meeting rooms, transcription jobs, and summary jobs with SDK-user-provided recording, transcription, and retention policy.";
     exposesSensitiveData: true;
     label: "Create Whereby meetings";
     providerObjects: readonly [{
        kind: "wherebyMeeting";
        label: "Whereby Meeting";
      }, {
        kind: "wherebyTranscription";
        label: "Whereby Transcription";
      }, {
        kind: "wherebySummary";
        label: "Whereby Summary";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: readonly ["customer-facing", "internal-support", "mixed"];
     capability: "read-provider-object";
     description: "Lists and reads Whereby transient meetings, recordings, transcription metadata/access links, and beta summaries for SDK-user-selected support workflows.";
     exposesSensitiveData: true;
     label: "Read Whereby meetings";
     providerObjects: readonly [{
        kind: "wherebyMeeting";
        label: "Whereby Meeting";
      }, {
        kind: "wherebyRecording";
        label: "Whereby Recording";
      }, {
        kind: "wherebyTranscription";
        label: "Whereby Transcription";
      }, {
        kind: "wherebySummary";
        label: "Whereby Summary";
     }];
     requiresCredential: true;
   }, {
     audiences: readonly ["internal-support", "mixed"];
     capability: "delete-provider-object";
     changesWorkflow: true;
     description: "Deletes Whereby transient meetings, recordings, transcriptions, and beta summaries when SDK-user lifecycle or retention policy permits deletion.";
     label: "Delete Whereby meetings";
     providerObjects: readonly [{
        kind: "wherebyMeeting";
        label: "Whereby Meeting";
      }, {
        kind: "wherebyRecording";
        label: "Whereby Recording";
      }, {
        kind: "wherebyTranscription";
        label: "Whereby Transcription";
      }, {
        kind: "wherebySummary";
        label: "Whereby Summary";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: readonly ["internal-support", "mixed"];
     capability: "update-provider-object";
     changesWorkflow: true;
     description: "Updates supported Whereby room configuration such as theme color tokens for SDK-user-owned branded room experiences.";
     label: "Update Whereby room theme";
     providerObjects: readonly [{
        kind: "wherebyRoomTheme";
        label: "Whereby Room Theme";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: readonly ["customer-facing", "internal-support", "mixed"];
     capability: "receive";
     description: "Validates and parses Whereby room, session, recording, transcription, and assistant webhook events.";
     exposesSensitiveData: true;
     label: "Receive Whereby webhooks";
     providerObjects: readonly [{
        kind: "wherebyWebhookEvent";
        label: "Whereby Webhook Event";
      }, {
        kind: "wherebyMeeting";
        label: "Whereby Meeting";
     }];
     requiresCredential: true;
   }, {
     audiences: readonly ["internal-support"];
     capability: "whereby.request-signature";
     description: "Validates Whereby-Signature timestamp and v1 HMAC values with replay protection.";
     exposesSensitiveData: true;
     extension: true;
     label: "Validate Whereby webhook signatures";
     providerObjects: readonly [{
        kind: "wherebySignedRequest";
        label: "Whereby Signed Request";
     }];
     requiresCredential: true;
  }];
  category: "video";
  channelAudiences: readonly ["customer-facing", "internal-support", "mixed"];
  coverage: {
     evidence: readonly [{
        label: "Whereby REST OpenAPI spec";
        url: "https://raw.githubusercontent.com/whereby/docs/main/.gitbook/assets/_api-reference-docs-openapi.json";
      }, {
        label: "Whereby REST meetings API";
        url: "https://docs.whereby.com/reference/whereby-rest-api-reference/meetings";
      }, {
        label: "Whereby REST recordings API";
        url: "https://docs.whereby.com/reference/whereby-rest-api-reference/recordings";
      }, {
        label: "Whereby REST transcriptions API";
        url: "https://docs.whereby.com/reference/whereby-rest-api-reference/transcriptions";
      }, {
        label: "Whereby REST summaries API";
        url: "https://docs.whereby.com/reference/whereby-rest-api-reference/summaries";
      }, {
        label: "Whereby webhooks reference";
        url: "https://docs.whereby.com/reference/webhooks-reference";
     }];
     notes: readonly ["Coverage includes generated per-operation types/functions for every operation in Whereby's official public REST OpenAPI spec; runtime calls default to a package-owned REST adapter when apiKey/baseUrl/fetch options are provided.", "Typed convenience helpers remain available for meetings, room theme tokens/media, recordings, transcriptions, beta summaries, insights, signed webhook parsing, and live readiness checks with host-injected providerClient override support.", "This support slice is limited to the Whereby REST API surface; browser/mobile SDK behavior, live media transport, embedded UI control, assistants, web-component APIs, React/React Native SDKs, camera effects, customer S3 policy, and webhook event catalogs are separate Whereby surfaces.", "The SDK user owns consent, recording/transcription/summarization eligibility, data retention, host/viewer URL distribution, room branding policy, and feature-gated beta availability decisions."];
     scope: "provider-api-subset";
  };
  credentialRequirements: readonly [{
     description: "Optional host-injected client implementing WherebyVideoProviderClient.requestOperation when the SDK user wants to override the built-in REST adapter.";
     id: "whereby-provider-client";
     label: "Optional Whereby provider client override";
     required: false;
   }, {
     description: "Server-side Whereby Embedded API key used by the built-in REST adapter.";
     id: "whereby-api-key";
     label: "Whereby API key";
     required: true;
   }, {
     description: "SDK-user-selected Embedded organization or subdomain used for readiness display and room URL policy.";
     id: "whereby-organization";
     label: "Whereby organization/subdomain";
     required: false;
   }, {
     description: "SDK-user-owned room mode, room-name prefix, template type, host/viewer URL exposure, recording, transcription, and streaming policy.";
     id: "whereby-room-template";
     label: "Whereby room template policy";
     required: false;
   }, {
     description: "Endpoint signing secret from the Whereby Embedded dashboard used to validate Whereby-Signature HMAC headers.";
     id: "whereby-webhook-signing-secret";
     label: "Whereby webhook signing secret";
     required: false;
  }];
  directions: readonly ["inbound-only", "outbound-only", "bidirectional"];
  id: "video.whereby";
  limitations: readonly ["Whereby meetings are transient rooms controlled by the SDK user's Embedded account, API key, plan, dashboard configuration, and current Whereby feature availability.", "Whereby's documented meeting API supports create, list, get, and delete; meeting mutation is limited by Whereby to the documented room theme endpoints.", "This package provides a built-in REST adapter plus host-provider-client override and webhook primitives; it does not decide channel eligibility, consent, recording/transcription policy, handoff timing, or which users receive host/viewer URLs."];
  maintainers: readonly [{
     name: "Cognidesk";
     type: "official";
  }];
  metadata: {
     channelCoverage: {
        browserSdkLiveMediaEmbeddedUiAssistants: "provider-supported-not-typed-separate-surface";
        insights: "typed-list-read";
        meetings: "typed-create-list-read-delete";
        providerOperations: "generated-typed-rest-adapter-or-host-client-override";
        providerRestAdapter: "typed-built-in-rest-json";
        recordings: "typed-list-read-access-link-delete";
        roomTheme: "typed-update";
        summaries: "typed-create-list-read-delete";
        transcriptions: "typed-create-list-read-access-link-delete";
        webhooks: "typed-validate-parse";
     };
     docs: "https://docs.whereby.com/reference/whereby-rest-api-reference/meetings";
     generatedSupportSliceVerification: {
        allowlist: readonly ["POST /meetings", "GET /meetings", "GET /meetings/{meetingId}", "DELETE /meetings/{meetingId}", "GET /recordings", "GET /recordings/{recordingId}", "GET /recordings/{recordingId}/access-link", "POST /recordings/bulk-delete", "DELETE /recordings/{recordingId}", "POST /transcriptions", "GET /transcriptions", "GET /transcriptions/{transcriptionId}", "GET /transcriptions/{transcriptionId}/access-link", "POST /transcriptions/bulk-delete", "DELETE /transcriptions/{transcriptionId}", "POST /summaries", "GET /summaries", "GET /summaries/{summaryId}", "DELETE /summaries/{summaryId}", "PUT /rooms/{roomName}/theme/tokens", "PUT /rooms/{roomName}/theme/logo", "PUT /rooms/{roomName}/theme/room-background", "PUT /rooms/{roomName}/theme/room-knock-page-background", "GET /insights/rooms", "GET /insights/room-sessions", "GET /insights/participants", "GET /insights/participant"];
        apiVersion: "v1";
        coverageArtifact: "docs/provider-coverage/whereby-full-api-2026-06-18.operations.json";
        documentedOperationCount: 27;
        documentedPathCount: 20;
        functionCatalogArtifact: "docs/provider-coverage/whereby-full-api-2026-06-18.functions.json";
        functionCatalogChecksumSha256: "d33fa387bc6cd105db3e21b743e68102d483b7e3dacd0b4c1bedd85be5bc07ef";
        generatedFunctionCount: 27;
        implementedOperationCount: 27;
        operationCatalogArtifact: "docs/provider-coverage/whereby-full-api-2026-06-18.operations.json";
        operationCatalogChecksumSha256: "690fac858b8041598c7297147e5635e227f86b1fd1545e047182839d5fd2803a";
        provider: "whereby-rest";
        sourceChecksumSha256: "3d9aec0774ff42f149cfc67e94ae9b70c617957e278a5e89920807274d8cd77d";
        unimplementedOperationCount: 0;
        verifiedAt: "2026-06-21";
     };
     implementation: {
        defaultClientPolicy: "built-in-rest-with-api-key";
        implementationStrategy: "no-official-sdk-rest-adapter";
        providerClientInterface: "WherebyVideoProviderClient";
        restAdapterException: {
           checkedAt: "2026-06-25";
           defaultClientPolicy: "built-in-whereby-rest-adapter-with-api-key";
           missingServerRestSdkPackages: readonly [{
              npmStatus: "404";
              packageName: "@whereby.com/rest-sdk";
            }, {
              npmStatus: "404";
              packageName: "whereby";
            }, {
              npmStatus: "404";
              packageName: "whereby-api";
           }];
           reason: "Whereby's official npm SDK packages are browser/WebRTC, React Native, or headless assistant clients; none provide the server-side REST resource management client needed for meetings, recordings, transcriptions, summaries, insights, room theme operations, and webhooks.";
           rejectedSdkPackages: readonly [{
              checkedVersion: "3.26.0";
              license: "MIT";
              packageName: "@whereby.com/browser-sdk";
              reason: "Official browser SDK for embedded/custom video UI, not a server REST API client.";
            }, {
              checkedVersion: "1.15.0";
              license: "MIT";
              packageName: "@whereby.com/core";
              reason: "Official low-level browser/WebRTC core SDK; exported RoomService covers claimed-room/client state operations, not Embedded REST resources such as meetings, recordings, transcriptions, summaries, insights, or webhooks.";
            }, {
              checkedVersion: "1.2.89";
              license: "MIT";
              packageName: "@whereby.com/assistant-sdk";
              reason: "Official Node assistant/media SDK for joining rooms headlessly, not REST resource management.";
            }, {
              checkedVersion: "0.8.113";
              license: "MIT";
              packageName: "@whereby.com/react-native-sdk";
              reason: "Official React Native SDK for mobile video experiences, not server REST operations.";
            }, {
              checkedVersion: "9.2.6";
              license: "MIT";
              packageName: "@whereby.com/media";
              reason: "Official WebRTC media library used by Whereby room clients; it does not expose server-side Embedded REST resource management operations.";
           }];
           result: "no-official-maintained-server-rest-sdk";
           typedClientOverride: "WherebyVideoProviderClient";
        };
        sdkDecision: "No viable official maintained server-side Whereby REST SDK was verified; browser/core SDKs target live media/browser runtimes and the assistant SDK targets headless assistants, so provider operations default to this package's REST adapter.";
        verifiedAt: "2026-06-25";
     };
     providerClient: {
        defaultClientPolicy: "built-in-rest-with-api-key";
        importPolicy: "optional-host-override";
        interface: "WherebyVideoProviderClient";
        package: "host-provided";
     };
     providerRestAdapterException: {
        checkedAt: "2026-06-25";
        defaultClientPolicy: "built-in-whereby-rest-adapter-with-api-key";
        missingServerRestSdkPackages: readonly [{
           npmStatus: "404";
           packageName: "@whereby.com/rest-sdk";
         }, {
           npmStatus: "404";
           packageName: "whereby";
         }, {
           npmStatus: "404";
           packageName: "whereby-api";
        }];
        reason: "Whereby's official npm SDK packages are browser/WebRTC, React Native, or headless assistant clients; none provide the server-side REST resource management client needed for meetings, recordings, transcriptions, summaries, insights, room theme operations, and webhooks.";
        rejectedSdkPackages: readonly [{
           checkedVersion: "3.26.0";
           license: "MIT";
           packageName: "@whereby.com/browser-sdk";
           reason: "Official browser SDK for embedded/custom video UI, not a server REST API client.";
         }, {
           checkedVersion: "1.15.0";
           license: "MIT";
           packageName: "@whereby.com/core";
           reason: "Official low-level browser/WebRTC core SDK; exported RoomService covers claimed-room/client state operations, not Embedded REST resources such as meetings, recordings, transcriptions, summaries, insights, or webhooks.";
         }, {
           checkedVersion: "1.2.89";
           license: "MIT";
           packageName: "@whereby.com/assistant-sdk";
           reason: "Official Node assistant/media SDK for joining rooms headlessly, not REST resource management.";
         }, {
           checkedVersion: "0.8.113";
           license: "MIT";
           packageName: "@whereby.com/react-native-sdk";
           reason: "Official React Native SDK for mobile video experiences, not server REST operations.";
         }, {
           checkedVersion: "9.2.6";
           license: "MIT";
           packageName: "@whereby.com/media";
           reason: "Official WebRTC media library used by Whereby room clients; it does not expose server-side Embedded REST resource management operations.";
        }];
        result: "no-official-maintained-server-rest-sdk";
        typedClientOverride: "WherebyVideoProviderClient";
     };
     sdkViability: {
        checkedAt: "2026-06-25";
        decision: "no-official-maintained-server-rest-sdk-found";
        rejectedSdkPackages: readonly [{
           packageName: "@whereby.com/browser-sdk";
           reason: "Official browser SDK for custom video UI, not a server REST API client.";
         }, {
           packageName: "@whereby.com/core";
           reason: "Official media/core SDK requiring browser or WebRTC polyfills, not a REST client.";
         }, {
           packageName: "@whereby.com/assistant-sdk";
           reason: "Official Node assistant/media SDK with beta/plan constraints, not REST resource management.";
        }];
     };
  };
  name: "Whereby Embedded";
  operations: readonly [{
     alias: "video.meeting.create";
     capability: "create-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObject: "wherebyMeeting";
     sideEffect: true;
   }, {
     alias: "video.meeting.list";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObject: "wherebyMeeting";
   }, {
     alias: "video.meeting.read";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObject: "wherebyMeeting";
   }, {
     alias: "video.meeting.delete";
     capability: "delete-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObject: "wherebyMeeting";
     sideEffect: true;
   }, {
     alias: "whereby.room-theme.update";
     capability: "update-provider-object";
     changesWorkflow: true;
     extension: true;
     providerObject: "wherebyRoomTheme";
     sideEffect: true;
   }, {
     alias: "whereby.provider-operation.invoke";
     capability: "read-provider-object";
     extension: true;
     metadata: {
        supportSliceEscapeHatch: true;
        transport: "provider-rest-adapter-or-host-provider-client";
     };
     providerObject: "wherebyProviderOperation";
   }, {
     alias: "whereby.webhook.parse";
     capability: "receive";
     exposesSensitiveData: true;
     extension: true;
     providerObject: "wherebyWebhookEvent";
  }];
  packageName: "@cognidesk/integration-video-whereby";
  privacyNotes: readonly ["Whereby meeting URLs, host URLs, viewer URLs, room names, session IDs, participant identifiers, display names, metadata, external IDs, recording metadata, and transcription metadata can contain customer or support data.", "Whereby API keys and webhook signing secrets stay server-side and are represented in Studio only as readiness metadata.", "Consent for video, recording, transcription, streaming, assistant usage, outbound scheduling, retention, and deletion remains SDK-user-owned configuration."];
  provider: "whereby";
  trustLevel: "official";
}, WherebyVideoIntegrationContext, {
  video.meeting.create: (input, context) => Promise<WherebyMeetingResource>;
  video.meeting.delete: (input, context) => Promise<Record<string, never>>;
  video.meeting.list: (input, context) => Promise<WherebyListMeetingsResponse>;
  video.meeting.read: (input, context) => Promise<WherebyMeetingResource>;
  whereby.provider-operation.invoke: <OperationKey>(input, context) => Promise<WherebyFullApiOperationResponseMap[OperationKey]>;
  whereby.room-theme.update: (input, context) => Promise<Record<string, never>>;
  whereby.webhook.parse: (input) => Promise<WherebySignedWebhookRequest>;
}>;

wherebyVideoOperationHandlers

const wherebyVideoOperationHandlers: {
  video.meeting.create: (input, context) => Promise<WherebyMeetingResource>;
  video.meeting.delete: (input, context) => Promise<Record<string, never>>;
  video.meeting.list: (input, context) => Promise<WherebyListMeetingsResponse>;
  video.meeting.read: (input, context) => Promise<WherebyMeetingResource>;
  whereby.provider-operation.invoke: <OperationKey>(input, context) => Promise<WherebyFullApiOperationResponseMap[OperationKey]>;
  whereby.room-theme.update: (input, context) => Promise<Record<string, never>>;
  whereby.webhook.parse: (input) => Promise<WherebySignedWebhookRequest>;
};

Type Declaration

Name Type
video.meeting.create() (input, context) => Promise\<WherebyMeetingResource>
video.meeting.delete() (input, context) => Promise\<Record\<string, never>>
video.meeting.list() (input, context) => Promise\<WherebyListMeetingsResponse>
video.meeting.read() (input, context) => Promise\<WherebyMeetingResource>
whereby.provider-operation.invoke() \<OperationKey>(input, context) => Promise\<WherebyFullApiOperationResponseMap[OperationKey]>
whereby.room-theme.update() (input, context) => Promise\<Record\<string, never>>
whereby.webhook.parse() (input) => Promise\<WherebySignedWebhookRequest>

Functions

createUnconfiguredWherebyVideoProviderClient()

function createUnconfiguredWherebyVideoProviderClient(): WherebyVideoProviderClient;

Returns

WherebyVideoProviderClient


createWherebyFullApiGeneratedClient()

function createWherebyFullApiGeneratedClient(callOperation): WherebyFullApiGeneratedClient;

Parameters

Parameter Type
callOperation WherebyGeneratedOperationCaller

Returns

WherebyFullApiGeneratedClient


createWherebyRestProviderClient()

function createWherebyRestProviderClient(options): WherebyVideoProviderClient;

Parameters

Parameter Type
options Omit\<WherebyVideoClientOptions, "providerClient">

Returns

WherebyVideoProviderClient


createWherebyVideoClient()

function createWherebyVideoClient(options?): WherebyVideoClient;

Parameters

Parameter Type
options? WherebyVideoClientOptions

Returns

WherebyVideoClient


createWherebyVideoLiveChecks()

function createWherebyVideoLiveChecks(options): {
  description: string;
  id: string;
  requiredCredentialIds: string[];
  run: Promise<{
     details: {
        hasCursor: boolean;
        resultCount: number;
     };
  }>;
}[];

Parameters

Parameter Type
options WherebyLiveCheckOptions

Returns

{ description: string; id: string; requiredCredentialIds: string[]; run: Promise\<{ details: { hasCursor: boolean; resultCount: number; }; }>; }[]


parseWherebySignatureHeader()

function parseWherebySignatureHeader(header): {
  signature: string;
  timestamp: string;
};

Parameters

Parameter Type
header string

Returns

{
  signature: string;
  timestamp: string;
}
Name Type
signature string
timestamp string

parseWherebyWebhookRequest()

function parseWherebyWebhookRequest(request, options?): Promise<WherebySignedWebhookRequest>;

Parameters

Parameter Type
request Request
options? ParseWherebyWebhookRequestOptions

Returns

Promise\<WherebySignedWebhookRequest>


validateWherebyWebhookSignature()

function validateWherebyWebhookSignature(input): boolean;

Parameters

Parameter Type
input ValidateWherebyWebhookSignatureInput

Returns

boolean


wherebyVideoCredentialStatuses()

function wherebyVideoCredentialStatuses(input): {
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
}[];

Parameters

Parameter Type
input WherebyCredentialStatusInput

Returns

{ expiresAt?: string; message?: string; providerPackageId?: string; requirementId: string; scopes?: string[]; state: | "required" | "configured" | "permission-blocked" | "not-required" | "missing" | "expired" | "insufficient-scope" | "unavailable"; }[]