app.bsky.actor.defs

bsky-lexicons.bsky.social

Schema Diff

+7 -0

From

CID
bafyreigwqwhe2jx...
Indexed At
2026-02-18 17:41 UTC
View this version

To

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

Compatibility Analysis

Backward Compatible

Backward compatible. 5 non-breaking changes.

Non-Breaking Changes (5)
  • AddedVertex AddedVertex { vertex_id: "app.bsky.actor.defs#statusView.labels" }
  • AddedVertex AddedVertex { vertex_id: "app.bsky.actor.defs#statusView.labels:items" }
  • 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 }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.bsky.actor.defs#statusView.labels" }
  • AddedVertex { vertex_id: "app.bsky.actor.defs#statusView.labels:items" }

Additional Notes

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

Compare Other Versions

Lexicon Garden

@