app.bsky.notification.getGroupedNotifications
Schema Diff
+2 -2
Compatibility Analysis
Breaking Changes Detected
6 breaking changes, 6 non-breaking changes.
Breaking Changes (6)
- RemovedVertex RemovedVertex { vertex_id: "app.bsky.actor.defs#profileViewDetailed" }
- RemovedVertex RemovedVertex { vertex_id: "app.bsky.graph.defs#starterPackView" }
- RemovedEdge RemovedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items", tgt: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant0", kind: "variant", name: Some("app.bsky.actor.defs#profileViewDetailed") }
- RemovedEdge RemovedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items", tgt: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant5", kind: "variant", name: Some("app.bsky.graph.defs#starterPackView") }
- RemovedEdge RemovedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant0", tgt: "app.bsky.actor.defs#profileViewDetailed", kind: "ref", name: None }
- RemovedEdge RemovedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant5", tgt: "app.bsky.graph.defs#starterPackView", kind: "ref", name: None }
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "app.bsky.actor.defs#profileViewBasic" }
- AddedVertex AddedVertex { vertex_id: "app.bsky.graph.defs#starterPackViewBasic" }
- AddedEdge AddedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items", tgt: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant0", kind: "variant", name: Some("app.bsky.actor.defs#profileViewBasic") }
- AddedEdge AddedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items", tgt: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant5", kind: "variant", name: Some("app.bsky.graph.defs#starterPackViewBasic") }
- AddedEdge AddedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant0", tgt: "app.bsky.actor.defs#profileViewBasic", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant5", tgt: "app.bsky.graph.defs#starterPackViewBasic", kind: "ref", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "app.bsky.actor.defs#profileViewDetailed" }RemovedVertex { vertex_id: "app.bsky.graph.defs#starterPackView" }
Added Elements
AddedVertex { vertex_id: "app.bsky.actor.defs#profileViewBasic" }AddedVertex { vertex_id: "app.bsky.graph.defs#starterPackViewBasic" }
Additional Notes
- Breaking: RemovedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items", tgt: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant0", kind: "variant", name: Some("app.bsky.actor.defs#profileViewDetailed") }
- Breaking: RemovedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items", tgt: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant5", kind: "variant", name: Some("app.bsky.graph.defs#starterPackView") }
- Breaking: RemovedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant0", tgt: "app.bsky.actor.defs#profileViewDetailed", kind: "ref", name: None }
- Breaking: RemovedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant5", tgt: "app.bsky.graph.defs#starterPackView", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items", tgt: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant0", kind: "variant", name: Some("app.bsky.actor.defs#profileViewBasic") }
- Non-breaking: AddedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items", tgt: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant5", kind: "variant", name: Some("app.bsky.graph.defs#starterPackViewBasic") }
- Non-breaking: AddedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant0", tgt: "app.bsky.actor.defs#profileViewBasic", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.bsky.notification.getGroupedNotifications:output.relatedViews:items:variant5", tgt: "app.bsky.graph.defs#starterPackViewBasic", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"contactMatchNotification": {
5
5
"description": "A contact of the requesting account joined Bluesky.",
6
6
"properties": {
7
7
"actor": {
8
8
"format": "did",
9
9
"type": "string"
10
10
}
11
11
},
12
12
"required": [
13
13
"actor"
14
14
],
15
15
"type": "object"
16
16
},
17
17
"followBackNotification": {
18
18
"description": "An actor followed the requesting account back, possibly via a starter pack.",
19
19
"properties": {
20
20
"actor": {
21
21
"format": "did",
22
22
"type": "string"
23
23
},
24
24
"starterPack": {
25
25
"format": "at-uri",
26
26
"type": "string"
27
27
}
28
28
},
29
29
"required": [
30
30
"actor"
31
31
],
32
32
"type": "object"
33
33
},
34
34
"followGroup": {
35
35
"description": "Group of actors who followed the requesting account.",
36
36
"properties": {
37
37
"items": {
38
38
"items": {
39
39
"ref": "#followItem",
40
40
"type": "ref"
41
41
},
42
42
"minLength": 1,
43
43
"type": "array"
44
44
}
45
45
},
46
46
"required": [
47
47
"items"
48
48
],
49
49
"type": "object"
50
50
},
51
51
"followItem": {
52
52
"description": "An actor who followed the requesting account, possibly via a starter pack.",
53
53
"properties": {
54
54
"actor": {
55
55
"format": "did",
56
56
"type": "string"
57
57
},
58
58
"starterPack": {
59
59
"format": "at-uri",
60
60
"type": "string"
61
61
}
62
62
},
63
63
"required": [
64
64
"actor"
65
65
],
66
66
"type": "object"
67
67
},
68
68
"generatorLikeGroup": {
69
69
"description": "Group of likes by different actors on the same feed generator.",
70
70
"properties": {
71
71
"generator": {
72
72
"format": "at-uri",
73
73
"type": "string"
74
74
},
75
75
"items": {
76
76
"items": {
77
77
"ref": "#generatorLikeItem",
78
78
"type": "ref"
79
79
},
80
80
"minLength": 1,
81
81
"type": "array"
82
82
}
83
83
},
84
84
"required": [
85
85
"generator",
86
86
"items"
87
87
],
88
88
"type": "object"
89
89
},
90
90
"generatorLikeItem": {
91
91
"description": "One actor who liked the feed generator in the group.",
92
92
"properties": {
93
93
"actor": {
94
94
"format": "did",
95
95
"type": "string"
96
96
}
97
97
},
98
98
"required": [
99
99
"actor"
100
100
],
101
101
"type": "object"
102
102
},
103
103
"group": {
104
104
"description": "Contains common metadata and kind-specific data for a notification group or individual notification.",
105
105
"properties": {
106
106
"count": {
107
107
"minimum": 1,
108
108
"type": "integer"
109
109
},
110
110
"id": {
111
111
"maxLength": 256,
112
112
"type": "string"
113
113
},
114
114
"indexedAt": {
115
115
"format": "datetime",
116
116
"type": "string"
117
117
},
118
118
"isRead": {
119
119
"type": "boolean"
120
120
},
121
121
"kind": {
122
122
"refs": [
123
123
"#likeGroup",
124
124
"#multiPostLikeGroup",
125
125
"#multiPostRepostGroup",
126
126
"#multiPostLikeViaRepostGroup",
127
127
"#multiPostRepostViaRepostGroup",
128
128
"#repostGroup",
129
129
"#likeViaRepostGroup",
130
130
"#repostViaRepostGroup",
131
131
"#followGroup",
132
132
"#subscribedPostGroup",
133
133
"#generatorLikeGroup",
134
134
"#replyNotification",
135
135
"#quoteNotification",
136
136
"#mentionNotification",
137
137
"#followBackNotification",
138
138
"#verifiedNotification",
139
139
"#unverifiedNotification",
140
140
"#starterPackJoinedNotification",
141
141
"#contactMatchNotification"
142
142
],
143
143
"type": "union"
144
144
}
145
145
},
146
146
"required": [
147
147
"id",
148
148
"isRead",
149
149
"indexedAt",
150
150
"count",
151
151
"kind"
152
152
],
153
153
"type": "object"
154
154
},
155
155
"likeGroup": {
156
156
"description": "Group of likes by different actors on the same post.",
157
157
"properties": {
158
158
"items": {
159
159
"items": {
160
160
"ref": "#likeItem",
161
161
"type": "ref"
162
162
},
163
163
"minLength": 1,
164
164
"type": "array"
165
165
},
166
166
"post": {
167
167
"format": "at-uri",
168
168
"type": "string"
169
169
}
170
170
},
171
171
"required": [
172
172
"post",
173
173
"items"
174
174
],
175
175
"type": "object"
176
176
},
177
177
"likeItem": {
178
178
"description": "One actor who liked the group's post.",
179
179
"properties": {
180
180
"actor": {
181
181
"format": "did",
182
182
"type": "string"
183
183
}
184
184
},
185
185
"required": [
186
186
"actor"
187
187
],
188
188
"type": "object"
189
189
},
190
190
"likeViaRepostGroup": {
191
191
"description": "Group of likes by different actors on the same post via the requesting account's repost.",
192
192
"properties": {
193
193
"items": {
194
194
"items": {
195
195
"ref": "#likeViaRepostItem",
196
196
"type": "ref"
197
197
},
198
198
"minLength": 1,
199
199
"type": "array"
200
200
},
201
201
"post": {
202
202
"format": "at-uri",
203
203
"type": "string"
204
204
},
205
205
"viaRepost": {
206
206
"format": "at-uri",
207
207
"type": "string"
208
208
}
209
209
},
210
210
"required": [
211
211
"post",
212
212
"viaRepost",
213
213
"items"
214
214
],
215
215
"type": "object"
216
216
},
217
217
"likeViaRepostItem": {
218
218
"description": "One actor who liked the group's post via the requesting account's repost.",
219
219
"properties": {
220
220
"actor": {
221
221
"format": "did",
222
222
"type": "string"
223
223
}
224
224
},
225
225
"required": [
226
226
"actor"
227
227
],
228
228
"type": "object"
229
229
},
230
230
"main": {
231
231
"description": "[UNSTABLE - DO NOT USE THIS ENDPOINT WHILE THIS NOTE IS HERE] Enumerate notifications for the requesting account, pre-grouped for rendering. Supersedes listNotifications. Requires auth.",
232
232
"output": {
233
233
"encoding": "application/json",
234
234
"schema": {
235
235
"properties": {
236
236
"cursor": {
237
237
"maxLength": 1024,
238
238
"type": "string"
239
239
},
240
240
"groups": {
241
241
"description": "Notification groups or individual notifications, newest first. Clients should ignore kinds they do not recognize. Grouping behavior depends on the kind and selected feed.",
242
242
"items": {
243
243
"ref": "#group",
244
244
"type": "ref"
245
245
},
246
246
"type": "array"
247
247
},
248
248
"relatedViews": {
249
249
"description": "Reusable views referenced by notifications. Views shared across notifications appear once to avoid duplication. Each group contributes only its first 10 of each related view to this array. Ex: for a group containing likes in a post, we might have a large number of likeItem (e.g., 50) in a group, but only the profile views for the newest 10 items will be included here.",
250
250
"items": {
251
251
"refs": [
252
-
"app.bsky.actor.defs#profileViewDetailed",
252
+
"app.bsky.actor.defs#profileViewBasic",
253
253
"app.bsky.feed.defs#blockedPost",
254
254
"app.bsky.feed.defs#generatorView",
255
255
"app.bsky.feed.defs#notFoundPost",
256
256
"app.bsky.feed.defs#postView",
257
-
"app.bsky.graph.defs#starterPackView"
257
+
"app.bsky.graph.defs#starterPackViewBasic"
258
258
],
259
259
"type": "union"
260
260
},
261
261
"type": "array"
262
262
},
263
263
"seenAt": {
264
264
"format": "datetime",
265
265
"type": "string"
266
266
}
267
267
},
268
268
"required": [
269
269
"groups"
270
270
],
271
271
"type": "object"
272
272
}
273
273
},
274
274
"parameters": {
275
275
"properties": {
276
276
"cursor": {
277
277
"maxLength": 1024,
278
278
"type": "string"
279
279
},
280
280
"feed": {
281
281
"default": "all",
282
282
"description": "Which notification feed to return. Grouping behavior varies by feed: notifications about follows might be grouped in 'all' and ungrouped (or rather, in single-item groups) in 'followers'.",
283
283
"knownValues": [
284
284
"all",
285
285
"people-i-follow",
286
286
"conversations",
287
287
"followers",
288
288
"activity"
289
289
],
290
290
"maxLength": 32,
291
291
"type": "string"
292
292
},
293
293
"limit": {
294
294
"default": 30,
295
295
"description": "Maximum number of groups to return.",
296
296
"maximum": 50,
297
297
"minimum": 1,
298
298
"type": "integer"
299
299
}
300
300
},
301
301
"type": "params"
302
302
},
303
303
"type": "query"
304
304
},
305
305
"mentionNotification": {
306
306
"description": "A post mentioning the requesting account.",
307
307
"properties": {
308
308
"parent": {
309
309
"format": "at-uri",
310
310
"type": "string"
311
311
},
312
312
"post": {
313
313
"format": "at-uri",
314
314
"type": "string"
315
315
}
316
316
},
317
317
"required": [
318
318
"post"
319
319
],
320
320
"type": "object"
321
321
},
322
322
"multiPostLikeGroup": {
323
323
"description": "Group of likes by the same actor on different posts.",
324
324
"properties": {
325
325
"actor": {
326
326
"format": "did",
327
327
"type": "string"
328
328
},
329
329
"items": {
330
330
"items": {
331
331
"ref": "#multiPostLikeItem",
332
332
"type": "ref"
333
333
},
334
334
"minLength": 2,
335
335
"type": "array"
336
336
}
337
337
},
338
338
"required": [
339
339
"actor",
340
340
"items"
341
341
],
342
342
"type": "object"
343
343
},
344
344
"multiPostLikeItem": {
345
345
"description": "One post which was liked by the group's actor.",
346
346
"properties": {
347
347
"post": {
348
348
"format": "at-uri",
349
349
"type": "string"
350
350
}
351
351
},
352
352
"required": [
353
353
"post"
354
354
],
355
355
"type": "object"
356
356
},
357
357
"multiPostLikeViaRepostGroup": {
358
358
"description": "Group of likes by the same actor on different posts via the requesting account's reposts.",
359
359
"properties": {
360
360
"actor": {
361
361
"format": "did",
362
362
"type": "string"
363
363
},
364
364
"items": {
365
365
"items": {
366
366
"ref": "#multiPostLikeViaRepostItem",
367
367
"type": "ref"
368
368
},
369
369
"minLength": 2,
370
370
"type": "array"
371
371
}
372
372
},
373
373
"required": [
374
374
"actor",
375
375
"items"
376
376
],
377
377
"type": "object"
378
378
},
379
379
"multiPostLikeViaRepostItem": {
380
380
"description": "One post which was liked by the group's actor via the requesting account's repost.",
381
381
"properties": {
382
382
"post": {
383
383
"format": "at-uri",
384
384
"type": "string"
385
385
},
386
386
"viaRepost": {
387
387
"format": "at-uri",
388
388
"type": "string"
389
389
}
390
390
},
391
391
"required": [
392
392
"post",
393
393
"viaRepost"
394
394
],
395
395
"type": "object"
396
396
},
397
397
"multiPostRepostGroup": {
398
398
"description": "Group of reposts by the same actor of different posts.",
399
399
"properties": {
400
400
"actor": {
401
401
"format": "did",
402
402
"type": "string"
403
403
},
404
404
"items": {
405
405
"items": {
406
406
"ref": "#multiPostRepostItem",
407
407
"type": "ref"
408
408
},
409
409
"minLength": 2,
410
410
"type": "array"
411
411
}
412
412
},
413
413
"required": [
414
414
"actor",
415
415
"items"
416
416
],
417
417
"type": "object"
418
418
},
419
419
"multiPostRepostItem": {
420
420
"description": "One post which was reposted by the group's actor.",
421
421
"properties": {
422
422
"post": {
423
423
"format": "at-uri",
424
424
"type": "string"
425
425
}
426
426
},
427
427
"required": [
428
428
"post"
429
429
],
430
430
"type": "object"
431
431
},
432
432
"multiPostRepostViaRepostGroup": {
433
433
"description": "Group of reposts by the same actor of different posts via the requesting account's reposts.",
434
434
"properties": {
435
435
"actor": {
436
436
"format": "did",
437
437
"type": "string"
438
438
},
439
439
"items": {
440
440
"items": {
441
441
"ref": "#multiPostRepostViaRepostItem",
442
442
"type": "ref"
443
443
},
444
444
"minLength": 2,
445
445
"type": "array"
446
446
}
447
447
},
448
448
"required": [
449
449
"actor",
450
450
"items"
451
451
],
452
452
"type": "object"
453
453
},
454
454
"multiPostRepostViaRepostItem": {
455
455
"description": "One post which was reposted by the group's actor via the requesting account's repost.",
456
456
"properties": {
457
457
"post": {
458
458
"format": "at-uri",
459
459
"type": "string"
460
460
},
461
461
"viaRepost": {
462
462
"format": "at-uri",
463
463
"type": "string"
464
464
}
465
465
},
466
466
"required": [
467
467
"post",
468
468
"viaRepost"
469
469
],
470
470
"type": "object"
471
471
},
472
472
"quoteNotification": {
473
473
"description": "A post quoting a post by the requesting account.",
474
474
"properties": {
475
475
"parent": {
476
476
"format": "at-uri",
477
477
"type": "string"
478
478
},
479
479
"post": {
480
480
"format": "at-uri",
481
481
"type": "string"
482
482
}
483
483
},
484
484
"required": [
485
485
"post"
486
486
],
487
487
"type": "object"
488
488
},
489
489
"replyNotification": {
490
490
"description": "A reply to a post by the requesting account or to a thread they are participating in.",
491
491
"properties": {
492
492
"parent": {
493
493
"format": "at-uri",
494
494
"type": "string"
495
495
},
496
496
"post": {
497
497
"format": "at-uri",
498
498
"type": "string"
499
499
}
500
500
},
501
501
"required": [
502
502
"post",
503
503
"parent"
504
504
],
505
505
"type": "object"
506
506
},
507
507
"repostGroup": {
508
508
"description": "Group of reposts by different actors of the same post.",
509
509
"properties": {
510
510
"items": {
511
511
"items": {
512
512
"ref": "#repostItem",
513
513
"type": "ref"
514
514
},
515
515
"minLength": 1,
516
516
"type": "array"
517
517
},
518
518
"post": {
519
519
"format": "at-uri",
520
520
"type": "string"
521
521
}
522
522
},
523
523
"required": [
524
524
"post",
525
525
"items"
526
526
],
527
527
"type": "object"
528
528
},
529
529
"repostItem": {
530
530
"description": "One actor who reposted the group's post.",
531
531
"properties": {
532
532
"actor": {
533
533
"format": "did",
534
534
"type": "string"
535
535
}
536
536
},
537
537
"required": [
538
538
"actor"
539
539
],
540
540
"type": "object"
541
541
},
542
542
"repostViaRepostGroup": {
543
543
"description": "Group of reposts by different actors of the same post via the requesting account's repost.",
544
544
"properties": {
545
545
"items": {
546
546
"items": {
547
547
"ref": "#repostViaRepostItem",
548
548
"type": "ref"
549
549
},
550
550
"minLength": 1,
551
551
"type": "array"
552
552
},
553
553
"post": {
554
554
"format": "at-uri",
555
555
"type": "string"
556
556
},
557
557
"viaRepost": {
558
558
"format": "at-uri",
559
559
"type": "string"
560
560
}
561
561
},
562
562
"required": [
563
563
"post",
564
564
"viaRepost",
565
565
"items"
566
566
],
567
567
"type": "object"
568
568
},
569
569
"repostViaRepostItem": {
570
570
"description": "One actor who reposted the group's post via the requesting account's repost.",
571
571
"properties": {
572
572
"actor": {
573
573
"format": "did",
574
574
"type": "string"
575
575
}
576
576
},
577
577
"required": [
578
578
"actor"
579
579
],
580
580
"type": "object"
581
581
},
582
582
"starterPackJoinedNotification": {
583
583
"description": "An actor joined Bluesky via a starter pack created by the requesting account.",
584
584
"properties": {
585
585
"actor": {
586
586
"format": "did",
587
587
"type": "string"
588
588
},
589
589
"starterPack": {
590
590
"format": "at-uri",
591
591
"type": "string"
592
592
}
593
593
},
594
594
"required": [
595
595
"actor",
596
596
"starterPack"
597
597
],
598
598
"type": "object"
599
599
},
600
600
"subscribedPostGroup": {
601
601
"description": "Group of new posts by actors the requesting account subscribes to.",
602
602
"properties": {
603
603
"items": {
604
604
"items": {
605
605
"ref": "#subscribedPostItem",
606
606
"type": "ref"
607
607
},
608
608
"minLength": 1,
609
609
"type": "array"
610
610
}
611
611
},
612
612
"required": [
613
613
"items"
614
614
],
615
615
"type": "object"
616
616
},
617
617
"subscribedPostItem": {
618
618
"description": "One new post by an actor the requesting account subscribes to.",
619
619
"properties": {
620
620
"actor": {
621
621
"format": "did",
622
622
"type": "string"
623
623
},
624
624
"post": {
625
625
"format": "at-uri",
626
626
"type": "string"
627
627
}
628
628
},
629
629
"required": [
630
630
"actor",
631
631
"post"
632
632
],
633
633
"type": "object"
634
634
},
635
635
"unverifiedNotification": {
636
636
"description": "A verification of the requesting account was removed.",
637
637
"properties": {
638
638
"actor": {
639
639
"format": "did",
640
640
"type": "string"
641
641
}
642
642
},
643
643
"required": [
644
644
"actor"
645
645
],
646
646
"type": "object"
647
647
},
648
648
"verifiedNotification": {
649
649
"description": "An actor verified the requesting account.",
650
650
"properties": {
651
651
"actor": {
652
652
"format": "did",
653
653
"type": "string"
654
654
}
655
655
},
656
656
"required": [
657
657
"actor"
658
658
],
659
659
"type": "object"
660
660
}
661
661
},
662
662
"id": "app.bsky.notification.getGroupedNotifications",
663
663
"lexicon": 1
664
664
}