retell-sdk 5.21.0 → 5.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/client.d.mts +10 -10
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +10 -10
  5. package/client.d.ts.map +1 -1
  6. package/client.js.map +1 -1
  7. package/client.mjs.map +1 -1
  8. package/package.json +1 -1
  9. package/resources/agent.d.mts +14 -1
  10. package/resources/agent.d.mts.map +1 -1
  11. package/resources/agent.d.ts +14 -1
  12. package/resources/agent.d.ts.map +1 -1
  13. package/resources/agent.js +15 -0
  14. package/resources/agent.js.map +1 -1
  15. package/resources/agent.mjs +15 -0
  16. package/resources/agent.mjs.map +1 -1
  17. package/resources/call.d.mts +559 -74
  18. package/resources/call.d.mts.map +1 -1
  19. package/resources/call.d.ts +559 -74
  20. package/resources/call.d.ts.map +1 -1
  21. package/resources/call.js +7 -4
  22. package/resources/call.js.map +1 -1
  23. package/resources/call.mjs +7 -4
  24. package/resources/call.mjs.map +1 -1
  25. package/resources/chat-agent.d.mts +16 -1
  26. package/resources/chat-agent.d.mts.map +1 -1
  27. package/resources/chat-agent.d.ts +16 -1
  28. package/resources/chat-agent.d.ts.map +1 -1
  29. package/resources/chat-agent.js +17 -0
  30. package/resources/chat-agent.js.map +1 -1
  31. package/resources/chat-agent.mjs +17 -0
  32. package/resources/chat-agent.mjs.map +1 -1
  33. package/resources/chat.d.mts +49 -12
  34. package/resources/chat.d.mts.map +1 -1
  35. package/resources/chat.d.ts +49 -12
  36. package/resources/chat.d.ts.map +1 -1
  37. package/resources/chat.js +24 -5
  38. package/resources/chat.js.map +1 -1
  39. package/resources/chat.mjs +24 -5
  40. package/resources/chat.mjs.map +1 -1
  41. package/resources/conversation-flow-component.d.mts +33 -5
  42. package/resources/conversation-flow-component.d.mts.map +1 -1
  43. package/resources/conversation-flow-component.d.ts +33 -5
  44. package/resources/conversation-flow-component.d.ts.map +1 -1
  45. package/resources/conversation-flow-component.js +8 -4
  46. package/resources/conversation-flow-component.js.map +1 -1
  47. package/resources/conversation-flow-component.mjs +8 -4
  48. package/resources/conversation-flow-component.mjs.map +1 -1
  49. package/resources/conversation-flow.d.mts +21 -14
  50. package/resources/conversation-flow.d.mts.map +1 -1
  51. package/resources/conversation-flow.d.ts +21 -14
  52. package/resources/conversation-flow.d.ts.map +1 -1
  53. package/resources/conversation-flow.js +7 -3
  54. package/resources/conversation-flow.js.map +1 -1
  55. package/resources/conversation-flow.mjs +7 -3
  56. package/resources/conversation-flow.mjs.map +1 -1
  57. package/resources/index.d.mts +5 -5
  58. package/resources/index.d.mts.map +1 -1
  59. package/resources/index.d.ts +5 -5
  60. package/resources/index.d.ts.map +1 -1
  61. package/resources/index.js.map +1 -1
  62. package/resources/index.mjs.map +1 -1
  63. package/resources/llm.d.mts +20 -12
  64. package/resources/llm.d.mts.map +1 -1
  65. package/resources/llm.d.ts +20 -12
  66. package/resources/llm.d.ts.map +1 -1
  67. package/resources/llm.js +6 -3
  68. package/resources/llm.js.map +1 -1
  69. package/resources/llm.mjs +6 -3
  70. package/resources/llm.mjs.map +1 -1
  71. package/resources/phone-number.d.mts +32 -5
  72. package/resources/phone-number.d.mts.map +1 -1
  73. package/resources/phone-number.d.ts +32 -5
  74. package/resources/phone-number.d.ts.map +1 -1
  75. package/resources/phone-number.js +7 -4
  76. package/resources/phone-number.js.map +1 -1
  77. package/resources/phone-number.mjs +7 -4
  78. package/resources/phone-number.mjs.map +1 -1
  79. package/resources/tests.d.mts +64 -14
  80. package/resources/tests.d.mts.map +1 -1
  81. package/resources/tests.d.ts +64 -14
  82. package/resources/tests.d.ts.map +1 -1
  83. package/resources/tests.js +7 -13
  84. package/resources/tests.js.map +1 -1
  85. package/resources/tests.mjs +7 -13
  86. package/resources/tests.mjs.map +1 -1
  87. package/src/client.ts +10 -0
  88. package/src/resources/agent.ts +23 -0
  89. package/src/resources/call.ts +766 -104
  90. package/src/resources/chat-agent.ts +25 -0
  91. package/src/resources/chat.ts +59 -17
  92. package/src/resources/conversation-flow-component.ts +42 -5
  93. package/src/resources/conversation-flow.ts +24 -15
  94. package/src/resources/index.ts +5 -0
  95. package/src/resources/llm.ts +23 -13
  96. package/src/resources/phone-number.ts +41 -5
  97. package/src/resources/tests.ts +83 -16
  98. package/src/version.ts +1 -1
  99. package/version.d.mts +1 -1
  100. package/version.d.ts +1 -1
  101. package/version.js +1 -1
  102. package/version.mjs +1 -1
@@ -1,4 +1,5 @@
1
1
  import { APIResource } from "../core/resource.mjs";
2
+ import * as CallAPI from "./call.mjs";
2
3
  import { APIPromise } from "../core/api-promise.mjs";
3
4
  import { RequestOptions } from "../internal/request-options.mjs";
4
5
  export declare class Call extends APIResource {
@@ -32,11 +33,14 @@ export declare class Call extends APIResource {
32
33
  */
33
34
  update(callID: string, body: CallUpdateParams, options?: RequestOptions): APIPromise<CallResponse>;
34
35
  /**
35
- * Retrieve call details
36
+ * List calls with unified cursor pagination response.
36
37
  *
37
- * @deprecated
38
+ * @example
39
+ * ```ts
40
+ * const calls = await client.call.list();
41
+ * ```
38
42
  */
39
- list(body: CallListParams, options?: RequestOptions): APIPromise<CallListResponse>;
43
+ list(body?: CallListParams | null | undefined, options?: RequestOptions): APIPromise<CallListResponse>;
40
44
  /**
41
45
  * Delete a specific call and its associated data
42
46
  *
@@ -1826,7 +1830,29 @@ export declare namespace WebCallResponse {
1826
1830
  role: 'dtmf';
1827
1831
  }
1828
1832
  }
1829
- export type CallListResponse = Array<CallResponse>;
1833
+ export interface CallListResponse {
1834
+ /**
1835
+ * Whether more results are available.
1836
+ */
1837
+ has_more?: boolean;
1838
+ items?: Array<CallListResponse.CallWebCallResponse | CallListResponse.CallPhoneCallResponse>;
1839
+ /**
1840
+ * Pagination key for the next page.
1841
+ */
1842
+ pagination_key?: string;
1843
+ }
1844
+ export declare namespace CallListResponse {
1845
+ /**
1846
+ * V3 list calls response. Transcript fields are intentionally omitted.
1847
+ */
1848
+ interface CallWebCallResponse extends CallAPI.WebCallResponse {
1849
+ }
1850
+ /**
1851
+ * V3 list calls response. Transcript fields are intentionally omitted.
1852
+ */
1853
+ interface CallPhoneCallResponse extends CallAPI.PhoneCallResponse {
1854
+ }
1855
+ }
1830
1856
  export interface CallUpdateParams {
1831
1857
  /**
1832
1858
  * Custom attributes for the call
@@ -1860,137 +1886,596 @@ export interface CallUpdateParams {
1860
1886
  }
1861
1887
  export interface CallListParams {
1862
1888
  /**
1863
- * Filter criteria for the calls to retrieve.
1889
+ * Filter criteria for calls. All conditions are implicitly connected with AND.
1864
1890
  */
1865
1891
  filter_criteria?: CallListParams.FilterCriteria;
1866
1892
  /**
1867
- * Limit the number of calls returned. Default 50, Max 1000. To retrieve more than
1868
- * 1000, use pagination_key to continue fetching the next page.
1893
+ * Maximum number of calls to return.
1869
1894
  */
1870
1895
  limit?: number;
1871
1896
  /**
1872
- * The pagination key to continue fetching the next page of calls. Pagination key
1873
- * is represented by a call id here, and it's exclusive (not included in the
1874
- * fetched calls). The last call id from the list calls is usually used as
1875
- * pagination key here. If not set, will start from the beginning.
1897
+ * Opaque pagination cursor from a previous response.
1876
1898
  */
1877
1899
  pagination_key?: string;
1878
1900
  /**
1879
- * The calls will be sorted by `start_timestamp`, whether to return the calls in
1880
- * ascending or descending order.
1901
+ * Number of records to skip for pagination.
1902
+ */
1903
+ skip?: number;
1904
+ /**
1905
+ * Sort calls by `start_timestamp` in ascending or descending order.
1881
1906
  */
1882
1907
  sort_order?: 'ascending' | 'descending';
1883
1908
  }
1884
1909
  export declare namespace CallListParams {
1885
1910
  /**
1886
- * Filter criteria for the calls to retrieve.
1911
+ * Filter criteria for calls. All conditions are implicitly connected with AND.
1887
1912
  */
1888
1913
  interface FilterCriteria {
1889
1914
  /**
1890
- * Only retrieve calls that are made with specific agent(s).
1915
+ * Filter by agent(s). Agent filters are connected by OR.
1891
1916
  */
1892
- agent_id?: Array<string>;
1917
+ agent?: Array<FilterCriteria.Agent>;
1893
1918
  /**
1894
- * Only retrieve calls with specific batch call id(s).
1919
+ * Filter by batch call ID.
1895
1920
  */
1896
- batch_call_id?: Array<string>;
1921
+ batch_call_id?: FilterCriteria.BatchCallID;
1897
1922
  /**
1898
- * Only retrieve calls with specific call id(s).
1923
+ * Filter by call ID.
1899
1924
  */
1900
- call_id?: Array<string>;
1925
+ call_id?: FilterCriteria.CallID;
1926
+ call_status?: FilterCriteria.CallStatus;
1901
1927
  /**
1902
- * Only retrieve calls with specific call status(es).
1928
+ * Filter by whether the call was successful.
1903
1929
  */
1904
- call_status?: Array<'not_connected' | 'ongoing' | 'ended' | 'error'>;
1930
+ call_successful?: FilterCriteria.CallSuccessful;
1931
+ call_type?: FilterCriteria.CallType;
1905
1932
  /**
1906
- * Only retrieve calls with specific call successful(s).
1933
+ * Filter by combined cost of the call.
1907
1934
  */
1908
- call_successful?: Array<boolean>;
1935
+ combined_cost?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
1909
1936
  /**
1910
- * Only retrieve calls with specific call type(s).
1937
+ * Filter by custom analysis data fields.
1911
1938
  */
1912
- call_type?: Array<'web_call' | 'phone_call'>;
1939
+ custom_analysis_data?: Array<FilterCriteria.StringFilter | FilterCriteria.NumberFilter | FilterCriteria.BooleanFilter | FilterCriteria.RangeFilter | FilterCriteria.EnumFilter | FilterCriteria.PresentFilter>;
1913
1940
  /**
1914
- * Only retrieve calls with specific direction(s).
1941
+ * Filter by custom attributes fields.
1915
1942
  */
1916
- direction?: Array<'inbound' | 'outbound'>;
1943
+ custom_attributes?: Array<FilterCriteria.StringFilter | FilterCriteria.NumberFilter | FilterCriteria.BooleanFilter | FilterCriteria.RangeFilter | FilterCriteria.EnumFilter | FilterCriteria.PresentFilter>;
1944
+ data_storage_setting?: FilterCriteria.DataStorageSetting;
1945
+ direction?: FilterCriteria.Direction;
1946
+ disconnection_reason?: FilterCriteria.DisconnectionReason;
1917
1947
  /**
1918
- * Only retrieve calls with specific disconnection reason(s).
1948
+ * Filter by call duration in milliseconds.
1919
1949
  */
1920
- disconnection_reason?: Array<'user_hangup' | 'agent_hangup' | 'call_transfer' | 'voicemail_reached' | 'ivr_reached' | 'inactivity' | 'max_duration_reached' | 'concurrency_limit_reached' | 'no_valid_payment' | 'scam_detected' | 'dial_busy' | 'dial_failed' | 'dial_no_answer' | 'invalid_destination' | 'telephony_provider_permission_denied' | 'telephony_provider_unavailable' | 'sip_routing_error' | 'marked_as_spam' | 'user_declined' | 'error_llm_websocket_open' | 'error_llm_websocket_lost_connection' | 'error_llm_websocket_runtime' | 'error_llm_websocket_corrupt_payload' | 'error_no_audio_received' | 'error_asr' | 'error_retell' | 'error_unknown' | 'error_user_not_joined' | 'registered_call_timeout' | 'transfer_bridged' | 'transfer_cancelled' | 'manual_stopped'>;
1950
+ duration_ms?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
1921
1951
  /**
1922
- * Only retrieve calls with specific range of duration(s).
1952
+ * Filter by dynamic variables.
1923
1953
  */
1924
- duration_ms?: FilterCriteria.DurationMs;
1954
+ dynamic_variables?: Array<FilterCriteria.DynamicVariable>;
1925
1955
  /**
1926
- * Filter by dynamic variables using dot notation (e.g., `dynamic_variables.name`).
1927
- * Values are matched exactly as strings.
1956
+ * Filter by end-to-end latency p50.
1928
1957
  */
1929
- dynamic_variables?: {
1930
- [key: string]: Array<string>;
1931
- };
1932
- e2e_latency_p50?: FilterCriteria.E2ELatencyP50;
1958
+ e2e_latency_p50?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
1933
1959
  /**
1934
- * Only retrieve calls with specific range of end timestamp(s).
1960
+ * Filter by call end timestamp (epoch ms).
1935
1961
  */
1936
- end_timestamp?: FilterCriteria.EndTimestamp;
1962
+ end_timestamp?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
1937
1963
  /**
1938
- * Only retrieve calls with specific from number(s).
1964
+ * Filter by from number.
1939
1965
  */
1940
- from_number?: Array<string>;
1966
+ from_number?: FilterCriteria.FromNumber;
1941
1967
  /**
1942
- * Only retrieve calls that are in voicemail or not in voicemail.
1968
+ * Filter by whether the call is in voicemail.
1943
1969
  */
1944
- in_voicemail?: Array<boolean>;
1970
+ in_voicemail?: FilterCriteria.InVoicemail;
1945
1971
  /**
1946
- * Filter by metadata fields using dot notation (e.g., `metadata.customer_id`).
1947
- * Values are matched exactly as strings.
1972
+ * Filter by metadata fields.
1948
1973
  */
1949
- metadata?: {
1950
- [key: string]: Array<string>;
1951
- };
1974
+ metadata?: Array<FilterCriteria.StringFilter | FilterCriteria.NumberFilter | FilterCriteria.BooleanFilter | FilterCriteria.RangeFilter | FilterCriteria.EnumFilter | FilterCriteria.PresentFilter>;
1952
1975
  /**
1953
- * Only retrieve calls with specific range of start timestamp(s).
1976
+ * Filter by call start timestamp (epoch ms).
1954
1977
  */
1955
- start_timestamp?: FilterCriteria.StartTimestamp;
1978
+ start_timestamp?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
1956
1979
  /**
1957
- * Only retrieve calls with specific to number(s).
1980
+ * Filter by to number.
1958
1981
  */
1959
- to_number?: Array<string>;
1982
+ to_number?: FilterCriteria.ToNumber;
1960
1983
  /**
1961
- * Only retrieve calls with specific user sentiment(s).
1984
+ * Filter by tool call criteria. Tool call filters are connected by AND.
1962
1985
  */
1963
- user_sentiment?: Array<'Negative' | 'Positive' | 'Neutral' | 'Unknown'>;
1964
- /**
1965
- * The version of the agent to use for the call.
1966
- */
1967
- version?: Array<number>;
1986
+ tool_calls?: Array<FilterCriteria.ToolCall>;
1987
+ user_sentiment?: FilterCriteria.UserSentiment;
1968
1988
  }
1969
1989
  namespace FilterCriteria {
1990
+ interface Agent {
1991
+ /**
1992
+ * The agent ID to filter on.
1993
+ */
1994
+ agent_id: string;
1995
+ /**
1996
+ * Specific versions to filter on. If not provided, all versions are included.
1997
+ */
1998
+ version?: Array<number>;
1999
+ }
2000
+ /**
2001
+ * Filter by batch call ID.
2002
+ */
2003
+ interface BatchCallID {
2004
+ /**
2005
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2006
+ */
2007
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2008
+ type: 'string';
2009
+ value: string;
2010
+ }
2011
+ /**
2012
+ * Filter by call ID.
2013
+ */
2014
+ interface CallID {
2015
+ /**
2016
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2017
+ */
2018
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2019
+ type: 'string';
2020
+ value: string;
2021
+ }
2022
+ interface CallStatus {
2023
+ /**
2024
+ * in: value is one of the listed values
2025
+ */
2026
+ op: 'in';
2027
+ type: 'enum';
2028
+ value: Array<'not_connected' | 'ongoing' | 'ended' | 'error'>;
2029
+ }
1970
2030
  /**
1971
- * Only retrieve calls with specific range of duration(s).
2031
+ * Filter by whether the call was successful.
1972
2032
  */
1973
- interface DurationMs {
1974
- lower_threshold?: number;
1975
- upper_threshold?: number;
2033
+ interface CallSuccessful {
2034
+ op: 'eq';
2035
+ type: 'boolean';
2036
+ value: boolean;
2037
+ }
2038
+ interface CallType {
2039
+ /**
2040
+ * in: value is one of the listed values
2041
+ */
2042
+ op: 'in';
2043
+ type: 'enum';
2044
+ value: Array<'web_call' | 'phone_call'>;
2045
+ }
2046
+ interface NumberFilter {
2047
+ /**
2048
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2049
+ * than, le: less than or equal
2050
+ */
2051
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2052
+ type: 'number';
2053
+ value: number;
2054
+ }
2055
+ interface RangeFilter {
2056
+ /**
2057
+ * bt: between
2058
+ */
2059
+ op: 'bt';
2060
+ type: 'range';
2061
+ /**
2062
+ * [lower_bound, upper_bound]
2063
+ */
2064
+ value: Array<number>;
2065
+ }
2066
+ interface StringFilter {
2067
+ /**
2068
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2069
+ */
2070
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2071
+ type: 'string';
2072
+ value: string;
2073
+ /**
2074
+ * The field name to filter on.
2075
+ */
2076
+ key?: string;
2077
+ }
2078
+ interface NumberFilter {
2079
+ /**
2080
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2081
+ * than, le: less than or equal
2082
+ */
2083
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2084
+ type: 'number';
2085
+ value: number;
2086
+ /**
2087
+ * The field name to filter on.
2088
+ */
2089
+ key?: string;
2090
+ }
2091
+ interface BooleanFilter {
2092
+ op: 'eq';
2093
+ type: 'boolean';
2094
+ value: boolean;
2095
+ /**
2096
+ * The field name to filter on.
2097
+ */
2098
+ key?: string;
2099
+ }
2100
+ interface RangeFilter {
2101
+ /**
2102
+ * bt: between
2103
+ */
2104
+ op: 'bt';
2105
+ type: 'range';
2106
+ /**
2107
+ * [lower_bound, upper_bound]
2108
+ */
2109
+ value: Array<number>;
2110
+ /**
2111
+ * The field name to filter on.
2112
+ */
2113
+ key?: string;
2114
+ }
2115
+ interface EnumFilter {
2116
+ /**
2117
+ * in: value is one of the listed values
2118
+ */
2119
+ op: 'in';
2120
+ type: 'enum';
2121
+ value: Array<string>;
2122
+ /**
2123
+ * The field name to filter on.
2124
+ */
2125
+ key?: string;
2126
+ }
2127
+ interface PresentFilter {
2128
+ /**
2129
+ * pr: present (has value), np: not present
2130
+ */
2131
+ op: 'pr' | 'np';
2132
+ type: 'present';
2133
+ /**
2134
+ * The field name to filter on.
2135
+ */
2136
+ key?: string;
2137
+ }
2138
+ interface StringFilter {
2139
+ /**
2140
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2141
+ */
2142
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2143
+ type: 'string';
2144
+ value: string;
2145
+ /**
2146
+ * The field name to filter on.
2147
+ */
2148
+ key?: string;
2149
+ }
2150
+ interface NumberFilter {
2151
+ /**
2152
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2153
+ * than, le: less than or equal
2154
+ */
2155
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2156
+ type: 'number';
2157
+ value: number;
2158
+ /**
2159
+ * The field name to filter on.
2160
+ */
2161
+ key?: string;
2162
+ }
2163
+ interface BooleanFilter {
2164
+ op: 'eq';
2165
+ type: 'boolean';
2166
+ value: boolean;
2167
+ /**
2168
+ * The field name to filter on.
2169
+ */
2170
+ key?: string;
2171
+ }
2172
+ interface RangeFilter {
2173
+ /**
2174
+ * bt: between
2175
+ */
2176
+ op: 'bt';
2177
+ type: 'range';
2178
+ /**
2179
+ * [lower_bound, upper_bound]
2180
+ */
2181
+ value: Array<number>;
2182
+ /**
2183
+ * The field name to filter on.
2184
+ */
2185
+ key?: string;
2186
+ }
2187
+ interface EnumFilter {
2188
+ /**
2189
+ * in: value is one of the listed values
2190
+ */
2191
+ op: 'in';
2192
+ type: 'enum';
2193
+ value: Array<string>;
2194
+ /**
2195
+ * The field name to filter on.
2196
+ */
2197
+ key?: string;
2198
+ }
2199
+ interface PresentFilter {
2200
+ /**
2201
+ * pr: present (has value), np: not present
2202
+ */
2203
+ op: 'pr' | 'np';
2204
+ type: 'present';
2205
+ /**
2206
+ * The field name to filter on.
2207
+ */
2208
+ key?: string;
2209
+ }
2210
+ interface DataStorageSetting {
2211
+ /**
2212
+ * in: value is one of the listed values
2213
+ */
2214
+ op: 'in';
2215
+ type: 'enum';
2216
+ value: Array<'everything' | 'everything_except_pii' | 'basic_attributes_only'>;
2217
+ }
2218
+ interface Direction {
2219
+ /**
2220
+ * in: value is one of the listed values
2221
+ */
2222
+ op: 'in';
2223
+ type: 'enum';
2224
+ value: Array<'inbound' | 'outbound'>;
2225
+ }
2226
+ interface DisconnectionReason {
2227
+ /**
2228
+ * in: value is one of the listed values
2229
+ */
2230
+ op: 'in';
2231
+ type: 'enum';
2232
+ value: Array<'user_hangup' | 'agent_hangup' | 'call_transfer' | 'voicemail_reached' | 'ivr_reached' | 'inactivity' | 'max_duration_reached' | 'concurrency_limit_reached' | 'no_valid_payment' | 'scam_detected' | 'dial_busy' | 'dial_failed' | 'dial_no_answer' | 'invalid_destination' | 'telephony_provider_permission_denied' | 'telephony_provider_unavailable' | 'sip_routing_error' | 'marked_as_spam' | 'user_declined' | 'error_llm_websocket_open' | 'error_llm_websocket_lost_connection' | 'error_llm_websocket_runtime' | 'error_llm_websocket_corrupt_payload' | 'error_no_audio_received' | 'error_asr' | 'error_retell' | 'error_unknown' | 'error_user_not_joined' | 'registered_call_timeout' | 'transfer_bridged' | 'transfer_cancelled' | 'manual_stopped'>;
2233
+ }
2234
+ interface NumberFilter {
2235
+ /**
2236
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2237
+ * than, le: less than or equal
2238
+ */
2239
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2240
+ type: 'number';
2241
+ value: number;
2242
+ }
2243
+ interface RangeFilter {
2244
+ /**
2245
+ * bt: between
2246
+ */
2247
+ op: 'bt';
2248
+ type: 'range';
2249
+ /**
2250
+ * [lower_bound, upper_bound]
2251
+ */
2252
+ value: Array<number>;
2253
+ }
2254
+ interface DynamicVariable {
2255
+ /**
2256
+ * The dynamic variable name to filter on.
2257
+ */
2258
+ key: string;
2259
+ /**
2260
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2261
+ */
2262
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2263
+ type: 'string';
2264
+ value: string;
2265
+ }
2266
+ interface NumberFilter {
2267
+ /**
2268
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2269
+ * than, le: less than or equal
2270
+ */
2271
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2272
+ type: 'number';
2273
+ value: number;
1976
2274
  }
1977
- interface E2ELatencyP50 {
1978
- lower_threshold?: number;
1979
- upper_threshold?: number;
2275
+ interface RangeFilter {
2276
+ /**
2277
+ * bt: between
2278
+ */
2279
+ op: 'bt';
2280
+ type: 'range';
2281
+ /**
2282
+ * [lower_bound, upper_bound]
2283
+ */
2284
+ value: Array<number>;
2285
+ }
2286
+ interface NumberFilter {
2287
+ /**
2288
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2289
+ * than, le: less than or equal
2290
+ */
2291
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2292
+ type: 'number';
2293
+ value: number;
2294
+ }
2295
+ interface RangeFilter {
2296
+ /**
2297
+ * bt: between
2298
+ */
2299
+ op: 'bt';
2300
+ type: 'range';
2301
+ /**
2302
+ * [lower_bound, upper_bound]
2303
+ */
2304
+ value: Array<number>;
1980
2305
  }
1981
2306
  /**
1982
- * Only retrieve calls with specific range of end timestamp(s).
2307
+ * Filter by from number.
1983
2308
  */
1984
- interface EndTimestamp {
1985
- lower_threshold?: number;
1986
- upper_threshold?: number;
2309
+ interface FromNumber {
2310
+ /**
2311
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2312
+ */
2313
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2314
+ type: 'string';
2315
+ value: string;
2316
+ }
2317
+ /**
2318
+ * Filter by whether the call is in voicemail.
2319
+ */
2320
+ interface InVoicemail {
2321
+ op: 'eq';
2322
+ type: 'boolean';
2323
+ value: boolean;
2324
+ }
2325
+ interface StringFilter {
2326
+ /**
2327
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2328
+ */
2329
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2330
+ type: 'string';
2331
+ value: string;
2332
+ /**
2333
+ * The field name to filter on.
2334
+ */
2335
+ key?: string;
2336
+ }
2337
+ interface NumberFilter {
2338
+ /**
2339
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2340
+ * than, le: less than or equal
2341
+ */
2342
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2343
+ type: 'number';
2344
+ value: number;
2345
+ /**
2346
+ * The field name to filter on.
2347
+ */
2348
+ key?: string;
2349
+ }
2350
+ interface BooleanFilter {
2351
+ op: 'eq';
2352
+ type: 'boolean';
2353
+ value: boolean;
2354
+ /**
2355
+ * The field name to filter on.
2356
+ */
2357
+ key?: string;
2358
+ }
2359
+ interface RangeFilter {
2360
+ /**
2361
+ * bt: between
2362
+ */
2363
+ op: 'bt';
2364
+ type: 'range';
2365
+ /**
2366
+ * [lower_bound, upper_bound]
2367
+ */
2368
+ value: Array<number>;
2369
+ /**
2370
+ * The field name to filter on.
2371
+ */
2372
+ key?: string;
2373
+ }
2374
+ interface EnumFilter {
2375
+ /**
2376
+ * in: value is one of the listed values
2377
+ */
2378
+ op: 'in';
2379
+ type: 'enum';
2380
+ value: Array<string>;
2381
+ /**
2382
+ * The field name to filter on.
2383
+ */
2384
+ key?: string;
2385
+ }
2386
+ interface PresentFilter {
2387
+ /**
2388
+ * pr: present (has value), np: not present
2389
+ */
2390
+ op: 'pr' | 'np';
2391
+ type: 'present';
2392
+ /**
2393
+ * The field name to filter on.
2394
+ */
2395
+ key?: string;
2396
+ }
2397
+ interface NumberFilter {
2398
+ /**
2399
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2400
+ * than, le: less than or equal
2401
+ */
2402
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2403
+ type: 'number';
2404
+ value: number;
2405
+ }
2406
+ interface RangeFilter {
2407
+ /**
2408
+ * bt: between
2409
+ */
2410
+ op: 'bt';
2411
+ type: 'range';
2412
+ /**
2413
+ * [lower_bound, upper_bound]
2414
+ */
2415
+ value: Array<number>;
1987
2416
  }
1988
2417
  /**
1989
- * Only retrieve calls with specific range of start timestamp(s).
2418
+ * Filter by to number.
1990
2419
  */
1991
- interface StartTimestamp {
1992
- lower_threshold?: number;
1993
- upper_threshold?: number;
2420
+ interface ToNumber {
2421
+ /**
2422
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2423
+ */
2424
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2425
+ type: 'string';
2426
+ value: string;
2427
+ }
2428
+ interface ToolCall {
2429
+ /**
2430
+ * The tool call name to filter on.
2431
+ */
2432
+ name: string;
2433
+ /**
2434
+ * Filter by tool call latency in milliseconds.
2435
+ */
2436
+ latency_ms?: ToolCall.NumberFilter | ToolCall.RangeFilter;
2437
+ /**
2438
+ * Filter by tool call success status.
2439
+ */
2440
+ success?: ToolCall.Success;
2441
+ }
2442
+ namespace ToolCall {
2443
+ interface NumberFilter {
2444
+ /**
2445
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2446
+ * than, le: less than or equal
2447
+ */
2448
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2449
+ type: 'number';
2450
+ value: number;
2451
+ }
2452
+ interface RangeFilter {
2453
+ /**
2454
+ * bt: between
2455
+ */
2456
+ op: 'bt';
2457
+ type: 'range';
2458
+ /**
2459
+ * [lower_bound, upper_bound]
2460
+ */
2461
+ value: Array<number>;
2462
+ }
2463
+ /**
2464
+ * Filter by tool call success status.
2465
+ */
2466
+ interface Success {
2467
+ op: 'eq';
2468
+ type: 'boolean';
2469
+ value: boolean;
2470
+ }
2471
+ }
2472
+ interface UserSentiment {
2473
+ /**
2474
+ * in: value is one of the listed values
2475
+ */
2476
+ op: 'in';
2477
+ type: 'enum';
2478
+ value: Array<'Negative' | 'Positive' | 'Neutral' | 'Unknown'>;
1994
2479
  }
1995
2480
  }
1996
2481
  }