app.bsky.actor.defs
Schema Diff
+38 -1
Compatibility Analysis
Backward Compatible
Backward compatible. 17 non-breaking changes.
Non-Breaking Changes (17)
- AddedVertex AddedVertex { vertex_id: "app.bsky.actor.defs#bskyAppStatePref.isBetaUser" }
- AddedVertex AddedVertex { vertex_id: "app.bsky.actor.defs#profileAssociatedChat.allowGroupInvites" }
- AddedVertex AddedVertex { vertex_id: "app.bsky.actor.defs#statusView.labels" }
- AddedVertex AddedVertex { vertex_id: "app.bsky.actor.defs#statusView.labels:items" }
- AddedVertex AddedVertex { vertex_id: "app.bsky.actor.defs#verificationView.issuerDisplayName" }
- AddedVertex AddedVertex { vertex_id: "app.bsky.actor.defs#verificationView.issuerHandle" }
- AddedVertex AddedVertex { vertex_id: "app.bsky.actor.defs#viewerState.mutedOnlyQuoteposts" }
- AddedVertex AddedVertex { vertex_id: "app.bsky.actor.defs#viewerState.mutedOnlyReposts" }
- AddedEdge AddedEdge { src: "app.bsky.actor.defs#bskyAppStatePref", tgt: "app.bsky.actor.defs#bskyAppStatePref.isBetaUser", kind: "prop", name: Some("isBetaUser") }
- AddedEdge AddedEdge { src: "app.bsky.actor.defs#profileAssociatedChat", tgt: "app.bsky.actor.defs#profileAssociatedChat.allowGroupInvites", kind: "prop", name: Some("allowGroupInvites") }
- AddedEdge AddedEdge { src: "app.bsky.actor.defs#statusView", tgt: "app.bsky.actor.defs#statusView.labels", kind: "prop", name: Some("labels") }
- AddedEdge AddedEdge { src: "app.bsky.actor.defs#statusView.labels", tgt: "app.bsky.actor.defs#statusView.labels:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.bsky.actor.defs#statusView.labels:items", tgt: "com.atproto.label.defs#label", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.bsky.actor.defs#verificationView", tgt: "app.bsky.actor.defs#verificationView.issuerDisplayName", kind: "prop", name: Some("issuerDisplayName") }
- AddedEdge AddedEdge { src: "app.bsky.actor.defs#verificationView", tgt: "app.bsky.actor.defs#verificationView.issuerHandle", kind: "prop", name: Some("issuerHandle") }
- AddedEdge AddedEdge { src: "app.bsky.actor.defs#viewerState", tgt: "app.bsky.actor.defs#viewerState.mutedOnlyQuoteposts", kind: "prop", name: Some("mutedOnlyQuoteposts") }
- AddedEdge AddedEdge { src: "app.bsky.actor.defs#viewerState", tgt: "app.bsky.actor.defs#viewerState.mutedOnlyReposts", kind: "prop", name: Some("mutedOnlyReposts") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.bsky.actor.defs#bskyAppStatePref.isBetaUser" }AddedVertex { vertex_id: "app.bsky.actor.defs#profileAssociatedChat.allowGroupInvites" }AddedVertex { vertex_id: "app.bsky.actor.defs#statusView.labels" }AddedVertex { vertex_id: "app.bsky.actor.defs#statusView.labels:items" }AddedVertex { vertex_id: "app.bsky.actor.defs#verificationView.issuerDisplayName" }AddedVertex { vertex_id: "app.bsky.actor.defs#verificationView.issuerHandle" }AddedVertex { vertex_id: "app.bsky.actor.defs#viewerState.mutedOnlyQuoteposts" }AddedVertex { vertex_id: "app.bsky.actor.defs#viewerState.mutedOnlyReposts" }
Additional Notes
- Non-breaking: AddedEdge { src: "app.bsky.actor.defs#bskyAppStatePref", tgt: "app.bsky.actor.defs#bskyAppStatePref.isBetaUser", kind: "prop", name: Some("isBetaUser") }
- Non-breaking: AddedEdge { src: "app.bsky.actor.defs#profileAssociatedChat", tgt: "app.bsky.actor.defs#profileAssociatedChat.allowGroupInvites", kind: "prop", name: Some("allowGroupInvites") }
- Non-breaking: AddedEdge { src: "app.bsky.actor.defs#statusView", tgt: "app.bsky.actor.defs#statusView.labels", kind: "prop", name: Some("labels") }
- Non-breaking: AddedEdge { src: "app.bsky.actor.defs#statusView.labels", tgt: "app.bsky.actor.defs#statusView.labels:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.bsky.actor.defs#statusView.labels:items", tgt: "com.atproto.label.defs#label", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.bsky.actor.defs#verificationView", tgt: "app.bsky.actor.defs#verificationView.issuerDisplayName", kind: "prop", name: Some("issuerDisplayName") }
- Non-breaking: AddedEdge { src: "app.bsky.actor.defs#verificationView", tgt: "app.bsky.actor.defs#verificationView.issuerHandle", kind: "prop", name: Some("issuerHandle") }
- Non-breaking: AddedEdge { src: "app.bsky.actor.defs#viewerState", tgt: "app.bsky.actor.defs#viewerState.mutedOnlyQuoteposts", kind: "prop", name: Some("mutedOnlyQuoteposts") }
- Non-breaking: AddedEdge { src: "app.bsky.actor.defs#viewerState", tgt: "app.bsky.actor.defs#viewerState.mutedOnlyReposts", kind: "prop", name: Some("mutedOnlyReposts") }
1
1
{
2
2
"id": "app.bsky.actor.defs",
3
3
"defs": {
4
4
"nux": {
5
5
"type": "object",
6
6
"required": [
7
7
"id",
8
8
"completed"
9
9
],
10
10
"properties": {
11
11
"id": {
12
12
"type": "string",
13
13
"maxLength": 100
14
14
},
15
15
"data": {
16
16
"type": "string",
17
17
"maxLength": 3000,
18
18
"description": "Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.",
19
19
"maxGraphemes": 300
20
20
},
21
21
"completed": {
22
22
"type": "boolean",
23
23
"default": false
24
24
},
25
25
"expiresAt": {
26
26
"type": "string",
27
27
"format": "datetime",
28
28
"description": "The date and time at which the NUX will expire and should be considered completed."
29
29
}
30
30
},
31
31
"description": "A new user experiences (NUX) storage object"
32
32
},
33
33
"mutedWord": {
34
34
"type": "object",
35
35
"required": [
36
36
"value",
37
37
"targets"
38
38
],
39
39
"properties": {
40
40
"id": {
41
41
"type": "string"
42
42
},
43
43
"value": {
44
44
"type": "string",
45
45
"maxLength": 10000,
46
46
"description": "The muted word itself.",
47
47
"maxGraphemes": 1000
48
48
},
49
49
"targets": {
50
50
"type": "array",
51
51
"items": {
52
52
"ref": "app.bsky.actor.defs#mutedWordTarget",
53
53
"type": "ref"
54
54
},
55
55
"description": "The intended targets of the muted word."
56
56
},
57
57
"expiresAt": {
58
58
"type": "string",
59
59
"format": "datetime",
60
60
"description": "The date and time at which the muted word will expire and no longer be applied."
61
61
},
62
62
"actorTarget": {
63
63
"type": "string",
64
64
"default": "all",
65
65
"description": "Groups of users to apply the muted word to. If undefined, applies to all users.",
66
66
"knownValues": [
67
67
"all",
68
68
"exclude-following"
69
69
]
70
70
}
71
71
},
72
72
"description": "A word that the account owner has muted."
73
73
},
74
74
"savedFeed": {
75
75
"type": "object",
76
76
"required": [
77
77
"id",
78
78
"type",
79
79
"value",
80
80
"pinned"
81
81
],
82
82
"properties": {
83
83
"id": {
84
84
"type": "string"
85
85
},
86
86
"type": {
87
87
"type": "string",
88
88
"knownValues": [
89
89
"feed",
90
90
"list",
91
91
"timeline"
92
92
]
93
93
},
94
94
"value": {
95
95
"type": "string"
96
96
},
97
97
"pinned": {
98
98
"type": "boolean"
99
99
}
100
100
}
101
101
},
102
102
"statusView": {
103
103
"type": "object",
104
104
"required": [
105
105
"status",
106
106
"record"
107
107
],
108
108
"properties": {
109
109
"cid": {
110
110
"type": "string",
111
111
"format": "cid"
112
112
},
113
113
"uri": {
114
114
"type": "string",
115
115
"format": "at-uri"
116
116
},
117
117
"embed": {
118
118
"refs": [
119
119
"app.bsky.embed.external#view"
120
120
],
121
121
"type": "union",
122
122
"description": "An optional embed associated with the status."
123
123
},
124
+
"labels": {
125
+
"type": "array",
126
+
"items": {
127
+
"ref": "com.atproto.label.defs#label",
128
+
"type": "ref"
129
+
}
130
+
},
124
131
"record": {
125
132
"type": "unknown"
126
133
},
127
134
"status": {
128
135
"type": "string",
129
136
"description": "The status for the account.",
130
137
"knownValues": [
131
138
"app.bsky.actor.status#live"
132
139
]
133
140
},
134
141
"isActive": {
135
142
"type": "boolean",
136
143
"description": "True if the status is not expired, false if it is expired. Only present if expiration was set."
137
144
},
138
145
"expiresAt": {
139
146
"type": "string",
140
147
"format": "datetime",
141
148
"description": "The date when this status will expire. The application might choose to no longer return the status after expiration."
142
149
},
143
150
"isDisabled": {
144
151
"type": "boolean",
145
152
"description": "True if the user's go-live access has been disabled by a moderator, false otherwise."
146
153
}
147
154
}
148
155
},
149
156
"preferences": {
150
157
"type": "array",
151
158
"items": {
152
159
"refs": [
153
160
"#adultContentPref",
154
161
"#contentLabelPref",
155
162
"#savedFeedsPref",
156
163
"#savedFeedsPrefV2",
157
164
"#personalDetailsPref",
158
165
"#declaredAgePref",
159
166
"#feedViewPref",
160
167
"#threadViewPref",
161
168
"#interestsPref",
162
169
"#mutedWordsPref",
163
170
"#hiddenPostsPref",
164
171
"#bskyAppStatePref",
165
172
"#labelersPref",
166
173
"#postInteractionSettingsPref",
167
174
"#verificationPrefs",
168
175
"#liveEventPreferences"
169
176
],
170
177
"type": "union"
171
178
}
172
179
},
173
180
"profileView": {
174
181
"type": "object",
175
182
"required": [
176
183
"did",
177
184
"handle"
178
185
],
179
186
"properties": {
180
187
"did": {
181
188
"type": "string",
182
189
"format": "did"
183
190
},
184
191
"debug": {
185
192
"type": "unknown",
186
193
"description": "Debug information for internal development"
187
194
},
188
195
"avatar": {
189
196
"type": "string",
190
197
"format": "uri"
191
198
},
192
199
"handle": {
193
200
"type": "string",
194
201
"format": "handle"
195
202
},
196
203
"labels": {
197
204
"type": "array",
198
205
"items": {
199
206
"ref": "com.atproto.label.defs#label",
200
207
"type": "ref"
201
208
}
202
209
},
203
210
"status": {
204
211
"ref": "#statusView",
205
212
"type": "ref"
206
213
},
207
214
"viewer": {
208
215
"ref": "#viewerState",
209
216
"type": "ref"
210
217
},
211
218
"pronouns": {
212
219
"type": "string"
213
220
},
214
221
"createdAt": {
215
222
"type": "string",
216
223
"format": "datetime"
217
224
},
218
225
"indexedAt": {
219
226
"type": "string",
220
227
"format": "datetime"
221
228
},
222
229
"associated": {
223
230
"ref": "#profileAssociated",
224
231
"type": "ref"
225
232
},
226
233
"description": {
227
234
"type": "string",
228
235
"maxLength": 2560,
229
236
"maxGraphemes": 256
230
237
},
231
238
"displayName": {
232
239
"type": "string",
233
240
"maxLength": 640,
234
241
"maxGraphemes": 64
235
242
},
236
243
"verification": {
237
244
"ref": "#verificationState",
238
245
"type": "ref"
239
246
}
240
247
}
241
248
},
242
249
"viewerState": {
243
250
"type": "object",
244
251
"properties": {
245
252
"muted": {
246
-
"type": "boolean"
253
+
"type": "boolean",
254
+
"description": "Whether the account is fully muted, directly or via a mutelist. False when the mute is scoped to specific kinds; see mutedOnlyReposts and mutedOnlyQuoteposts."
247
255
},
248
256
"blocking": {
249
257
"type": "string",
250
258
"format": "at-uri"
251
259
},
252
260
"blockedBy": {
253
261
"type": "boolean"
254
262
},
255
263
"following": {
256
264
"type": "string",
257
265
"format": "at-uri"
258
266
},
259
267
"followedBy": {
260
268
"type": "string",
261
269
"format": "at-uri"
262
270
},
263
271
"mutedByList": {
264
272
"ref": "app.bsky.graph.defs#listViewBasic",
265
273
"type": "ref"
266
274
},
267
275
"blockingByList": {
268
276
"ref": "app.bsky.graph.defs#listViewBasic",
269
277
"type": "ref"
270
278
},
271
279
"knownFollowers": {
272
280
"ref": "#knownFollowers",
273
281
"type": "ref",
274
282
"description": "This property is present only in selected cases, as an optimization."
275
283
},
284
+
"mutedOnlyReposts": {
285
+
"type": "boolean",
286
+
"description": "Whether the account's reposts are muted. Scoped mutes are exclusive with muted: this can be true while muted is false. If muted is true, this will be false."
287
+
},
288
+
"mutedOnlyQuoteposts": {
289
+
"type": "boolean",
290
+
"description": "Whether the account's quote posts are muted. Scoped mutes are exclusive with muted: this can be true while muted is false. If muted is true, this will be false."
291
+
},
276
292
"activitySubscription": {
277
293
"ref": "app.bsky.notification.defs#activitySubscription",
278
294
"type": "ref",
279
295
"description": "This property is present only in selected cases, as an optimization."
280
296
}
281
297
},
282
298
"description": "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests."
283
299
},
284
300
"feedViewPref": {
285
301
"type": "object",
286
302
"required": [
287
303
"feed"
288
304
],
289
305
"properties": {
290
306
"feed": {
291
307
"type": "string",
292
308
"description": "The URI of the feed, or an identifier which describes the feed."
293
309
},
294
310
"hideReplies": {
295
311
"type": "boolean",
296
312
"description": "Hide replies in the feed."
297
313
},
298
314
"hideReposts": {
299
315
"type": "boolean",
300
316
"description": "Hide reposts in the feed."
301
317
},
302
318
"hideQuotePosts": {
303
319
"type": "boolean",
304
320
"description": "Hide quote posts in the feed."
305
321
},
306
322
"hideRepliesByLikeCount": {
307
323
"type": "integer",
308
324
"description": "Hide replies in the feed if they do not have this number of likes."
309
325
},
310
326
"hideRepliesByUnfollowed": {
311
327
"type": "boolean",
312
328
"default": true,
313
329
"description": "Hide replies in the feed if they are not by followed users."
314
330
}
315
331
}
316
332
},
317
333
"labelersPref": {
318
334
"type": "object",
319
335
"required": [
320
336
"labelers"
321
337
],
322
338
"properties": {
323
339
"labelers": {
324
340
"type": "array",
325
341
"items": {
326
342
"ref": "#labelerPrefItem",
327
343
"type": "ref"
328
344
}
329
345
}
330
346
}
331
347
},
332
348
"interestsPref": {
333
349
"type": "object",
334
350
"required": [
335
351
"tags"
336
352
],
337
353
"properties": {
338
354
"tags": {
339
355
"type": "array",
340
356
"items": {
341
357
"type": "string",
342
358
"maxLength": 640,
343
359
"maxGraphemes": 64
344
360
},
345
361
"maxLength": 100,
346
362
"description": "A list of tags which describe the account owner's interests gathered during onboarding."
347
363
}
348
364
}
349
365
},
350
366
"knownFollowers": {
351
367
"type": "object",
352
368
"required": [
353
369
"count",
354
370
"followers"
355
371
],
356
372
"properties": {
357
373
"count": {
358
374
"type": "integer"
359
375
},
360
376
"followers": {
361
377
"type": "array",
362
378
"items": {
363
379
"ref": "#profileViewBasic",
364
380
"type": "ref"
365
381
},
366
382
"maxLength": 5,
367
383
"minLength": 0
368
384
}
369
385
},
370
386
"description": "The subject's followers whom you also follow"
371
387
},
372
388
"mutedWordsPref": {
373
389
"type": "object",
374
390
"required": [
375
391
"items"
376
392
],
377
393
"properties": {
378
394
"items": {
379
395
"type": "array",
380
396
"items": {
381
397
"ref": "app.bsky.actor.defs#mutedWord",
382
398
"type": "ref"
383
399
},
384
400
"description": "A list of words the account owner has muted."
385
401
}
386
402
}
387
403
},
388
404
"savedFeedsPref": {
389
405
"type": "object",
390
406
"required": [
391
407
"pinned",
392
408
"saved"
393
409
],
394
410
"properties": {
395
411
"saved": {
396
412
"type": "array",
397
413
"items": {
398
414
"type": "string",
399
415
"format": "at-uri"
400
416
}
401
417
},
402
418
"pinned": {
403
419
"type": "array",
404
420
"items": {
405
421
"type": "string",
406
422
"format": "at-uri"
407
423
}
408
424
},
409
425
"timelineIndex": {
410
426
"type": "integer"
411
427
}
412
428
}
413
429
},
414
430
"threadViewPref": {
415
431
"type": "object",
416
432
"properties": {
417
433
"sort": {
418
434
"type": "string",
419
435
"description": "Sorting mode for threads.",
420
436
"knownValues": [
421
437
"oldest",
422
438
"newest",
423
439
"most-likes",
424
440
"random",
425
441
"hotness"
426
442
]
427
443
}
428
444
}
429
445
},
430
446
"declaredAgePref": {
431
447
"type": "object",
432
448
"properties": {
433
449
"isOverAge13": {
434
450
"type": "boolean",
435
451
"description": "Indicates if the user has declared that they are over 13 years of age."
436
452
},
437
453
"isOverAge16": {
438
454
"type": "boolean",
439
455
"description": "Indicates if the user has declared that they are over 16 years of age."
440
456
},
441
457
"isOverAge18": {
442
458
"type": "boolean",
443
459
"description": "Indicates if the user has declared that they are over 18 years of age."
444
460
}
445
461
},
446
462
"description": "Read-only preference containing value(s) inferred from the user's declared birthdate. Absence of this preference object in the response indicates that the user has not made a declaration."
447
463
},
448
464
"hiddenPostsPref": {
449
465
"type": "object",
450
466
"required": [
451
467
"items"
452
468
],
453
469
"properties": {
454
470
"items": {
455
471
"type": "array",
456
472
"items": {
457
473
"type": "string",
458
474
"format": "at-uri"
459
475
},
460
476
"description": "A list of URIs of posts the account owner has hidden."
461
477
}
462
478
}
463
479
},
464
480
"labelerPrefItem": {
465
481
"type": "object",
466
482
"required": [
467
483
"did"
468
484
],
469
485
"properties": {
470
486
"did": {
471
487
"type": "string",
472
488
"format": "did"
473
489
}
474
490
}
475
491
},
476
492
"mutedWordTarget": {
477
493
"type": "string",
478
494
"maxLength": 640,
479
495
"knownValues": [
480
496
"content",
481
497
"tag"
482
498
],
483
499
"maxGraphemes": 64
484
500
},
485
501
"adultContentPref": {
486
502
"type": "object",
487
503
"required": [
488
504
"enabled"
489
505
],
490
506
"properties": {
491
507
"enabled": {
492
508
"type": "boolean",
493
509
"default": false
494
510
}
495
511
}
496
512
},
497
513
"bskyAppStatePref": {
498
514
"type": "object",
499
515
"properties": {
500
516
"nuxs": {
501
517
"type": "array",
502
518
"items": {
503
519
"ref": "app.bsky.actor.defs#nux",
504
520
"type": "ref"
505
521
},
506
522
"maxLength": 100,
507
523
"description": "Storage for NUXs the user has encountered."
508
524
},
525
+
"isBetaUser": {
526
+
"type": "boolean",
527
+
"description": "Indicates if the user is participating in the beta features program."
528
+
},
509
529
"queuedNudges": {
510
530
"type": "array",
511
531
"items": {
512
532
"type": "string",
513
533
"maxLength": 100
514
534
},
515
535
"maxLength": 1000,
516
536
"description": "An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user."
517
537
},
518
538
"activeProgressGuide": {
519
539
"ref": "#bskyAppProgressGuide",
520
540
"type": "ref"
521
541
}
522
542
},
523
543
"description": "A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this."
524
544
},
525
545
"contentLabelPref": {
526
546
"type": "object",
527
547
"required": [
528
548
"label",
529
549
"visibility"
530
550
],
531
551
"properties": {
532
552
"label": {
533
553
"type": "string"
534
554
},
535
555
"labelerDid": {
536
556
"type": "string",
537
557
"format": "did",
538
558
"description": "Which labeler does this preference apply to? If undefined, applies globally."
539
559
},
540
560
"visibility": {
541
561
"type": "string",
542
562
"knownValues": [
543
563
"ignore",
544
564
"show",
545
565
"warn",
546
566
"hide"
547
567
]
548
568
}
549
569
}
550
570
},
551
571
"profileViewBasic": {
552
572
"type": "object",
553
573
"required": [
554
574
"did",
555
575
"handle"
556
576
],
557
577
"properties": {
558
578
"did": {
559
579
"type": "string",
560
580
"format": "did"
561
581
},
562
582
"debug": {
563
583
"type": "unknown",
564
584
"description": "Debug information for internal development"
565
585
},
566
586
"avatar": {
567
587
"type": "string",
568
588
"format": "uri"
569
589
},
570
590
"handle": {
571
591
"type": "string",
572
592
"format": "handle"
573
593
},
574
594
"labels": {
575
595
"type": "array",
576
596
"items": {
577
597
"ref": "com.atproto.label.defs#label",
578
598
"type": "ref"
579
599
}
580
600
},
581
601
"status": {
582
602
"ref": "#statusView",
583
603
"type": "ref"
584
604
},
585
605
"viewer": {
586
606
"ref": "#viewerState",
587
607
"type": "ref"
588
608
},
589
609
"pronouns": {
590
610
"type": "string"
591
611
},
592
612
"createdAt": {
593
613
"type": "string",
594
614
"format": "datetime"
595
615
},
596
616
"associated": {
597
617
"ref": "#profileAssociated",
598
618
"type": "ref"
599
619
},
600
620
"displayName": {
601
621
"type": "string",
602
622
"maxLength": 640,
603
623
"maxGraphemes": 64
604
624
},
605
625
"verification": {
606
626
"ref": "#verificationState",
607
627
"type": "ref"
608
628
}
609
629
}
610
630
},
611
631
"savedFeedsPrefV2": {
612
632
"type": "object",
613
633
"required": [
614
634
"items"
615
635
],
616
636
"properties": {
617
637
"items": {
618
638
"type": "array",
619
639
"items": {
620
640
"ref": "app.bsky.actor.defs#savedFeed",
621
641
"type": "ref"
622
642
}
623
643
}
624
644
}
625
645
},
626
646
"verificationView": {
627
647
"type": "object",
628
648
"required": [
629
649
"issuer",
630
650
"uri",
631
651
"isValid",
632
652
"createdAt"
633
653
],
634
654
"properties": {
635
655
"uri": {
636
656
"type": "string",
637
657
"format": "at-uri",
638
658
"description": "The AT-URI of the verification record."
639
659
},
640
660
"issuer": {
641
661
"type": "string",
642
662
"format": "did",
643
663
"description": "The user who issued this verification."
644
664
},
645
665
"isValid": {
646
666
"type": "boolean",
647
667
"description": "True if the verification passes validation, otherwise false."
648
668
},
649
669
"createdAt": {
650
670
"type": "string",
651
671
"format": "datetime",
652
672
"description": "Timestamp when the verification was created."
673
+
},
674
+
"issuerHandle": {
675
+
"type": "string",
676
+
"format": "handle",
677
+
"description": "The handle of the issuer."
678
+
},
679
+
"issuerDisplayName": {
680
+
"type": "string",
681
+
"description": "The display name of the issuer."
653
682
}
654
683
},
655
684
"description": "An individual verification for an associated subject."
656
685
},
657
686
"profileAssociated": {
658
687
"type": "object",
659
688
"properties": {
660
689
"chat": {
661
690
"ref": "#profileAssociatedChat",
662
691
"type": "ref"
663
692
},
664
693
"germ": {
665
694
"ref": "#profileAssociatedGerm",
666
695
"type": "ref"
667
696
},
668
697
"lists": {
669
698
"type": "integer"
670
699
},
671
700
"labeler": {
672
701
"type": "boolean"
673
702
},
674
703
"feedgens": {
675
704
"type": "integer"
676
705
},
677
706
"starterPacks": {
678
707
"type": "integer"
679
708
},
680
709
"activitySubscription": {
681
710
"ref": "#profileAssociatedActivitySubscription",
682
711
"type": "ref"
683
712
}
684
713
}
685
714
},
686
715
"verificationPrefs": {
687
716
"type": "object",
688
717
"required": [],
689
718
"properties": {
690
719
"hideBadges": {
691
720
"type": "boolean",
692
721
"default": false,
693
722
"description": "Hide the blue check badges for verified accounts and trusted verifiers."
694
723
}
695
724
},
696
725
"description": "Preferences for how verified accounts appear in the app."
697
726
},
698
727
"verificationState": {
699
728
"type": "object",
700
729
"required": [
701
730
"verifications",
702
731
"verifiedStatus",
703
732
"trustedVerifierStatus"
704
733
],
705
734
"properties": {
706
735
"verifications": {
707
736
"type": "array",
708
737
"items": {
709
738
"ref": "#verificationView",
710
739
"type": "ref"
711
740
},
712
741
"description": "All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included."
713
742
},
714
743
"verifiedStatus": {
715
744
"type": "string",
716
745
"description": "The user's status as a verified account.",
717
746
"knownValues": [
718
747
"valid",
719
748
"invalid",
720
749
"none"
721
750
]
722
751
},
723
752
"trustedVerifierStatus": {
724
753
"type": "string",
725
754
"description": "The user's status as a trusted verifier.",
726
755
"knownValues": [
727
756
"valid",
728
757
"invalid",
729
758
"none"
730
759
]
731
760
}
732
761
},
733
762
"description": "Represents the verification information about the user this object is attached to."
734
763
},
735
764
"personalDetailsPref": {
736
765
"type": "object",
737
766
"properties": {
738
767
"birthDate": {
739
768
"type": "string",
740
769
"format": "datetime",
741
770
"description": "The birth date of account owner."
742
771
}
743
772
}
744
773
},
745
774
"profileViewDetailed": {
746
775
"type": "object",
747
776
"required": [
748
777
"did",
749
778
"handle"
750
779
],
751
780
"properties": {
752
781
"did": {
753
782
"type": "string",
754
783
"format": "did"
755
784
},
756
785
"debug": {
757
786
"type": "unknown",
758
787
"description": "Debug information for internal development"
759
788
},
760
789
"avatar": {
761
790
"type": "string",
762
791
"format": "uri"
763
792
},
764
793
"banner": {
765
794
"type": "string",
766
795
"format": "uri"
767
796
},
768
797
"handle": {
769
798
"type": "string",
770
799
"format": "handle"
771
800
},
772
801
"labels": {
773
802
"type": "array",
774
803
"items": {
775
804
"ref": "com.atproto.label.defs#label",
776
805
"type": "ref"
777
806
}
778
807
},
779
808
"status": {
780
809
"ref": "#statusView",
781
810
"type": "ref"
782
811
},
783
812
"viewer": {
784
813
"ref": "#viewerState",
785
814
"type": "ref"
786
815
},
787
816
"website": {
788
817
"type": "string",
789
818
"format": "uri"
790
819
},
791
820
"pronouns": {
792
821
"type": "string"
793
822
},
794
823
"createdAt": {
795
824
"type": "string",
796
825
"format": "datetime"
797
826
},
798
827
"indexedAt": {
799
828
"type": "string",
800
829
"format": "datetime"
801
830
},
802
831
"associated": {
803
832
"ref": "#profileAssociated",
804
833
"type": "ref"
805
834
},
806
835
"pinnedPost": {
807
836
"ref": "com.atproto.repo.strongRef",
808
837
"type": "ref"
809
838
},
810
839
"postsCount": {
811
840
"type": "integer"
812
841
},
813
842
"description": {
814
843
"type": "string",
815
844
"maxLength": 2560,
816
845
"maxGraphemes": 256
817
846
},
818
847
"displayName": {
819
848
"type": "string",
820
849
"maxLength": 640,
821
850
"maxGraphemes": 64
822
851
},
823
852
"followsCount": {
824
853
"type": "integer"
825
854
},
826
855
"verification": {
827
856
"ref": "#verificationState",
828
857
"type": "ref"
829
858
},
830
859
"followersCount": {
831
860
"type": "integer"
832
861
},
833
862
"joinedViaStarterPack": {
834
863
"ref": "app.bsky.graph.defs#starterPackViewBasic",
835
864
"type": "ref"
836
865
}
837
866
}
838
867
},
839
868
"bskyAppProgressGuide": {
840
869
"type": "object",
841
870
"required": [
842
871
"guide"
843
872
],
844
873
"properties": {
845
874
"guide": {
846
875
"type": "string",
847
876
"maxLength": 100
848
877
}
849
878
},
850
879
"description": "If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress."
851
880
},
852
881
"liveEventPreferences": {
853
882
"type": "object",
854
883
"properties": {
855
884
"hideAllFeeds": {
856
885
"type": "boolean",
857
886
"default": false,
858
887
"description": "Whether to hide all feeds from live events."
859
888
},
860
889
"hiddenFeedIds": {
861
890
"type": "array",
862
891
"items": {
863
892
"type": "string"
864
893
},
865
894
"description": "A list of feed IDs that the user has hidden from live events."
866
895
}
867
896
},
868
897
"description": "Preferences for live events."
869
898
},
870
899
"profileAssociatedChat": {
871
900
"type": "object",
872
901
"required": [
873
902
"allowIncoming"
874
903
],
875
904
"properties": {
876
905
"allowIncoming": {
877
906
"type": "string",
878
907
"knownValues": [
879
908
"all",
880
909
"none",
881
910
"following"
882
911
]
912
+
},
913
+
"allowGroupInvites": {
914
+
"type": "string",
915
+
"knownValues": [
916
+
"all",
917
+
"none",
918
+
"following"
919
+
]
883
920
}
884
921
}
885
922
},
886
923
"profileAssociatedGerm": {
887
924
"type": "object",
888
925
"required": [
889
926
"showButtonTo",
890
927
"messageMeUrl"
891
928
],
892
929
"properties": {
893
930
"messageMeUrl": {
894
931
"type": "string",
895
932
"format": "uri"
896
933
},
897
934
"showButtonTo": {
898
935
"type": "string",
899
936
"knownValues": [
900
937
"usersIFollow",
901
938
"everyone"
902
939
]
903
940
}
904
941
}
905
942
},
906
943
"postInteractionSettingsPref": {
907
944
"type": "object",
908
945
"required": [],
909
946
"properties": {
910
947
"threadgateAllowRules": {
911
948
"type": "array",
912
949
"items": {
913
950
"refs": [
914
951
"app.bsky.feed.threadgate#mentionRule",
915
952
"app.bsky.feed.threadgate#followerRule",
916
953
"app.bsky.feed.threadgate#followingRule",
917
954
"app.bsky.feed.threadgate#listRule"
918
955
],
919
956
"type": "union"
920
957
},
921
958
"maxLength": 5,
922
959
"description": "Matches threadgate record. List of rules defining who can reply to this users posts. If value is an empty array, no one can reply. If value is undefined, anyone can reply."
923
960
},
924
961
"postgateEmbeddingRules": {
925
962
"type": "array",
926
963
"items": {
927
964
"refs": [
928
965
"app.bsky.feed.postgate#disableRule"
929
966
],
930
967
"type": "union"
931
968
},
932
969
"maxLength": 5,
933
970
"description": "Matches postgate record. List of rules defining who can embed this users posts. If value is an empty array or is undefined, no particular rules apply and anyone can embed."
934
971
}
935
972
},
936
973
"description": "Default post interaction settings for the account. These values should be applied as default values when creating new posts. These refs should mirror the threadgate and postgate records exactly."
937
974
},
938
975
"profileAssociatedActivitySubscription": {
939
976
"type": "object",
940
977
"required": [
941
978
"allowSubscriptions"
942
979
],
943
980
"properties": {
944
981
"allowSubscriptions": {
945
982
"type": "string",
946
983
"knownValues": [
947
984
"followers",
948
985
"mutuals",
949
986
"none"
950
987
]
951
988
}
952
989
}
953
990
}
954
991
},
955
992
"$type": "com.atproto.lexicon.schema",
956
993
"lexicon": 1
957
994
}