fyi.atstore.directory.getListing

atstore.fyi

Schema Diff

+32 -15

From

CID
bafyreieuzjx4sgv...
Indexed At
2026-06-11 15:30 UTC
View this version

To

CID
bafyreieo5iovtit...
Indexed At
2026-07-26 20:08 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

13 breaking changes, 0 non-breaking changes.

Breaking Changes (13)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingCardGet", src: "fyi.atstore.directory.getListing#listingCardGet", tgt: "fyi.atstore.directory.getListing#listingCardGet.productAccountHandle", kind: "prop", name: Some("productAccountHandle") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingCardGet", src: "fyi.atstore.directory.getListing#listingCardGet", tgt: "fyi.atstore.directory.getListing#listingCardGet.rating", kind: "prop", name: Some("rating") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingCardGet", src: "fyi.atstore.directory.getListing#listingCardGet", tgt: "fyi.atstore.directory.getListing#listingCardGet.categorySlug", kind: "prop", name: Some("categorySlug") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingCardGet", src: "fyi.atstore.directory.getListing#listingCardGet", tgt: "fyi.atstore.directory.getListing#listingCardGet.heroImageUrl", kind: "prop", name: Some("heroImageUrl") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingCardGet", src: "fyi.atstore.directory.getListing#listingCardGet", tgt: "fyi.atstore.directory.getListing#listingCardGet.iconUrl", kind: "prop", name: Some("iconUrl") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.repoDid", kind: "prop", name: Some("repoDid") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.externalUrl", kind: "prop", name: Some("externalUrl") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.productAccountDid", kind: "prop", name: Some("productAccountDid") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.sourceTagline", kind: "prop", name: Some("sourceTagline") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.sourceUrl", kind: "prop", name: Some("sourceUrl") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.createdAt", kind: "prop", name: Some("createdAt") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.sourceFullDescription", kind: "prop", name: Some("sourceFullDescription") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.updatedAt", kind: "prop", name: Some("updatedAt") }

Migration Guidance

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.repoDid", kind: "prop", name: Some("repoDid") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.externalUrl", kind: "prop", name: Some("externalUrl") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.productAccountDid", kind: "prop", name: Some("productAccountDid") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.sourceTagline", kind: "prop", name: Some("sourceTagline") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.sourceUrl", kind: "prop", name: Some("sourceUrl") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.createdAt", kind: "prop", name: Some("createdAt") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.sourceFullDescription", kind: "prop", name: Some("sourceFullDescription") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingDetailResponse", src: "fyi.atstore.directory.getListing#listingDetailResponse", tgt: "fyi.atstore.directory.getListing#listingDetailResponse.updatedAt", kind: "prop", name: Some("updatedAt") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingCardGet", src: "fyi.atstore.directory.getListing#listingCardGet", tgt: "fyi.atstore.directory.getListing#listingCardGet.productAccountHandle", kind: "prop", name: Some("productAccountHandle") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingCardGet", src: "fyi.atstore.directory.getListing#listingCardGet", tgt: "fyi.atstore.directory.getListing#listingCardGet.rating", kind: "prop", name: Some("rating") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingCardGet", src: "fyi.atstore.directory.getListing#listingCardGet", tgt: "fyi.atstore.directory.getListing#listingCardGet.categorySlug", kind: "prop", name: Some("categorySlug") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingCardGet", src: "fyi.atstore.directory.getListing#listingCardGet", tgt: "fyi.atstore.directory.getListing#listingCardGet.heroImageUrl", kind: "prop", name: Some("heroImageUrl") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.atstore.directory.getListing#listingCardGet", src: "fyi.atstore.directory.getListing#listingCardGet", tgt: "fyi.atstore.directory.getListing#listingCardGet.iconUrl", kind: "prop", name: Some("iconUrl") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "listingCardGet": {
5 +
      "nullable": [
6 +
        "iconUrl",
7 +
        "heroImageUrl",
8 +
        "categorySlug",
9 +
        "rating",
10 +
        "productAccountHandle"
11 +
      ],
5 12
      "properties": {
6 13
        "accent": {
7 14
          "knownValues": [
8 15
            "blue",
9 16
            "pink",
10 17
            "purple",
11 18
            "green"
12 19
          ],
13 20
          "maxLength": 16,
14 21
          "type": "string"
15 22
        },
16 23
        "appTags": {
17 24
          "items": {
18 25
            "maxLength": 256,
19 26
            "type": "string"
20 27
          },
21 28
          "type": "array"
22 29
        },
23 30
        "category": {
24 31
          "maxLength": 640,
25 32
          "type": "string"
26 33
        },
27 34
        "categorySlug": {
28 35
          "maxLength": 512,
29 -
          "nullable": true,
30 36
          "type": "string"
31 37
        },
32 38
        "categorySlugs": {
33 39
          "items": {
34 40
            "maxLength": 512,
35 41
            "type": "string"
36 42
          },
37 43
          "type": "array"
38 44
        },
39 45
        "description": {
40 46
          "maxLength": 20000,
41 47
          "type": "string"
42 48
        },
43 49
        "heroImageUrl": {
44 50
          "maxLength": 8192,
45 -
          "nullable": true,
46 51
          "type": "string"
47 52
        },
48 53
        "iconUrl": {
49 54
          "maxLength": 8192,
50 -
          "nullable": true,
51 55
          "type": "string"
52 56
        },
53 57
        "name": {
54 58
          "maxLength": 640,
55 59
          "type": "string"
56 60
        },
57 61
        "priceLabel": {
58 62
          "maxLength": 32,
59 63
          "type": "string"
60 64
        },
61 65
        "productAccountHandle": {
62 66
          "maxLength": 512,
63 -
          "nullable": true,
64 67
          "type": "string"
65 68
        },
66 69
        "rating": {
67 70
          "maxLength": 16,
68 -
          "nullable": true,
69 71
          "type": "string"
70 72
        },
71 73
        "reviewCount": {
72 74
          "type": "integer"
73 75
        },
74 76
        "tagline": {
75 77
          "maxLength": 2000,
76 78
          "type": "string"
77 79
        },
78 80
        "uri": {
79 81
          "description": "AT URI of the fyi.atstore.listing.detail record.",
80 82
          "format": "at-uri",
81 83
          "maxLength": 2560,
82 84
          "type": "string"
83 85
        }
84 86
      },
85 87
      "required": [
86 88
        "uri",
87 89
        "name",
88 90
        "tagline",
89 91
        "description",
90 92
        "category",
91 93
        "accent",
92 94
        "reviewCount",
93 95
        "priceLabel",
94 96
        "appTags",
95 -
        "categorySlugs"
97 +
        "categorySlugs",
98 +
        "iconUrl",
99 +
        "heroImageUrl",
100 +
        "categorySlug",
101 +
        "rating",
102 +
        "productAccountHandle"
96 103
      ],
97 104
      "type": "object"
98 105
    },
99 106
    "listingDetailResponse": {
107 +
      "nullable": [
108 +
        "repoDid",
109 +
        "productAccountDid",
110 +
        "sourceTagline",
111 +
        "sourceFullDescription",
112 +
        "externalUrl",
113 +
        "sourceUrl",
114 +
        "createdAt",
115 +
        "updatedAt"
116 +
      ],
100 117
      "properties": {
101 118
        "createdAt": {
102 119
          "maxLength": 64,
103 -
          "nullable": true,
104 120
          "type": "string"
105 121
        },
106 122
        "externalUrl": {
107 123
          "maxLength": 2048,
108 -
          "nullable": true,
109 124
          "type": "string"
110 125
        },
111 126
        "isStoreManaged": {
112 127
          "type": "boolean"
113 128
        },
114 129
        "links": {
115 130
          "items": {
116 131
            "ref": "#listingLinkRow",
117 132
            "type": "ref"
118 133
          },
119 134
          "type": "array"
120 135
        },
121 136
        "listing": {
122 137
          "ref": "#listingCardGet",
123 138
          "type": "ref"
124 139
        },
125 140
        "productAccountDid": {
126 141
          "maxLength": 2048,
127 -
          "nullable": true,
128 142
          "type": "string"
129 143
        },
130 144
        "repoDid": {
131 145
          "maxLength": 2048,
132 -
          "nullable": true,
133 146
          "type": "string"
134 147
        },
135 148
        "screenshots": {
136 149
          "items": {
137 150
            "maxLength": 4096,
138 151
            "type": "string"
139 152
          },
140 153
          "type": "array"
141 154
        },
142 155
        "sourceFullDescription": {
143 156
          "maxLength": 20000,
144 -
          "nullable": true,
145 157
          "type": "string"
146 158
        },
147 159
        "sourceTagline": {
148 160
          "maxLength": 20000,
149 -
          "nullable": true,
150 161
          "type": "string"
151 162
        },
152 163
        "sourceUrl": {
153 164
          "maxLength": 8192,
154 -
          "nullable": true,
155 165
          "type": "string"
156 166
        },
157 167
        "updatedAt": {
158 168
          "maxLength": 64,
159 -
          "nullable": true,
160 169
          "type": "string"
161 170
        }
162 171
      },
163 172
      "required": [
164 173
        "listing",
165 -
        "isStoreManaged"
174 +
        "isStoreManaged",
175 +
        "repoDid",
176 +
        "productAccountDid",
177 +
        "sourceTagline",
178 +
        "sourceFullDescription",
179 +
        "externalUrl",
180 +
        "sourceUrl",
181 +
        "createdAt",
182 +
        "updatedAt"
166 183
      ],
167 184
      "type": "object"
168 185
    },
169 186
    "listingLinkRow": {
170 187
      "properties": {
171 188
        "label": {
172 189
          "maxLength": 640,
173 190
          "type": "string"
174 191
        },
175 192
        "uri": {
176 193
          "maxLength": 2048,
177 194
          "type": "string"
178 195
        }
179 196
      },
180 197
      "required": [
181 198
        "uri"
182 199
      ],
183 200
      "type": "object"
184 201
    },
185 202
    "main": {
186 203
      "description": "Fetch one public verified listing. Provide exactly one of `uri` (fyi.atstore.listing.detail AT URI) or `externalUrl` (unique storefront URL); `externalUrl` uses the same matching rules as the former resolve endpoint.",
187 204
      "errors": [
188 205
        {
189 206
          "name": "ListingNotFound"
190 207
        },
191 208
        {
192 209
          "name": "InvalidParams"
193 210
        },
194 211
        {
195 212
          "name": "AmbiguousResolution"
196 213
        }
197 214
      ],
198 215
      "output": {
199 216
        "encoding": "application/json",
200 217
        "schema": {
201 218
          "ref": "#listingDetailResponse",
202 219
          "type": "ref"
203 220
        }
204 221
      },
205 222
      "parameters": {
206 223
        "properties": {
207 224
          "externalUrl": {
208 225
            "description": "Listing external_url / product URL as stored on the record; must match at most one public listing.",
209 226
            "maxLength": 2048,
210 227
            "type": "string"
211 228
          },
212 229
          "uri": {
213 230
            "description": "AT URI of the fyi.atstore.listing.detail record.",
214 231
            "format": "at-uri",
215 232
            "maxLength": 2560,
216 233
            "type": "string"
217 234
          }
218 235
        },
219 236
        "type": "params"
220 237
      },
221 238
      "type": "query"
222 239
    }
223 240
  },
224 241
  "id": "fyi.atstore.directory.getListing",
225 242
  "lexicon": 1
226 243
}

Compare Other Versions

Lexicon Garden

@