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.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.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.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.updatedAt", kind: "prop", name: Some("updatedAt") }
  • 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") }

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

Compare Other Versions

Lexicon Garden

@