@algolia/n8n-nodes-algolia 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,1667 +0,0 @@
1
- {
2
- "openapi": "3.0.2",
3
- "info": {
4
- "title": "Advanced Personalization API",
5
- "description": "The Advanced Personalization API lets you access user profiles built based on the behavior of your users on your website or app.\n\n## Client libraries\n\nUse Algolia's API clients and libraries to reliably integrate Algolia's APIs with your apps.\nThe official API clients are covered by Algolia's [Service Level Agreement](https://www.algolia.com/policies/sla/).\n\nSee: [Algolia's ecosystem](https://www.algolia.com/doc/guides/getting-started/how-algolia-works/in-depth/ecosystem/)\n\n## Base URLs\n\nThe Advanced Personalization API can be reached from multiple domains, each specific to a region.\n\n- `https://ai-personalization.eu.algolia.com`\n- `https://ai-personalization.us.algolia.com`\n\nUse the URL that matches your [analytics region](https://dashboard.algolia.com/account/infrastructure/analytics).\n\n**All requests must use HTTPS.**\n\n## Authentication\n\nTo authenticate your API requests, add these headers:\n\n- `x-algolia-application-id`. Your Algolia application ID.\n- `x-algolia-api-key`. An API key with the `search`, `browse` and `recommendation` ACL permissions.\n\nYou can find your application ID and API key in the [Algolia dashboard](https://dashboard.algolia.com/account).\n\n## Request format\n\nRequest bodies must be JSON objects.\n\n## Response status and errors\n\nThe Advanced Personalization API returns JSON responses.\nSince JSON doesn't guarantee any specific ordering, don't rely on the order of attributes in the API response.\n\nSuccessful responses return a `2xx` status. Client errors return a `4xx` status. Server errors are indicated by a `5xx` status.\nError responses have a `message` property with more information.\n\n## Rate limiting\n\nWhen making requests to the Advanced Personalization API, you are limited to 500 API calls per minute per application.\n\nThe following headers provide information about your current limit:\n\n- `x-ratelimit-limit`: The number of requests allowed every 60 seconds.\n- `x-ratelimit-remaining`: The number of requests remaining in the current 60 second period.\n- `x-ratelimit-reset`: [Unix timestamp](https://www.unixtimestamp.com/) of the next time period.\n\n## Version\n\nThe current version of the Advanced Personalization API is version 2, as indicated by the `/2/` in each endpoint's URL.\n",
6
- "version": "2.0.0"
7
- },
8
- "servers": [
9
- {
10
- "url": "https://ai-personalization.{region}.algolia.com",
11
- "variables": {
12
- "region": {
13
- "description": "Use the URL that matches your [analytics region](https://dashboard.algolia.com/account/infrastructure/analytics).\n",
14
- "enum": [
15
- "eu",
16
- "us"
17
- ],
18
- "default": "eu"
19
- }
20
- }
21
- }
22
- ],
23
- "security": [
24
- {
25
- "applicationId": [],
26
- "apiKey": []
27
- }
28
- ],
29
- "tags": [
30
- {
31
- "name": "config",
32
- "x-displayName": "Configuration",
33
- "description": "Manage your Advanced Personalization configuration.\n\nThe configuration defines the indices, facet attributes and events that describe your user's \nbehaviour on your website or app. It helps Advanced Personalization determine how personalization should affect the search results.\n"
34
- },
35
- {
36
- "name": "users",
37
- "x-displayName": "Users",
38
- "description": "Manage user profiles generated by Advanced Personalization.\n\nUser profiles contain the affinities each user has for the different facets in your index.\n",
39
- "externalDocs": {
40
- "url": "https://www.algolia.com/doc/guides/personalization/ai-personalization/what-is-ai-personalization/concepts/user-profiles/",
41
- "description": "Related guide: User Profiles.\n"
42
- }
43
- }
44
- ],
45
- "externalDocs": {
46
- "url": "https://www.algolia.com/doc/guides/personalization/ai-personalization/what-is-ai-personalization/"
47
- },
48
- "paths": {
49
- "/{path}": {
50
- "get": {
51
- "operationId": "customGet",
52
- "summary": "Send requests to the Algolia REST API",
53
- "description": "This method lets you send requests to the Algolia REST API.",
54
- "parameters": [
55
- {
56
- "$ref": "#/components/parameters/PathInPath"
57
- },
58
- {
59
- "$ref": "#/components/parameters/Parameters"
60
- }
61
- ],
62
- "responses": {
63
- "200": {
64
- "description": "OK",
65
- "content": {
66
- "application/json": {
67
- "schema": {
68
- "type": "object"
69
- }
70
- }
71
- }
72
- },
73
- "400": {
74
- "$ref": "#/components/responses/BadRequest"
75
- },
76
- "402": {
77
- "$ref": "#/components/responses/FeatureNotEnabled"
78
- },
79
- "403": {
80
- "$ref": "#/components/responses/MethodNotAllowed"
81
- },
82
- "404": {
83
- "$ref": "#/components/responses/IndexNotFound"
84
- }
85
- }
86
- },
87
- "post": {
88
- "operationId": "customPost",
89
- "requestBody": {
90
- "description": "Parameters to send with the custom request.",
91
- "content": {
92
- "application/json": {
93
- "schema": {
94
- "type": "object"
95
- }
96
- }
97
- }
98
- },
99
- "summary": "Send requests to the Algolia REST API",
100
- "description": "This method lets you send requests to the Algolia REST API.",
101
- "parameters": [
102
- {
103
- "$ref": "#/components/parameters/PathInPath"
104
- },
105
- {
106
- "$ref": "#/components/parameters/Parameters"
107
- }
108
- ],
109
- "responses": {
110
- "200": {
111
- "description": "OK",
112
- "content": {
113
- "application/json": {
114
- "schema": {
115
- "type": "object"
116
- }
117
- }
118
- }
119
- },
120
- "400": {
121
- "$ref": "#/components/responses/BadRequest"
122
- },
123
- "402": {
124
- "$ref": "#/components/responses/FeatureNotEnabled"
125
- },
126
- "403": {
127
- "$ref": "#/components/responses/MethodNotAllowed"
128
- },
129
- "404": {
130
- "$ref": "#/components/responses/IndexNotFound"
131
- }
132
- }
133
- },
134
- "put": {
135
- "operationId": "customPut",
136
- "requestBody": {
137
- "description": "Parameters to send with the custom request.",
138
- "content": {
139
- "application/json": {
140
- "schema": {
141
- "type": "object"
142
- }
143
- }
144
- }
145
- },
146
- "summary": "Send requests to the Algolia REST API",
147
- "description": "This method lets you send requests to the Algolia REST API.",
148
- "parameters": [
149
- {
150
- "$ref": "#/components/parameters/PathInPath"
151
- },
152
- {
153
- "$ref": "#/components/parameters/Parameters"
154
- }
155
- ],
156
- "responses": {
157
- "200": {
158
- "description": "OK",
159
- "content": {
160
- "application/json": {
161
- "schema": {
162
- "type": "object"
163
- }
164
- }
165
- }
166
- },
167
- "400": {
168
- "$ref": "#/components/responses/BadRequest"
169
- },
170
- "402": {
171
- "$ref": "#/components/responses/FeatureNotEnabled"
172
- },
173
- "403": {
174
- "$ref": "#/components/responses/MethodNotAllowed"
175
- },
176
- "404": {
177
- "$ref": "#/components/responses/IndexNotFound"
178
- }
179
- }
180
- },
181
- "delete": {
182
- "operationId": "customDelete",
183
- "summary": "Send requests to the Algolia REST API",
184
- "description": "This method lets you send requests to the Algolia REST API.",
185
- "parameters": [
186
- {
187
- "$ref": "#/components/parameters/PathInPath"
188
- },
189
- {
190
- "$ref": "#/components/parameters/Parameters"
191
- }
192
- ],
193
- "responses": {
194
- "200": {
195
- "description": "OK",
196
- "content": {
197
- "application/json": {
198
- "schema": {
199
- "type": "object"
200
- }
201
- }
202
- }
203
- },
204
- "400": {
205
- "$ref": "#/components/responses/BadRequest"
206
- },
207
- "402": {
208
- "$ref": "#/components/responses/FeatureNotEnabled"
209
- },
210
- "403": {
211
- "$ref": "#/components/responses/MethodNotAllowed"
212
- },
213
- "404": {
214
- "$ref": "#/components/responses/IndexNotFound"
215
- }
216
- }
217
- }
218
- },
219
- "/2/config": {
220
- "get": {
221
- "tags": [
222
- "config"
223
- ],
224
- "operationId": "getConfig",
225
- "x-acl": [
226
- "search",
227
- "browse",
228
- "recommendation"
229
- ],
230
- "summary": "Retrieve the configuration",
231
- "description": "Retrieves a list of configuration objects for each index.",
232
- "responses": {
233
- "200": {
234
- "description": "OK",
235
- "content": {
236
- "application/json": {
237
- "schema": {
238
- "$ref": "#/components/schemas/configurationObject"
239
- }
240
- }
241
- }
242
- },
243
- "401": {
244
- "$ref": "#/components/responses/Unauthorized"
245
- },
246
- "500": {
247
- "$ref": "#/components/responses/InternalServerError"
248
- }
249
- }
250
- },
251
- "put": {
252
- "tags": [
253
- "config"
254
- ],
255
- "operationId": "putConfig",
256
- "x-acl": [
257
- "search",
258
- "browse",
259
- "recommendation"
260
- ],
261
- "summary": "Update the configuration",
262
- "description": "Updates the configuration.\n\nThe configuration is a list of configuration objects for each index. To configure Advanced Personalization for an index, create a new configuration object for the index.\n",
263
- "requestBody": {
264
- "required": true,
265
- "content": {
266
- "application/json": {
267
- "schema": {
268
- "title": "configurationParameters",
269
- "type": "object",
270
- "properties": {
271
- "indices": {
272
- "type": "array",
273
- "items": {
274
- "title": "configurationParametersObject",
275
- "type": "object",
276
- "properties": {
277
- "index": {
278
- "type": "string"
279
- },
280
- "affinities": {
281
- "type": "array",
282
- "items": {
283
- "type": "string"
284
- }
285
- },
286
- "source": {
287
- "title": "source",
288
- "type": "object",
289
- "properties": {
290
- "type": {
291
- "$ref": "#/components/schemas/sourceType"
292
- },
293
- "events": {
294
- "$ref": "#/components/schemas/events"
295
- }
296
- },
297
- "required": [
298
- "type"
299
- ]
300
- }
301
- }
302
- },
303
- "required": [
304
- "index",
305
- "affinities",
306
- "source"
307
- ]
308
- },
309
- "personalizationReRanking": {
310
- "$ref": "#/components/schemas/personalizationReRanking"
311
- },
312
- "profileType": {
313
- "$ref": "#/components/schemas/profileType"
314
- },
315
- "features": {
316
- "$ref": "#/components/schemas/features"
317
- }
318
- },
319
- "required": [
320
- "indices",
321
- "personalizationReRanking",
322
- "profileType",
323
- "features"
324
- ]
325
- }
326
- }
327
- }
328
- },
329
- "responses": {
330
- "200": {
331
- "description": "OK",
332
- "content": {
333
- "application/json": {
334
- "schema": {
335
- "title": "putConfigResponse",
336
- "type": "object",
337
- "properties": {
338
- "status": {
339
- "type": "number"
340
- },
341
- "errors": {
342
- "type": "array",
343
- "items": {
344
- "$ref": "#/components/schemas/issue"
345
- }
346
- },
347
- "warnings": {
348
- "type": "array",
349
- "items": {
350
- "$ref": "#/components/schemas/issue"
351
- }
352
- },
353
- "message": {
354
- "type": "string"
355
- }
356
- },
357
- "required": [
358
- "status",
359
- "errors",
360
- "warnings",
361
- "message"
362
- ]
363
- }
364
- }
365
- }
366
- },
367
- "400": {
368
- "$ref": "#/components/responses/BadRequest-2"
369
- },
370
- "401": {
371
- "$ref": "#/components/responses/Unauthorized"
372
- },
373
- "402": {
374
- "$ref": "#/components/responses/FeatureNotEnabled-2"
375
- },
376
- "500": {
377
- "$ref": "#/components/responses/InternalServerError"
378
- }
379
- }
380
- }
381
- },
382
- "/2/users": {
383
- "get": {
384
- "tags": [
385
- "users"
386
- ],
387
- "operationId": "getUsers",
388
- "x-acl": [
389
- "search",
390
- "browse",
391
- "recommendation"
392
- ],
393
- "summary": "Get a list of user profiles",
394
- "description": "Retrieves a list of user profiles in [lexicographical order](https://www.educative.io/answers/what-is-a-lexicographic-order).",
395
- "parameters": [
396
- {
397
- "$ref": "#/components/parameters/startDate"
398
- },
399
- {
400
- "$ref": "#/components/parameters/endDate"
401
- },
402
- {
403
- "$ref": "#/components/parameters/indices"
404
- },
405
- {
406
- "$ref": "#/components/parameters/affinity"
407
- },
408
- {
409
- "$ref": "#/components/parameters/limit"
410
- },
411
- {
412
- "$ref": "#/components/parameters/nextPageToken"
413
- },
414
- {
415
- "$ref": "#/components/parameters/previousPageToken"
416
- }
417
- ],
418
- "responses": {
419
- "200": {
420
- "description": "OK",
421
- "content": {
422
- "application/json": {
423
- "schema": {
424
- "title": "getUsersResponse",
425
- "type": "object",
426
- "properties": {
427
- "users": {
428
- "type": "array",
429
- "items": {
430
- "$ref": "#/components/schemas/user"
431
- }
432
- },
433
- "previousPageToken": {
434
- "type": "string"
435
- },
436
- "nextPageToken": {
437
- "type": "string"
438
- }
439
- },
440
- "required": [
441
- "users"
442
- ]
443
- }
444
- }
445
- }
446
- },
447
- "401": {
448
- "$ref": "#/components/responses/Unauthorized"
449
- },
450
- "422": {
451
- "$ref": "#/components/responses/GenericUnprocessableEntity"
452
- },
453
- "500": {
454
- "$ref": "#/components/responses/InternalServerError"
455
- }
456
- }
457
- }
458
- },
459
- "/2/users/{userID}": {
460
- "get": {
461
- "tags": [
462
- "users"
463
- ],
464
- "operationId": "getUser",
465
- "x-acl": [
466
- "search",
467
- "browse",
468
- "recommendation"
469
- ],
470
- "summary": "Get a user profile",
471
- "description": "Retrieves a user profile.",
472
- "parameters": [
473
- {
474
- "$ref": "#/components/parameters/userID"
475
- }
476
- ],
477
- "responses": {
478
- "200": {
479
- "description": "OK",
480
- "content": {
481
- "application/json": {
482
- "schema": {
483
- "$ref": "#/components/schemas/user"
484
- }
485
- }
486
- }
487
- },
488
- "400": {
489
- "$ref": "#/components/responses/BadUserID"
490
- },
491
- "401": {
492
- "$ref": "#/components/responses/Unauthorized"
493
- },
494
- "404": {
495
- "$ref": "#/components/responses/GenericNotFound"
496
- },
497
- "422": {
498
- "$ref": "#/components/responses/InvalidUserID"
499
- },
500
- "500": {
501
- "$ref": "#/components/responses/InternalServerError"
502
- }
503
- }
504
- },
505
- "delete": {
506
- "tags": [
507
- "users"
508
- ],
509
- "operationId": "deleteUser",
510
- "x-acl": [
511
- "search",
512
- "browse",
513
- "recommendation"
514
- ],
515
- "summary": "Delete a user profile",
516
- "description": "Deletes a user profile.",
517
- "parameters": [
518
- {
519
- "$ref": "#/components/parameters/userID"
520
- }
521
- ],
522
- "responses": {
523
- "200": {
524
- "description": "OK",
525
- "content": {
526
- "application/json": {
527
- "schema": {
528
- "title": "deleteUserResponse",
529
- "type": "object",
530
- "properties": {
531
- "message": {
532
- "type": "string"
533
- },
534
- "status": {
535
- "type": "integer"
536
- },
537
- "userID": {
538
- "type": "string"
539
- },
540
- "deletedUntil": {
541
- "type": "string"
542
- },
543
- "deletedAt": {
544
- "type": "string"
545
- }
546
- }
547
- }
548
- }
549
- }
550
- },
551
- "400": {
552
- "$ref": "#/components/responses/BadUserID"
553
- },
554
- "401": {
555
- "$ref": "#/components/responses/Unauthorized"
556
- },
557
- "422": {
558
- "$ref": "#/components/responses/InvalidUserID"
559
- },
560
- "500": {
561
- "$ref": "#/components/responses/InternalServerError"
562
- }
563
- }
564
- }
565
- },
566
- "/2/realtime/users/{userToken}": {
567
- "get": {
568
- "tags": [
569
- "users"
570
- ],
571
- "operationId": "getRealtimeUser",
572
- "x-acl": [
573
- "recommendation"
574
- ],
575
- "summary": "Retrieve the real-time user's personalization profile",
576
- "description": "Retrieves the real-time user's personalization profiles containing search filters.",
577
- "parameters": [
578
- {
579
- "$ref": "#/components/parameters/UserToken"
580
- }
581
- ],
582
- "responses": {
583
- "200": {
584
- "description": "OK",
585
- "content": {
586
- "application/json": {
587
- "schema": {
588
- "$ref": "#/components/schemas/RealtimeUser"
589
- }
590
- }
591
- }
592
- },
593
- "400": {
594
- "$ref": "#/components/responses/BadRequest"
595
- },
596
- "402": {
597
- "$ref": "#/components/responses/FeatureNotEnabled"
598
- },
599
- "421": {
600
- "$ref": "#/components/responses/TooManyRequests"
601
- },
602
- "500": {
603
- "$ref": "#/components/responses/InternalError"
604
- }
605
- }
606
- }
607
- },
608
- "/2/realtime/users/{userToken}/compute": {
609
- "post": {
610
- "tags": [
611
- "users"
612
- ],
613
- "operationId": "computeRealtimeUser",
614
- "x-acl": [
615
- "recommendation"
616
- ],
617
- "summary": "Compute the real-time user's personalization profile",
618
- "description": "Sends a request to compute the real-time user's personalization profile.",
619
- "deprecated": true,
620
- "parameters": [
621
- {
622
- "$ref": "#/components/parameters/UserToken"
623
- }
624
- ],
625
- "responses": {
626
- "202": {
627
- "$ref": "#/components/responses/Accepted"
628
- },
629
- "400": {
630
- "$ref": "#/components/responses/BadRequest"
631
- },
632
- "402": {
633
- "$ref": "#/components/responses/FeatureNotEnabled"
634
- },
635
- "409": {
636
- "$ref": "#/components/responses/Conflict"
637
- },
638
- "421": {
639
- "$ref": "#/components/responses/TooManyRequests"
640
- },
641
- "422": {
642
- "$ref": "#/components/responses/StatusUnprocessableEntity"
643
- },
644
- "500": {
645
- "$ref": "#/components/responses/InternalError"
646
- }
647
- }
648
- }
649
- },
650
- "/setClientApiKey": {
651
- "get": {
652
- "x-helper": true,
653
- "x-asynchronous-helper": false,
654
- "tags": [
655
- "Api Key"
656
- ],
657
- "operationId": "setClientApiKey",
658
- "summary": "Switch the API key used to authenticate requests",
659
- "description": "Switch the API key used to authenticate requests.\n",
660
- "parameters": [
661
- {
662
- "in": "query",
663
- "name": "apiKey",
664
- "description": "API key to be used from now on.",
665
- "required": true,
666
- "schema": {
667
- "type": "string"
668
- }
669
- }
670
- ],
671
- "responses": {
672
- "204": {
673
- "description": "No content."
674
- }
675
- }
676
- }
677
- }
678
- },
679
- "components": {
680
- "securitySchemes": {
681
- "applicationId": {
682
- "type": "apiKey",
683
- "in": "header",
684
- "name": "x-algolia-application-id",
685
- "description": "Your Algolia application ID."
686
- },
687
- "apiKey": {
688
- "type": "apiKey",
689
- "in": "header",
690
- "name": "x-algolia-api-key",
691
- "description": "Your Algolia API key with the necessary permissions to make the request.\nPermissions are controlled through access control lists (ACL) and access restrictions.\nThe required ACL to make a request is listed in each endpoint's reference.\n"
692
- }
693
- },
694
- "parameters": {
695
- "PathInPath": {
696
- "name": "path",
697
- "in": "path",
698
- "description": "Path of the endpoint, for example `1/newFeature`.",
699
- "required": true,
700
- "schema": {
701
- "type": "string",
702
- "example": "/keys"
703
- }
704
- },
705
- "Parameters": {
706
- "name": "parameters",
707
- "in": "query",
708
- "description": "Query parameters to apply to the current query.",
709
- "schema": {
710
- "type": "object",
711
- "additionalProperties": true
712
- }
713
- },
714
- "startDate": {
715
- "name": "startDate",
716
- "description": "Filter users by start date (in RFC3339 format).\nOnly users that were updated after the passed date will be returned.\n",
717
- "in": "query",
718
- "schema": {
719
- "type": "string",
720
- "example": "2024-06-27T08:27:26Z"
721
- }
722
- },
723
- "endDate": {
724
- "name": "endDate",
725
- "description": "Filter users by end date (in RFC3339 format).\nOnly users that were updated before the passed date will be returned.\n",
726
- "in": "query",
727
- "schema": {
728
- "type": "string",
729
- "example": "2024-06-28T08:27:26Z"
730
- }
731
- },
732
- "indices": {
733
- "name": "indices",
734
- "description": "Filter users by matching indices.\nIf multiple indices are passed, returned users will match all indices.\n",
735
- "in": "query",
736
- "schema": {
737
- "type": "array",
738
- "items": {
739
- "type": "string"
740
- }
741
- },
742
- "examples": {
743
- "singleIndex": {
744
- "value": [
745
- "products_EN"
746
- ],
747
- "summary": "Filter by single index"
748
- },
749
- "multipleIndices": {
750
- "value": [
751
- "products_EN",
752
- "products_FR"
753
- ],
754
- "summary": "Filter by multiple indices"
755
- }
756
- },
757
- "style": "form",
758
- "explode": false
759
- },
760
- "affinity": {
761
- "name": "affinity",
762
- "description": "Filter users by affinity name and value.\nIf multiple values are passed, returned users will match all values.\n",
763
- "in": "query",
764
- "schema": {
765
- "type": "array",
766
- "items": {
767
- "type": "string"
768
- }
769
- },
770
- "examples": {
771
- "affinityName": {
772
- "value": "brand",
773
- "summary": "Filter by single affinity name"
774
- },
775
- "affinityValuePair": {
776
- "value": "brand:Nike",
777
- "summary": "Filter by single affinity name and value"
778
- },
779
- "multipleAffinityNames": {
780
- "value": "brand,color",
781
- "summary": "Filter by multiple affinity names"
782
- },
783
- "multipleAffinityValuePairs": {
784
- "value": "brand:Nike,color:white",
785
- "summary": "Filter by multiple affinity name and value pairs"
786
- }
787
- }
788
- },
789
- "limit": {
790
- "name": "limit",
791
- "description": "Limit the number of users in the response.\nThe value of this parameter ranges from 1 to 1000.\n",
792
- "in": "query",
793
- "schema": {
794
- "type": "integer",
795
- "default": 10,
796
- "minimum": 1,
797
- "maximum": 1000
798
- }
799
- },
800
- "nextPageToken": {
801
- "name": "nextPageToken",
802
- "description": "Reference for the next page, when navigating forward using pagination.\nCan't be used in the same request as `previousPageToken`.\n",
803
- "in": "query",
804
- "schema": {
805
- "type": "string"
806
- }
807
- },
808
- "previousPageToken": {
809
- "name": "previousPageToken",
810
- "description": "Reference for the previous page, when navigating backward using pagination.\nCan't be used in the same request as `nextPageToken`.\n",
811
- "in": "query",
812
- "schema": {
813
- "type": "string"
814
- }
815
- },
816
- "userID": {
817
- "name": "userID",
818
- "description": "ID of the user.",
819
- "in": "path",
820
- "required": true,
821
- "schema": {
822
- "type": "string"
823
- }
824
- },
825
- "UserToken": {
826
- "name": "userToken",
827
- "in": "path",
828
- "required": true,
829
- "description": "Unique identifier representing a user for which to fetch the personalization profile.",
830
- "schema": {
831
- "$ref": "#/components/schemas/userToken"
832
- }
833
- }
834
- },
835
- "schemas": {
836
- "ErrorBase": {
837
- "description": "Error.",
838
- "type": "object",
839
- "x-keep-model": true,
840
- "additionalProperties": true,
841
- "properties": {
842
- "message": {
843
- "type": "string",
844
- "example": "Invalid Application-Id or API-Key"
845
- }
846
- }
847
- },
848
- "sourceType": {
849
- "title": "type",
850
- "type": "string",
851
- "enum": [
852
- "insights"
853
- ]
854
- },
855
- "eventType": {
856
- "type": "string",
857
- "enum": [
858
- "view",
859
- "click",
860
- "conversion"
861
- ]
862
- },
863
- "subtype": {
864
- "type": "string",
865
- "enum": [
866
- "addToCart",
867
- "purchase"
868
- ]
869
- },
870
- "event": {
871
- "type": "object",
872
- "properties": {
873
- "type": {
874
- "$ref": "#/components/schemas/eventType"
875
- },
876
- "subtype": {
877
- "$ref": "#/components/schemas/subtype"
878
- },
879
- "name": {
880
- "type": "string"
881
- }
882
- },
883
- "required": [
884
- "type",
885
- "name"
886
- ]
887
- },
888
- "events": {
889
- "type": "object",
890
- "properties": {
891
- "viewDetails": {
892
- "type": "array",
893
- "items": {
894
- "$ref": "#/components/schemas/event"
895
- }
896
- },
897
- "viewListing": {
898
- "type": "array",
899
- "items": {
900
- "$ref": "#/components/schemas/event"
901
- }
902
- },
903
- "addToCart": {
904
- "type": "array",
905
- "items": {
906
- "$ref": "#/components/schemas/event"
907
- }
908
- },
909
- "purchase": {
910
- "type": "array",
911
- "items": {
912
- "$ref": "#/components/schemas/event"
913
- }
914
- }
915
- },
916
- "required": [
917
- "viewDetails",
918
- "viewListing",
919
- "addToCart",
920
- "purchase"
921
- ]
922
- },
923
- "issue": {
924
- "type": "object",
925
- "description": "An issue is either an 'error' or a 'warning' that is generated by the validator.",
926
- "properties": {
927
- "code": {
928
- "type": "string"
929
- },
930
- "index": {
931
- "type": "string"
932
- },
933
- "message": {
934
- "type": "string"
935
- }
936
- },
937
- "required": [
938
- "code",
939
- "index",
940
- "message"
941
- ]
942
- },
943
- "personalizationReRanking": {
944
- "type": "string",
945
- "description": "The impact that personalization has on the re-ranking of search results.",
946
- "enum": [
947
- "none",
948
- "low",
949
- "medium",
950
- "high",
951
- "maximum"
952
- ]
953
- },
954
- "profileType": {
955
- "type": "string",
956
- "enum": [
957
- "basic"
958
- ],
959
- "description": "The type of user profiles to generate.\n\nBasic profiles are based on past behaviors, ensuring search results align with previous interests.\n"
960
- },
961
- "status": {
962
- "title": "status",
963
- "type": "string",
964
- "enum": [
965
- "pending",
966
- "active",
967
- "paused"
968
- ]
969
- },
970
- "errorCodes": {
971
- "title": "errorCodes",
972
- "type": "string",
973
- "enum": [
974
- "blocked",
975
- "deleted",
976
- "no_perso_access",
977
- "all_attr_value_filtered",
978
- "missing_index",
979
- "no_events_last_30_days",
980
- "pending_pipelines",
981
- "invalid_config",
982
- "all_facets_invalid"
983
- ]
984
- },
985
- "Configuration_status": {
986
- "type": "object",
987
- "properties": {
988
- "type": {
989
- "$ref": "#/components/schemas/status"
990
- },
991
- "errors": {
992
- "type": "array",
993
- "items": {
994
- "$ref": "#/components/schemas/errorCodes"
995
- }
996
- },
997
- "lastUpdatedAt": {
998
- "type": "string"
999
- }
1000
- }
1001
- },
1002
- "realtime": {
1003
- "type": "object",
1004
- "properties": {
1005
- "enabled": {
1006
- "type": "boolean",
1007
- "description": "Whether the realtime personalization feature is enabled."
1008
- }
1009
- }
1010
- },
1011
- "features": {
1012
- "type": "object",
1013
- "properties": {
1014
- "realtime": {
1015
- "$ref": "#/components/schemas/realtime"
1016
- }
1017
- }
1018
- },
1019
- "configurationObject": {
1020
- "type": "object",
1021
- "properties": {
1022
- "indices": {
1023
- "type": "array",
1024
- "items": {
1025
- "title": "configurationObject",
1026
- "type": "object",
1027
- "properties": {
1028
- "index": {
1029
- "type": "string"
1030
- },
1031
- "affinities": {
1032
- "type": "array",
1033
- "items": {
1034
- "type": "string"
1035
- }
1036
- },
1037
- "source": {
1038
- "title": "source",
1039
- "type": "object",
1040
- "properties": {
1041
- "type": {
1042
- "$ref": "#/components/schemas/sourceType"
1043
- },
1044
- "events": {
1045
- "$ref": "#/components/schemas/events"
1046
- }
1047
- }
1048
- },
1049
- "errors": {
1050
- "type": "array",
1051
- "items": {
1052
- "$ref": "#/components/schemas/issue"
1053
- }
1054
- },
1055
- "warnings": {
1056
- "type": "array",
1057
- "items": {
1058
- "$ref": "#/components/schemas/issue"
1059
- }
1060
- },
1061
- "lastUpdatedAt": {
1062
- "type": "string"
1063
- }
1064
- },
1065
- "required": [
1066
- "index",
1067
- "affinities",
1068
- "source",
1069
- "errors",
1070
- "warnings",
1071
- "lastUpdatedAt"
1072
- ]
1073
- }
1074
- },
1075
- "personalizationReRanking": {
1076
- "$ref": "#/components/schemas/personalizationReRanking"
1077
- },
1078
- "profileType": {
1079
- "$ref": "#/components/schemas/profileType"
1080
- },
1081
- "status": {
1082
- "$ref": "#/components/schemas/Configuration_status"
1083
- },
1084
- "features": {
1085
- "$ref": "#/components/schemas/features"
1086
- }
1087
- },
1088
- "required": [
1089
- "indices",
1090
- "personalzationReRanking",
1091
- "profileType",
1092
- "status",
1093
- "features"
1094
- ]
1095
- },
1096
- "unauthorized": {
1097
- "type": "integer",
1098
- "description": "HTTP status code for an authorization error.",
1099
- "enum": [
1100
- 401
1101
- ]
1102
- },
1103
- "ErrorMessages_unauthorized": {
1104
- "type": "string",
1105
- "description": "Details about the response, such as error messages.",
1106
- "enum": [
1107
- "Unauthorized"
1108
- ]
1109
- },
1110
- "ErrorResponses_unauthorized": {
1111
- "type": "object",
1112
- "properties": {
1113
- "status": {
1114
- "$ref": "#/components/schemas/unauthorized"
1115
- },
1116
- "message": {
1117
- "$ref": "#/components/schemas/ErrorMessages_unauthorized"
1118
- }
1119
- }
1120
- },
1121
- "internalServerError": {
1122
- "type": "integer",
1123
- "description": "HTTP status code for an internal server error.",
1124
- "enum": [
1125
- 500
1126
- ]
1127
- },
1128
- "ErrorMessages_internalServerError": {
1129
- "type": "string",
1130
- "description": "Details about the response, such as error messages.",
1131
- "enum": [
1132
- "Internal Server Error"
1133
- ]
1134
- },
1135
- "ErrorResponses_internalServerError": {
1136
- "type": "object",
1137
- "properties": {
1138
- "status": {
1139
- "$ref": "#/components/schemas/internalServerError"
1140
- },
1141
- "message": {
1142
- "$ref": "#/components/schemas/ErrorMessages_internalServerError"
1143
- }
1144
- }
1145
- },
1146
- "badRequest": {
1147
- "type": "integer",
1148
- "description": "HTTP status code for a bad request error.",
1149
- "enum": [
1150
- 400
1151
- ]
1152
- },
1153
- "ErrorMessages_badRequest": {
1154
- "type": "string",
1155
- "description": "Details about the response, such as error messages.",
1156
- "enum": [
1157
- "Invalid request body"
1158
- ]
1159
- },
1160
- "ErrorResponses_badRequest": {
1161
- "type": "object",
1162
- "properties": {
1163
- "status": {
1164
- "$ref": "#/components/schemas/badRequest"
1165
- },
1166
- "message": {
1167
- "$ref": "#/components/schemas/ErrorMessages_badRequest"
1168
- }
1169
- }
1170
- },
1171
- "paymentRequired": {
1172
- "type": "integer",
1173
- "description": "HTTP status code for a payment required error.",
1174
- "enum": [
1175
- 402
1176
- ]
1177
- },
1178
- "featureNotEnabled": {
1179
- "type": "string",
1180
- "description": "Details about the response, such as error messages.",
1181
- "enum": [
1182
- "Predictive profiles are not allowed for this app. Please contact support to upgrade your plan: https://support.algolia.com/",
1183
- "Realtime Personalization is not allowed for this app. Please contact support to upgrade your plan: https://support.algolia.com/"
1184
- ]
1185
- },
1186
- "ErrorResponses_featureNotEnabled": {
1187
- "type": "object",
1188
- "properties": {
1189
- "status": {
1190
- "$ref": "#/components/schemas/paymentRequired"
1191
- },
1192
- "message": {
1193
- "$ref": "#/components/schemas/featureNotEnabled"
1194
- }
1195
- }
1196
- },
1197
- "user": {
1198
- "type": "object",
1199
- "properties": {
1200
- "userID": {
1201
- "type": "string"
1202
- },
1203
- "affinities": {
1204
- "type": "array",
1205
- "items": {
1206
- "title": "affinity",
1207
- "type": "object",
1208
- "properties": {
1209
- "name": {
1210
- "type": "string"
1211
- },
1212
- "indices": {
1213
- "type": "array",
1214
- "items": {
1215
- "type": "string",
1216
- "minimum": 1
1217
- }
1218
- },
1219
- "value": {
1220
- "type": "string"
1221
- },
1222
- "score": {
1223
- "type": "number",
1224
- "minimum": 1,
1225
- "maximum": 20
1226
- },
1227
- "lastUpdatedAt": {
1228
- "type": "string"
1229
- }
1230
- },
1231
- "required": [
1232
- "name",
1233
- "indices",
1234
- "value",
1235
- "score",
1236
- "lastUpdatedAt"
1237
- ]
1238
- }
1239
- },
1240
- "lastUpdatedAt": {
1241
- "type": "string"
1242
- }
1243
- },
1244
- "required": [
1245
- "userID",
1246
- "affinities",
1247
- "lastUpdatedAt"
1248
- ]
1249
- },
1250
- "unprocessableEntity": {
1251
- "type": "integer",
1252
- "description": "HTTP status code for an unprocessable entity error.",
1253
- "enum": [
1254
- 422
1255
- ]
1256
- },
1257
- "genericUnprocessableEntity": {
1258
- "type": "string",
1259
- "description": "Details about the response, such as error messages.",
1260
- "enum": [
1261
- "Unprocessable Entity"
1262
- ]
1263
- },
1264
- "ErrorResponses_genericUnprocessableEntity": {
1265
- "type": "object",
1266
- "properties": {
1267
- "status": {
1268
- "$ref": "#/components/schemas/unprocessableEntity"
1269
- },
1270
- "message": {
1271
- "$ref": "#/components/schemas/genericUnprocessableEntity"
1272
- }
1273
- }
1274
- },
1275
- "badUserID": {
1276
- "type": "string",
1277
- "description": "Details about the response, such as error messages.",
1278
- "enum": [
1279
- "Invalid userID format"
1280
- ]
1281
- },
1282
- "ErrorResponses_badUserID": {
1283
- "type": "object",
1284
- "properties": {
1285
- "status": {
1286
- "$ref": "#/components/schemas/badRequest"
1287
- },
1288
- "message": {
1289
- "$ref": "#/components/schemas/badUserID"
1290
- }
1291
- }
1292
- },
1293
- "notFound": {
1294
- "type": "integer",
1295
- "description": "HTTP status code for a not found error.",
1296
- "enum": [
1297
- 404
1298
- ]
1299
- },
1300
- "genericNotFound": {
1301
- "type": "string",
1302
- "description": "Details about the response, such as error messages.",
1303
- "enum": [
1304
- "Not Found"
1305
- ]
1306
- },
1307
- "ErrorResponses_genericNotFound": {
1308
- "type": "object",
1309
- "properties": {
1310
- "status": {
1311
- "$ref": "#/components/schemas/notFound"
1312
- },
1313
- "message": {
1314
- "$ref": "#/components/schemas/genericNotFound"
1315
- }
1316
- }
1317
- },
1318
- "invalidUserID": {
1319
- "type": "string",
1320
- "description": "Details about the response, such as error messages.",
1321
- "enum": [
1322
- "UserID must contain only alphanumeric",
1323
- "equal",
1324
- "plus",
1325
- "slash",
1326
- "hyphen",
1327
- "or underscore characters",
1328
- "and be between 1 and 129 characters long"
1329
- ]
1330
- },
1331
- "ErrorResponses_invalidUserID": {
1332
- "type": "object",
1333
- "properties": {
1334
- "status": {
1335
- "$ref": "#/components/schemas/unprocessableEntity"
1336
- },
1337
- "message": {
1338
- "$ref": "#/components/schemas/invalidUserID"
1339
- }
1340
- }
1341
- },
1342
- "userToken": {
1343
- "type": "string",
1344
- "description": "Unique pseudonymous or anonymous user identifier.\n\nThis helps with analytics and click and conversion events.\nFor more information, see [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).\n",
1345
- "example": "test-user-123",
1346
- "x-categories": [
1347
- "Personalization"
1348
- ]
1349
- },
1350
- "strategy": {
1351
- "type": "string",
1352
- "enum": [
1353
- "session",
1354
- "historical",
1355
- "hybrid"
1356
- ],
1357
- "example": "session"
1358
- },
1359
- "searchFilter": {
1360
- "type": "object",
1361
- "additionalProperties": false,
1362
- "properties": {
1363
- "session": {
1364
- "type": "array",
1365
- "items": {
1366
- "type": "string"
1367
- },
1368
- "example": [
1369
- "brand:Dyson<score=12>"
1370
- ]
1371
- }
1372
- }
1373
- },
1374
- "searchFilters": {
1375
- "type": "object",
1376
- "additionalProperties": false,
1377
- "properties": {
1378
- "indices": {
1379
- "type": "array",
1380
- "items": {
1381
- "type": "string"
1382
- },
1383
- "example": [
1384
- "storefront",
1385
- "storefront_price_asc",
1386
- "storefront_price_desc"
1387
- ]
1388
- },
1389
- "strategy": {
1390
- "$ref": "#/components/schemas/strategy"
1391
- },
1392
- "filters": {
1393
- "$ref": "#/components/schemas/searchFilter"
1394
- }
1395
- }
1396
- },
1397
- "RealtimeUser": {
1398
- "title": "RealtimeUser",
1399
- "type": "object",
1400
- "additionalProperties": false,
1401
- "required": [
1402
- "version",
1403
- "userID",
1404
- "lastUpdatedAt",
1405
- "search"
1406
- ],
1407
- "properties": {
1408
- "version": {
1409
- "type": "string",
1410
- "description": "Version of the response format."
1411
- },
1412
- "userID": {
1413
- "type": "string",
1414
- "description": "User ID of the user."
1415
- },
1416
- "lastUpdatedAt": {
1417
- "type": "string",
1418
- "description": "Date and time when the profile was last computed, in RFC 3339 format.",
1419
- "example": "2023-06-15T15:06:04.249906Z"
1420
- },
1421
- "search": {
1422
- "type": "object",
1423
- "description": "Index personalization filters by index name.\n",
1424
- "additionalProperties": {
1425
- "$ref": "#/components/schemas/searchFilters"
1426
- }
1427
- }
1428
- }
1429
- }
1430
- },
1431
- "responses": {
1432
- "BadRequest": {
1433
- "description": "Bad request or request arguments.",
1434
- "content": {
1435
- "application/json": {
1436
- "schema": {
1437
- "$ref": "#/components/schemas/ErrorBase"
1438
- }
1439
- }
1440
- }
1441
- },
1442
- "FeatureNotEnabled": {
1443
- "description": "This feature is not enabled on your Algolia account.",
1444
- "content": {
1445
- "application/json": {
1446
- "schema": {
1447
- "$ref": "#/components/schemas/ErrorBase"
1448
- }
1449
- }
1450
- }
1451
- },
1452
- "MethodNotAllowed": {
1453
- "description": "Method not allowed with this API key.",
1454
- "content": {
1455
- "application/json": {
1456
- "schema": {
1457
- "$ref": "#/components/schemas/ErrorBase"
1458
- }
1459
- }
1460
- }
1461
- },
1462
- "IndexNotFound": {
1463
- "description": "Index not found.",
1464
- "content": {
1465
- "application/json": {
1466
- "schema": {
1467
- "$ref": "#/components/schemas/ErrorBase"
1468
- }
1469
- }
1470
- }
1471
- },
1472
- "Unauthorized": {
1473
- "description": "Not authorized to access this resource.",
1474
- "content": {
1475
- "application/json": {
1476
- "schema": {
1477
- "$ref": "#/components/schemas/ErrorResponses_unauthorized"
1478
- }
1479
- }
1480
- }
1481
- },
1482
- "InternalServerError": {
1483
- "description": "Internal server error.",
1484
- "content": {
1485
- "application/json": {
1486
- "schema": {
1487
- "$ref": "#/components/schemas/ErrorResponses_internalServerError"
1488
- }
1489
- }
1490
- }
1491
- },
1492
- "BadRequest-2": {
1493
- "description": "Bad request.",
1494
- "content": {
1495
- "application/json": {
1496
- "schema": {
1497
- "$ref": "#/components/schemas/ErrorResponses_badRequest"
1498
- }
1499
- }
1500
- }
1501
- },
1502
- "FeatureNotEnabled-2": {
1503
- "description": "Feature not enabled.",
1504
- "content": {
1505
- "application/json": {
1506
- "schema": {
1507
- "$ref": "#/components/schemas/ErrorResponses_featureNotEnabled"
1508
- }
1509
- }
1510
- }
1511
- },
1512
- "GenericUnprocessableEntity": {
1513
- "description": "Unprocessable entity.",
1514
- "content": {
1515
- "application/json": {
1516
- "schema": {
1517
- "$ref": "#/components/schemas/ErrorResponses_genericUnprocessableEntity"
1518
- }
1519
- }
1520
- }
1521
- },
1522
- "BadUserID": {
1523
- "description": "Bad user ID.",
1524
- "content": {
1525
- "application/json": {
1526
- "schema": {
1527
- "$ref": "#/components/schemas/ErrorResponses_badUserID"
1528
- }
1529
- }
1530
- }
1531
- },
1532
- "GenericNotFound": {
1533
- "description": "Not found.",
1534
- "content": {
1535
- "application/json": {
1536
- "schema": {
1537
- "$ref": "#/components/schemas/ErrorResponses_genericNotFound"
1538
- }
1539
- }
1540
- }
1541
- },
1542
- "InvalidUserID": {
1543
- "description": "Invalid user ID format.",
1544
- "content": {
1545
- "application/json": {
1546
- "schema": {
1547
- "$ref": "#/components/schemas/ErrorResponses_invalidUserID"
1548
- }
1549
- }
1550
- }
1551
- },
1552
- "TooManyRequests": {
1553
- "description": "Too Many Requests.",
1554
- "content": {
1555
- "application/json": {
1556
- "schema": {
1557
- "title": "tooManyRequestsResponse",
1558
- "type": "object",
1559
- "additionalProperties": false,
1560
- "required": [
1561
- "status",
1562
- "message"
1563
- ],
1564
- "properties": {
1565
- "status": {
1566
- "type": "integer",
1567
- "example": 421,
1568
- "description": "Status code."
1569
- },
1570
- "message": {
1571
- "type": "string",
1572
- "example": "Too Many Requests",
1573
- "description": "Response message."
1574
- }
1575
- }
1576
- }
1577
- }
1578
- }
1579
- },
1580
- "InternalError": {
1581
- "description": "Internal error.",
1582
- "content": {
1583
- "application/json": {
1584
- "schema": {
1585
- "$ref": "#/components/schemas/ErrorBase"
1586
- }
1587
- }
1588
- }
1589
- },
1590
- "Accepted": {
1591
- "description": "Accepted.",
1592
- "content": {
1593
- "application/json": {
1594
- "schema": {
1595
- "title": "acceptedResponse",
1596
- "type": "object",
1597
- "additionalProperties": false,
1598
- "required": [
1599
- "status",
1600
- "message"
1601
- ],
1602
- "properties": {
1603
- "status": {
1604
- "type": "integer",
1605
- "example": 202,
1606
- "description": "Status code."
1607
- },
1608
- "message": {
1609
- "type": "string",
1610
- "example": "Accepted",
1611
- "description": "Response message."
1612
- }
1613
- }
1614
- }
1615
- }
1616
- }
1617
- },
1618
- "Conflict": {
1619
- "description": "Conflict.",
1620
- "content": {
1621
- "application/json": {
1622
- "schema": {
1623
- "title": "conflictResponse",
1624
- "type": "object",
1625
- "additionalProperties": false,
1626
- "required": [
1627
- "status",
1628
- "message"
1629
- ],
1630
- "properties": {
1631
- "status": {
1632
- "type": "integer",
1633
- "example": 409,
1634
- "description": "Status code."
1635
- },
1636
- "message": {
1637
- "type": "string",
1638
- "example": "Conflict",
1639
- "description": "Response message."
1640
- }
1641
- }
1642
- }
1643
- }
1644
- }
1645
- },
1646
- "StatusUnprocessableEntity": {
1647
- "description": "Unprocessable Entity.",
1648
- "content": {
1649
- "application/json": {
1650
- "schema": {
1651
- "$ref": "#/components/schemas/ErrorBase"
1652
- }
1653
- }
1654
- }
1655
- }
1656
- }
1657
- },
1658
- "x-tagGroups": [
1659
- {
1660
- "name": "Advanced Personalization",
1661
- "tags": [
1662
- "config",
1663
- "users"
1664
- ]
1665
- }
1666
- ]
1667
- }