@utdk/posthog 1.0.0-20260712.5-dev.e2949a6

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 (151) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +172 -0
  3. package/docs/account_relationship_definitions.md +194 -0
  4. package/docs/accounts.md +380 -0
  5. package/docs/actions.md +274 -0
  6. package/docs/activity_logs.md +144 -0
  7. package/docs/advanced_activity_logs.md +101 -0
  8. package/docs/agent_platform.md +2525 -0
  9. package/docs/ai-observability.md +514 -0
  10. package/docs/alerts.md +444 -0
  11. package/docs/annotations.md +200 -0
  12. package/docs/batch_exports.md +2118 -0
  13. package/docs/business_knowledge.md +468 -0
  14. package/docs/code-invites.md +72 -0
  15. package/docs/cohorts.md +412 -0
  16. package/docs/comments.md +321 -0
  17. package/docs/conversations.md +695 -0
  18. package/docs/custom_property_definitions.md +442 -0
  19. package/docs/custom_property_sources.md +194 -0
  20. package/docs/customer_analytics.md +442 -0
  21. package/docs/customer_journeys.md +380 -0
  22. package/docs/customer_profile_configs.md +380 -0
  23. package/docs/dashboard_templates.md +258 -0
  24. package/docs/dashboards.md +1896 -0
  25. package/docs/data_color_themes.md +380 -0
  26. package/docs/data_modeling_jobs.md +264 -0
  27. package/docs/data_warehouse.md +928 -0
  28. package/docs/dataset_items.md +382 -0
  29. package/docs/datasets.md +382 -0
  30. package/docs/desktop_file_system.md +753 -0
  31. package/docs/desktop_file_system_shortcut.md +244 -0
  32. package/docs/docs.md +72 -0
  33. package/docs/early_access_feature.md +194 -0
  34. package/docs/elements.md +510 -0
  35. package/docs/endpoints.md +1030 -0
  36. package/docs/engineering_analytics.md +712 -0
  37. package/docs/environments.md +881 -0
  38. package/docs/error_tracking.md +5108 -0
  39. package/docs/evaluation_runs.md +78 -0
  40. package/docs/evaluations.md +446 -0
  41. package/docs/event_definitions.md +425 -0
  42. package/docs/event_filter.md +280 -0
  43. package/docs/event_schemas.md +163 -0
  44. package/docs/events.md +208 -0
  45. package/docs/experiment_holdouts.md +194 -0
  46. package/docs/experiment_saved_metrics.md +194 -0
  47. package/docs/experiments.md +1088 -0
  48. package/docs/exports.md +256 -0
  49. package/docs/external_data_schemas.md +752 -0
  50. package/docs/external_data_sources.md +2296 -0
  51. package/docs/feature_flags.md +808 -0
  52. package/docs/field_notes.md +206 -0
  53. package/docs/file_system.md +880 -0
  54. package/docs/file_system_shortcut.md +444 -0
  55. package/docs/flag_value.md +46 -0
  56. package/docs/groups.md +514 -0
  57. package/docs/groups_types.md +349 -0
  58. package/docs/health_issues.md +386 -0
  59. package/docs/heatmap_screenshots.md +72 -0
  60. package/docs/heatmaps.md +136 -0
  61. package/docs/hog_flows.md +1576 -0
  62. package/docs/hog_function_templates.md +101 -0
  63. package/docs/hog_functions.md +974 -0
  64. package/docs/ingestion_warnings_v2.md +40 -0
  65. package/docs/insight_variables.md +380 -0
  66. package/docs/insights.md +1722 -0
  67. package/docs/integrations.md +1954 -0
  68. package/docs/js-snippet.md +104 -0
  69. package/docs/live_debugger_breakpoints.md +264 -0
  70. package/docs/llm_analytics.md +3373 -0
  71. package/docs/llm_prompts.md +442 -0
  72. package/docs/llm_skills.md +952 -0
  73. package/docs/logs.md +2446 -0
  74. package/docs/managed_viewsets.md +140 -0
  75. package/docs/marketing_analytics.md +518 -0
  76. package/docs/max.md +772 -0
  77. package/docs/max_tools.md +70 -0
  78. package/docs/mcp_analytics.md +712 -0
  79. package/docs/mcp_server_installations.md +970 -0
  80. package/docs/mcp_servers.md +78 -0
  81. package/docs/mcp_tools.md +82 -0
  82. package/docs/messaging_templates.md +444 -0
  83. package/docs/metrics.md +462 -0
  84. package/docs/notebooks.md +838 -0
  85. package/docs/object_media_previews.md +228 -0
  86. package/docs/organizations.md +2958 -0
  87. package/docs/persons.md +1514 -0
  88. package/docs/platform_features.md +700 -0
  89. package/docs/plugin_configs.md +70 -0
  90. package/docs/product_enablement.md +39 -0
  91. package/docs/product_tours.md +357 -0
  92. package/docs/project_secret_api_keys.md +444 -0
  93. package/docs/property_access_controls.md +200 -0
  94. package/docs/property_definitions.md +244 -0
  95. package/docs/query.md +560 -0
  96. package/docs/quota_limits.md +40 -0
  97. package/docs/reminders.md +194 -0
  98. package/docs/replay.md +1020 -0
  99. package/docs/reverse_proxy.md +200 -0
  100. package/docs/sandbox-custom-images.md +209 -0
  101. package/docs/sandbox-environments.md +168 -0
  102. package/docs/saved.md +392 -0
  103. package/docs/saved_query_column_annotations.md +224 -0
  104. package/docs/scheduled_changes.md +200 -0
  105. package/docs/schema_property_groups.md +194 -0
  106. package/docs/sdk_health.md +40 -0
  107. package/docs/session_group_summaries.md +200 -0
  108. package/docs/session_recordings.md +260 -0
  109. package/docs/session_summaries.md +200 -0
  110. package/docs/sessions.md +132 -0
  111. package/docs/signals.md +1428 -0
  112. package/docs/single_session_summaries.md +72 -0
  113. package/docs/streamlit_apps.md +456 -0
  114. package/docs/subscriptions.md +634 -0
  115. package/docs/surveys.md +731 -0
  116. package/docs/taggers.md +446 -0
  117. package/docs/task-automations.md +200 -0
  118. package/docs/task-runs.md +654 -0
  119. package/docs/task_channels.md +136 -0
  120. package/docs/task_mentions.md +40 -0
  121. package/docs/tasks.md +776 -0
  122. package/docs/tracing.md +1186 -0
  123. package/docs/uploaded_media.md +44 -0
  124. package/docs/user_home_settings.md +72 -0
  125. package/docs/user_interview_topics.md +1288 -0
  126. package/docs/user_interviews.md +444 -0
  127. package/docs/users.md +1267 -0
  128. package/docs/vision.md +2022 -0
  129. package/docs/visual_review.md +816 -0
  130. package/docs/warehouse_column_annotations.md +224 -0
  131. package/docs/warehouse_column_statistics.md +80 -0
  132. package/docs/warehouse_dag.md +40 -0
  133. package/docs/warehouse_model_paths.md +70 -0
  134. package/docs/warehouse_saved_queries.md +1056 -0
  135. package/docs/warehouse_saved_query_folders.md +318 -0
  136. package/docs/warehouse_tables.md +584 -0
  137. package/docs/warehouse_view_link.md +456 -0
  138. package/docs/warehouse_view_links.md +456 -0
  139. package/docs/web_analytics.md +136 -0
  140. package/docs/web_analytics_achievements.md +200 -0
  141. package/docs/web_experiments.md +194 -0
  142. package/docs/web_vitals.md +74 -0
  143. package/docs/wizard.md +170 -0
  144. package/index.ts +22 -0
  145. package/metadata.ts +41419 -0
  146. package/openapi.json +297382 -0
  147. package/overlay.yaml +23 -0
  148. package/package.json +34 -0
  149. package/provenance.json +24 -0
  150. package/research.json +80 -0
  151. package/types/index.ts +17547 -0
@@ -0,0 +1,1288 @@
1
+ # User Interview Topics
2
+
3
+ ## Operations
4
+
5
+ ### `posthog.environmentsUserInterviewTopicsList`
6
+
7
+ - **HTTP**: `GET /api/environments/{environment_id}/user_interview_topics/`
8
+ - **What it does**: Planned user interview topics: who we want to target and what we want to ask about.
9
+ - **OpenAPI operationId**: `environments_user_interview_topics_list`
10
+ - **Path params**: None
11
+ - **Query params**: `limit`, `offset`, `search`
12
+ - **Response codes**: `200`
13
+ - **Transport options**: None
14
+ - **TypeScript**: [Client interface](../types.ts)
15
+
16
+ **Inputs**
17
+
18
+ - Client input type: `{ [key: string]: unknown }`
19
+ - Client transport options: None
20
+
21
+ **Outputs**
22
+
23
+ - Client return type: `{ count: number; next?: string | null; previous?: string | null; results: ({ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_em...`
24
+ - OpenAPI response codes: `200`
25
+
26
+ ```ts
27
+ import posthog from "@utdk/posthog";
28
+
29
+ type EnvironmentsUserInterviewTopicsListInput = Parameters<typeof posthog.environmentsUserInterviewTopicsList> extends [infer T, ...unknown[]] ? T : undefined;
30
+ type EnvironmentsUserInterviewTopicsListOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsList>>;
31
+
32
+ const result: EnvironmentsUserInterviewTopicsListOutput = await posthog.environmentsUserInterviewTopicsList();
33
+
34
+ // Result shape (from schema): { count: number; next?: string | null; previous?: string | null; results: ({ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_em...
35
+ ```
36
+
37
+ ### `posthog.environmentsUserInterviewTopicsCreate`
38
+
39
+ - **HTTP**: `POST /api/environments/{environment_id}/user_interview_topics/`
40
+ - **What it does**: Planned user interview topics: who we want to target and what we want to ask about.
41
+ - **OpenAPI operationId**: `environments_user_interview_topics_create`
42
+ - **Path params**: None
43
+ - **Query params**: None
44
+ - **Response codes**: `201`
45
+ - **Transport options**: None
46
+ - **TypeScript**: [Client interface](../types.ts)
47
+
48
+ **Inputs**
49
+
50
+ - Client input type: `{ [key: string]: unknown }`
51
+ - Client transport options: None
52
+
53
+ **Outputs**
54
+
55
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
56
+ - OpenAPI response codes: `201`
57
+
58
+ ```ts
59
+ import posthog from "@utdk/posthog";
60
+
61
+ type EnvironmentsUserInterviewTopicsCreateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsCreate> extends [infer T, ...unknown[]] ? T : undefined;
62
+ type EnvironmentsUserInterviewTopicsCreateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsCreate>>;
63
+
64
+ const result: EnvironmentsUserInterviewTopicsCreateOutput = await posthog.environmentsUserInterviewTopicsCreate();
65
+
66
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
67
+ ```
68
+
69
+ ### `posthog.environmentsUserInterviewTopicsDestroy`
70
+
71
+ - **HTTP**: `DELETE /api/environments/{environment_id}/user_interview_topics/{id}/`
72
+ - **What it does**: Planned user interview topics: who we want to target and what we want to ask about.
73
+ - **OpenAPI operationId**: `environments_user_interview_topics_destroy`
74
+ - **Path params**: `id`
75
+ - **Query params**: None
76
+ - **Response codes**: `204`
77
+ - **Transport options**: None
78
+ - **TypeScript**: [Client interface](../types.ts)
79
+
80
+ **Inputs**
81
+
82
+ - Client input type: `{ [key: string]: unknown }`
83
+ - Client transport options: None
84
+
85
+ **Outputs**
86
+
87
+ - Client return type: `unknown`
88
+ - OpenAPI response codes: `204`
89
+
90
+ ```ts
91
+ import posthog from "@utdk/posthog";
92
+
93
+ type EnvironmentsUserInterviewTopicsDestroyInput = Parameters<typeof posthog.environmentsUserInterviewTopicsDestroy> extends [infer T, ...unknown[]] ? T : undefined;
94
+ type EnvironmentsUserInterviewTopicsDestroyOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsDestroy>>;
95
+
96
+ const result: EnvironmentsUserInterviewTopicsDestroyOutput = await posthog.environmentsUserInterviewTopicsDestroy();
97
+
98
+ // Result shape (from schema): unknown
99
+ ```
100
+
101
+ ### `posthog.environmentsUserInterviewTopicsRetrieve`
102
+
103
+ - **HTTP**: `GET /api/environments/{environment_id}/user_interview_topics/{id}/`
104
+ - **What it does**: Planned user interview topics: who we want to target and what we want to ask about.
105
+ - **OpenAPI operationId**: `environments_user_interview_topics_retrieve`
106
+ - **Path params**: `id`
107
+ - **Query params**: None
108
+ - **Response codes**: `200`
109
+ - **Transport options**: None
110
+ - **TypeScript**: [Client interface](../types.ts)
111
+
112
+ **Inputs**
113
+
114
+ - Client input type: `{ [key: string]: unknown }`
115
+ - Client transport options: None
116
+
117
+ **Outputs**
118
+
119
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
120
+ - OpenAPI response codes: `200`
121
+
122
+ ```ts
123
+ import posthog from "@utdk/posthog";
124
+
125
+ type EnvironmentsUserInterviewTopicsRetrieveInput = Parameters<typeof posthog.environmentsUserInterviewTopicsRetrieve> extends [infer T, ...unknown[]] ? T : undefined;
126
+ type EnvironmentsUserInterviewTopicsRetrieveOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsRetrieve>>;
127
+
128
+ const result: EnvironmentsUserInterviewTopicsRetrieveOutput = await posthog.environmentsUserInterviewTopicsRetrieve();
129
+
130
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
131
+ ```
132
+
133
+ ### `posthog.environmentsUserInterviewTopicsPartialUpdate`
134
+
135
+ - **HTTP**: `PATCH /api/environments/{environment_id}/user_interview_topics/{id}/`
136
+ - **What it does**: Planned user interview topics: who we want to target and what we want to ask about.
137
+ - **OpenAPI operationId**: `environments_user_interview_topics_partial_update`
138
+ - **Path params**: `id`
139
+ - **Query params**: None
140
+ - **Response codes**: `200`
141
+ - **Transport options**: None
142
+ - **TypeScript**: [Client interface](../types.ts)
143
+
144
+ **Inputs**
145
+
146
+ - Client input type: `{ [key: string]: unknown }`
147
+ - Client transport options: None
148
+
149
+ **Outputs**
150
+
151
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
152
+ - OpenAPI response codes: `200`
153
+
154
+ ```ts
155
+ import posthog from "@utdk/posthog";
156
+
157
+ type EnvironmentsUserInterviewTopicsPartialUpdateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsPartialUpdate> extends [infer T, ...unknown[]] ? T : undefined;
158
+ type EnvironmentsUserInterviewTopicsPartialUpdateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsPartialUpdate>>;
159
+
160
+ const result: EnvironmentsUserInterviewTopicsPartialUpdateOutput = await posthog.environmentsUserInterviewTopicsPartialUpdate();
161
+
162
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
163
+ ```
164
+
165
+ ### `posthog.environmentsUserInterviewTopicsUpdate`
166
+
167
+ - **HTTP**: `PUT /api/environments/{environment_id}/user_interview_topics/{id}/`
168
+ - **What it does**: Planned user interview topics: who we want to target and what we want to ask about.
169
+ - **OpenAPI operationId**: `environments_user_interview_topics_update`
170
+ - **Path params**: `id`
171
+ - **Query params**: None
172
+ - **Response codes**: `200`
173
+ - **Transport options**: None
174
+ - **TypeScript**: [Client interface](../types.ts)
175
+
176
+ **Inputs**
177
+
178
+ - Client input type: `{ [key: string]: unknown }`
179
+ - Client transport options: None
180
+
181
+ **Outputs**
182
+
183
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
184
+ - OpenAPI response codes: `200`
185
+
186
+ ```ts
187
+ import posthog from "@utdk/posthog";
188
+
189
+ type EnvironmentsUserInterviewTopicsUpdateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsUpdate> extends [infer T, ...unknown[]] ? T : undefined;
190
+ type EnvironmentsUserInterviewTopicsUpdateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsUpdate>>;
191
+
192
+ const result: EnvironmentsUserInterviewTopicsUpdateOutput = await posthog.environmentsUserInterviewTopicsUpdate();
193
+
194
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
195
+ ```
196
+
197
+ ### `posthog.environmentsUserInterviewTopicsAddIntervieweeCreate`
198
+
199
+ - **HTTP**: `POST /api/environments/{environment_id}/user_interview_topics/{id}/add_interviewee/`
200
+ - **What it does**: Add a single interviewee to this topic. Email-shaped identifiers (including the `Display Name <email@host>` form) are appended to `interviewee_emails`; everything else is appended to `interviewee_distinct_ids`. Idempotent — adding an identifier that's already present leaves the topic unchanged. Returns the updated topic.
201
+ - **OpenAPI operationId**: `environments_user_interview_topics_add_interviewee_create`
202
+ - **Path params**: `id`
203
+ - **Query params**: None
204
+ - **Response codes**: `200`
205
+ - **Transport options**: None
206
+ - **TypeScript**: [Client interface](../types.ts)
207
+
208
+ **Inputs**
209
+
210
+ - Client input type: `{ [key: string]: unknown }`
211
+ - Client transport options: None
212
+
213
+ **Outputs**
214
+
215
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
216
+ - OpenAPI response codes: `200`
217
+
218
+ ```ts
219
+ import posthog from "@utdk/posthog";
220
+
221
+ type EnvironmentsUserInterviewTopicsAddIntervieweeCreateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsAddIntervieweeCreate> extends [infer T, ...unknown[]] ? T : undefined;
222
+ type EnvironmentsUserInterviewTopicsAddIntervieweeCreateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsAddIntervieweeCreate>>;
223
+
224
+ const result: EnvironmentsUserInterviewTopicsAddIntervieweeCreateOutput = await posthog.environmentsUserInterviewTopicsAddIntervieweeCreate();
225
+
226
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
227
+ ```
228
+
229
+ ### `posthog.environmentsUserInterviewTopicsGenerateLinksCreate`
230
+
231
+ - **HTTP**: `POST /api/environments/{environment_id}/user_interview_topics/{id}/generate_links/`
232
+ - **What it does**: Generate one public interview link per targeted interviewee. Materializes an IntervieweeContext row for every identifier on the topic (without overwriting existing per-person context), and an enabled SharingConfiguration with a unique access token. The URL resolves to the public interview viewer with no PostHog auth required.
233
+ - **OpenAPI operationId**: `environments_user_interview_topics_generate_links_create`
234
+ - **Path params**: `id`
235
+ - **Query params**: None
236
+ - **Response codes**: `200`
237
+ - **Transport options**: None
238
+ - **TypeScript**: [Client interface](../types.ts)
239
+
240
+ **Inputs**
241
+
242
+ - Client input type: `{ [key: string]: unknown }`
243
+ - Client transport options: None
244
+
245
+ **Outputs**
246
+
247
+ - Client return type: `{ count: number; next?: string | null; previous?: string | null; results: ({ interviewee_identifier: string; user_name: string; interview_url: string; agent_context: string })[] }`
248
+ - OpenAPI response codes: `200`
249
+
250
+ ```ts
251
+ import posthog from "@utdk/posthog";
252
+
253
+ type EnvironmentsUserInterviewTopicsGenerateLinksCreateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsGenerateLinksCreate> extends [infer T, ...unknown[]] ? T : undefined;
254
+ type EnvironmentsUserInterviewTopicsGenerateLinksCreateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsGenerateLinksCreate>>;
255
+
256
+ const result: EnvironmentsUserInterviewTopicsGenerateLinksCreateOutput = await posthog.environmentsUserInterviewTopicsGenerateLinksCreate();
257
+
258
+ // Result shape (from schema): { count: number; next?: string | null; previous?: string | null; results: ({ interviewee_identifier: string; user_name: string; interview_url: string; agent_context: string })[] }
259
+ ```
260
+
261
+ ### `posthog.environmentsUserInterviewTopicsLinksCsvCreate`
262
+
263
+ - **HTTP**: `POST /api/environments/{environment_id}/user_interview_topics/{id}/links_csv/`
264
+ - **What it does**: Same materialization as generate_links, returned as a downloadable CSV. Intended for users who want to mail-merge the per-person interview links into their own email tooling.
265
+ - **OpenAPI operationId**: `environments_user_interview_topics_links_csv_create`
266
+ - **Path params**: `id`
267
+ - **Query params**: None
268
+ - **Response codes**: `200`
269
+ - **Transport options**: None
270
+ - **TypeScript**: [Client interface](../types.ts)
271
+
272
+ **Inputs**
273
+
274
+ - Client input type: `{ [key: string]: unknown }`
275
+ - Client transport options: None
276
+
277
+ **Outputs**
278
+
279
+ - Client return type: `string`
280
+ - OpenAPI response codes: `200`
281
+
282
+ ```ts
283
+ import posthog from "@utdk/posthog";
284
+
285
+ type EnvironmentsUserInterviewTopicsLinksCsvCreateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsLinksCsvCreate> extends [infer T, ...unknown[]] ? T : undefined;
286
+ type EnvironmentsUserInterviewTopicsLinksCsvCreateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsLinksCsvCreate>>;
287
+
288
+ const result: EnvironmentsUserInterviewTopicsLinksCsvCreateOutput = await posthog.environmentsUserInterviewTopicsLinksCsvCreate();
289
+
290
+ // Result shape (from schema): string
291
+ ```
292
+
293
+ ### `posthog.environmentsUserInterviewTopicsPreviewInviteCreate`
294
+
295
+ - **HTTP**: `POST /api/environments/{environment_id}/user_interview_topics/{id}/preview_invite/`
296
+ - **What it does**: Render the invite email exactly as a specific targeted interviewee would receive it — personalized subject and body — without sending anything and without creating or reading any share links. Pass `interviewee_identifier` to preview for a particular person, or omit it to preview for the first targeted interviewee. The body always shows an illustrative placeholder link (`is_preview_link: true`), never a live interview URL.
297
+ - **OpenAPI operationId**: `environments_user_interview_topics_preview_invite_create`
298
+ - **Path params**: `id`
299
+ - **Query params**: None
300
+ - **Response codes**: `200`
301
+ - **Transport options**: None
302
+ - **TypeScript**: [Client interface](../types.ts)
303
+
304
+ **Inputs**
305
+
306
+ - Client input type: `{ [key: string]: unknown }`
307
+ - Client transport options: None
308
+
309
+ **Outputs**
310
+
311
+ - Client return type: `{ interviewee_identifier: string; user_name: string; email: string | null; subject: string; html: string; interview_url: string; emailable: boolean; is_preview_link: boolean }`
312
+ - OpenAPI response codes: `200`
313
+
314
+ ```ts
315
+ import posthog from "@utdk/posthog";
316
+
317
+ type EnvironmentsUserInterviewTopicsPreviewInviteCreateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsPreviewInviteCreate> extends [infer T, ...unknown[]] ? T : undefined;
318
+ type EnvironmentsUserInterviewTopicsPreviewInviteCreateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsPreviewInviteCreate>>;
319
+
320
+ const result: EnvironmentsUserInterviewTopicsPreviewInviteCreateOutput = await posthog.environmentsUserInterviewTopicsPreviewInviteCreate();
321
+
322
+ // Result shape (from schema): { interviewee_identifier: string; user_name: string; email: string | null; subject: string; html: string; interview_url: string; emailable: boolean; is_preview_link: boolean }
323
+ ```
324
+
325
+ ### `posthog.environmentsUserInterviewTopicsRemoveIntervieweeCreate`
326
+
327
+ - **HTTP**: `POST /api/environments/{environment_id}/user_interview_topics/{id}/remove_interviewee/`
328
+ - **What it does**: Remove an interviewee from this topic. Drops the identifier from both `interviewee_emails` and `interviewee_distinct_ids`, and disables any active SharingConfiguration linked to an IntervieweeContext for that identifier on this topic so the removed person can no longer open their interview link. Idempotent — removing an identifier that isn't present is a no-op. Returns the updated topic.
329
+ - **OpenAPI operationId**: `environments_user_interview_topics_remove_interviewee_create`
330
+ - **Path params**: `id`
331
+ - **Query params**: None
332
+ - **Response codes**: `200`
333
+ - **Transport options**: None
334
+ - **TypeScript**: [Client interface](../types.ts)
335
+
336
+ **Inputs**
337
+
338
+ - Client input type: `{ [key: string]: unknown }`
339
+ - Client transport options: None
340
+
341
+ **Outputs**
342
+
343
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
344
+ - OpenAPI response codes: `200`
345
+
346
+ ```ts
347
+ import posthog from "@utdk/posthog";
348
+
349
+ type EnvironmentsUserInterviewTopicsRemoveIntervieweeCreateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsRemoveIntervieweeCreate> extends [infer T, ...unknown[]] ? T : undefined;
350
+ type EnvironmentsUserInterviewTopicsRemoveIntervieweeCreateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsRemoveIntervieweeCreate>>;
351
+
352
+ const result: EnvironmentsUserInterviewTopicsRemoveIntervieweeCreateOutput = await posthog.environmentsUserInterviewTopicsRemoveIntervieweeCreate();
353
+
354
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
355
+ ```
356
+
357
+ ### `posthog.environmentsUserInterviewTopicsSendInvitesCreate`
358
+
359
+ - **HTTP**: `POST /api/environments/{environment_id}/user_interview_topics/{id}/send_invites/`
360
+ - **What it does**: Generate (if needed) and email a personalized public interview link to every targeted interviewee on this topic whose identifier is an email address. Distinct-ID-only interviewees are skipped and surfaced in the response. Each invite is keyed on the underlying SharingConfiguration so re-runs after token rotation produce a fresh send.
361
+ - **OpenAPI operationId**: `environments_user_interview_topics_send_invites_create`
362
+ - **Path params**: `id`
363
+ - **Query params**: None
364
+ - **Response codes**: `200`
365
+ - **Transport options**: None
366
+ - **TypeScript**: [Client interface](../types.ts)
367
+
368
+ **Inputs**
369
+
370
+ - Client input type: `{ [key: string]: unknown }`
371
+ - Client transport options: None
372
+
373
+ **Outputs**
374
+
375
+ - Client return type: `{ count: number; next?: string | null; previous?: string | null; results: ({ interviewee_identifier: string; email?: string | null; interview_url: string; sent: boolean; reason?: string })[] }`
376
+ - OpenAPI response codes: `200`
377
+
378
+ ```ts
379
+ import posthog from "@utdk/posthog";
380
+
381
+ type EnvironmentsUserInterviewTopicsSendInvitesCreateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsSendInvitesCreate> extends [infer T, ...unknown[]] ? T : undefined;
382
+ type EnvironmentsUserInterviewTopicsSendInvitesCreateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsSendInvitesCreate>>;
383
+
384
+ const result: EnvironmentsUserInterviewTopicsSendInvitesCreateOutput = await posthog.environmentsUserInterviewTopicsSendInvitesCreate();
385
+
386
+ // Result shape (from schema): { count: number; next?: string | null; previous?: string | null; results: ({ interviewee_identifier: string; email?: string | null; interview_url: string; sent: boolean; reason?: string })[] }
387
+ ```
388
+
389
+ ### `posthog.environmentsUserInterviewTopicsTestLinkRetrieve`
390
+
391
+ - **HTTP**: `GET /api/environments/{environment_id}/user_interview_topics/{id}/test_link/`
392
+ - **What it does**: Return the calling user's personal dogfood interview link for this topic, plus the latest test interview they have recorded against it. Lazily get-or-creates a per-caller IntervieweeContext + enabled SharingConfiguration the first time it's called, then returns the same stable URL on subsequent calls. The caller's identifier is intentionally not added to the topic's targeting arrays — each user dogfoods under their own row, so test calls never mint a public share token on someone else's behalf.
393
+ - **OpenAPI operationId**: `environments_user_interview_topics_test_link_retrieve`
394
+ - **Path params**: `id`
395
+ - **Query params**: None
396
+ - **Response codes**: `200`
397
+ - **Transport options**: None
398
+ - **TypeScript**: [Client interface](../types.ts)
399
+
400
+ **Inputs**
401
+
402
+ - Client input type: `{ [key: string]: unknown }`
403
+ - Client transport options: None
404
+
405
+ **Outputs**
406
+
407
+ - Client return type: `{ interview_url: string; latest_test_interview: { completed_at: string; transcript: string; summary: string } | null }`
408
+ - OpenAPI response codes: `200`
409
+
410
+ ```ts
411
+ import posthog from "@utdk/posthog";
412
+
413
+ type EnvironmentsUserInterviewTopicsTestLinkRetrieveInput = Parameters<typeof posthog.environmentsUserInterviewTopicsTestLinkRetrieve> extends [infer T, ...unknown[]] ? T : undefined;
414
+ type EnvironmentsUserInterviewTopicsTestLinkRetrieveOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsTestLinkRetrieve>>;
415
+
416
+ const result: EnvironmentsUserInterviewTopicsTestLinkRetrieveOutput = await posthog.environmentsUserInterviewTopicsTestLinkRetrieve();
417
+
418
+ // Result shape (from schema): { interview_url: string; latest_test_interview: { completed_at: string; transcript: string; summary: string } | null }
419
+ ```
420
+
421
+ ### `posthog.environmentsUserInterviewTopicsIntervieweesList`
422
+
423
+ - **HTTP**: `GET /api/environments/{environment_id}/user_interview_topics/{topic_id}/interviewees/`
424
+ - **What it does**: Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).
425
+ - **OpenAPI operationId**: `environments_user_interview_topics_interviewees_list`
426
+ - **Path params**: `topic_id`
427
+ - **Query params**: `limit`, `offset`
428
+ - **Response codes**: `200`
429
+ - **Transport options**: None
430
+ - **TypeScript**: [Client interface](../types.ts)
431
+
432
+ **Inputs**
433
+
434
+ - Client input type: `{ [key: string]: unknown }`
435
+ - Client transport options: None
436
+
437
+ **Outputs**
438
+
439
+ - Client return type: `{ count: number; next?: string | null; previous?: string | null; results: ({ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_em...`
440
+ - OpenAPI response codes: `200`
441
+
442
+ ```ts
443
+ import posthog from "@utdk/posthog";
444
+
445
+ type EnvironmentsUserInterviewTopicsIntervieweesListInput = Parameters<typeof posthog.environmentsUserInterviewTopicsIntervieweesList> extends [infer T, ...unknown[]] ? T : undefined;
446
+ type EnvironmentsUserInterviewTopicsIntervieweesListOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsIntervieweesList>>;
447
+
448
+ const result: EnvironmentsUserInterviewTopicsIntervieweesListOutput = await posthog.environmentsUserInterviewTopicsIntervieweesList();
449
+
450
+ // Result shape (from schema): { count: number; next?: string | null; previous?: string | null; results: ({ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_em...
451
+ ```
452
+
453
+ ### `posthog.environmentsUserInterviewTopicsIntervieweesCreate`
454
+
455
+ - **HTTP**: `POST /api/environments/{environment_id}/user_interview_topics/{topic_id}/interviewees/`
456
+ - **What it does**: Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).
457
+ - **OpenAPI operationId**: `environments_user_interview_topics_interviewees_create`
458
+ - **Path params**: `topic_id`
459
+ - **Query params**: None
460
+ - **Response codes**: `201`
461
+ - **Transport options**: None
462
+ - **TypeScript**: [Client interface](../types.ts)
463
+
464
+ **Inputs**
465
+
466
+ - Client input type: `{ [key: string]: unknown }`
467
+ - Client transport options: None
468
+
469
+ **Outputs**
470
+
471
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
472
+ - OpenAPI response codes: `201`
473
+
474
+ ```ts
475
+ import posthog from "@utdk/posthog";
476
+
477
+ type EnvironmentsUserInterviewTopicsIntervieweesCreateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsIntervieweesCreate> extends [infer T, ...unknown[]] ? T : undefined;
478
+ type EnvironmentsUserInterviewTopicsIntervieweesCreateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsIntervieweesCreate>>;
479
+
480
+ const result: EnvironmentsUserInterviewTopicsIntervieweesCreateOutput = await posthog.environmentsUserInterviewTopicsIntervieweesCreate();
481
+
482
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
483
+ ```
484
+
485
+ ### `posthog.environmentsUserInterviewTopicsIntervieweesDestroy`
486
+
487
+ - **HTTP**: `DELETE /api/environments/{environment_id}/user_interview_topics/{topic_id}/interviewees/{id}/`
488
+ - **What it does**: Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).
489
+ - **OpenAPI operationId**: `environments_user_interview_topics_interviewees_destroy`
490
+ - **Path params**: `id`, `topic_id`
491
+ - **Query params**: None
492
+ - **Response codes**: `204`
493
+ - **Transport options**: None
494
+ - **TypeScript**: [Client interface](../types.ts)
495
+
496
+ **Inputs**
497
+
498
+ - Client input type: `{ [key: string]: unknown }`
499
+ - Client transport options: None
500
+
501
+ **Outputs**
502
+
503
+ - Client return type: `unknown`
504
+ - OpenAPI response codes: `204`
505
+
506
+ ```ts
507
+ import posthog from "@utdk/posthog";
508
+
509
+ type EnvironmentsUserInterviewTopicsIntervieweesDestroyInput = Parameters<typeof posthog.environmentsUserInterviewTopicsIntervieweesDestroy> extends [infer T, ...unknown[]] ? T : undefined;
510
+ type EnvironmentsUserInterviewTopicsIntervieweesDestroyOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsIntervieweesDestroy>>;
511
+
512
+ const result: EnvironmentsUserInterviewTopicsIntervieweesDestroyOutput = await posthog.environmentsUserInterviewTopicsIntervieweesDestroy();
513
+
514
+ // Result shape (from schema): unknown
515
+ ```
516
+
517
+ ### `posthog.environmentsUserInterviewTopicsIntervieweesRetrieve`
518
+
519
+ - **HTTP**: `GET /api/environments/{environment_id}/user_interview_topics/{topic_id}/interviewees/{id}/`
520
+ - **What it does**: Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).
521
+ - **OpenAPI operationId**: `environments_user_interview_topics_interviewees_retrieve`
522
+ - **Path params**: `id`, `topic_id`
523
+ - **Query params**: None
524
+ - **Response codes**: `200`
525
+ - **Transport options**: None
526
+ - **TypeScript**: [Client interface](../types.ts)
527
+
528
+ **Inputs**
529
+
530
+ - Client input type: `{ [key: string]: unknown }`
531
+ - Client transport options: None
532
+
533
+ **Outputs**
534
+
535
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
536
+ - OpenAPI response codes: `200`
537
+
538
+ ```ts
539
+ import posthog from "@utdk/posthog";
540
+
541
+ type EnvironmentsUserInterviewTopicsIntervieweesRetrieveInput = Parameters<typeof posthog.environmentsUserInterviewTopicsIntervieweesRetrieve> extends [infer T, ...unknown[]] ? T : undefined;
542
+ type EnvironmentsUserInterviewTopicsIntervieweesRetrieveOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsIntervieweesRetrieve>>;
543
+
544
+ const result: EnvironmentsUserInterviewTopicsIntervieweesRetrieveOutput = await posthog.environmentsUserInterviewTopicsIntervieweesRetrieve();
545
+
546
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
547
+ ```
548
+
549
+ ### `posthog.environmentsUserInterviewTopicsIntervieweesPartialUpdate`
550
+
551
+ - **HTTP**: `PATCH /api/environments/{environment_id}/user_interview_topics/{topic_id}/interviewees/{id}/`
552
+ - **What it does**: Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).
553
+ - **OpenAPI operationId**: `environments_user_interview_topics_interviewees_partial_update`
554
+ - **Path params**: `id`, `topic_id`
555
+ - **Query params**: None
556
+ - **Response codes**: `200`
557
+ - **Transport options**: None
558
+ - **TypeScript**: [Client interface](../types.ts)
559
+
560
+ **Inputs**
561
+
562
+ - Client input type: `{ [key: string]: unknown }`
563
+ - Client transport options: None
564
+
565
+ **Outputs**
566
+
567
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
568
+ - OpenAPI response codes: `200`
569
+
570
+ ```ts
571
+ import posthog from "@utdk/posthog";
572
+
573
+ type EnvironmentsUserInterviewTopicsIntervieweesPartialUpdateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsIntervieweesPartialUpdate> extends [infer T, ...unknown[]] ? T : undefined;
574
+ type EnvironmentsUserInterviewTopicsIntervieweesPartialUpdateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsIntervieweesPartialUpdate>>;
575
+
576
+ const result: EnvironmentsUserInterviewTopicsIntervieweesPartialUpdateOutput = await posthog.environmentsUserInterviewTopicsIntervieweesPartialUpdate();
577
+
578
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
579
+ ```
580
+
581
+ ### `posthog.environmentsUserInterviewTopicsIntervieweesUpdate`
582
+
583
+ - **HTTP**: `PUT /api/environments/{environment_id}/user_interview_topics/{topic_id}/interviewees/{id}/`
584
+ - **What it does**: Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).
585
+ - **OpenAPI operationId**: `environments_user_interview_topics_interviewees_update`
586
+ - **Path params**: `id`, `topic_id`
587
+ - **Query params**: None
588
+ - **Response codes**: `200`
589
+ - **Transport options**: None
590
+ - **TypeScript**: [Client interface](../types.ts)
591
+
592
+ **Inputs**
593
+
594
+ - Client input type: `{ [key: string]: unknown }`
595
+ - Client transport options: None
596
+
597
+ **Outputs**
598
+
599
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
600
+ - OpenAPI response codes: `200`
601
+
602
+ ```ts
603
+ import posthog from "@utdk/posthog";
604
+
605
+ type EnvironmentsUserInterviewTopicsIntervieweesUpdateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsIntervieweesUpdate> extends [infer T, ...unknown[]] ? T : undefined;
606
+ type EnvironmentsUserInterviewTopicsIntervieweesUpdateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsIntervieweesUpdate>>;
607
+
608
+ const result: EnvironmentsUserInterviewTopicsIntervieweesUpdateOutput = await posthog.environmentsUserInterviewTopicsIntervieweesUpdate();
609
+
610
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
611
+ ```
612
+
613
+ ### `posthog.environmentsUserInterviewTopicsIntervieweesBulkCreate`
614
+
615
+ - **HTTP**: `POST /api/environments/{environment_id}/user_interview_topics/{topic_id}/interviewees/bulk/`
616
+ - **What it does**: Create up to 500 interviewee context rows for a topic in a single request. Rows whose (topic, interviewee_identifier) already exists are skipped — the response surfaces an `inserted_count`, a `skipped_count`, and the `skipped_identifiers` so the caller can reconcile. Items must have unique `interviewee_identifier` values within the batch.
617
+ - **OpenAPI operationId**: `environments_user_interview_topics_interviewees_bulk_create`
618
+ - **Path params**: `topic_id`
619
+ - **Query params**: None
620
+ - **Response codes**: `200`
621
+ - **Transport options**: None
622
+ - **TypeScript**: [Client interface](../types.ts)
623
+
624
+ **Inputs**
625
+
626
+ - Client input type: `{ [key: string]: unknown }`
627
+ - Client transport options: None
628
+
629
+ **Outputs**
630
+
631
+ - Client return type: `{ inserted_count: number; skipped_count: number; skipped_identifiers: (string)[] }`
632
+ - OpenAPI response codes: `200`
633
+
634
+ ```ts
635
+ import posthog from "@utdk/posthog";
636
+
637
+ type EnvironmentsUserInterviewTopicsIntervieweesBulkCreateInput = Parameters<typeof posthog.environmentsUserInterviewTopicsIntervieweesBulkCreate> extends [infer T, ...unknown[]] ? T : undefined;
638
+ type EnvironmentsUserInterviewTopicsIntervieweesBulkCreateOutput = Awaited<ReturnType<typeof posthog.environmentsUserInterviewTopicsIntervieweesBulkCreate>>;
639
+
640
+ const result: EnvironmentsUserInterviewTopicsIntervieweesBulkCreateOutput = await posthog.environmentsUserInterviewTopicsIntervieweesBulkCreate();
641
+
642
+ // Result shape (from schema): { inserted_count: number; skipped_count: number; skipped_identifiers: (string)[] }
643
+ ```
644
+
645
+ ### `posthog.userInterviewTopicsList`
646
+
647
+ - **HTTP**: `GET /api/projects/{project_id}/user_interview_topics/`
648
+ - **What it does**: Planned user interview topics: who we want to target and what we want to ask about.
649
+ - **OpenAPI operationId**: `user_interview_topics_list`
650
+ - **Path params**: None
651
+ - **Query params**: `limit`, `offset`, `search`
652
+ - **Response codes**: `200`
653
+ - **Transport options**: None
654
+ - **TypeScript**: [Client interface](../types.ts)
655
+
656
+ **Inputs**
657
+
658
+ - Client input type: `{ [key: string]: unknown }`
659
+ - Client transport options: None
660
+
661
+ **Outputs**
662
+
663
+ - Client return type: `{ count: number; next?: string | null; previous?: string | null; results: ({ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_em...`
664
+ - OpenAPI response codes: `200`
665
+
666
+ ```ts
667
+ import posthog from "@utdk/posthog";
668
+
669
+ type UserInterviewTopicsListInput = Parameters<typeof posthog.userInterviewTopicsList> extends [infer T, ...unknown[]] ? T : undefined;
670
+ type UserInterviewTopicsListOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsList>>;
671
+
672
+ const result: UserInterviewTopicsListOutput = await posthog.userInterviewTopicsList();
673
+
674
+ // Result shape (from schema): { count: number; next?: string | null; previous?: string | null; results: ({ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_em...
675
+ ```
676
+
677
+ ### `posthog.userInterviewTopicsCreate`
678
+
679
+ - **HTTP**: `POST /api/projects/{project_id}/user_interview_topics/`
680
+ - **What it does**: Planned user interview topics: who we want to target and what we want to ask about.
681
+ - **OpenAPI operationId**: `user_interview_topics_create`
682
+ - **Path params**: None
683
+ - **Query params**: None
684
+ - **Response codes**: `201`
685
+ - **Transport options**: None
686
+ - **TypeScript**: [Client interface](../types.ts)
687
+
688
+ **Inputs**
689
+
690
+ - Client input type: `{ [key: string]: unknown }`
691
+ - Client transport options: None
692
+
693
+ **Outputs**
694
+
695
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
696
+ - OpenAPI response codes: `201`
697
+
698
+ ```ts
699
+ import posthog from "@utdk/posthog";
700
+
701
+ type UserInterviewTopicsCreateInput = Parameters<typeof posthog.userInterviewTopicsCreate> extends [infer T, ...unknown[]] ? T : undefined;
702
+ type UserInterviewTopicsCreateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsCreate>>;
703
+
704
+ const result: UserInterviewTopicsCreateOutput = await posthog.userInterviewTopicsCreate();
705
+
706
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
707
+ ```
708
+
709
+ ### `posthog.userInterviewTopicsDestroy`
710
+
711
+ - **HTTP**: `DELETE /api/projects/{project_id}/user_interview_topics/{id}/`
712
+ - **What it does**: Planned user interview topics: who we want to target and what we want to ask about.
713
+ - **OpenAPI operationId**: `user_interview_topics_destroy`
714
+ - **Path params**: `id`
715
+ - **Query params**: None
716
+ - **Response codes**: `204`
717
+ - **Transport options**: None
718
+ - **TypeScript**: [Client interface](../types.ts)
719
+
720
+ **Inputs**
721
+
722
+ - Client input type: `{ [key: string]: unknown }`
723
+ - Client transport options: None
724
+
725
+ **Outputs**
726
+
727
+ - Client return type: `unknown`
728
+ - OpenAPI response codes: `204`
729
+
730
+ ```ts
731
+ import posthog from "@utdk/posthog";
732
+
733
+ type UserInterviewTopicsDestroyInput = Parameters<typeof posthog.userInterviewTopicsDestroy> extends [infer T, ...unknown[]] ? T : undefined;
734
+ type UserInterviewTopicsDestroyOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsDestroy>>;
735
+
736
+ const result: UserInterviewTopicsDestroyOutput = await posthog.userInterviewTopicsDestroy();
737
+
738
+ // Result shape (from schema): unknown
739
+ ```
740
+
741
+ ### `posthog.userInterviewTopicsRetrieve`
742
+
743
+ - **HTTP**: `GET /api/projects/{project_id}/user_interview_topics/{id}/`
744
+ - **What it does**: Planned user interview topics: who we want to target and what we want to ask about.
745
+ - **OpenAPI operationId**: `user_interview_topics_retrieve`
746
+ - **Path params**: `id`
747
+ - **Query params**: None
748
+ - **Response codes**: `200`
749
+ - **Transport options**: None
750
+ - **TypeScript**: [Client interface](../types.ts)
751
+
752
+ **Inputs**
753
+
754
+ - Client input type: `{ [key: string]: unknown }`
755
+ - Client transport options: None
756
+
757
+ **Outputs**
758
+
759
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
760
+ - OpenAPI response codes: `200`
761
+
762
+ ```ts
763
+ import posthog from "@utdk/posthog";
764
+
765
+ type UserInterviewTopicsRetrieveInput = Parameters<typeof posthog.userInterviewTopicsRetrieve> extends [infer T, ...unknown[]] ? T : undefined;
766
+ type UserInterviewTopicsRetrieveOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsRetrieve>>;
767
+
768
+ const result: UserInterviewTopicsRetrieveOutput = await posthog.userInterviewTopicsRetrieve();
769
+
770
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
771
+ ```
772
+
773
+ ### `posthog.userInterviewTopicsPartialUpdate`
774
+
775
+ - **HTTP**: `PATCH /api/projects/{project_id}/user_interview_topics/{id}/`
776
+ - **What it does**: Planned user interview topics: who we want to target and what we want to ask about.
777
+ - **OpenAPI operationId**: `user_interview_topics_partial_update`
778
+ - **Path params**: `id`
779
+ - **Query params**: None
780
+ - **Response codes**: `200`
781
+ - **Transport options**: None
782
+ - **TypeScript**: [Client interface](../types.ts)
783
+
784
+ **Inputs**
785
+
786
+ - Client input type: `{ [key: string]: unknown }`
787
+ - Client transport options: None
788
+
789
+ **Outputs**
790
+
791
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
792
+ - OpenAPI response codes: `200`
793
+
794
+ ```ts
795
+ import posthog from "@utdk/posthog";
796
+
797
+ type UserInterviewTopicsPartialUpdateInput = Parameters<typeof posthog.userInterviewTopicsPartialUpdate> extends [infer T, ...unknown[]] ? T : undefined;
798
+ type UserInterviewTopicsPartialUpdateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsPartialUpdate>>;
799
+
800
+ const result: UserInterviewTopicsPartialUpdateOutput = await posthog.userInterviewTopicsPartialUpdate();
801
+
802
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
803
+ ```
804
+
805
+ ### `posthog.userInterviewTopicsUpdate`
806
+
807
+ - **HTTP**: `PUT /api/projects/{project_id}/user_interview_topics/{id}/`
808
+ - **What it does**: Planned user interview topics: who we want to target and what we want to ask about.
809
+ - **OpenAPI operationId**: `user_interview_topics_update`
810
+ - **Path params**: `id`
811
+ - **Query params**: None
812
+ - **Response codes**: `200`
813
+ - **Transport options**: None
814
+ - **TypeScript**: [Client interface](../types.ts)
815
+
816
+ **Inputs**
817
+
818
+ - Client input type: `{ [key: string]: unknown }`
819
+ - Client transport options: None
820
+
821
+ **Outputs**
822
+
823
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
824
+ - OpenAPI response codes: `200`
825
+
826
+ ```ts
827
+ import posthog from "@utdk/posthog";
828
+
829
+ type UserInterviewTopicsUpdateInput = Parameters<typeof posthog.userInterviewTopicsUpdate> extends [infer T, ...unknown[]] ? T : undefined;
830
+ type UserInterviewTopicsUpdateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsUpdate>>;
831
+
832
+ const result: UserInterviewTopicsUpdateOutput = await posthog.userInterviewTopicsUpdate();
833
+
834
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
835
+ ```
836
+
837
+ ### `posthog.userInterviewTopicsAddIntervieweeCreate`
838
+
839
+ - **HTTP**: `POST /api/projects/{project_id}/user_interview_topics/{id}/add_interviewee/`
840
+ - **What it does**: Add a single interviewee to this topic. Email-shaped identifiers (including the `Display Name <email@host>` form) are appended to `interviewee_emails`; everything else is appended to `interviewee_distinct_ids`. Idempotent — adding an identifier that's already present leaves the topic unchanged. Returns the updated topic.
841
+ - **OpenAPI operationId**: `user_interview_topics_add_interviewee_create`
842
+ - **Path params**: `id`
843
+ - **Query params**: None
844
+ - **Response codes**: `200`
845
+ - **Transport options**: None
846
+ - **TypeScript**: [Client interface](../types.ts)
847
+
848
+ **Inputs**
849
+
850
+ - Client input type: `{ [key: string]: unknown }`
851
+ - Client transport options: None
852
+
853
+ **Outputs**
854
+
855
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
856
+ - OpenAPI response codes: `200`
857
+
858
+ ```ts
859
+ import posthog from "@utdk/posthog";
860
+
861
+ type UserInterviewTopicsAddIntervieweeCreateInput = Parameters<typeof posthog.userInterviewTopicsAddIntervieweeCreate> extends [infer T, ...unknown[]] ? T : undefined;
862
+ type UserInterviewTopicsAddIntervieweeCreateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsAddIntervieweeCreate>>;
863
+
864
+ const result: UserInterviewTopicsAddIntervieweeCreateOutput = await posthog.userInterviewTopicsAddIntervieweeCreate();
865
+
866
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
867
+ ```
868
+
869
+ ### `posthog.userInterviewTopicsGenerateLinksCreate`
870
+
871
+ - **HTTP**: `POST /api/projects/{project_id}/user_interview_topics/{id}/generate_links/`
872
+ - **What it does**: Generate one public interview link per targeted interviewee. Materializes an IntervieweeContext row for every identifier on the topic (without overwriting existing per-person context), and an enabled SharingConfiguration with a unique access token. The URL resolves to the public interview viewer with no PostHog auth required.
873
+ - **OpenAPI operationId**: `user_interview_topics_generate_links_create`
874
+ - **Path params**: `id`
875
+ - **Query params**: None
876
+ - **Response codes**: `200`
877
+ - **Transport options**: None
878
+ - **TypeScript**: [Client interface](../types.ts)
879
+
880
+ **Inputs**
881
+
882
+ - Client input type: `{ [key: string]: unknown }`
883
+ - Client transport options: None
884
+
885
+ **Outputs**
886
+
887
+ - Client return type: `{ count: number; next?: string | null; previous?: string | null; results: ({ interviewee_identifier: string; user_name: string; interview_url: string; agent_context: string })[] }`
888
+ - OpenAPI response codes: `200`
889
+
890
+ ```ts
891
+ import posthog from "@utdk/posthog";
892
+
893
+ type UserInterviewTopicsGenerateLinksCreateInput = Parameters<typeof posthog.userInterviewTopicsGenerateLinksCreate> extends [infer T, ...unknown[]] ? T : undefined;
894
+ type UserInterviewTopicsGenerateLinksCreateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsGenerateLinksCreate>>;
895
+
896
+ const result: UserInterviewTopicsGenerateLinksCreateOutput = await posthog.userInterviewTopicsGenerateLinksCreate();
897
+
898
+ // Result shape (from schema): { count: number; next?: string | null; previous?: string | null; results: ({ interviewee_identifier: string; user_name: string; interview_url: string; agent_context: string })[] }
899
+ ```
900
+
901
+ ### `posthog.userInterviewTopicsLinksCsvCreate`
902
+
903
+ - **HTTP**: `POST /api/projects/{project_id}/user_interview_topics/{id}/links_csv/`
904
+ - **What it does**: Same materialization as generate_links, returned as a downloadable CSV. Intended for users who want to mail-merge the per-person interview links into their own email tooling.
905
+ - **OpenAPI operationId**: `user_interview_topics_links_csv_create`
906
+ - **Path params**: `id`
907
+ - **Query params**: None
908
+ - **Response codes**: `200`
909
+ - **Transport options**: None
910
+ - **TypeScript**: [Client interface](../types.ts)
911
+
912
+ **Inputs**
913
+
914
+ - Client input type: `{ [key: string]: unknown }`
915
+ - Client transport options: None
916
+
917
+ **Outputs**
918
+
919
+ - Client return type: `string`
920
+ - OpenAPI response codes: `200`
921
+
922
+ ```ts
923
+ import posthog from "@utdk/posthog";
924
+
925
+ type UserInterviewTopicsLinksCsvCreateInput = Parameters<typeof posthog.userInterviewTopicsLinksCsvCreate> extends [infer T, ...unknown[]] ? T : undefined;
926
+ type UserInterviewTopicsLinksCsvCreateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsLinksCsvCreate>>;
927
+
928
+ const result: UserInterviewTopicsLinksCsvCreateOutput = await posthog.userInterviewTopicsLinksCsvCreate();
929
+
930
+ // Result shape (from schema): string
931
+ ```
932
+
933
+ ### `posthog.userInterviewTopicsPreviewInviteCreate`
934
+
935
+ - **HTTP**: `POST /api/projects/{project_id}/user_interview_topics/{id}/preview_invite/`
936
+ - **What it does**: Render the invite email exactly as a specific targeted interviewee would receive it — personalized subject and body — without sending anything and without creating or reading any share links. Pass `interviewee_identifier` to preview for a particular person, or omit it to preview for the first targeted interviewee. The body always shows an illustrative placeholder link (`is_preview_link: true`), never a live interview URL.
937
+ - **OpenAPI operationId**: `user_interview_topics_preview_invite_create`
938
+ - **Path params**: `id`
939
+ - **Query params**: None
940
+ - **Response codes**: `200`
941
+ - **Transport options**: None
942
+ - **TypeScript**: [Client interface](../types.ts)
943
+
944
+ **Inputs**
945
+
946
+ - Client input type: `{ [key: string]: unknown }`
947
+ - Client transport options: None
948
+
949
+ **Outputs**
950
+
951
+ - Client return type: `{ interviewee_identifier: string; user_name: string; email: string | null; subject: string; html: string; interview_url: string; emailable: boolean; is_preview_link: boolean }`
952
+ - OpenAPI response codes: `200`
953
+
954
+ ```ts
955
+ import posthog from "@utdk/posthog";
956
+
957
+ type UserInterviewTopicsPreviewInviteCreateInput = Parameters<typeof posthog.userInterviewTopicsPreviewInviteCreate> extends [infer T, ...unknown[]] ? T : undefined;
958
+ type UserInterviewTopicsPreviewInviteCreateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsPreviewInviteCreate>>;
959
+
960
+ const result: UserInterviewTopicsPreviewInviteCreateOutput = await posthog.userInterviewTopicsPreviewInviteCreate();
961
+
962
+ // Result shape (from schema): { interviewee_identifier: string; user_name: string; email: string | null; subject: string; html: string; interview_url: string; emailable: boolean; is_preview_link: boolean }
963
+ ```
964
+
965
+ ### `posthog.userInterviewTopicsRemoveIntervieweeCreate`
966
+
967
+ - **HTTP**: `POST /api/projects/{project_id}/user_interview_topics/{id}/remove_interviewee/`
968
+ - **What it does**: Remove an interviewee from this topic. Drops the identifier from both `interviewee_emails` and `interviewee_distinct_ids`, and disables any active SharingConfiguration linked to an IntervieweeContext for that identifier on this topic so the removed person can no longer open their interview link. Idempotent — removing an identifier that isn't present is a no-op. Returns the updated topic.
969
+ - **OpenAPI operationId**: `user_interview_topics_remove_interviewee_create`
970
+ - **Path params**: `id`
971
+ - **Query params**: None
972
+ - **Response codes**: `200`
973
+ - **Transport options**: None
974
+ - **TypeScript**: [Client interface](../types.ts)
975
+
976
+ **Inputs**
977
+
978
+ - Client input type: `{ [key: string]: unknown }`
979
+ - Client transport options: None
980
+
981
+ **Outputs**
982
+
983
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
984
+ - OpenAPI response codes: `200`
985
+
986
+ ```ts
987
+ import posthog from "@utdk/posthog";
988
+
989
+ type UserInterviewTopicsRemoveIntervieweeCreateInput = Parameters<typeof posthog.userInterviewTopicsRemoveIntervieweeCreate> extends [infer T, ...unknown[]] ? T : undefined;
990
+ type UserInterviewTopicsRemoveIntervieweeCreateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsRemoveIntervieweeCreate>>;
991
+
992
+ const result: UserInterviewTopicsRemoveIntervieweeCreateOutput = await posthog.userInterviewTopicsRemoveIntervieweeCreate();
993
+
994
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
995
+ ```
996
+
997
+ ### `posthog.userInterviewTopicsSendInvitesCreate`
998
+
999
+ - **HTTP**: `POST /api/projects/{project_id}/user_interview_topics/{id}/send_invites/`
1000
+ - **What it does**: Generate (if needed) and email a personalized public interview link to every targeted interviewee on this topic whose identifier is an email address. Distinct-ID-only interviewees are skipped and surfaced in the response. Each invite is keyed on the underlying SharingConfiguration so re-runs after token rotation produce a fresh send.
1001
+ - **OpenAPI operationId**: `user_interview_topics_send_invites_create`
1002
+ - **Path params**: `id`
1003
+ - **Query params**: None
1004
+ - **Response codes**: `200`
1005
+ - **Transport options**: None
1006
+ - **TypeScript**: [Client interface](../types.ts)
1007
+
1008
+ **Inputs**
1009
+
1010
+ - Client input type: `{ [key: string]: unknown }`
1011
+ - Client transport options: None
1012
+
1013
+ **Outputs**
1014
+
1015
+ - Client return type: `{ count: number; next?: string | null; previous?: string | null; results: ({ interviewee_identifier: string; email?: string | null; interview_url: string; sent: boolean; reason?: string })[] }`
1016
+ - OpenAPI response codes: `200`
1017
+
1018
+ ```ts
1019
+ import posthog from "@utdk/posthog";
1020
+
1021
+ type UserInterviewTopicsSendInvitesCreateInput = Parameters<typeof posthog.userInterviewTopicsSendInvitesCreate> extends [infer T, ...unknown[]] ? T : undefined;
1022
+ type UserInterviewTopicsSendInvitesCreateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsSendInvitesCreate>>;
1023
+
1024
+ const result: UserInterviewTopicsSendInvitesCreateOutput = await posthog.userInterviewTopicsSendInvitesCreate();
1025
+
1026
+ // Result shape (from schema): { count: number; next?: string | null; previous?: string | null; results: ({ interviewee_identifier: string; email?: string | null; interview_url: string; sent: boolean; reason?: string })[] }
1027
+ ```
1028
+
1029
+ ### `posthog.userInterviewTopicsTestLinkRetrieve`
1030
+
1031
+ - **HTTP**: `GET /api/projects/{project_id}/user_interview_topics/{id}/test_link/`
1032
+ - **What it does**: Return the calling user's personal dogfood interview link for this topic, plus the latest test interview they have recorded against it. Lazily get-or-creates a per-caller IntervieweeContext + enabled SharingConfiguration the first time it's called, then returns the same stable URL on subsequent calls. The caller's identifier is intentionally not added to the topic's targeting arrays — each user dogfoods under their own row, so test calls never mint a public share token on someone else's behalf.
1033
+ - **OpenAPI operationId**: `user_interview_topics_test_link_retrieve`
1034
+ - **Path params**: `id`
1035
+ - **Query params**: None
1036
+ - **Response codes**: `200`
1037
+ - **Transport options**: None
1038
+ - **TypeScript**: [Client interface](../types.ts)
1039
+
1040
+ **Inputs**
1041
+
1042
+ - Client input type: `{ [key: string]: unknown }`
1043
+ - Client transport options: None
1044
+
1045
+ **Outputs**
1046
+
1047
+ - Client return type: `{ interview_url: string; latest_test_interview: { completed_at: string; transcript: string; summary: string } | null }`
1048
+ - OpenAPI response codes: `200`
1049
+
1050
+ ```ts
1051
+ import posthog from "@utdk/posthog";
1052
+
1053
+ type UserInterviewTopicsTestLinkRetrieveInput = Parameters<typeof posthog.userInterviewTopicsTestLinkRetrieve> extends [infer T, ...unknown[]] ? T : undefined;
1054
+ type UserInterviewTopicsTestLinkRetrieveOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsTestLinkRetrieve>>;
1055
+
1056
+ const result: UserInterviewTopicsTestLinkRetrieveOutput = await posthog.userInterviewTopicsTestLinkRetrieve();
1057
+
1058
+ // Result shape (from schema): { interview_url: string; latest_test_interview: { completed_at: string; transcript: string; summary: string } | null }
1059
+ ```
1060
+
1061
+ ### `posthog.userInterviewTopicsIntervieweesList`
1062
+
1063
+ - **HTTP**: `GET /api/projects/{project_id}/user_interview_topics/{topic_id}/interviewees/`
1064
+ - **What it does**: Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).
1065
+ - **OpenAPI operationId**: `user_interview_topics_interviewees_list`
1066
+ - **Path params**: `topic_id`
1067
+ - **Query params**: `limit`, `offset`
1068
+ - **Response codes**: `200`
1069
+ - **Transport options**: None
1070
+ - **TypeScript**: [Client interface](../types.ts)
1071
+
1072
+ **Inputs**
1073
+
1074
+ - Client input type: `{ [key: string]: unknown }`
1075
+ - Client transport options: None
1076
+
1077
+ **Outputs**
1078
+
1079
+ - Client return type: `{ count: number; next?: string | null; previous?: string | null; results: ({ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_em...`
1080
+ - OpenAPI response codes: `200`
1081
+
1082
+ ```ts
1083
+ import posthog from "@utdk/posthog";
1084
+
1085
+ type UserInterviewTopicsIntervieweesListInput = Parameters<typeof posthog.userInterviewTopicsIntervieweesList> extends [infer T, ...unknown[]] ? T : undefined;
1086
+ type UserInterviewTopicsIntervieweesListOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsIntervieweesList>>;
1087
+
1088
+ const result: UserInterviewTopicsIntervieweesListOutput = await posthog.userInterviewTopicsIntervieweesList();
1089
+
1090
+ // Result shape (from schema): { count: number; next?: string | null; previous?: string | null; results: ({ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_em...
1091
+ ```
1092
+
1093
+ ### `posthog.userInterviewTopicsIntervieweesCreate`
1094
+
1095
+ - **HTTP**: `POST /api/projects/{project_id}/user_interview_topics/{topic_id}/interviewees/`
1096
+ - **What it does**: Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).
1097
+ - **OpenAPI operationId**: `user_interview_topics_interviewees_create`
1098
+ - **Path params**: `topic_id`
1099
+ - **Query params**: None
1100
+ - **Response codes**: `201`
1101
+ - **Transport options**: None
1102
+ - **TypeScript**: [Client interface](../types.ts)
1103
+
1104
+ **Inputs**
1105
+
1106
+ - Client input type: `{ [key: string]: unknown }`
1107
+ - Client transport options: None
1108
+
1109
+ **Outputs**
1110
+
1111
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
1112
+ - OpenAPI response codes: `201`
1113
+
1114
+ ```ts
1115
+ import posthog from "@utdk/posthog";
1116
+
1117
+ type UserInterviewTopicsIntervieweesCreateInput = Parameters<typeof posthog.userInterviewTopicsIntervieweesCreate> extends [infer T, ...unknown[]] ? T : undefined;
1118
+ type UserInterviewTopicsIntervieweesCreateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsIntervieweesCreate>>;
1119
+
1120
+ const result: UserInterviewTopicsIntervieweesCreateOutput = await posthog.userInterviewTopicsIntervieweesCreate();
1121
+
1122
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
1123
+ ```
1124
+
1125
+ ### `posthog.userInterviewTopicsIntervieweesDestroy`
1126
+
1127
+ - **HTTP**: `DELETE /api/projects/{project_id}/user_interview_topics/{topic_id}/interviewees/{id}/`
1128
+ - **What it does**: Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).
1129
+ - **OpenAPI operationId**: `user_interview_topics_interviewees_destroy`
1130
+ - **Path params**: `id`, `topic_id`
1131
+ - **Query params**: None
1132
+ - **Response codes**: `204`
1133
+ - **Transport options**: None
1134
+ - **TypeScript**: [Client interface](../types.ts)
1135
+
1136
+ **Inputs**
1137
+
1138
+ - Client input type: `{ [key: string]: unknown }`
1139
+ - Client transport options: None
1140
+
1141
+ **Outputs**
1142
+
1143
+ - Client return type: `unknown`
1144
+ - OpenAPI response codes: `204`
1145
+
1146
+ ```ts
1147
+ import posthog from "@utdk/posthog";
1148
+
1149
+ type UserInterviewTopicsIntervieweesDestroyInput = Parameters<typeof posthog.userInterviewTopicsIntervieweesDestroy> extends [infer T, ...unknown[]] ? T : undefined;
1150
+ type UserInterviewTopicsIntervieweesDestroyOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsIntervieweesDestroy>>;
1151
+
1152
+ const result: UserInterviewTopicsIntervieweesDestroyOutput = await posthog.userInterviewTopicsIntervieweesDestroy();
1153
+
1154
+ // Result shape (from schema): unknown
1155
+ ```
1156
+
1157
+ ### `posthog.userInterviewTopicsIntervieweesRetrieve`
1158
+
1159
+ - **HTTP**: `GET /api/projects/{project_id}/user_interview_topics/{topic_id}/interviewees/{id}/`
1160
+ - **What it does**: Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).
1161
+ - **OpenAPI operationId**: `user_interview_topics_interviewees_retrieve`
1162
+ - **Path params**: `id`, `topic_id`
1163
+ - **Query params**: None
1164
+ - **Response codes**: `200`
1165
+ - **Transport options**: None
1166
+ - **TypeScript**: [Client interface](../types.ts)
1167
+
1168
+ **Inputs**
1169
+
1170
+ - Client input type: `{ [key: string]: unknown }`
1171
+ - Client transport options: None
1172
+
1173
+ **Outputs**
1174
+
1175
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
1176
+ - OpenAPI response codes: `200`
1177
+
1178
+ ```ts
1179
+ import posthog from "@utdk/posthog";
1180
+
1181
+ type UserInterviewTopicsIntervieweesRetrieveInput = Parameters<typeof posthog.userInterviewTopicsIntervieweesRetrieve> extends [infer T, ...unknown[]] ? T : undefined;
1182
+ type UserInterviewTopicsIntervieweesRetrieveOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsIntervieweesRetrieve>>;
1183
+
1184
+ const result: UserInterviewTopicsIntervieweesRetrieveOutput = await posthog.userInterviewTopicsIntervieweesRetrieve();
1185
+
1186
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
1187
+ ```
1188
+
1189
+ ### `posthog.userInterviewTopicsIntervieweesPartialUpdate`
1190
+
1191
+ - **HTTP**: `PATCH /api/projects/{project_id}/user_interview_topics/{topic_id}/interviewees/{id}/`
1192
+ - **What it does**: Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).
1193
+ - **OpenAPI operationId**: `user_interview_topics_interviewees_partial_update`
1194
+ - **Path params**: `id`, `topic_id`
1195
+ - **Query params**: None
1196
+ - **Response codes**: `200`
1197
+ - **Transport options**: None
1198
+ - **TypeScript**: [Client interface](../types.ts)
1199
+
1200
+ **Inputs**
1201
+
1202
+ - Client input type: `{ [key: string]: unknown }`
1203
+ - Client transport options: None
1204
+
1205
+ **Outputs**
1206
+
1207
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
1208
+ - OpenAPI response codes: `200`
1209
+
1210
+ ```ts
1211
+ import posthog from "@utdk/posthog";
1212
+
1213
+ type UserInterviewTopicsIntervieweesPartialUpdateInput = Parameters<typeof posthog.userInterviewTopicsIntervieweesPartialUpdate> extends [infer T, ...unknown[]] ? T : undefined;
1214
+ type UserInterviewTopicsIntervieweesPartialUpdateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsIntervieweesPartialUpdate>>;
1215
+
1216
+ const result: UserInterviewTopicsIntervieweesPartialUpdateOutput = await posthog.userInterviewTopicsIntervieweesPartialUpdate();
1217
+
1218
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
1219
+ ```
1220
+
1221
+ ### `posthog.userInterviewTopicsIntervieweesUpdate`
1222
+
1223
+ - **HTTP**: `PUT /api/projects/{project_id}/user_interview_topics/{topic_id}/interviewees/{id}/`
1224
+ - **What it does**: Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).
1225
+ - **OpenAPI operationId**: `user_interview_topics_interviewees_update`
1226
+ - **Path params**: `id`, `topic_id`
1227
+ - **Query params**: None
1228
+ - **Response codes**: `200`
1229
+ - **Transport options**: None
1230
+ - **TypeScript**: [Client interface](../types.ts)
1231
+
1232
+ **Inputs**
1233
+
1234
+ - Client input type: `{ [key: string]: unknown }`
1235
+ - Client transport options: None
1236
+
1237
+ **Outputs**
1238
+
1239
+ - Client return type: `{ id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...`
1240
+ - OpenAPI response codes: `200`
1241
+
1242
+ ```ts
1243
+ import posthog from "@utdk/posthog";
1244
+
1245
+ type UserInterviewTopicsIntervieweesUpdateInput = Parameters<typeof posthog.userInterviewTopicsIntervieweesUpdate> extends [infer T, ...unknown[]] ? T : undefined;
1246
+ type UserInterviewTopicsIntervieweesUpdateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsIntervieweesUpdate>>;
1247
+
1248
+ const result: UserInterviewTopicsIntervieweesUpdateOutput = await posthog.userInterviewTopicsIntervieweesUpdate();
1249
+
1250
+ // Result shape (from schema): { id: string; created_by: { id: number; uuid: string; distinct_id?: string | null; first_name?: string; last_name?: string; email: string; is_email_verified?: boolean | null; hedgehog_config: { [key: string]: unknown } ...
1251
+ ```
1252
+
1253
+ ### `posthog.userInterviewTopicsIntervieweesBulkCreate`
1254
+
1255
+ - **HTTP**: `POST /api/projects/{project_id}/user_interview_topics/{topic_id}/interviewees/bulk/`
1256
+ - **What it does**: Create up to 500 interviewee context rows for a topic in a single request. Rows whose (topic, interviewee_identifier) already exists are skipped — the response surfaces an `inserted_count`, a `skipped_count`, and the `skipped_identifiers` so the caller can reconcile. Items must have unique `interviewee_identifier` values within the batch.
1257
+ - **OpenAPI operationId**: `user_interview_topics_interviewees_bulk_create`
1258
+ - **Path params**: `topic_id`
1259
+ - **Query params**: None
1260
+ - **Response codes**: `200`
1261
+ - **Transport options**: None
1262
+ - **TypeScript**: [Client interface](../types.ts)
1263
+
1264
+ **Inputs**
1265
+
1266
+ - Client input type: `{ [key: string]: unknown }`
1267
+ - Client transport options: None
1268
+
1269
+ **Outputs**
1270
+
1271
+ - Client return type: `{ inserted_count: number; skipped_count: number; skipped_identifiers: (string)[] }`
1272
+ - OpenAPI response codes: `200`
1273
+
1274
+ ```ts
1275
+ import posthog from "@utdk/posthog";
1276
+
1277
+ type UserInterviewTopicsIntervieweesBulkCreateInput = Parameters<typeof posthog.userInterviewTopicsIntervieweesBulkCreate> extends [infer T, ...unknown[]] ? T : undefined;
1278
+ type UserInterviewTopicsIntervieweesBulkCreateOutput = Awaited<ReturnType<typeof posthog.userInterviewTopicsIntervieweesBulkCreate>>;
1279
+
1280
+ const result: UserInterviewTopicsIntervieweesBulkCreateOutput = await posthog.userInterviewTopicsIntervieweesBulkCreate();
1281
+
1282
+ // Result shape (from schema): { inserted_count: number; skipped_count: number; skipped_identifiers: (string)[] }
1283
+ ```
1284
+
1285
+
1286
+ <!-- prompt-hash:
1287
+ 8c3694991a4c289225f05a4e8f1e098cc74d085a088d7dffd82f00d93797b7f8
1288
+ -->