app.bsky.actor.defs

bsky-lexicons.bsky.social

Schema Diff

+21 -0

From

CID
bafyreiel3mr6hz7...
Indexed At
2026-04-15 20:56 UTC
View this version

To

CID
bafyreielcp7ccfx...
Indexed At
2026-07-16 14:58 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 8 non-breaking changes.

Non-Breaking Changes (8)
  • 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#verificationView.issuerDisplayName" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.actor.defs#verificationView.issuerHandle" }
  • 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#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") }

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#verificationView.issuerDisplayName" }
  • AddedVertex { vertex_id: "app.bsky.actor.defs#verificationView.issuerHandle" }

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

Compare Other Versions

Lexicon Garden

@