@proveanything/smartlinks 1.9.23 → 1.10.1

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.
package/dist/openapi.yaml CHANGED
@@ -17,7 +17,6 @@ tags:
17
17
  - name: publicClient
18
18
  - name: voice
19
19
  - name: userAppData
20
- - name: appConfiguration
21
20
  - name: cases
22
21
  - name: threads
23
22
  - name: records
@@ -29,7 +28,6 @@ tags:
29
28
  - name: authKit
30
29
  - name: batch
31
30
  - name: broadcasts
32
- - name: claimSet
33
31
  - name: collection
34
32
  - name: comms
35
33
  - name: config
@@ -63,7 +61,7 @@ paths:
63
61
  post:
64
62
  tags:
65
63
  - auth
66
- summary: Logout (clears bearerToken for future API calls).
64
+ summary: Requests an admin JWT for the current user and a specific collection Returns JWT if valid.
67
65
  operationId: auth_requestAdminJWT
68
66
  security:
69
67
  - bearerAuth: []
@@ -311,7 +309,7 @@ paths:
311
309
  post:
312
310
  tags:
313
311
  - batch
314
- summary: List all batches for a collection and product (admin only).
312
+ summary: Create a new batch for a collection and product (admin only).
315
313
  operationId: batch_create
316
314
  security:
317
315
  - bearerAuth: []
@@ -372,7 +370,7 @@ paths:
372
370
  post:
373
371
  tags:
374
372
  - variant
375
- summary: List all variants for a collection and product (admin only).
373
+ summary: Create a new variant for a collection and product (admin only).
376
374
  operationId: variant_create
377
375
  security:
378
376
  - bearerAuth: []
@@ -405,7 +403,7 @@ paths:
405
403
  put:
406
404
  tags:
407
405
  - collection
408
- summary: Create a new collection (admin only).
406
+ summary: Update a collection (admin only).
409
407
  operationId: collection_update
410
408
  security:
411
409
  - bearerAuth: []
@@ -437,7 +435,7 @@ paths:
437
435
  delete:
438
436
  tags:
439
437
  - collection
440
- summary: Update a collection (admin only).
438
+ summary: Delete a collection (admin only).
441
439
  operationId: collection_remove
442
440
  security:
443
441
  - bearerAuth: []
@@ -465,7 +463,7 @@ paths:
465
463
  post:
466
464
  tags:
467
465
  - rag
468
- summary: "Get specific model information / export async function get(collectionId: string, modelId: string): Promise<AIModel> { co"
466
+ summary: Configure AI assistant behavior
469
467
  operationId: rag_configureAssistant
470
468
  security:
471
469
  - bearerAuth: []
@@ -498,7 +496,7 @@ paths:
498
496
  post:
499
497
  tags:
500
498
  - voice
501
- summary: "Search stock photos or similar via AI (admin) / export async function searchPhotos( collectionId: string, params: AISearchPhotosRequest ): Promise<AISearchPhotosPhoto[]> { const path = `/admin/collection/${encodeURIComponent(collectionId)}/ai/searchPhotos` return post<AISearchPhotosPhoto[]>(path, params) } /** Upload a file for AI usage (admin)."
499
+ summary: Create or warm a cache for AI (admin)
502
500
  operationId: voice_createCache
503
501
  security:
504
502
  - bearerAuth: []
@@ -524,7 +522,7 @@ paths:
524
522
  post:
525
523
  tags:
526
524
  - voice
527
- summary: "Generate text/content via AI (admin) / export async function generateContent( collectionId: string, params: AIGenerateCo"
525
+ summary: Generate an image via AI (admin)
528
526
  operationId: voice_generateImage
529
527
  security:
530
528
  - bearerAuth: []
@@ -556,7 +554,7 @@ paths:
556
554
  post:
557
555
  tags:
558
556
  - podcast
559
- summary: "Reset rate limit for a user / export async function reset(collectionId: string, userId: string): Promise<{ success: bool"
557
+ summary: Generate a NotebookLM-style conversational podcast from product documents
560
558
  operationId: podcast_generate
561
559
  security:
562
560
  - bearerAuth: []
@@ -589,7 +587,7 @@ paths:
589
587
  post:
590
588
  tags:
591
589
  - rag
592
- summary: "List available AI models / export async function list(collectionId: string, params?: AIModelListParams): Promise<AIModel"
590
+ summary: Index a document for RAG
593
591
  operationId: rag_indexDocument
594
592
  security:
595
593
  - bearerAuth: []
@@ -618,7 +616,7 @@ paths:
618
616
  application/json:
619
617
  schema:
620
618
  $ref: "#/components/schemas/IndexDocumentRequest"
621
- /admin/collection/{collectionId}/ai/models)}:
619
+ /admin/collection/{collectionId}/ai/models:
622
620
  get:
623
621
  tags:
624
622
  - models
@@ -667,7 +665,7 @@ paths:
667
665
  get:
668
666
  tags:
669
667
  - models
670
- summary: "List available AI models / export async function list(collectionId: string, params?: AIModelListParams): Promise<AIModel"
668
+ summary: Get specific model information
671
669
  operationId: models_get
672
670
  security:
673
671
  - bearerAuth: []
@@ -699,7 +697,7 @@ paths:
699
697
  get:
700
698
  tags:
701
699
  - podcast
702
- summary: Generate a NotebookLM-style conversational podcast from product documents / export async function generate( collectionId
700
+ summary: Get podcast generation status
703
701
  operationId: podcast_getStatus
704
702
  security:
705
703
  - bearerAuth: []
@@ -731,7 +729,7 @@ paths:
731
729
  post:
732
730
  tags:
733
731
  - voice
734
- summary: "Generate text/content via AI (admin) / export async function generateContent( collectionId: string, params: AIGenerateCo"
732
+ summary: Search stock photos or similar via AI (admin)
735
733
  operationId: voice_searchPhotos
736
734
  security:
737
735
  - bearerAuth: []
@@ -766,7 +764,7 @@ paths:
766
764
  get:
767
765
  tags:
768
766
  - sessions
769
- summary: "Configure AI assistant behavior / export async function configureAssistant( collectionId: string, request: ConfigureAssi"
767
+ summary: Get session statistics
770
768
  operationId: sessions_stats
771
769
  security:
772
770
  - bearerAuth: []
@@ -793,7 +791,7 @@ paths:
793
791
  post:
794
792
  tags:
795
793
  - tts
796
- summary: "Get podcast generation status / export async function getStatus(collectionId: string, podcastId: string): Promise<Podcas"
794
+ summary: Generate text-to-speech audio
797
795
  operationId: tts_generate
798
796
  security:
799
797
  - bearerAuth: []
@@ -826,7 +824,7 @@ paths:
826
824
  post:
827
825
  tags:
828
826
  - voice
829
- summary: "Generate an image via AI (admin) / export async function generateImage(collectionId: string, params: AIGenerateImageRequest): Promise<any> { const path = `/admin/collection/${encodeURIComponent(collectionId)}/ai/generateImage` return post<any>(path, params) } /** Search stock photos or similar via AI (admin) / export async function searchPhotos( collectionId: string, params: AISearchPhotosRequest ): Promise<AISearchPhotosPhoto[]> { const path = `/admin/collection/${encodeURIComponent(collectionId)}/ai/searchPhotos` return post<AISearchPhotosPhoto[]>(path, params) } /** Upload a file for AI usage (admin)."
827
+ summary: Upload a file for AI usage (admin).
830
828
  operationId: voice_uploadFile
831
829
  security:
832
830
  - bearerAuth: []
@@ -918,7 +916,7 @@ paths:
918
916
  post:
919
917
  tags:
920
918
  - collection
921
- summary: Look up a serial number by code for a collection (admin only).
919
+ summary: Assign a value to a serial number for a collection (admin only).
922
920
  operationId: collection_assignSN
923
921
  security:
924
922
  - bearerAuth: []
@@ -982,7 +980,7 @@ paths:
982
980
  get:
983
981
  tags:
984
982
  - async
985
- summary: "Enqueue a background job for a collection POST /admin/collection/:collectionId/async/jobs (202) / export async function"
983
+ summary: "Get job status by ID (may return 404 if completed/removed) GET /admin/collection/:collectionId/async/jobs/:jobId"
986
984
  operationId: async_getAsyncJobStatus
987
985
  security:
988
986
  - bearerAuth: []
@@ -1977,12 +1975,12 @@ paths:
1977
1975
  application/json:
1978
1976
  schema:
1979
1977
  $ref: "#/components/schemas/BroadcastSendTestRequest"
1980
- /admin/collection/{collectionId}/claimSetd)}/assignClaims:
1978
+ /admin/collection/{collectionId}/comm.send:
1981
1979
  post:
1982
1980
  tags:
1983
- - claimSet
1984
- summary: Perform a tag query for a collection.
1985
- operationId: claimSet_assignClaims
1981
+ - comms
1982
+ summary: Send a single transactional message to one contact using a template.
1983
+ operationId: comms_sendTransactional
1986
1984
  security:
1987
1985
  - bearerAuth: []
1988
1986
  parameters:
@@ -1996,7 +1994,8 @@ paths:
1996
1994
  description: Success
1997
1995
  content:
1998
1996
  application/json:
1999
- schema: {}
1997
+ schema:
1998
+ $ref: "#/components/schemas/TransactionalSendResult"
2000
1999
  400:
2001
2000
  description: Bad request
2002
2001
  401:
@@ -2008,13 +2007,13 @@ paths:
2008
2007
  content:
2009
2008
  application/json:
2010
2009
  schema:
2011
- $ref: "#/components/schemas/AssignClaimsRequest"
2012
- /admin/collection/{collectionId}/claimSetd)}/makeClaim:
2013
- post:
2010
+ $ref: "#/components/schemas/TransactionalSendRequest"
2011
+ /admin/collection/{collectionId}/comm.settings:
2012
+ get:
2014
2013
  tags:
2015
- - claimSet
2016
- summary: Get tag summary for a collection.
2017
- operationId: claimSet_makeClaim
2014
+ - comms
2015
+ summary: "Admin: Get current comms settings for a collection."
2016
+ operationId: comms_getSettings
2018
2017
  security:
2019
2018
  - bearerAuth: []
2020
2019
  parameters:
@@ -2023,24 +2022,30 @@ paths:
2023
2022
  required: true
2024
2023
  schema:
2025
2024
  type: string
2025
+ - name: includeSecret
2026
+ in: query
2027
+ required: false
2028
+ schema:
2029
+ type: string
2026
2030
  responses:
2027
2031
  200:
2028
2032
  description: Success
2029
2033
  content:
2030
2034
  application/json:
2031
- schema: {}
2035
+ schema:
2036
+ type: object
2037
+ additionalProperties: true
2032
2038
  400:
2033
2039
  description: Bad request
2034
2040
  401:
2035
2041
  description: Unauthorized
2036
2042
  404:
2037
2043
  description: Not found
2038
- /admin/collection/{collectionId}/claimSetd)}/tagQuery:
2039
- post:
2044
+ patch:
2040
2045
  tags:
2041
- - claimSet
2042
- summary: Get a report for a claim set (collection-scoped).
2043
- operationId: claimSet_tagQuery
2046
+ - comms
2047
+ summary: "Admin: Patch comms settings for a collection."
2048
+ operationId: comms_patchSettings
2044
2049
  security:
2045
2050
  - bearerAuth: []
2046
2051
  parameters:
@@ -2054,19 +2059,28 @@ paths:
2054
2059
  description: Success
2055
2060
  content:
2056
2061
  application/json:
2057
- schema: {}
2062
+ schema:
2063
+ type: object
2064
+ additionalProperties: true
2058
2065
  400:
2059
2066
  description: Bad request
2060
2067
  401:
2061
2068
  description: Unauthorized
2062
2069
  404:
2063
2070
  description: Not found
2064
- /admin/collection/{collectionId}/claimSetd)}/tagSummary:
2065
- get:
2071
+ requestBody:
2072
+ required: true
2073
+ content:
2074
+ application/json:
2075
+ schema:
2076
+ type: object
2077
+ additionalProperties: true
2078
+ /admin/collection/{collectionId}/comm/log:
2079
+ post:
2066
2080
  tags:
2067
- - claimSet
2068
- summary: Get a report for a claim set (collection-scoped).
2069
- operationId: claimSet_getTagSummary
2081
+ - comms
2082
+ summary: "Logging: Append a single communication event."
2083
+ operationId: comms_logCommunicationEvent
2070
2084
  security:
2071
2085
  - bearerAuth: []
2072
2086
  parameters:
@@ -2080,19 +2094,26 @@ paths:
2080
2094
  description: Success
2081
2095
  content:
2082
2096
  application/json:
2083
- schema: {}
2097
+ schema:
2098
+ $ref: "#/components/schemas/AppendResult"
2084
2099
  400:
2085
2100
  description: Bad request
2086
2101
  401:
2087
2102
  description: Unauthorized
2088
2103
  404:
2089
2104
  description: Not found
2090
- /admin/collection/{collectionId}/claimSetd)}/updateClaimData:
2105
+ requestBody:
2106
+ required: true
2107
+ content:
2108
+ application/json:
2109
+ schema:
2110
+ $ref: "#/components/schemas/LogCommunicationEventBody"
2111
+ /admin/collection/{collectionId}/comm/log/bulk:
2091
2112
  post:
2092
2113
  tags:
2093
- - claimSet
2094
- summary: Make a claim against a claim set (collection-scoped).
2095
- operationId: claimSet_updateClaimData
2114
+ - comms
2115
+ summary: "Logging: Append many communication events for a list of IDs."
2116
+ operationId: comms_logBulkCommunicationEvents
2096
2117
  security:
2097
2118
  - bearerAuth: []
2098
2119
  parameters:
@@ -2106,7 +2127,8 @@ paths:
2106
2127
  description: Success
2107
2128
  content:
2108
2129
  application/json:
2109
- schema: {}
2130
+ schema:
2131
+ $ref: "#/components/schemas/AppendBulkResult"
2110
2132
  400:
2111
2133
  description: Bad request
2112
2134
  401:
@@ -2118,13 +2140,16 @@ paths:
2118
2140
  content:
2119
2141
  application/json:
2120
2142
  schema:
2121
- $ref: "#/components/schemas/UpdateClaimDataRequest"
2122
- /admin/collection/{collectionId}/claimSetd)}/{claimSetId}:
2123
- get:
2143
+ type: string
2144
+ enum:
2145
+ - userId
2146
+ - contactId
2147
+ /admin/collection/{collectionId}/comm/query/by-user:
2148
+ post:
2124
2149
  tags:
2125
- - claimSet
2126
- summary: Returns the base path for claim set endpoints.
2127
- operationId: claimSet_get
2150
+ - comms
2151
+ summary: "Analytics: Query communication events by user or contact."
2152
+ operationId: comms_queryByUser
2128
2153
  security:
2129
2154
  - bearerAuth: []
2130
2155
  parameters:
@@ -2133,28 +2158,33 @@ paths:
2133
2158
  required: true
2134
2159
  schema:
2135
2160
  type: string
2136
- - name: claimSetId
2137
- in: path
2138
- required: true
2139
- schema:
2140
- type: string
2141
2161
  responses:
2142
2162
  200:
2143
2163
  description: Success
2144
2164
  content:
2145
2165
  application/json:
2146
- schema: {}
2166
+ schema:
2167
+ type: array
2168
+ items:
2169
+ $ref: "#/components/schemas/CommunicationEvent"
2147
2170
  400:
2148
2171
  description: Bad request
2149
2172
  401:
2150
2173
  description: Unauthorized
2151
2174
  404:
2152
2175
  description: Not found
2153
- put:
2176
+ requestBody:
2177
+ required: true
2178
+ content:
2179
+ application/json:
2180
+ schema:
2181
+ $ref: "#/components/schemas/CommsQueryByUser"
2182
+ /admin/collection/{collectionId}/comm/query/recipient-ids:
2183
+ post:
2154
2184
  tags:
2155
- - claimSet
2156
- summary: Create a new claim set.
2157
- operationId: claimSet_update
2185
+ - comms
2186
+ summary: "Analytics: Recipient IDs for a communication source."
2187
+ operationId: comms_queryRecipientIds
2158
2188
  security:
2159
2189
  - bearerAuth: []
2160
2190
  parameters:
@@ -2163,28 +2193,33 @@ paths:
2163
2193
  required: true
2164
2194
  schema:
2165
2195
  type: string
2166
- - name: claimSetId
2167
- in: path
2168
- required: true
2169
- schema:
2170
- type: string
2171
2196
  responses:
2172
2197
  200:
2173
2198
  description: Success
2174
2199
  content:
2175
2200
  application/json:
2176
- schema: {}
2201
+ schema:
2202
+ type: array
2203
+ items:
2204
+ $ref: "#/components/schemas/RecipientId"
2177
2205
  400:
2178
2206
  description: Bad request
2179
2207
  401:
2180
2208
  description: Unauthorized
2181
2209
  404:
2182
2210
  description: Not found
2183
- delete:
2211
+ requestBody:
2212
+ required: true
2213
+ content:
2214
+ application/json:
2215
+ schema:
2216
+ $ref: "#/components/schemas/CommsRecipientIdsQuery"
2217
+ /admin/collection/{collectionId}/comm/query/recipients/with-action:
2218
+ post:
2184
2219
  tags:
2185
- - claimSet
2186
- summary: Update a claim set.
2187
- operationId: claimSet_remove
2220
+ - comms
2221
+ summary: "Analytics: Recipients who performed an action, optionally with outcome."
2222
+ operationId: comms_queryRecipientsWithAction
2188
2223
  security:
2189
2224
  - bearerAuth: []
2190
2225
  parameters:
@@ -2193,29 +2228,34 @@ paths:
2193
2228
  required: true
2194
2229
  schema:
2195
2230
  type: string
2196
- - name: claimSetId
2197
- in: path
2198
- required: true
2199
- schema:
2200
- type: string
2201
2231
  responses:
2202
2232
  200:
2203
2233
  description: Success
2204
2234
  content:
2205
2235
  application/json:
2206
- schema: {}
2236
+ schema:
2237
+ type: array
2238
+ items:
2239
+ type: object
2240
+ additionalProperties: true
2207
2241
  400:
2208
2242
  description: Bad request
2209
2243
  401:
2210
2244
  description: Unauthorized
2211
2245
  404:
2212
2246
  description: Not found
2213
- /admin/collection/{collectionId}/claimSetd)}/{claimSetId}/assignedTags:
2214
- get:
2247
+ requestBody:
2248
+ required: true
2249
+ content:
2250
+ application/json:
2251
+ schema:
2252
+ $ref: "#/components/schemas/CommsRecipientsWithActionQuery"
2253
+ /admin/collection/{collectionId}/comm/query/recipients/without-action:
2254
+ post:
2215
2255
  tags:
2216
- - claimSet
2217
- summary: Get all tags for a claim set (including data).
2218
- operationId: claimSet_getAssignedTags
2256
+ - comms
2257
+ summary: "Analytics: Recipients who did not perform an action."
2258
+ operationId: comms_queryRecipientsWithoutAction
2219
2259
  security:
2220
2260
  - bearerAuth: []
2221
2261
  parameters:
@@ -2224,29 +2264,33 @@ paths:
2224
2264
  required: true
2225
2265
  schema:
2226
2266
  type: string
2227
- - name: claimSetId
2228
- in: path
2229
- required: true
2230
- schema:
2231
- type: string
2232
2267
  responses:
2233
2268
  200:
2234
2269
  description: Success
2235
2270
  content:
2236
2271
  application/json:
2237
- schema: {}
2272
+ schema:
2273
+ type: array
2274
+ items:
2275
+ $ref: "#/components/schemas/RecipientId"
2238
2276
  400:
2239
2277
  description: Bad request
2240
2278
  401:
2241
2279
  description: Unauthorized
2242
2280
  404:
2243
2281
  description: Not found
2244
- /admin/collection/{collectionId}/claimSetd)}/{claimSetId}/createTag:
2245
- post:
2282
+ requestBody:
2283
+ required: true
2284
+ content:
2285
+ application/json:
2286
+ schema:
2287
+ $ref: "#/components/schemas/CommsRecipientsWithoutActionQuery"
2288
+ /admin/collection/{collectionId}/contacts:
2289
+ get:
2246
2290
  tags:
2247
- - claimSet
2248
- summary: Get assigned tags for a claim set — tags soft-assigned to a collection or product.
2249
- operationId: claimSet_createTag
2291
+ - contact
2292
+ summary: contact.list
2293
+ operationId: contact_list
2250
2294
  security:
2251
2295
  - bearerAuth: []
2252
2296
  parameters:
@@ -2255,9 +2299,19 @@ paths:
2255
2299
  required: true
2256
2300
  schema:
2257
2301
  type: string
2258
- - name: claimSetId
2259
- in: path
2260
- required: true
2302
+ - name: limit
2303
+ in: query
2304
+ required: false
2305
+ schema:
2306
+ type: string
2307
+ - name: offset
2308
+ in: query
2309
+ required: false
2310
+ schema:
2311
+ type: string
2312
+ - name: includeDeleted
2313
+ in: query
2314
+ required: false
2261
2315
  schema:
2262
2316
  type: string
2263
2317
  responses:
@@ -2266,25 +2320,18 @@ paths:
2266
2320
  content:
2267
2321
  application/json:
2268
2322
  schema:
2269
- $ref: "#/components/schemas/CreateClaimSetTagResponse"
2323
+ $ref: "#/components/schemas/ContactListResponse"
2270
2324
  400:
2271
2325
  description: Bad request
2272
2326
  401:
2273
2327
  description: Unauthorized
2274
2328
  404:
2275
2329
  description: Not found
2276
- requestBody:
2277
- required: true
2278
- content:
2279
- application/json:
2280
- schema:
2281
- $ref: "#/components/schemas/CreateClaimSetTagRequest"
2282
- /admin/collection/{collectionId}/claimSetd)}/{claimSetId}/importTags:
2283
2330
  post:
2284
2331
  tags:
2285
- - claimSet
2286
- summary: Create a single tag inside a claim set.
2287
- operationId: claimSet_importTags
2332
+ - contact
2333
+ summary: contact.create
2334
+ operationId: contact_create
2288
2335
  security:
2289
2336
  - bearerAuth: []
2290
2337
  parameters:
@@ -2293,18 +2340,13 @@ paths:
2293
2340
  required: true
2294
2341
  schema:
2295
2342
  type: string
2296
- - name: claimSetId
2297
- in: path
2298
- required: true
2299
- schema:
2300
- type: string
2301
2343
  responses:
2302
2344
  200:
2303
2345
  description: Success
2304
2346
  content:
2305
2347
  application/json:
2306
2348
  schema:
2307
- $ref: "#/components/schemas/ImportClaimSetTagsResponse"
2349
+ $ref: "#/components/schemas/ContactResponse"
2308
2350
  400:
2309
2351
  description: Bad request
2310
2352
  401:
@@ -2316,13 +2358,13 @@ paths:
2316
2358
  content:
2317
2359
  application/json:
2318
2360
  schema:
2319
- $ref: "#/components/schemas/ImportClaimSetTagsRequest"
2320
- /admin/collection/{collectionId}/claimSetd)}/{claimSetId}/report:
2361
+ $ref: "#/components/schemas/ContactCreateRequest"
2362
+ /admin/collection/{collectionId}/contacts/lookup:
2321
2363
  get:
2322
2364
  tags:
2323
- - claimSet
2324
- summary: Bulk import tags into a claim set.
2325
- operationId: claimSet_getReport
2365
+ - contact
2366
+ summary: contact.lookup
2367
+ operationId: contact_lookup
2326
2368
  security:
2327
2369
  - bearerAuth: []
2328
2370
  parameters:
@@ -2331,9 +2373,14 @@ paths:
2331
2373
  required: true
2332
2374
  schema:
2333
2375
  type: string
2334
- - name: claimSetId
2335
- in: path
2336
- required: true
2376
+ - name: email
2377
+ in: query
2378
+ required: false
2379
+ schema:
2380
+ type: string
2381
+ - name: phone
2382
+ in: query
2383
+ required: false
2337
2384
  schema:
2338
2385
  type: string
2339
2386
  responses:
@@ -2341,19 +2388,20 @@ paths:
2341
2388
  description: Success
2342
2389
  content:
2343
2390
  application/json:
2344
- schema: {}
2391
+ schema:
2392
+ $ref: "#/components/schemas/ContactResponse"
2345
2393
  400:
2346
2394
  description: Bad request
2347
2395
  401:
2348
2396
  description: Unauthorized
2349
2397
  404:
2350
2398
  description: Not found
2351
- /admin/collection/{collectionId}/claimSetd)}/{claimSetId}/tags:
2352
- get:
2399
+ /admin/collection/{collectionId}/contacts/upsert:
2400
+ post:
2353
2401
  tags:
2354
- - claimSet
2355
- summary: Update a claim set.
2356
- operationId: claimSet_getAllTags
2402
+ - contact
2403
+ summary: contact.upsert
2404
+ operationId: contact_upsert
2357
2405
  security:
2358
2406
  - bearerAuth: []
2359
2407
  parameters:
@@ -2362,29 +2410,31 @@ paths:
2362
2410
  required: true
2363
2411
  schema:
2364
2412
  type: string
2365
- - name: claimSetId
2366
- in: path
2367
- required: true
2368
- schema:
2369
- type: string
2370
2413
  responses:
2371
2414
  200:
2372
2415
  description: Success
2373
2416
  content:
2374
2417
  application/json:
2375
- schema: {}
2418
+ schema:
2419
+ $ref: "#/components/schemas/ContactResponse"
2376
2420
  400:
2377
2421
  description: Bad request
2378
2422
  401:
2379
2423
  description: Unauthorized
2380
2424
  404:
2381
2425
  description: Not found
2382
- /admin/collection/{collectionId}/comm.send:
2383
- post:
2426
+ requestBody:
2427
+ required: true
2428
+ content:
2429
+ application/json:
2430
+ schema:
2431
+ $ref: "#/components/schemas/ContactCreateRequest"
2432
+ /admin/collection/{collectionId}/contacts/{contactId}:
2433
+ get:
2384
2434
  tags:
2385
- - comms
2386
- summary: Send a single transactional message to one contact using a template.
2387
- operationId: comms_sendTransactional
2435
+ - contact
2436
+ summary: contact.get
2437
+ operationId: contact_get
2388
2438
  security:
2389
2439
  - bearerAuth: []
2390
2440
  parameters:
@@ -2393,477 +2443,23 @@ paths:
2393
2443
  required: true
2394
2444
  schema:
2395
2445
  type: string
2446
+ - name: contactId
2447
+ in: path
2448
+ required: true
2449
+ schema:
2450
+ type: string
2451
+ - name: includeDeleted
2452
+ in: query
2453
+ required: false
2454
+ schema:
2455
+ type: string
2396
2456
  responses:
2397
2457
  200:
2398
2458
  description: Success
2399
2459
  content:
2400
2460
  application/json:
2401
2461
  schema:
2402
- $ref: "#/components/schemas/TransactionalSendResult"
2403
- 400:
2404
- description: Bad request
2405
- 401:
2406
- description: Unauthorized
2407
- 404:
2408
- description: Not found
2409
- requestBody:
2410
- required: true
2411
- content:
2412
- application/json:
2413
- schema:
2414
- $ref: "#/components/schemas/TransactionalSendRequest"
2415
- /admin/collection/{collectionId}/comm.settings:
2416
- get:
2417
- tags:
2418
- - comms
2419
- summary: "Public: Register a Web Push subscription under unified comms."
2420
- operationId: comms_getSettings
2421
- security:
2422
- - bearerAuth: []
2423
- parameters:
2424
- - name: collectionId
2425
- in: path
2426
- required: true
2427
- schema:
2428
- type: string
2429
- - name: includeSecret
2430
- in: query
2431
- required: false
2432
- schema:
2433
- type: string
2434
- responses:
2435
- 200:
2436
- description: Success
2437
- content:
2438
- application/json:
2439
- schema:
2440
- type: object
2441
- additionalProperties: true
2442
- 400:
2443
- description: Bad request
2444
- 401:
2445
- description: Unauthorized
2446
- 404:
2447
- description: Not found
2448
- patch:
2449
- tags:
2450
- - comms
2451
- summary: "Admin: Get current comms settings for a collection."
2452
- operationId: comms_patchSettings
2453
- security:
2454
- - bearerAuth: []
2455
- parameters:
2456
- - name: collectionId
2457
- in: path
2458
- required: true
2459
- schema:
2460
- type: string
2461
- responses:
2462
- 200:
2463
- description: Success
2464
- content:
2465
- application/json:
2466
- schema:
2467
- type: object
2468
- additionalProperties: true
2469
- 400:
2470
- description: Bad request
2471
- 401:
2472
- description: Unauthorized
2473
- 404:
2474
- description: Not found
2475
- requestBody:
2476
- required: true
2477
- content:
2478
- application/json:
2479
- schema:
2480
- type: object
2481
- additionalProperties: true
2482
- /admin/collection/{collectionId}/comm/log:
2483
- post:
2484
- tags:
2485
- - comms
2486
- summary: "Logging: Append a single communication event."
2487
- operationId: comms_logCommunicationEvent
2488
- security:
2489
- - bearerAuth: []
2490
- parameters:
2491
- - name: collectionId
2492
- in: path
2493
- required: true
2494
- schema:
2495
- type: string
2496
- responses:
2497
- 200:
2498
- description: Success
2499
- content:
2500
- application/json:
2501
- schema:
2502
- $ref: "#/components/schemas/AppendResult"
2503
- 400:
2504
- description: Bad request
2505
- 401:
2506
- description: Unauthorized
2507
- 404:
2508
- description: Not found
2509
- requestBody:
2510
- required: true
2511
- content:
2512
- application/json:
2513
- schema:
2514
- $ref: "#/components/schemas/LogCommunicationEventBody"
2515
- /admin/collection/{collectionId}/comm/log/bulk:
2516
- post:
2517
- tags:
2518
- - comms
2519
- summary: "Logging: Append a single communication event."
2520
- operationId: comms_logBulkCommunicationEvents
2521
- security:
2522
- - bearerAuth: []
2523
- parameters:
2524
- - name: collectionId
2525
- in: path
2526
- required: true
2527
- schema:
2528
- type: string
2529
- responses:
2530
- 200:
2531
- description: Success
2532
- content:
2533
- application/json:
2534
- schema:
2535
- $ref: "#/components/schemas/AppendBulkResult"
2536
- 400:
2537
- description: Bad request
2538
- 401:
2539
- description: Unauthorized
2540
- 404:
2541
- description: Not found
2542
- requestBody:
2543
- required: true
2544
- content:
2545
- application/json:
2546
- schema:
2547
- type: string
2548
- enum:
2549
- - userId
2550
- - contactId
2551
- /admin/collection/{collectionId}/comm/query/by-user:
2552
- post:
2553
- tags:
2554
- - comms
2555
- summary: "Public: Resolve contacts for a subject with identity hints."
2556
- operationId: comms_queryByUser
2557
- security:
2558
- - bearerAuth: []
2559
- parameters:
2560
- - name: collectionId
2561
- in: path
2562
- required: true
2563
- schema:
2564
- type: string
2565
- responses:
2566
- 200:
2567
- description: Success
2568
- content:
2569
- application/json:
2570
- schema:
2571
- type: array
2572
- items:
2573
- $ref: "#/components/schemas/CommunicationEvent"
2574
- 400:
2575
- description: Bad request
2576
- 401:
2577
- description: Unauthorized
2578
- 404:
2579
- description: Not found
2580
- requestBody:
2581
- required: true
2582
- content:
2583
- application/json:
2584
- schema:
2585
- $ref: "#/components/schemas/CommsQueryByUser"
2586
- /admin/collection/{collectionId}/comm/query/recipient-ids:
2587
- post:
2588
- tags:
2589
- - comms
2590
- summary: "Analytics: Query communication events by user or contact."
2591
- operationId: comms_queryRecipientIds
2592
- security:
2593
- - bearerAuth: []
2594
- parameters:
2595
- - name: collectionId
2596
- in: path
2597
- required: true
2598
- schema:
2599
- type: string
2600
- responses:
2601
- 200:
2602
- description: Success
2603
- content:
2604
- application/json:
2605
- schema:
2606
- type: array
2607
- items:
2608
- $ref: "#/components/schemas/RecipientId"
2609
- 400:
2610
- description: Bad request
2611
- 401:
2612
- description: Unauthorized
2613
- 404:
2614
- description: Not found
2615
- requestBody:
2616
- required: true
2617
- content:
2618
- application/json:
2619
- schema:
2620
- $ref: "#/components/schemas/CommsRecipientIdsQuery"
2621
- /admin/collection/{collectionId}/comm/query/recipients/with-action:
2622
- post:
2623
- tags:
2624
- - comms
2625
- summary: "Analytics: Recipients who did not perform an action."
2626
- operationId: comms_queryRecipientsWithAction
2627
- security:
2628
- - bearerAuth: []
2629
- parameters:
2630
- - name: collectionId
2631
- in: path
2632
- required: true
2633
- schema:
2634
- type: string
2635
- responses:
2636
- 200:
2637
- description: Success
2638
- content:
2639
- application/json:
2640
- schema:
2641
- type: array
2642
- items:
2643
- type: object
2644
- additionalProperties: true
2645
- 400:
2646
- description: Bad request
2647
- 401:
2648
- description: Unauthorized
2649
- 404:
2650
- description: Not found
2651
- requestBody:
2652
- required: true
2653
- content:
2654
- application/json:
2655
- schema:
2656
- $ref: "#/components/schemas/CommsRecipientsWithActionQuery"
2657
- /admin/collection/{collectionId}/comm/query/recipients/without-action:
2658
- post:
2659
- tags:
2660
- - comms
2661
- summary: "Analytics: Recipient IDs for a communication source."
2662
- operationId: comms_queryRecipientsWithoutAction
2663
- security:
2664
- - bearerAuth: []
2665
- parameters:
2666
- - name: collectionId
2667
- in: path
2668
- required: true
2669
- schema:
2670
- type: string
2671
- responses:
2672
- 200:
2673
- description: Success
2674
- content:
2675
- application/json:
2676
- schema:
2677
- type: array
2678
- items:
2679
- $ref: "#/components/schemas/RecipientId"
2680
- 400:
2681
- description: Bad request
2682
- 401:
2683
- description: Unauthorized
2684
- 404:
2685
- description: Not found
2686
- requestBody:
2687
- required: true
2688
- content:
2689
- application/json:
2690
- schema:
2691
- $ref: "#/components/schemas/CommsRecipientsWithoutActionQuery"
2692
- /admin/collection/{collectionId}/contacts:
2693
- get:
2694
- tags:
2695
- - contact
2696
- summary: contact.list
2697
- operationId: contact_list
2698
- security:
2699
- - bearerAuth: []
2700
- parameters:
2701
- - name: collectionId
2702
- in: path
2703
- required: true
2704
- schema:
2705
- type: string
2706
- - name: limit
2707
- in: query
2708
- required: false
2709
- schema:
2710
- type: string
2711
- - name: offset
2712
- in: query
2713
- required: false
2714
- schema:
2715
- type: string
2716
- - name: includeDeleted
2717
- in: query
2718
- required: false
2719
- schema:
2720
- type: string
2721
- responses:
2722
- 200:
2723
- description: Success
2724
- content:
2725
- application/json:
2726
- schema:
2727
- $ref: "#/components/schemas/ContactListResponse"
2728
- 400:
2729
- description: Bad request
2730
- 401:
2731
- description: Unauthorized
2732
- 404:
2733
- description: Not found
2734
- post:
2735
- tags:
2736
- - contact
2737
- summary: contact.create
2738
- operationId: contact_create
2739
- security:
2740
- - bearerAuth: []
2741
- parameters:
2742
- - name: collectionId
2743
- in: path
2744
- required: true
2745
- schema:
2746
- type: string
2747
- responses:
2748
- 200:
2749
- description: Success
2750
- content:
2751
- application/json:
2752
- schema:
2753
- $ref: "#/components/schemas/ContactResponse"
2754
- 400:
2755
- description: Bad request
2756
- 401:
2757
- description: Unauthorized
2758
- 404:
2759
- description: Not found
2760
- requestBody:
2761
- required: true
2762
- content:
2763
- application/json:
2764
- schema:
2765
- $ref: "#/components/schemas/ContactCreateRequest"
2766
- /admin/collection/{collectionId}/contacts/lookup:
2767
- get:
2768
- tags:
2769
- - contact
2770
- summary: contact.lookup
2771
- operationId: contact_lookup
2772
- security:
2773
- - bearerAuth: []
2774
- parameters:
2775
- - name: collectionId
2776
- in: path
2777
- required: true
2778
- schema:
2779
- type: string
2780
- - name: email
2781
- in: query
2782
- required: false
2783
- schema:
2784
- type: string
2785
- - name: phone
2786
- in: query
2787
- required: false
2788
- schema:
2789
- type: string
2790
- responses:
2791
- 200:
2792
- description: Success
2793
- content:
2794
- application/json:
2795
- schema:
2796
- $ref: "#/components/schemas/ContactResponse"
2797
- 400:
2798
- description: Bad request
2799
- 401:
2800
- description: Unauthorized
2801
- 404:
2802
- description: Not found
2803
- /admin/collection/{collectionId}/contacts/upsert:
2804
- post:
2805
- tags:
2806
- - contact
2807
- summary: contact.upsert
2808
- operationId: contact_upsert
2809
- security:
2810
- - bearerAuth: []
2811
- parameters:
2812
- - name: collectionId
2813
- in: path
2814
- required: true
2815
- schema:
2816
- type: string
2817
- responses:
2818
- 200:
2819
- description: Success
2820
- content:
2821
- application/json:
2822
- schema:
2823
- $ref: "#/components/schemas/ContactResponse"
2824
- 400:
2825
- description: Bad request
2826
- 401:
2827
- description: Unauthorized
2828
- 404:
2829
- description: Not found
2830
- requestBody:
2831
- required: true
2832
- content:
2833
- application/json:
2834
- schema:
2835
- $ref: "#/components/schemas/ContactCreateRequest"
2836
- /admin/collection/{collectionId}/contacts/{contactId}:
2837
- get:
2838
- tags:
2839
- - contact
2840
- summary: contact.get
2841
- operationId: contact_get
2842
- security:
2843
- - bearerAuth: []
2844
- parameters:
2845
- - name: collectionId
2846
- in: path
2847
- required: true
2848
- schema:
2849
- type: string
2850
- - name: contactId
2851
- in: path
2852
- required: true
2853
- schema:
2854
- type: string
2855
- - name: includeDeleted
2856
- in: query
2857
- required: false
2858
- schema:
2859
- type: string
2860
- responses:
2861
- 200:
2862
- description: Success
2863
- content:
2864
- application/json:
2865
- schema:
2866
- $ref: "#/components/schemas/ContactResponse"
2462
+ $ref: "#/components/schemas/ContactResponse"
2867
2463
  400:
2868
2464
  description: Bad request
2869
2465
  401:
@@ -3867,7 +3463,7 @@ paths:
3867
3463
  post:
3868
3464
  tags:
3869
3465
  - form
3870
- summary: List all forms for a collection.
3466
+ summary: Create a new form for a collection (admin only).
3871
3467
  operationId: form_create
3872
3468
  security:
3873
3469
  - bearerAuth: []
@@ -3893,7 +3489,7 @@ paths:
3893
3489
  put:
3894
3490
  tags:
3895
3491
  - form
3896
- summary: List all forms for a collection.
3492
+ summary: Update a form for a collection (admin only).
3897
3493
  operationId: form_update
3898
3494
  security:
3899
3495
  - bearerAuth: []
@@ -3923,7 +3519,7 @@ paths:
3923
3519
  delete:
3924
3520
  tags:
3925
3521
  - form
3926
- summary: Create a new form for a collection (admin only).
3522
+ summary: Delete a form for a collection (admin only).
3927
3523
  operationId: form_remove
3928
3524
  security:
3929
3525
  - bearerAuth: []
@@ -3956,7 +3552,7 @@ paths:
3956
3552
  get:
3957
3553
  tags:
3958
3554
  - collection
3959
- summary: Delete a collection (admin only).
3555
+ summary: Get serial numbers for a collection (admin only).
3960
3556
  operationId: collection_getSN
3961
3557
  security:
3962
3558
  - bearerAuth: []
@@ -4056,7 +3652,7 @@ paths:
4056
3652
  post:
4057
3653
  tags:
4058
3654
  - interactions
4059
- summary: "POST /admin/collection/:collectionId/interactions/counts-by-outcome Returns array of { outcome, count }."
3655
+ summary: "POST /admin/collection/:collectionId/interactions/aggregate Returns grouped numeric aggregates (sum, avg, min, max, count)."
4060
3656
  operationId: interactions_aggregate
4061
3657
  security:
4062
3658
  - bearerAuth: []
@@ -4089,7 +3685,7 @@ paths:
4089
3685
  post:
4090
3686
  tags:
4091
3687
  - interactions
4092
- summary: "POST /admin/collection/:collectionId/interactions/query Flexible query for interaction events with optional includes."
3688
+ summary: "POST /admin/collection/:collectionId/interactions/counts-by-outcome Returns array of { outcome, count }."
4093
3689
  operationId: interactions_countsByOutcome
4094
3690
  security:
4095
3691
  - bearerAuth: []
@@ -4317,7 +3913,7 @@ paths:
4317
3913
  get:
4318
3914
  tags:
4319
3915
  - jobs
4320
- summary: "List visible jobs for a collection GET /admin/collection/:collectionId/jobs / export async function listJobs( collection"
3916
+ summary: "Get a single job GET /admin/collection/:collectionId/jobs/:jobId"
4321
3917
  operationId: jobs_getJob
4322
3918
  security:
4323
3919
  - bearerAuth: []
@@ -4436,7 +4032,7 @@ paths:
4436
4032
  post:
4437
4033
  tags:
4438
4034
  - journeysAnalytics
4439
- summary: "POST /admin/collection/:collectionId/journeys.analytics/:journeyId/steps/:stepId/recipients Returns recipient IDs for a given journey step."
4035
+ summary: "POST /admin/collection/:collectionId/journeys.analytics/:journeyId/funnel-report Computes conversion, counts, and avg time across mapped steps in a period."
4440
4036
  operationId: journeysAnalytics_funnelReport
4441
4037
  security:
4442
4038
  - bearerAuth: []
@@ -4512,7 +4108,7 @@ paths:
4512
4108
  post:
4513
4109
  tags:
4514
4110
  - journeysAnalytics
4515
- summary: "POST /admin/collection/:collectionId/journeys.analytics/:journeyId/stats Computes journey stats over a time window; outcome defaults to 'success'."
4111
+ summary: "POST /admin/collection/:collectionId/journeys.analytics/:journeyId/steps/:stepId/recipients Returns recipient IDs for a given journey step."
4516
4112
  operationId: journeysAnalytics_recipients
4517
4113
  security:
4518
4114
  - bearerAuth: []
@@ -4656,7 +4252,7 @@ paths:
4656
4252
  post:
4657
4253
  tags:
4658
4254
  - location
4659
- summary: "Platform: Create a global location (super admin; requires features.adminApps) POST /platform/location / export async fun"
4255
+ summary: "Admin: Create a collection-scoped location POST /admin/collection/:collectionId/location"
4660
4256
  operationId: location_create
4661
4257
  security:
4662
4258
  - bearerAuth: []
@@ -4689,7 +4285,7 @@ paths:
4689
4285
  get:
4690
4286
  tags:
4691
4287
  - location
4692
- summary: "Platform: Create a global location (super admin; requires features.adminApps) POST /platform/location / export async fun"
4288
+ summary: "Admin: Search locations to pick during setup (combines collection + global) GET /admin/collection/:collectionId/location"
4693
4289
  operationId: location_search
4694
4290
  security:
4695
4291
  - bearerAuth: []
@@ -6014,7 +5610,7 @@ paths:
6014
5610
  post:
6015
5611
  tags:
6016
5612
  - product
6017
- summary: Delete a product for a collection (admin only).
5613
+ summary: product.find
6018
5614
  operationId: product_find
6019
5615
  security:
6020
5616
  - bearerAuth: []
@@ -6194,7 +5790,7 @@ paths:
6194
5790
  get:
6195
5791
  tags:
6196
5792
  - proof
6197
- summary: Get proofs for a product (admin only).
5793
+ summary: Get proofs for a batch (admin only).
6198
5794
  operationId: proof_getByBatch
6199
5795
  security:
6200
5796
  - bearerAuth: []
@@ -6233,7 +5829,7 @@ paths:
6233
5829
  post:
6234
5830
  tags:
6235
5831
  - product
6236
- summary: "/ export async function clone( collectionId: string, productId: string, body: Record<string, JsonValue> = {} ): Promise<"
5832
+ summary: product.createClaimWindow
6237
5833
  operationId: product_createClaimWindow
6238
5834
  security:
6239
5835
  - bearerAuth: []
@@ -6272,7 +5868,7 @@ paths:
6272
5868
  put:
6273
5869
  tags:
6274
5870
  - product
6275
- summary: "/ export async function listAssets( collectionId: string, productId: string, admin?: boolean ): Promise<unknown> { const"
5871
+ summary: product.updateClaimWindow
6276
5872
  operationId: product_updateClaimWindow
6277
5873
  security:
6278
5874
  - bearerAuth: []
@@ -6316,7 +5912,7 @@ paths:
6316
5912
  post:
6317
5913
  tags:
6318
5914
  - product
6319
- summary: "/ export async function publicFind( collectionId: string, params?: ProductPublicFindParams ): Promise<ProductResponse[]>"
5915
+ summary: product.clone
6320
5916
  operationId: product_clone
6321
5917
  security:
6322
5918
  - bearerAuth: []
@@ -6356,7 +5952,7 @@ paths:
6356
5952
  get:
6357
5953
  tags:
6358
5954
  - product
6359
- summary: "/ export async function refresh( collectionId: string, productId: string ): Promise<ProductResponse> { const path = `/admin/collection/${encodeURIComponent(collectionId)}/product/${encodeURIComponent(productId)}/refresh` return request<ProductResponse>(path) } /** Get serial numbers for a product (admin only)."
5955
+ summary: Get serial numbers for a product (admin only).
6360
5956
  operationId: product_getSN
6361
5957
  security:
6362
5958
  - bearerAuth: []
@@ -6423,7 +6019,7 @@ paths:
6423
6019
  get:
6424
6020
  tags:
6425
6021
  - proof
6426
- summary: Delete a proof for a product (admin only).
6022
+ summary: Get proofs for a product (admin only).
6427
6023
  operationId: proof_getByProduct
6428
6024
  security:
6429
6025
  - bearerAuth: []
@@ -6456,7 +6052,7 @@ paths:
6456
6052
  post:
6457
6053
  tags:
6458
6054
  - proof
6459
- summary: List all Proofs for a Collection.
6055
+ summary: Create a proof for a product (admin only).
6460
6056
  operationId: proof_create
6461
6057
  security:
6462
6058
  - bearerAuth: []
@@ -6494,7 +6090,7 @@ paths:
6494
6090
  post:
6495
6091
  tags:
6496
6092
  - proof
6497
- summary: Get proofs for a user in a collection (admin only).
6093
+ summary: Find proofs for a product (admin only).
6498
6094
  operationId: proof_findByProduct
6499
6095
  security:
6500
6096
  - bearerAuth: []
@@ -6528,7 +6124,7 @@ paths:
6528
6124
  put:
6529
6125
  tags:
6530
6126
  - proof
6531
- summary: Create a proof for a product (admin only).
6127
+ summary: Update a proof for a product (admin only).
6532
6128
  operationId: proof_update
6533
6129
  security:
6534
6130
  - bearerAuth: []
@@ -6608,7 +6204,7 @@ paths:
6608
6204
  get:
6609
6205
  tags:
6610
6206
  - product
6611
- summary: "/ export async function createClaimWindow( collectionId: string, productId: string, body: Record<string, JsonValue> ): P"
6207
+ summary: product.refresh
6612
6208
  operationId: product_refresh
6613
6209
  security:
6614
6210
  - bearerAuth: []
@@ -7119,7 +6715,7 @@ paths:
7119
6715
  get:
7120
6716
  tags:
7121
6717
  - proof
7122
- summary: Delete a proof for a product (admin only).
6718
+ summary: Get proofs for a user in a collection (admin only).
7123
6719
  operationId: proof_getByUser
7124
6720
  security:
7125
6721
  - bearerAuth: []
@@ -8332,7 +7928,7 @@ paths:
8332
7928
  post:
8333
7929
  tags:
8334
7930
  - authKit
8335
- summary: Namespace containing helper functions for the new AuthKit API.
7931
+ summary: Google OAuth login (public).
8336
7932
  operationId: authKit_googleLogin
8337
7933
  security: []
8338
7934
  parameters:
@@ -8358,7 +7954,7 @@ paths:
8358
7954
  post:
8359
7955
  tags:
8360
7956
  - authKit
8361
- summary: Namespace containing helper functions for the new AuthKit API.
7957
+ summary: Login with email + password (public).
8362
7958
  operationId: authKit_login
8363
7959
  security: []
8364
7960
  parameters:
@@ -8384,7 +7980,7 @@ paths:
8384
7980
  post:
8385
7981
  tags:
8386
7982
  - authKit
8387
- summary: Login with email + password (public).
7983
+ summary: Send a magic link email to the user (public).
8388
7984
  operationId: authKit_sendMagicLink
8389
7985
  security: []
8390
7986
  parameters:
@@ -8417,7 +8013,7 @@ paths:
8417
8013
  post:
8418
8014
  tags:
8419
8015
  - authKit
8420
- summary: Google OAuth login (public).
8016
+ summary: Verify a magic link token and authenticate/create the user (public).
8421
8017
  operationId: authKit_verifyMagicLink
8422
8018
  security: []
8423
8019
  parameters:
@@ -8443,7 +8039,7 @@ paths:
8443
8039
  post:
8444
8040
  tags:
8445
8041
  - authKit
8446
- summary: Send a magic link email to the user (public).
8042
+ summary: Send phone verification code (public).
8447
8043
  operationId: authKit_sendPhoneCode
8448
8044
  security: []
8449
8045
  parameters:
@@ -8469,7 +8065,7 @@ paths:
8469
8065
  post:
8470
8066
  tags:
8471
8067
  - authKit
8472
- summary: Verify a magic link token and authenticate/create the user (public).
8068
+ summary: Verify phone verification code (public).
8473
8069
  operationId: authKit_verifyPhoneCode
8474
8070
  security: []
8475
8071
  parameters:
@@ -8495,7 +8091,7 @@ paths:
8495
8091
  post:
8496
8092
  tags:
8497
8093
  - authKit
8498
- summary: Namespace containing helper functions for the new AuthKit API.
8094
+ summary: Register a new user (public).
8499
8095
  operationId: authKit_register
8500
8096
  security: []
8501
8097
  parameters:
@@ -8561,7 +8157,7 @@ paths:
8561
8157
  post:
8562
8158
  tags:
8563
8159
  - authKit
8564
- summary: Send phone verification code (public).
8160
+ summary: Verify phone verification code (public).
8565
8161
  operationId: authKit_requestPasswordReset
8566
8162
  security: []
8567
8163
  parameters:
@@ -8751,7 +8347,7 @@ paths:
8751
8347
  post:
8752
8348
  tags:
8753
8349
  - userAppData
8754
- summary: "Get user's config blob for an app."
8350
+ summary: "Set user's config blob for an app."
8755
8351
  operationId: userAppData_setConfig
8756
8352
  security:
8757
8353
  - bearerAuth: []
@@ -8776,7 +8372,7 @@ paths:
8776
8372
  delete:
8777
8373
  tags:
8778
8374
  - userAppData
8779
- summary: "Set user's config blob for an app."
8375
+ summary: "Delete user's config blob for an app."
8780
8376
  operationId: userAppData_deleteConfig
8781
8377
  security:
8782
8378
  - bearerAuth: []
@@ -8804,7 +8400,7 @@ paths:
8804
8400
  get:
8805
8401
  tags:
8806
8402
  - userAppData
8807
- summary: "Delete user's config blob for an app."
8403
+ summary: "List all user's data items for an app."
8808
8404
  operationId: userAppData_list
8809
8405
  security:
8810
8406
  - bearerAuth: []
@@ -8831,7 +8427,7 @@ paths:
8831
8427
  post:
8832
8428
  tags:
8833
8429
  - userAppData
8834
- summary: Get a specific user data item by ID.
8430
+ summary: Create or update a user data item.
8835
8431
  operationId: userAppData_set
8836
8432
  security:
8837
8433
  - bearerAuth: []
@@ -8857,7 +8453,7 @@ paths:
8857
8453
  get:
8858
8454
  tags:
8859
8455
  - userAppData
8860
- summary: "List all user's data items for an app."
8456
+ summary: Get a specific user data item by ID.
8861
8457
  operationId: userAppData_get
8862
8458
  security:
8863
8459
  - bearerAuth: []
@@ -8887,7 +8483,7 @@ paths:
8887
8483
  delete:
8888
8484
  tags:
8889
8485
  - userAppData
8890
- summary: Create or update a user data item.
8486
+ summary: Delete a user data item by ID.
8891
8487
  operationId: userAppData_remove
8892
8488
  security:
8893
8489
  - bearerAuth: []
@@ -8962,7 +8558,7 @@ paths:
8962
8558
  post:
8963
8559
  tags:
8964
8560
  - auth
8965
- summary: Requests an admin JWT for the current user and a specific collection Returns JWT if valid.
8561
+ summary: Tries to register a new user account.
8966
8562
  operationId: auth_registerUser
8967
8563
  security:
8968
8564
  - bearerAuth: []
@@ -8989,7 +8585,7 @@ paths:
8989
8585
  post:
8990
8586
  tags:
8991
8587
  - auth
8992
- summary: Requests an admin JWT for the current user and a specific collection Returns JWT if valid.
8588
+ summary: Requests a JWT for the current user and a specific collection/product/proof Validates if the user has access to the reso
8993
8589
  operationId: auth_requestPublicJWT
8994
8590
  security:
8995
8591
  - bearerAuth: []
@@ -9010,7 +8606,7 @@ paths:
9010
8606
  post:
9011
8607
  tags:
9012
8608
  - auth
9013
- summary: Login with email and password.
8609
+ summary: Verifies the current bearerToken (or a provided token).
9014
8610
  operationId: auth_verifyToken
9015
8611
  security:
9016
8612
  - bearerAuth: []
@@ -9031,7 +8627,7 @@ paths:
9031
8627
  get:
9032
8628
  tags:
9033
8629
  - collection
9034
- summary: Retrieves all Collections.
8630
+ summary: Retrieve a collection by its shortId (public endpoint).
9035
8631
  operationId: collection_getShortId
9036
8632
  security: []
9037
8633
  parameters:
@@ -9109,7 +8705,7 @@ paths:
9109
8705
  post:
9110
8706
  tags:
9111
8707
  - publicClient
9112
- summary: "Generate text-to-speech audio / export async function generate( collectionId: string, request: TTSRequest ): Promise<Blo"
8708
+ summary: Chat with product assistant (RAG)
9113
8709
  operationId: publicClient_chat
9114
8710
  security: []
9115
8711
  parameters:
@@ -9141,7 +8737,7 @@ paths:
9141
8737
  get:
9142
8738
  tags:
9143
8739
  - publicClient
9144
- summary: "Get session history / export async function getSession(collectionId: string, sessionId: string): Promise<Session> { cons"
8740
+ summary: Check rate limit status
9145
8741
  operationId: publicClient_getRateLimit
9146
8742
  security: []
9147
8743
  parameters:
@@ -9172,7 +8768,7 @@ paths:
9172
8768
  get:
9173
8769
  tags:
9174
8770
  - publicClient
9175
- summary: "Chat with product assistant (RAG) / export async function chat( collectionId: string, request: PublicChatRequest ): Prom"
8771
+ summary: Get session history
9176
8772
  operationId: publicClient_getSession
9177
8773
  security: []
9178
8774
  parameters:
@@ -9203,7 +8799,7 @@ paths:
9203
8799
  post:
9204
8800
  tags:
9205
8801
  - publicClient
9206
- summary: "Clear session history / export async function clearSession(collectionId: string, sessionId: string): Promise<{ success:"
8802
+ summary: Generate ephemeral token for Gemini Live
9207
8803
  operationId: publicClient_getToken
9208
8804
  security: []
9209
8805
  parameters:
@@ -9585,7 +9181,7 @@ paths:
9585
9181
  post:
9586
9182
  tags:
9587
9183
  - comms
9588
- summary: "Public: List registered contact methods."
9184
+ summary: "Public: Register email method for a contact."
9589
9185
  operationId: comms_registerEmail
9590
9186
  security: []
9591
9187
  parameters:
@@ -9619,7 +9215,7 @@ paths:
9619
9215
  get:
9620
9216
  tags:
9621
9217
  - comms
9622
- summary: "Public: Check subscription status for a subject."
9218
+ summary: "Public: List registered contact methods."
9623
9219
  operationId: comms_listMethods
9624
9220
  security: []
9625
9221
  parameters:
@@ -9656,7 +9252,7 @@ paths:
9656
9252
  post:
9657
9253
  tags:
9658
9254
  - comms
9659
- summary: "Communications namespace for sending notifications and managing user communications / export namespace comms { /** Public: Get VAPID public key used for Web Push subscriptions."
9255
+ summary: "Public: Register a Web Push subscription under unified comms."
9660
9256
  operationId: comms_registerPush
9661
9257
  security: []
9662
9258
  parameters:
@@ -9690,7 +9286,7 @@ paths:
9690
9286
  get:
9691
9287
  tags:
9692
9288
  - comms
9693
- summary: "Communications namespace for sending notifications and managing user communications / export namespace comms { /** Public: Get VAPID public key used for Web Push subscriptions."
9289
+ summary: "Public: Get VAPID public key used for Web Push subscriptions."
9694
9290
  operationId: comms_getPushVapidPublicKey
9695
9291
  security: []
9696
9292
  parameters:
@@ -9717,7 +9313,7 @@ paths:
9717
9313
  post:
9718
9314
  tags:
9719
9315
  - comms
9720
- summary: "Public: Register email method for a contact."
9316
+ summary: "Public: Register SMS method for a contact."
9721
9317
  operationId: comms_registerSms
9722
9318
  security: []
9723
9319
  parameters:
@@ -9751,7 +9347,7 @@ paths:
9751
9347
  post:
9752
9348
  tags:
9753
9349
  - comms
9754
- summary: "Public: Upsert preferences for a specific subject (or default if subject omitted)."
9350
+ summary: "Public: Subscribe/unsubscribe contact to a subject."
9755
9351
  operationId: comms_subscribe
9756
9352
  security: []
9757
9353
  parameters:
@@ -9785,7 +9381,7 @@ paths:
9785
9381
  get:
9786
9382
  tags:
9787
9383
  - comms
9788
- summary: "Public: Subscribe/unsubscribe contact to a subject."
9384
+ summary: "Public: Check subscription status for a subject."
9789
9385
  operationId: comms_checkSubscription
9790
9386
  security: []
9791
9387
  parameters:
@@ -9832,7 +9428,7 @@ paths:
9832
9428
  post:
9833
9429
  tags:
9834
9430
  - comms
9835
- summary: "Public: Register SMS method for a contact."
9431
+ summary: "Public: Resolve contacts for a subject with identity hints."
9836
9432
  operationId: comms_resolveSubscriptions
9837
9433
  security: []
9838
9434
  parameters:
@@ -9866,7 +9462,7 @@ paths:
9866
9462
  get:
9867
9463
  tags:
9868
9464
  - comms
9869
- summary: "Admin: Patch comms settings for a collection."
9465
+ summary: "Public: Fetch configured topics for a collection."
9870
9466
  operationId: comms_getPublicTopics
9871
9467
  security: []
9872
9468
  parameters:
@@ -9893,7 +9489,7 @@ paths:
9893
9489
  get:
9894
9490
  tags:
9895
9491
  - comms
9896
- summary: "Public: Fetch configured topics for a collection."
9492
+ summary: "Public: Unsubscribe a contact from a category or channel."
9897
9493
  operationId: comms_unsubscribe
9898
9494
  security: []
9899
9495
  parameters:
@@ -10228,7 +9824,7 @@ paths:
10228
9824
  get:
10229
9825
  tags:
10230
9826
  - attestations
10231
- summary: Time-series summary for a specific container (public shortcut).
9827
+ summary: Latest snapshot for a specific container (public shortcut).
10232
9828
  operationId: attestations_publicContainerLatest
10233
9829
  security: []
10234
9830
  parameters:
@@ -10330,7 +9926,7 @@ paths:
10330
9926
  get:
10331
9927
  tags:
10332
9928
  - attestations
10333
- summary: Tree time-series summary rooted at a specific container (public shortcut).
9929
+ summary: Tree latest snapshot rooted at a specific container (public shortcut).
10334
9930
  operationId: attestations_publicContainerTreeLatest
10335
9931
  security: []
10336
9932
  parameters:
@@ -10371,7 +9967,7 @@ paths:
10371
9967
  get:
10372
9968
  tags:
10373
9969
  - attestations
10374
- summary: Latest snapshot for a specific container (public shortcut).
9970
+ summary: Tree time-series summary rooted at a specific container (public shortcut).
10375
9971
  operationId: attestations_publicContainerTreeSummary
10376
9972
  security: []
10377
9973
  parameters:
@@ -10794,7 +10390,7 @@ paths:
10794
10390
  get:
10795
10391
  tags:
10796
10392
  - location
10797
- summary: "Admin: Search locations to pick during setup (combines collection + global) GET /admin/collection/:collectionId/location"
10393
+ summary: "Public: Fetch a location for a collection; returns either a collection-owned or global fallback GET /public/collection/:"
10798
10394
  operationId: location_getPublicForCollection
10799
10395
  security: []
10800
10396
  parameters:
@@ -10853,7 +10449,7 @@ paths:
10853
10449
  get:
10854
10450
  tags:
10855
10451
  - loyalty
10856
- summary: "List active earning rules for a scheme useful for showing \"how to earn\" in a loyalty UI."
10452
+ summary: "Get all active schemes with the caller's membership embedded in each."
10857
10453
  operationId: loyalty_publicGetMe
10858
10454
  security: []
10859
10455
  parameters:
@@ -10881,7 +10477,7 @@ paths:
10881
10477
  get:
10882
10478
  tags:
10883
10479
  - loyalty
10884
- summary: List active schemes for a collection.
10480
+ summary: Get a single active scheme.
10885
10481
  operationId: loyalty_publicGet
10886
10482
  security: []
10887
10483
  parameters:
@@ -10912,7 +10508,7 @@ paths:
10912
10508
  get:
10913
10509
  tags:
10914
10510
  - loyalty
10915
- summary: List active schemes for a collection.
10511
+ summary: "List active earning rules for a scheme — useful for showing \"how to earn\" in a loyalty UI."
10916
10512
  operationId: loyalty_publicListEarningRules
10917
10513
  security: []
10918
10514
  parameters:
@@ -10945,7 +10541,7 @@ paths:
10945
10541
  get:
10946
10542
  tags:
10947
10543
  - loyalty
10948
- summary: "Get all active schemes with the caller's membership embedded in each."
10544
+ summary: "Get the authenticated caller's membership (balance + lifetimePoints) on a specific scheme."
10949
10545
  operationId: loyalty_publicGetMine
10950
10546
  security: []
10951
10547
  parameters:
@@ -10976,7 +10572,7 @@ paths:
10976
10572
  get:
10977
10573
  tags:
10978
10574
  - product
10979
- summary: "/ export async function find( collectionId: string, body: ProductQueryRequest ): Promise<ProductQueryResponse> { const p"
10575
+ summary: product.publicFind
10980
10576
  operationId: product_publicFind
10981
10577
  security: []
10982
10578
  parameters:
@@ -11073,7 +10669,7 @@ paths:
11073
10669
  post:
11074
10670
  tags:
11075
10671
  - product
11076
- summary: "/ export async function publicLookupClaim( collectionId: string, productId: string, claimId: string ): Promise<unknown>"
10672
+ summary: product.publicCreateClaim
11077
10673
  operationId: product_publicCreateClaim
11078
10674
  security: []
11079
10675
  parameters:
@@ -11109,7 +10705,7 @@ paths:
11109
10705
  get:
11110
10706
  tags:
11111
10707
  - product
11112
- summary: Look up a serial number by code for a product (admin only).
10708
+ summary: product.publicLookupClaim
11113
10709
  operationId: product_publicLookupClaim
11114
10710
  security: []
11115
10711
  parameters:
@@ -11222,7 +10818,7 @@ paths:
11222
10818
  get:
11223
10819
  tags:
11224
10820
  - attestation
11225
- summary: "These endpoints store attestation data against a specific proof in Firestore (`/product/:productId/proof/:proofId/attestations`)."
10821
+ summary: List all attestations for a proof.
11226
10822
  operationId: attestation_list
11227
10823
  security: []
11228
10824
  parameters:
@@ -11259,7 +10855,7 @@ paths:
11259
10855
  post:
11260
10856
  tags:
11261
10857
  - attestation
11262
- summary: Get a single attestation by ID.
10858
+ summary: Create a new attestation for a proof.
11263
10859
  operationId: attestation_create
11264
10860
  security: []
11265
10861
  parameters:
@@ -11301,7 +10897,7 @@ paths:
11301
10897
  get:
11302
10898
  tags:
11303
10899
  - attestation
11304
- summary: List all attestations for a proof.
10900
+ summary: Get a single attestation by ID.
11305
10901
  operationId: attestation_get
11306
10902
  security: []
11307
10903
  parameters:
@@ -11341,7 +10937,7 @@ paths:
11341
10937
  put:
11342
10938
  tags:
11343
10939
  - attestation
11344
- summary: Create a new attestation for a proof.
10940
+ summary: Update an attestation.
11345
10941
  operationId: attestation_update
11346
10942
  security: []
11347
10943
  parameters:
@@ -11387,7 +10983,7 @@ paths:
11387
10983
  delete:
11388
10984
  tags:
11389
10985
  - attestation
11390
- summary: Update an attestation.
10986
+ summary: Delete an attestation.
11391
10987
  operationId: attestation_remove
11392
10988
  security: []
11393
10989
  parameters:
@@ -11429,7 +11025,7 @@ paths:
11429
11025
  put:
11430
11026
  tags:
11431
11027
  - proof
11432
- summary: Update a proof for a product (admin only).
11028
+ summary: Claim a proof for a product using a proof ID (serial number, NFC tag, etc.).
11433
11029
  operationId: proof_claim
11434
11030
  security: []
11435
11031
  parameters:
@@ -11542,7 +11138,7 @@ paths:
11542
11138
  get:
11543
11139
  tags:
11544
11140
  - proof
11545
- summary: Retrieves a single Proof by Collection ID, Product ID, and Proof ID.
11141
+ summary: List all Proofs for a Collection.
11546
11142
  operationId: proof_list
11547
11143
  security: []
11548
11144
  parameters:
@@ -11858,7 +11454,7 @@ paths:
11858
11454
  get:
11859
11455
  tags:
11860
11456
  - config
11861
- summary: Returns the full platform field catalog.
11457
+ summary: Returns all proof type definitions.
11862
11458
  operationId: config_getProofTypes
11863
11459
  security: []
11864
11460
  responses:
@@ -11880,7 +11476,7 @@ paths:
11880
11476
  get:
11881
11477
  tags:
11882
11478
  - location
11883
- summary: "Admin: Create a collection-scoped location POST /admin/collection/:collectionId/location / export async function create("
11479
+ summary: "Public: Fetch a global location by ID GET /public/location/:locationId"
11884
11480
  operationId: location_getPublic
11885
11481
  security: []
11886
11482
  parameters:
@@ -11932,7 +11528,7 @@ paths:
11932
11528
  get:
11933
11529
  tags:
11934
11530
  - nfc
11935
- summary: Claim an NFC tag (public).
11531
+ summary: Lookup a tag by its ID (public).
11936
11532
  operationId: nfc_lookupTag
11937
11533
  security: []
11938
11534
  parameters:
@@ -11960,7 +11556,7 @@ paths:
11960
11556
  post:
11961
11557
  tags:
11962
11558
  - nfc
11963
- summary: Claim an NFC tag (public).
11559
+ summary: Validate an NFC tag payload (public).
11964
11560
  operationId: nfc_validate
11965
11561
  security: []
11966
11562
  responses:
@@ -11986,7 +11582,7 @@ paths:
11986
11582
  get:
11987
11583
  tags:
11988
11584
  - qr
11989
- summary: QR namespace for public short code lookups.
11585
+ summary: Resolve a short code to related resource identifiers.
11990
11586
  operationId: qr_lookupShortCode
11991
11587
  security: []
11992
11588
  parameters:
@@ -12032,50 +11628,288 @@ paths:
12032
11628
  content:
12033
11629
  application/json:
12034
11630
  schema:
12035
- $ref: "#/components/schemas/TagIndexEntry"
11631
+ $ref: "#/components/schemas/TagIndexEntry"
11632
+ 400:
11633
+ description: Bad request
11634
+ 401:
11635
+ description: Unauthorized
11636
+ 404:
11637
+ description: Not found
11638
+ /public/template/getAllowed/{collectionId}:
11639
+ get:
11640
+ tags:
11641
+ - template
11642
+ summary: template.getAllowedGlobal
11643
+ operationId: template_getAllowedGlobal
11644
+ security: []
11645
+ parameters:
11646
+ - name: collectionId
11647
+ in: path
11648
+ required: true
11649
+ schema:
11650
+ type: string
11651
+ responses:
11652
+ 200:
11653
+ description: Success
11654
+ content:
11655
+ application/json:
11656
+ schema:
11657
+ type: array
11658
+ items:
11659
+ $ref: "#/components/schemas/TemplatePublic"
11660
+ 400:
11661
+ description: Bad request
11662
+ 401:
11663
+ description: Unauthorized
11664
+ 404:
11665
+ description: Not found
11666
+ /public/template/{templateId}:
11667
+ get:
11668
+ tags:
11669
+ - template
11670
+ summary: template.getGlobal
11671
+ operationId: template_getGlobal
11672
+ security: []
11673
+ parameters:
11674
+ - name: templateId
11675
+ in: path
11676
+ required: true
11677
+ schema:
11678
+ type: string
11679
+ responses:
11680
+ 200:
11681
+ description: Success
11682
+ content:
11683
+ application/json:
11684
+ schema:
11685
+ $ref: "#/components/schemas/TemplatePublic"
11686
+ 400:
11687
+ description: Bad request
11688
+ 401:
11689
+ description: Unauthorized
11690
+ 404:
11691
+ description: Not found
11692
+ /{zone}/collection/{collectionId}/app/{appId}/cases:
11693
+ get:
11694
+ tags:
11695
+ - cases
11696
+ summary: List cases with optional query parameters GET /cases
11697
+ operationId: cases_list
11698
+ security: []
11699
+ parameters:
11700
+ - name: zone
11701
+ in: path
11702
+ required: true
11703
+ schema:
11704
+ type: string
11705
+ - name: collectionId
11706
+ in: path
11707
+ required: true
11708
+ schema:
11709
+ type: string
11710
+ - name: appId
11711
+ in: path
11712
+ required: true
11713
+ schema:
11714
+ type: string
11715
+ - name: category
11716
+ in: query
11717
+ required: false
11718
+ schema:
11719
+ type: string
11720
+ - name: priority
11721
+ in: query
11722
+ required: false
11723
+ schema:
11724
+ type: string
11725
+ - name: ref
11726
+ in: query
11727
+ required: false
11728
+ schema:
11729
+ type: string
11730
+ - name: proofId
11731
+ in: query
11732
+ required: false
11733
+ schema:
11734
+ type: string
11735
+ - name: contactId
11736
+ in: query
11737
+ required: false
11738
+ schema:
11739
+ type: string
11740
+ - name: assignedTo
11741
+ in: query
11742
+ required: false
11743
+ schema:
11744
+ type: string
11745
+ - name: closedAt
11746
+ in: query
11747
+ required: false
11748
+ schema:
11749
+ type: string
11750
+ responses:
11751
+ 200:
11752
+ description: Success
11753
+ content:
11754
+ application/json:
11755
+ schema:
11756
+ type: object
11757
+ additionalProperties: true
11758
+ 400:
11759
+ description: Bad request
11760
+ 401:
11761
+ description: Unauthorized
11762
+ 404:
11763
+ description: Not found
11764
+ post:
11765
+ tags:
11766
+ - cases
11767
+ summary: Create a new case POST /cases
11768
+ operationId: cases_create
11769
+ security: []
11770
+ parameters:
11771
+ - name: zone
11772
+ in: path
11773
+ required: true
11774
+ schema:
11775
+ type: string
11776
+ - name: collectionId
11777
+ in: path
11778
+ required: true
11779
+ schema:
11780
+ type: string
11781
+ - name: appId
11782
+ in: path
11783
+ required: true
11784
+ schema:
11785
+ type: string
11786
+ responses:
11787
+ 200:
11788
+ description: Success
11789
+ content:
11790
+ application/json:
11791
+ schema:
11792
+ $ref: "#/components/schemas/AppCase"
11793
+ 400:
11794
+ description: Bad request
11795
+ 401:
11796
+ description: Unauthorized
11797
+ 404:
11798
+ description: Not found
11799
+ requestBody:
11800
+ required: true
11801
+ content:
11802
+ application/json:
11803
+ schema:
11804
+ $ref: "#/components/schemas/CreateCaseInput"
11805
+ /{zone}/collection/{collectionId}/app/{appId}/cases/aggregate:
11806
+ post:
11807
+ tags:
11808
+ - cases
11809
+ summary: Get aggregate statistics for cases POST /cases/aggregate
11810
+ operationId: cases_aggregate
11811
+ security: []
11812
+ parameters:
11813
+ - name: zone
11814
+ in: path
11815
+ required: true
11816
+ schema:
11817
+ type: string
11818
+ - name: collectionId
11819
+ in: path
11820
+ required: true
11821
+ schema:
11822
+ type: string
11823
+ - name: appId
11824
+ in: path
11825
+ required: true
11826
+ schema:
11827
+ type: string
11828
+ responses:
11829
+ 200:
11830
+ description: Success
11831
+ content:
11832
+ application/json:
11833
+ schema:
11834
+ $ref: "#/components/schemas/AggregateResponse"
11835
+ 400:
11836
+ description: Bad request
11837
+ 401:
11838
+ description: Unauthorized
11839
+ 404:
11840
+ description: Not found
11841
+ requestBody:
11842
+ required: true
11843
+ content:
11844
+ application/json:
11845
+ schema:
11846
+ $ref: "#/components/schemas/AggregateRequest"
11847
+ /{zone}/collection/{collectionId}/app/{appId}/cases/summary:
11848
+ post:
11849
+ tags:
11850
+ - cases
11851
+ summary: Get case summary (admin only) POST /cases/summary
11852
+ operationId: cases_summary
11853
+ security: []
11854
+ parameters:
11855
+ - name: zone
11856
+ in: path
11857
+ required: true
11858
+ schema:
11859
+ type: string
11860
+ - name: collectionId
11861
+ in: path
11862
+ required: true
11863
+ schema:
11864
+ type: string
11865
+ - name: appId
11866
+ in: path
11867
+ required: true
11868
+ schema:
11869
+ type: string
11870
+ responses:
11871
+ 200:
11872
+ description: Success
11873
+ content:
11874
+ application/json:
11875
+ schema:
11876
+ $ref: "#/components/schemas/CaseSummaryResponse"
12036
11877
  400:
12037
11878
  description: Bad request
12038
11879
  401:
12039
11880
  description: Unauthorized
12040
11881
  404:
12041
11882
  description: Not found
12042
- /public/template/getAllowed/{collectionId}:
11883
+ requestBody:
11884
+ required: true
11885
+ content:
11886
+ application/json:
11887
+ schema:
11888
+ $ref: "#/components/schemas/CaseSummaryRequest"
11889
+ /{zone}/collection/{collectionId}/app/{appId}/cases/{caseId}:
12043
11890
  get:
12044
11891
  tags:
12045
- - template
12046
- summary: template.getAllowedGlobal
12047
- operationId: template_getAllowedGlobal
11892
+ - cases
11893
+ summary: "Get a single case by ID GET /cases/:caseId"
11894
+ operationId: cases_get
12048
11895
  security: []
12049
11896
  parameters:
11897
+ - name: zone
11898
+ in: path
11899
+ required: true
11900
+ schema:
11901
+ type: string
12050
11902
  - name: collectionId
12051
11903
  in: path
12052
11904
  required: true
12053
11905
  schema:
12054
11906
  type: string
12055
- responses:
12056
- 200:
12057
- description: Success
12058
- content:
12059
- application/json:
12060
- schema:
12061
- type: array
12062
- items:
12063
- $ref: "#/components/schemas/TemplatePublic"
12064
- 400:
12065
- description: Bad request
12066
- 401:
12067
- description: Unauthorized
12068
- 404:
12069
- description: Not found
12070
- /public/template/{templateId}:
12071
- get:
12072
- tags:
12073
- - template
12074
- summary: template.getGlobal
12075
- operationId: template_getGlobal
12076
- security: []
12077
- parameters:
12078
- - name: templateId
11907
+ - name: appId
11908
+ in: path
11909
+ required: true
11910
+ schema:
11911
+ type: string
11912
+ - name: caseId
12079
11913
  in: path
12080
11914
  required: true
12081
11915
  schema:
@@ -12086,22 +11920,36 @@ paths:
12086
11920
  content:
12087
11921
  application/json:
12088
11922
  schema:
12089
- $ref: "#/components/schemas/TemplatePublic"
11923
+ $ref: "#/components/schemas/AppCase"
12090
11924
  400:
12091
11925
  description: Bad request
12092
11926
  401:
12093
11927
  description: Unauthorized
12094
11928
  404:
12095
11929
  description: Not found
12096
- /{base}:
12097
- get:
11930
+ patch:
12098
11931
  tags:
12099
- - appConfiguration
12100
- summary: Get app configuration for a collection/product scope.
12101
- operationId: appConfiguration_getConfig
11932
+ - cases
11933
+ summary: "Update a case PATCH /cases/:caseId Admin can update any field, public (owner) can only update data and owner zones"
11934
+ operationId: cases_update
12102
11935
  security: []
12103
11936
  parameters:
12104
- - name: base
11937
+ - name: zone
11938
+ in: path
11939
+ required: true
11940
+ schema:
11941
+ type: string
11942
+ - name: collectionId
11943
+ in: path
11944
+ required: true
11945
+ schema:
11946
+ type: string
11947
+ - name: appId
11948
+ in: path
11949
+ required: true
11950
+ schema:
11951
+ type: string
11952
+ - name: caseId
12105
11953
  in: path
12106
11954
  required: true
12107
11955
  schema:
@@ -12111,21 +11959,44 @@ paths:
12111
11959
  description: Success
12112
11960
  content:
12113
11961
  application/json:
12114
- schema: {}
11962
+ schema:
11963
+ $ref: "#/components/schemas/AppCase"
12115
11964
  400:
12116
11965
  description: Bad request
12117
11966
  401:
12118
11967
  description: Unauthorized
12119
11968
  404:
12120
11969
  description: Not found
11970
+ requestBody:
11971
+ required: true
11972
+ content:
11973
+ application/json:
11974
+ schema:
11975
+ $ref: "#/components/schemas/UpdateCaseInput"
11976
+ /{zone}/collection/{collectionId}/app/{appId}/cases/{caseId}/history:
12121
11977
  post:
12122
11978
  tags:
12123
- - appConfiguration
12124
- summary: Set app configuration for a collection/product scope.
12125
- operationId: appConfiguration_setConfig
11979
+ - cases
11980
+ summary: "Append an entry to case history (admin only) POST /cases/:caseId/history"
11981
+ operationId: cases_appendHistory
12126
11982
  security: []
12127
11983
  parameters:
12128
- - name: base
11984
+ - name: zone
11985
+ in: path
11986
+ required: true
11987
+ schema:
11988
+ type: string
11989
+ - name: collectionId
11990
+ in: path
11991
+ required: true
11992
+ schema:
11993
+ type: string
11994
+ - name: appId
11995
+ in: path
11996
+ required: true
11997
+ schema:
11998
+ type: string
11999
+ - name: caseId
12129
12000
  in: path
12130
12001
  required: true
12131
12002
  schema:
@@ -12135,7 +12006,8 @@ paths:
12135
12006
  description: Success
12136
12007
  content:
12137
12008
  application/json:
12138
- schema: {}
12009
+ schema:
12010
+ $ref: "#/components/schemas/AppCase"
12139
12011
  400:
12140
12012
  description: Bad request
12141
12013
  401:
@@ -12147,15 +12019,31 @@ paths:
12147
12019
  content:
12148
12020
  application/json:
12149
12021
  schema:
12150
- $ref: "#/components/schemas/AppConfigOptions"
12151
- delete:
12022
+ $ref: "#/components/schemas/AppendHistoryInput"
12023
+ /{zone}/collection/{collectionId}/app/{appId}/cases/{caseId}/related:
12024
+ get:
12152
12025
  tags:
12153
- - appConfiguration
12154
- summary: Delete app configuration for a collection/product scope.
12155
- operationId: appConfiguration_deleteConfig
12026
+ - cases
12027
+ summary: "Get related threads and records for a case (admin only) GET /cases/:caseId/related"
12028
+ operationId: cases_related
12156
12029
  security: []
12157
12030
  parameters:
12158
- - name: base
12031
+ - name: zone
12032
+ in: path
12033
+ required: true
12034
+ schema:
12035
+ type: string
12036
+ - name: collectionId
12037
+ in: path
12038
+ required: true
12039
+ schema:
12040
+ type: string
12041
+ - name: appId
12042
+ in: path
12043
+ required: true
12044
+ schema:
12045
+ type: string
12046
+ - name: caseId
12159
12047
  in: path
12160
12048
  required: true
12161
12049
  schema:
@@ -12166,8 +12054,7 @@ paths:
12166
12054
  content:
12167
12055
  application/json:
12168
12056
  schema:
12169
- type: object
12170
- additionalProperties: true
12057
+ $ref: "#/components/schemas/RelatedResponse"
12171
12058
  400:
12172
12059
  description: Bad request
12173
12060
  401:
@@ -12177,9 +12064,9 @@ paths:
12177
12064
  /{zone}/collection/{collectionId}/app/{appId}/records:
12178
12065
  get:
12179
12066
  tags:
12180
- - cases
12181
- summary: "Build the base path for cases endpoints / function basePath(collectionId: string, appId: string, admin: boolean = false)"
12182
- operationId: cases_list
12067
+ - records
12068
+ summary: List records with optional query parameters GET /records
12069
+ operationId: records_list
12183
12070
  security: []
12184
12071
  parameters:
12185
12072
  - name: zone
@@ -12197,17 +12084,27 @@ paths:
12197
12084
  required: true
12198
12085
  schema:
12199
12086
  type: string
12200
- - name: category
12087
+ - name: recordType
12201
12088
  in: query
12202
12089
  required: false
12203
12090
  schema:
12204
12091
  type: string
12205
- - name: priority
12092
+ - name: ref
12206
12093
  in: query
12207
12094
  required: false
12208
12095
  schema:
12209
12096
  type: string
12210
- - name: ref
12097
+ - name: refPrefix
12098
+ in: query
12099
+ required: false
12100
+ schema:
12101
+ type: string
12102
+ - name: customId
12103
+ in: query
12104
+ required: false
12105
+ schema:
12106
+ type: string
12107
+ - name: sourceSystem
12211
12108
  in: query
12212
12109
  required: false
12213
12110
  schema:
@@ -12217,82 +12114,90 @@ paths:
12217
12114
  required: false
12218
12115
  schema:
12219
12116
  type: string
12220
- - name: contactId
12117
+ - name: variantId
12221
12118
  in: query
12222
12119
  required: false
12223
12120
  schema:
12224
12121
  type: string
12225
- - name: assignedTo
12122
+ - name: batchId
12226
12123
  in: query
12227
12124
  required: false
12228
12125
  schema:
12229
12126
  type: string
12230
- - name: closedAt
12127
+ - name: q
12231
12128
  in: query
12232
12129
  required: false
12233
12130
  schema:
12234
12131
  type: string
12235
- responses:
12236
- 200:
12237
- description: Success
12238
- content:
12239
- application/json:
12240
- schema:
12241
- type: object
12242
- additionalProperties: true
12243
- 400:
12244
- description: Bad request
12245
- 401:
12246
- description: Unauthorized
12247
- 404:
12248
- description: Not found
12249
- post:
12250
- tags:
12251
- - cases
12252
- summary: "Build the base path for cases endpoints / function basePath(collectionId: string, appId: string, admin: boolean = false)"
12253
- operationId: cases_create
12254
- security: []
12255
- parameters:
12256
- - name: zone
12257
- in: path
12258
- required: true
12132
+ - name: authorId
12133
+ in: query
12134
+ required: false
12259
12135
  schema:
12260
12136
  type: string
12261
- - name: collectionId
12262
- in: path
12263
- required: true
12137
+ - name: parentType
12138
+ in: query
12139
+ required: false
12264
12140
  schema:
12265
12141
  type: string
12266
- - name: appId
12267
- in: path
12268
- required: true
12142
+ - name: parentId
12143
+ in: query
12144
+ required: false
12145
+ schema:
12146
+ type: string
12147
+ - name: startsAt
12148
+ in: query
12149
+ required: false
12150
+ schema:
12151
+ type: string
12152
+ - name: expiresAt
12153
+ in: query
12154
+ required: false
12269
12155
  schema:
12270
12156
  type: string
12157
+ - name: includeScheduled
12158
+ in: query
12159
+ required: false
12160
+ schema:
12161
+ type: boolean
12162
+ - name: includeExpired
12163
+ in: query
12164
+ required: false
12165
+ schema:
12166
+ type: boolean
12167
+ - name: at
12168
+ in: query
12169
+ required: false
12170
+ schema:
12171
+ type: string
12172
+ - name: contactId
12173
+ in: query
12174
+ required: false
12175
+ schema:
12176
+ type: string
12177
+ - name: includeDeleted
12178
+ in: query
12179
+ required: false
12180
+ schema:
12181
+ type: boolean
12271
12182
  responses:
12272
12183
  200:
12273
12184
  description: Success
12274
12185
  content:
12275
12186
  application/json:
12276
12187
  schema:
12277
- $ref: "#/components/schemas/AppCase"
12188
+ type: object
12189
+ additionalProperties: true
12278
12190
  400:
12279
12191
  description: Bad request
12280
12192
  401:
12281
12193
  description: Unauthorized
12282
12194
  404:
12283
12195
  description: Not found
12284
- requestBody:
12285
- required: true
12286
- content:
12287
- application/json:
12288
- schema:
12289
- $ref: "#/components/schemas/CreateCaseInput"
12290
- /{zone}/collection/{collectionId}/app/{appId}/recordse)}/bulk-delete:
12291
12196
  post:
12292
12197
  tags:
12293
12198
  - records
12294
- summary: Soft-delete records in bulk.
12295
- operationId: records_bulkDelete
12199
+ summary: "Create a new record POST /records When called on the public endpoint (admin = false) with an anonymous caller, and the app's `publicCreate.records.anonymous.edit.editToken` policy is enabled, the response includes a one-time `editToken` string."
12200
+ operationId: records_create
12296
12201
  security: []
12297
12202
  parameters:
12298
12203
  - name: zone
@@ -12316,7 +12221,7 @@ paths:
12316
12221
  content:
12317
12222
  application/json:
12318
12223
  schema:
12319
- $ref: "#/components/schemas/BulkDeleteResult"
12224
+ $ref: "#/components/schemas/CreateRecordResponse"
12320
12225
  400:
12321
12226
  description: Bad request
12322
12227
  401:
@@ -12328,15 +12233,13 @@ paths:
12328
12233
  content:
12329
12234
  application/json:
12330
12235
  schema:
12331
- type: string
12332
- enum:
12333
- - facets
12334
- /{zone}/collection/{collectionId}/app/{appId}/recordse)}/bulk-upsert:
12236
+ $ref: "#/components/schemas/CreateRecordInput"
12237
+ /{zone}/collection/{collectionId}/app/{appId}/records/aggregate:
12335
12238
  post:
12336
12239
  tags:
12337
12240
  - records
12338
- summary: Upsert up to 500 records in a single transaction.
12339
- operationId: records_bulkUpsert
12241
+ summary: Get aggregate statistics for records POST /records/aggregate
12242
+ operationId: records_aggregate
12340
12243
  security: []
12341
12244
  parameters:
12342
12245
  - name: zone
@@ -12360,7 +12263,7 @@ paths:
12360
12263
  content:
12361
12264
  application/json:
12362
12265
  schema:
12363
- $ref: "#/components/schemas/BulkUpsertResult"
12266
+ $ref: "#/components/schemas/AggregateResponse"
12364
12267
  400:
12365
12268
  description: Bad request
12366
12269
  401:
@@ -12372,15 +12275,13 @@ paths:
12372
12275
  content:
12373
12276
  application/json:
12374
12277
  schema:
12375
- type: array
12376
- items:
12377
- $ref: "#/components/schemas/BulkUpsertItem"
12378
- /{zone}/collection/{collectionId}/app/{appId}/recordse)}/summary:
12278
+ $ref: "#/components/schemas/AggregateRequest"
12279
+ /{zone}/collection/{collectionId}/app/{appId}/records/bulk-delete:
12379
12280
  post:
12380
12281
  tags:
12381
- - cases
12382
- summary: "Soft delete a case DELETE /cases/:caseId / export async function remove( collectionId: string, appId: string, caseId: st"
12383
- operationId: cases_summary
12282
+ - records
12283
+ summary: Soft-delete records in bulk.
12284
+ operationId: records_bulkDelete
12384
12285
  security: []
12385
12286
  parameters:
12386
12287
  - name: zone
@@ -12404,7 +12305,7 @@ paths:
12404
12305
  content:
12405
12306
  application/json:
12406
12307
  schema:
12407
- $ref: "#/components/schemas/CaseSummaryResponse"
12308
+ $ref: "#/components/schemas/BulkDeleteResult"
12408
12309
  400:
12409
12310
  description: Bad request
12410
12311
  401:
@@ -12416,13 +12317,13 @@ paths:
12416
12317
  content:
12417
12318
  application/json:
12418
12319
  schema:
12419
- $ref: "#/components/schemas/CaseSummaryRequest"
12420
- /{zone}/collection/{collectionId}/app/{appId}/recordse)}/upsert:
12320
+ $ref: "#/components/schemas/BulkDeleteInput"
12321
+ /{zone}/collection/{collectionId}/app/{appId}/records/bulk-upsert:
12421
12322
  post:
12422
12323
  tags:
12423
12324
  - records
12424
- summary: "Get aggregate statistics for records POST /records/aggregate / export async function aggregate( collectionId: string, appId: string, request: AggregateRequest, admin: boolean = false ): Promise<AggregateResponse> { const path = `${basePath(collectionId, appId, admin)}/aggregate` return post<AggregateResponse>(path, request) } /** Restore a soft-deleted record."
12425
- operationId: records_upsert
12325
+ summary: Upsert up to 500 records in a single transaction.
12326
+ operationId: records_bulkUpsert
12426
12327
  security: []
12427
12328
  parameters:
12428
12329
  - name: zone
@@ -12446,7 +12347,7 @@ paths:
12446
12347
  content:
12447
12348
  application/json:
12448
12349
  schema:
12449
- $ref: "#/components/schemas/UpsertRecordResponse"
12350
+ $ref: "#/components/schemas/BulkUpsertResult"
12450
12351
  400:
12451
12352
  description: Bad request
12452
12353
  401:
@@ -12458,13 +12359,15 @@ paths:
12458
12359
  content:
12459
12360
  application/json:
12460
12361
  schema:
12461
- $ref: "#/components/schemas/UpsertRecordInput"
12462
- /{zone}/collection/{collectionId}/app/{appId}/recordse)}/{caseId}/history:
12362
+ type: array
12363
+ items:
12364
+ $ref: "#/components/schemas/BulkUpsertItem"
12365
+ /{zone}/collection/{collectionId}/app/{appId}/records/match:
12463
12366
  post:
12464
- tags:
12465
- - cases
12466
- summary: "Get aggregate statistics for cases POST /cases/aggregate / export async function aggregate( collectionId: string, appId:"
12467
- operationId: cases_appendHistory
12367
+ tags:
12368
+ - records
12369
+ summary: Match records against a runtime target scope.
12370
+ operationId: records_match
12468
12371
  security: []
12469
12372
  parameters:
12470
12373
  - name: zone
@@ -12482,18 +12385,13 @@ paths:
12482
12385
  required: true
12483
12386
  schema:
12484
12387
  type: string
12485
- - name: caseId
12486
- in: path
12487
- required: true
12488
- schema:
12489
- type: string
12490
12388
  responses:
12491
12389
  200:
12492
12390
  description: Success
12493
12391
  content:
12494
12392
  application/json:
12495
12393
  schema:
12496
- $ref: "#/components/schemas/AppCase"
12394
+ $ref: "#/components/schemas/MatchResult"
12497
12395
  400:
12498
12396
  description: Bad request
12499
12397
  401:
@@ -12505,13 +12403,13 @@ paths:
12505
12403
  content:
12506
12404
  application/json:
12507
12405
  schema:
12508
- $ref: "#/components/schemas/AppendHistoryInput"
12509
- /{zone}/collection/{collectionId}/app/{appId}/recordse)}/{caseId}/related:
12510
- get:
12406
+ $ref: "#/components/schemas/MatchRecordsInput"
12407
+ /{zone}/collection/{collectionId}/app/{appId}/records/preview-rule:
12408
+ post:
12511
12409
  tags:
12512
- - cases
12513
- summary: "Get case summary (admin only) POST /cases/summary / export async function summary( collectionId: string, appId: string,"
12514
- operationId: cases_related
12410
+ - records
12411
+ summary: Preview which products in the collection match a given facetRule.
12412
+ operationId: records_previewRule
12515
12413
  security: []
12516
12414
  parameters:
12517
12415
  - name: zone
@@ -12529,30 +12427,31 @@ paths:
12529
12427
  required: true
12530
12428
  schema:
12531
12429
  type: string
12532
- - name: caseId
12533
- in: path
12534
- required: true
12535
- schema:
12536
- type: string
12537
12430
  responses:
12538
12431
  200:
12539
12432
  description: Success
12540
12433
  content:
12541
12434
  application/json:
12542
12435
  schema:
12543
- $ref: "#/components/schemas/RelatedResponse"
12436
+ $ref: "#/components/schemas/PreviewRuleResult"
12544
12437
  400:
12545
12438
  description: Bad request
12546
12439
  401:
12547
12440
  description: Unauthorized
12548
12441
  404:
12549
12442
  description: Not found
12550
- /{zone}/collection/{collectionId}/app/{appId}/recordse)}/{recordId}:
12551
- patch:
12443
+ requestBody:
12444
+ required: true
12445
+ content:
12446
+ application/json:
12447
+ schema:
12448
+ $ref: "#/components/schemas/PreviewRuleParams"
12449
+ /{zone}/collection/{collectionId}/app/{appId}/records/resolve-all:
12450
+ post:
12552
12451
  tags:
12553
12452
  - records
12554
- summary: records.updateWithToken
12555
- operationId: records_updateWithToken
12453
+ summary: Resolve every applicable record for a product context in one call.
12454
+ operationId: records_resolveAll
12556
12455
  security: []
12557
12456
  parameters:
12558
12457
  - name: zone
@@ -12570,18 +12469,13 @@ paths:
12570
12469
  required: true
12571
12470
  schema:
12572
12471
  type: string
12573
- - name: recordId
12574
- in: path
12575
- required: true
12576
- schema:
12577
- type: string
12578
12472
  responses:
12579
12473
  200:
12580
12474
  description: Success
12581
12475
  content:
12582
12476
  application/json:
12583
12477
  schema:
12584
- $ref: "#/components/schemas/AppRecord"
12478
+ $ref: "#/components/schemas/ResolveAllResult"
12585
12479
  400:
12586
12480
  description: Bad request
12587
12481
  401:
@@ -12593,14 +12487,13 @@ paths:
12593
12487
  content:
12594
12488
  application/json:
12595
12489
  schema:
12596
- type: object
12597
- additionalProperties: true
12598
- /{zone}/collection/{collectionId}/app/{appId}/recordse)}/{recordId}/restore:
12490
+ $ref: "#/components/schemas/ResolveAllParams"
12491
+ /{zone}/collection/{collectionId}/app/{appId}/records/upsert:
12599
12492
  post:
12600
12493
  tags:
12601
12494
  - records
12602
- summary: "Soft delete a record DELETE /records/:recordId / export async function remove( collectionId: string, appId: string, recordId: string, admin: boolean = false ): Promise<{ success: boolean }> { const path = `${basePath(collectionId, appId, admin)}/${encodeURIComponent(recordId)}` return del<{ success: boolean }>(path) } /** Get aggregate statistics for records POST /records/aggregate / export async function aggregate( collectionId: string, appId: string, request: AggregateRequest, admin: boolean = false ): Promise<AggregateResponse> { const path = `${basePath(collectionId, appId, admin)}/aggregate` return post<AggregateResponse>(path, request) } /** Restore a soft-deleted record."
12603
- operationId: records_restore
12495
+ summary: Upsert a record by ref creates if no record with that ref exists, otherwise updates.
12496
+ operationId: records_upsert
12604
12497
  security: []
12605
12498
  parameters:
12606
12499
  - name: zone
@@ -12618,30 +12511,31 @@ paths:
12618
12511
  required: true
12619
12512
  schema:
12620
12513
  type: string
12621
- - name: recordId
12622
- in: path
12623
- required: true
12624
- schema:
12625
- type: string
12626
12514
  responses:
12627
12515
  200:
12628
12516
  description: Success
12629
12517
  content:
12630
12518
  application/json:
12631
12519
  schema:
12632
- $ref: "#/components/schemas/AppRecord"
12520
+ $ref: "#/components/schemas/UpsertRecordResponse"
12633
12521
  400:
12634
12522
  description: Bad request
12635
12523
  401:
12636
12524
  description: Unauthorized
12637
12525
  404:
12638
12526
  description: Not found
12639
- /{zone}/collection/{collectionId}/app/{appId}/recordsn)}/aggregate:
12640
- post:
12527
+ requestBody:
12528
+ required: true
12529
+ content:
12530
+ application/json:
12531
+ schema:
12532
+ $ref: "#/components/schemas/UpsertRecordInput"
12533
+ /{zone}/collection/{collectionId}/app/{appId}/records/{recordId}:
12534
+ get:
12641
12535
  tags:
12642
- - cases
12643
- summary: "Update a case PATCH /cases/:caseId Admin can update any field, public (owner) can only update data and owner zones / exp"
12644
- operationId: cases_aggregate
12536
+ - records
12537
+ summary: "Get a single record by ID GET /records/:recordId"
12538
+ operationId: records_get
12645
12539
  security: []
12646
12540
  parameters:
12647
12541
  - name: zone
@@ -12659,31 +12553,29 @@ paths:
12659
12553
  required: true
12660
12554
  schema:
12661
12555
  type: string
12556
+ - name: recordId
12557
+ in: path
12558
+ required: true
12559
+ schema:
12560
+ type: string
12662
12561
  responses:
12663
12562
  200:
12664
12563
  description: Success
12665
12564
  content:
12666
12565
  application/json:
12667
12566
  schema:
12668
- $ref: "#/components/schemas/AggregateResponse"
12567
+ $ref: "#/components/schemas/AppRecord"
12669
12568
  400:
12670
12569
  description: Bad request
12671
12570
  401:
12672
12571
  description: Unauthorized
12673
12572
  404:
12674
12573
  description: Not found
12675
- requestBody:
12676
- required: true
12677
- content:
12678
- application/json:
12679
- schema:
12680
- $ref: "#/components/schemas/AggregateRequest"
12681
- /{zone}/collection/{collectionId}/app/{appId}/recordsn)}/match:
12682
- post:
12574
+ patch:
12683
12575
  tags:
12684
12576
  - records
12685
- summary: Match records against a runtime target scope.
12686
- operationId: records_match
12577
+ summary: "Update a record PATCH /records/:recordId Admin can update any field, public (owner) can only update data and owner"
12578
+ operationId: records_update
12687
12579
  security: []
12688
12580
  parameters:
12689
12581
  - name: zone
@@ -12701,13 +12593,18 @@ paths:
12701
12593
  required: true
12702
12594
  schema:
12703
12595
  type: string
12596
+ - name: recordId
12597
+ in: path
12598
+ required: true
12599
+ schema:
12600
+ type: string
12704
12601
  responses:
12705
12602
  200:
12706
12603
  description: Success
12707
12604
  content:
12708
12605
  application/json:
12709
12606
  schema:
12710
- $ref: "#/components/schemas/MatchResult"
12607
+ $ref: "#/components/schemas/AppRecord"
12711
12608
  400:
12712
12609
  description: Bad request
12713
12610
  401:
@@ -12719,13 +12616,13 @@ paths:
12719
12616
  content:
12720
12617
  application/json:
12721
12618
  schema:
12722
- $ref: "#/components/schemas/MatchRecordsInput"
12723
- /{zone}/collection/{collectionId}/app/{appId}/recordsn)}/{caseId}:
12724
- get:
12619
+ $ref: "#/components/schemas/UpdateRecordInput"
12620
+ /{zone}/collection/{collectionId}/app/{appId}/records/{recordId}/restore:
12621
+ post:
12725
12622
  tags:
12726
- - cases
12727
- summary: "Create a new case POST /cases / export async function create( collectionId: string, appId: string, input: CreateCaseInpu"
12728
- operationId: cases_get
12623
+ - records
12624
+ summary: Restore a soft-deleted record.
12625
+ operationId: records_restore
12729
12626
  security: []
12730
12627
  parameters:
12731
12628
  - name: zone
@@ -12743,7 +12640,7 @@ paths:
12743
12640
  required: true
12744
12641
  schema:
12745
12642
  type: string
12746
- - name: caseId
12643
+ - name: recordId
12747
12644
  in: path
12748
12645
  required: true
12749
12646
  schema:
@@ -12754,18 +12651,19 @@ paths:
12754
12651
  content:
12755
12652
  application/json:
12756
12653
  schema:
12757
- $ref: "#/components/schemas/AppCase"
12654
+ $ref: "#/components/schemas/AppRecord"
12758
12655
  400:
12759
12656
  description: Bad request
12760
12657
  401:
12761
12658
  description: Unauthorized
12762
12659
  404:
12763
12660
  description: Not found
12764
- patch:
12661
+ /{zone}/collection/{collectionId}/app/{appId}/threads:
12662
+ get:
12765
12663
  tags:
12766
- - cases
12767
- summary: "List cases with optional query parameters GET /cases / export async function list( collectionId: string, appId: string,"
12768
- operationId: cases_update
12664
+ - threads
12665
+ summary: List threads with optional query parameters GET /threads
12666
+ operationId: threads_list
12769
12667
  security: []
12770
12668
  parameters:
12771
12669
  - name: zone
@@ -12783,9 +12681,34 @@ paths:
12783
12681
  required: true
12784
12682
  schema:
12785
12683
  type: string
12786
- - name: caseId
12787
- in: path
12788
- required: true
12684
+ - name: slug
12685
+ in: query
12686
+ required: false
12687
+ schema:
12688
+ type: string
12689
+ - name: authorId
12690
+ in: query
12691
+ required: false
12692
+ schema:
12693
+ type: string
12694
+ - name: parentType
12695
+ in: query
12696
+ required: false
12697
+ schema:
12698
+ type: string
12699
+ - name: parentId
12700
+ in: query
12701
+ required: false
12702
+ schema:
12703
+ type: string
12704
+ - name: tag
12705
+ in: query
12706
+ required: false
12707
+ schema:
12708
+ type: string
12709
+ - name: contactId
12710
+ in: query
12711
+ required: false
12789
12712
  schema:
12790
12713
  type: string
12791
12714
  responses:
@@ -12794,25 +12717,19 @@ paths:
12794
12717
  content:
12795
12718
  application/json:
12796
12719
  schema:
12797
- $ref: "#/components/schemas/AppCase"
12720
+ type: object
12721
+ additionalProperties: true
12798
12722
  400:
12799
12723
  description: Bad request
12800
12724
  401:
12801
12725
  description: Unauthorized
12802
12726
  404:
12803
12727
  description: Not found
12804
- requestBody:
12805
- required: true
12806
- content:
12807
- application/json:
12808
- schema:
12809
- $ref: "#/components/schemas/UpdateCaseInput"
12810
- /{zone}/collection/{collectionId}/app/{appId}/recordsn)}/{recordId}:
12811
- get:
12728
+ post:
12812
12729
  tags:
12813
- - records
12814
- summary: "List records with optional query parameters GET /records / export async function list( collectionId: string, appId: stri"
12815
- operationId: records_get
12730
+ - threads
12731
+ summary: Create a new thread POST /threads
12732
+ operationId: threads_create
12816
12733
  security: []
12817
12734
  parameters:
12818
12735
  - name: zone
@@ -12830,29 +12747,31 @@ paths:
12830
12747
  required: true
12831
12748
  schema:
12832
12749
  type: string
12833
- - name: recordId
12834
- in: path
12835
- required: true
12836
- schema:
12837
- type: string
12838
12750
  responses:
12839
12751
  200:
12840
12752
  description: Success
12841
12753
  content:
12842
12754
  application/json:
12843
12755
  schema:
12844
- $ref: "#/components/schemas/AppRecord"
12756
+ $ref: "#/components/schemas/AppThread"
12845
12757
  400:
12846
12758
  description: Bad request
12847
12759
  401:
12848
12760
  description: Unauthorized
12849
12761
  404:
12850
12762
  description: Not found
12851
- patch:
12763
+ requestBody:
12764
+ required: true
12765
+ content:
12766
+ application/json:
12767
+ schema:
12768
+ $ref: "#/components/schemas/CreateThreadInput"
12769
+ /{zone}/collection/{collectionId}/app/{appId}/threads/aggregate:
12770
+ post:
12852
12771
  tags:
12853
- - records
12854
- summary: "List records with optional query parameters GET /records / export async function list( collectionId: string, appId: stri"
12855
- operationId: records_update
12772
+ - threads
12773
+ summary: Get aggregate statistics for threads POST /threads/aggregate
12774
+ operationId: threads_aggregate
12856
12775
  security: []
12857
12776
  parameters:
12858
12777
  - name: zone
@@ -12870,18 +12789,13 @@ paths:
12870
12789
  required: true
12871
12790
  schema:
12872
12791
  type: string
12873
- - name: recordId
12874
- in: path
12875
- required: true
12876
- schema:
12877
- type: string
12878
12792
  responses:
12879
12793
  200:
12880
12794
  description: Success
12881
12795
  content:
12882
12796
  application/json:
12883
12797
  schema:
12884
- $ref: "#/components/schemas/AppRecord"
12798
+ $ref: "#/components/schemas/AggregateResponse"
12885
12799
  400:
12886
12800
  description: Bad request
12887
12801
  401:
@@ -12893,12 +12807,12 @@ paths:
12893
12807
  content:
12894
12808
  application/json:
12895
12809
  schema:
12896
- $ref: "#/components/schemas/UpdateRecordInput"
12897
- /{zone}/collection/{collectionId}/app/{appId}/recordsn)}/{threadId}:
12810
+ $ref: "#/components/schemas/AggregateRequest"
12811
+ /{zone}/collection/{collectionId}/app/{appId}/threads/{threadId}:
12898
12812
  get:
12899
12813
  tags:
12900
12814
  - threads
12901
- summary: "Create a new thread POST /threads / export async function create( collectionId: string, appId: string, input: CreateThre"
12815
+ summary: "Get a single thread by ID GET /threads/:threadId"
12902
12816
  operationId: threads_get
12903
12817
  security: []
12904
12818
  parameters:
@@ -12938,7 +12852,7 @@ paths:
12938
12852
  patch:
12939
12853
  tags:
12940
12854
  - threads
12941
- summary: "List threads with optional query parameters GET /threads / export async function list( collectionId: string, appId: stri"
12855
+ summary: "Update a thread PATCH /threads/:threadId Admin can update any field, public (owner) can only update body, tags, data, ow"
12942
12856
  operationId: threads_update
12943
12857
  security: []
12944
12858
  parameters:
@@ -12981,11 +12895,11 @@ paths:
12981
12895
  application/json:
12982
12896
  schema:
12983
12897
  $ref: "#/components/schemas/UpdateThreadInput"
12984
- /{zone}/collection/{collectionId}/app/{appId}/recordsn)}/{threadId}/reply:
12898
+ /{zone}/collection/{collectionId}/app/{appId}/threads/{threadId}/reply:
12985
12899
  post:
12986
12900
  tags:
12987
12901
  - threads
12988
- summary: "Soft delete a thread DELETE /threads/:threadId / export async function remove( collectionId: string, appId: string, thre"
12902
+ summary: "Add a reply to a thread POST /threads/:threadId/reply Atomically appends to replies array, increments replyCount, update"
12989
12903
  operationId: threads_reply
12990
12904
  security: []
12991
12905
  parameters:
@@ -15684,6 +15598,27 @@ components:
15684
15598
  type: string
15685
15599
  contactId:
15686
15600
  type: string
15601
+ FacetRuleClause:
15602
+ type: object
15603
+ properties:
15604
+ facetKey:
15605
+ type: string
15606
+ anyOf:
15607
+ type: array
15608
+ items:
15609
+ type: string
15610
+ required:
15611
+ - facetKey
15612
+ - anyOf
15613
+ FacetRule:
15614
+ type: object
15615
+ properties:
15616
+ all:
15617
+ type: array
15618
+ items:
15619
+ $ref: "#/components/schemas/FacetRuleClause"
15620
+ required:
15621
+ - all
15687
15622
  ScopeFacetClause:
15688
15623
  type: object
15689
15624
  properties:
@@ -15753,6 +15688,8 @@ components:
15753
15688
  metadata:
15754
15689
  type: object
15755
15690
  additionalProperties: true
15691
+ facetRule:
15692
+ $ref: "#/components/schemas/FacetRule"
15756
15693
  required:
15757
15694
  - ref
15758
15695
  BulkUpsertResult:
@@ -15776,17 +15713,41 @@ components:
15776
15713
  type: number
15777
15714
  required:
15778
15715
  - deleted
15716
+ MatchedRecord:
15717
+ type: object
15718
+ properties:
15719
+ matchedAt:
15720
+ $ref: "#/components/schemas/MatchedAt"
15721
+ required:
15722
+ - matchedAt
15723
+ MatchEntry:
15724
+ type: object
15725
+ properties:
15726
+ record:
15727
+ $ref: "#/components/schemas/AppRecord"
15728
+ matchedAt:
15729
+ $ref: "#/components/schemas/MatchedAt"
15730
+ matchedRule:
15731
+ $ref: "#/components/schemas/FacetRule"
15732
+ matchedClauseCount:
15733
+ type: number
15734
+ specificity:
15735
+ type: number
15736
+ required:
15737
+ - record
15738
+ - matchedAt
15739
+ - specificity
15779
15740
  MatchResult:
15780
15741
  type: object
15781
15742
  properties:
15782
15743
  records:
15783
15744
  type: array
15784
15745
  items:
15785
- $ref: "#/components/schemas/AppRecord"
15746
+ $ref: "#/components/schemas/MatchEntry"
15786
15747
  best:
15787
15748
  type: object
15788
15749
  additionalProperties:
15789
- $ref: "#/components/schemas/AppRecord"
15750
+ $ref: "#/components/schemas/MatchEntry"
15790
15751
  required:
15791
15752
  - records
15792
15753
  UpsertRecordInput:
@@ -15814,6 +15775,8 @@ components:
15814
15775
  metadata:
15815
15776
  type: object
15816
15777
  additionalProperties: true
15778
+ facetRule:
15779
+ $ref: "#/components/schemas/FacetRule"
15817
15780
  required:
15818
15781
  - ref
15819
15782
  UpsertRecordResponse:
@@ -15896,6 +15859,8 @@ components:
15896
15859
  $ref: "#/components/schemas/RecordScope"
15897
15860
  specificity:
15898
15861
  type: number
15862
+ facetRule:
15863
+ $ref: "#/components/schemas/FacetRule"
15899
15864
  data:
15900
15865
  type: object
15901
15866
  additionalProperties: true
@@ -15933,6 +15898,7 @@ components:
15933
15898
  - deletedAt
15934
15899
  - scope
15935
15900
  - specificity
15901
+ - facetRule
15936
15902
  - data
15937
15903
  - owner
15938
15904
  - admin
@@ -15984,6 +15950,8 @@ components:
15984
15950
  metadata:
15985
15951
  type: object
15986
15952
  additionalProperties: true
15953
+ facetRule:
15954
+ $ref: "#/components/schemas/FacetRule"
15987
15955
  required:
15988
15956
  - recordType
15989
15957
  UpdateRecordInput:
@@ -16019,6 +15987,8 @@ components:
16019
15987
  metadata:
16020
15988
  type: object
16021
15989
  additionalProperties: true
15990
+ facetRule:
15991
+ $ref: "#/components/schemas/FacetRule"
16022
15992
  RecordListQueryParams:
16023
15993
  type: object
16024
15994
  properties:
@@ -16032,12 +16002,8 @@ components:
16032
16002
  type: string
16033
16003
  sourceSystem:
16034
16004
  type: string
16035
- status:
16036
- type: string
16037
16005
  proofId:
16038
16006
  type: string
16039
- productId:
16040
- type: string
16041
16007
  variantId:
16042
16008
  type: string
16043
16009
  batchId:
@@ -16062,6 +16028,85 @@ components:
16062
16028
  type: string
16063
16029
  contactId:
16064
16030
  type: string
16031
+ includeDeleted:
16032
+ type: boolean
16033
+ ResolveAllParams:
16034
+ type: object
16035
+ properties:
16036
+ context:
16037
+ type: object
16038
+ additionalProperties: true
16039
+ productId:
16040
+ type: string
16041
+ variantId:
16042
+ type: string
16043
+ batchId:
16044
+ type: string
16045
+ proofId:
16046
+ type: string
16047
+ facets:
16048
+ type: object
16049
+ additionalProperties:
16050
+ type: array
16051
+ items:
16052
+ type: object
16053
+ additionalProperties: true
16054
+ recordType:
16055
+ type: string
16056
+ tiers:
16057
+ type: array
16058
+ items:
16059
+ type: string
16060
+ enum:
16061
+ - proof
16062
+ - batch
16063
+ - variant
16064
+ - product
16065
+ - rule
16066
+ - facet
16067
+ - collection
16068
+ limit:
16069
+ type: number
16070
+ at:
16071
+ type: string
16072
+ includeScheduled:
16073
+ type: boolean
16074
+ includeExpired:
16075
+ type: boolean
16076
+ required:
16077
+ - context
16078
+ ResolveAllResult:
16079
+ type: object
16080
+ properties:
16081
+ records:
16082
+ type: array
16083
+ items:
16084
+ $ref: "#/components/schemas/MatchEntry"
16085
+ truncated:
16086
+ type: boolean
16087
+ required:
16088
+ - records
16089
+ PreviewRuleParams:
16090
+ type: object
16091
+ properties:
16092
+ facetRule:
16093
+ $ref: "#/components/schemas/FacetRule"
16094
+ limit:
16095
+ type: number
16096
+ required:
16097
+ - facetRule
16098
+ PreviewRuleResult:
16099
+ type: object
16100
+ properties:
16101
+ sampleProductIds:
16102
+ type: array
16103
+ items:
16104
+ type: string
16105
+ totalMatches:
16106
+ type: number
16107
+ required:
16108
+ - sampleProductIds
16109
+ - totalMatches
16065
16110
  RelatedResponse:
16066
16111
  type: object
16067
16112
  properties: