app.bsky.actor.defs

bsky-lexicons.bsky.social

Schema Diff

+31 -1

From

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

To

CID
bafyreiaxduxpwdp...
Indexed At
2026-08-05 15:08 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 12 non-breaking changes.

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

Compare Other Versions

Lexicon Garden

@