@shoalrun/cli 0.1.0-alpha.12 → 0.1.0-alpha.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +45 -5
  3. package/agent-docs/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt +3 -1
  4. package/agent-docs/SNAPSHOT.json +5 -5
  5. package/agent-docs/api-docs/support.md +11 -10
  6. package/agent-docs/author/components.md +13 -1
  7. package/agent-docs/author/frontmatter-reference.md +28 -25
  8. package/agent-docs/author/frontmatter-reference.sections/choose-a-publication-and-visibility.md +3 -1
  9. package/agent-docs/author/frontmatter-reference.sections/control-output-details.md +3 -1
  10. package/agent-docs/author/frontmatter-reference.sections/global-defaults-and-enforced-values.md +3 -1
  11. package/agent-docs/author/frontmatter-reference.sections/html-markdown-and-agents.md +3 -1
  12. package/agent-docs/author/frontmatter-reference.sections/identify-and-route-a-page.md +3 -1
  13. package/agent-docs/author/frontmatter-reference.sections/point-agents-to-it.md +3 -1
  14. package/agent-docs/author/frontmatter-reference.sections/project-defined-fields.md +3 -1
  15. package/agent-docs/author/frontmatter-reference.sections/related-reading.md +3 -1
  16. package/agent-docs/author/frontmatter-reference.sections/use-the-local-files-while-authoring.md +3 -1
  17. package/agent-docs/author/frontmatter-reference.sections/when-the-files-update.md +3 -1
  18. package/agent-docs/author/frontmatter.md +5 -2
  19. package/agent-docs/author/frontmatter.sections/audience-badges.md +1 -1
  20. package/agent-docs/author/frontmatter.sections/give-deprecation-guidance.md +1 -1
  21. package/agent-docs/author/frontmatter.sections/global-defaults-and-enforced-values.md +1 -1
  22. package/agent-docs/author/frontmatter.sections/optional-native-fields.md +5 -2
  23. package/agent-docs/author/frontmatter.sections/publication-fields.md +1 -1
  24. package/agent-docs/author/frontmatter.sections/publishing-policy.md +1 -1
  25. package/agent-docs/author/frontmatter.sections/related-metadata-tasks.md +1 -1
  26. package/agent-docs/author/frontmatter.sections/related-reading.md +1 -1
  27. package/agent-docs/author/frontmatter.sections/required-after-inheritance.md +1 -1
  28. package/agent-docs/author/frontmatter.sections/seo-fields.md +1 -1
  29. package/agent-docs/author/frontmatter.sections/validation-rules.md +1 -1
  30. package/agent-docs/author/markdown-metadata.md +13 -5
  31. package/agent-docs/author/navigation.md +12 -1
  32. package/agent-docs/author/navigation.sections/arrange-authored-pages.md +1 -1
  33. package/agent-docs/author/navigation.sections/fill-an-api-tag-group.md +1 -1
  34. package/agent-docs/author/navigation.sections/hide-group-page-counts.md +12 -1
  35. package/agent-docs/author/navigation.sections/html-markdown-and-agents.md +1 -1
  36. package/agent-docs/author/navigation.sections/local-api-preview.md +1 -1
  37. package/agent-docs/author/navigation.sections/mix-guides-and-api-references.md +1 -1
  38. package/agent-docs/author/navigation.sections/optionally-split-a-large-menu-into-files.md +1 -1
  39. package/agent-docs/author/navigation.sections/reach-navigation-while-reading.md +1 -1
  40. package/agent-docs/author/navigation.sections/related-reading.md +1 -1
  41. package/agent-docs/author/navigation.sections/split-navigation-into-tabs.md +1 -1
  42. package/agent-docs/author/navigation.sections/subject-lifecycle-labels.md +1 -1
  43. package/agent-docs/author/templates.md +10 -2
  44. package/agent-docs/author/templates.sections/built-in-feature-templates.md +1 -1
  45. package/agent-docs/author/templates.sections/built-in-templates.md +1 -1
  46. package/agent-docs/author/templates.sections/choose-formatting-enforcement-for-your-project.md +1 -1
  47. package/agent-docs/author/templates.sections/create-or-edit-a-project-template.md +10 -2
  48. package/agent-docs/author/templates.sections/keep-the-four-shapes-distinct.md +1 -1
  49. package/agent-docs/author/templates.sections/project-added-templates.md +1 -1
  50. package/agent-docs/author/templates.sections/related-reading.md +1 -1
  51. package/agent-docs/author/templates.sections/scaffold-a-page.md +1 -1
  52. package/agent-docs/author/templates.sections/short-cli-and-derived-values.md +1 -1
  53. package/agent-docs/author/templates.sections/what-every-template-gives-you.md +1 -1
  54. package/agent-docs/author/workspace.md +7 -1
  55. package/agent-docs/author/writing-style.md +13 -1
  56. package/agent-docs/author/writing-style.sections/adapt-this-example.md +1 -1
  57. package/agent-docs/author/writing-style.sections/choose-components-by-reader-need.md +1 -1
  58. package/agent-docs/author/writing-style.sections/evidence-and-uncertainty.md +1 -1
  59. package/agent-docs/author/writing-style.sections/example-audience-and-scope.md +1 -1
  60. package/agent-docs/author/writing-style.sections/feature-availability.md +36 -0
  61. package/agent-docs/author/writing-style.sections/ingredients-recipes-and-cookbooks.md +1 -1
  62. package/agent-docs/author/writing-style.sections/page-purpose-and-structure.md +1 -1
  63. package/agent-docs/author/writing-style.sections/procedures-and-examples.md +1 -1
  64. package/agent-docs/author/writing-style.sections/related-reading.md +1 -1
  65. package/agent-docs/author/writing-style.sections/review-a-draft.md +1 -1
  66. package/agent-docs/author/writing-style.sections/reviewed-writing-examples.md +1 -1
  67. package/agent-docs/author/writing-style.sections/voice-and-explanations.md +1 -1
  68. package/agent-docs/changelog/2026-10-28.md +89 -0
  69. package/agent-docs/changelog.md +9 -1
  70. package/agent-docs/config/outputs.md +15 -11
  71. package/agent-docs/config/outputs.sections/exports.md +14 -11
  72. package/agent-docs/config/outputs.sections/metadata.md +1 -1
  73. package/agent-docs/config/outputs.sections/related-reading.md +1 -1
  74. package/agent-docs/content-delivery/agents.md +86 -0
  75. package/agent-docs/content-delivery/api.md +130 -0
  76. package/agent-docs/content-delivery/client.md +79 -0
  77. package/agent-docs/content-delivery/http-api/operations/get-content-representation-fa1d2e3f.md +394 -0
  78. package/agent-docs/content-delivery/http-api/operations/get-content-representation-head-4052375c.md +256 -0
  79. package/agent-docs/content-delivery/http-api/operations/get-content-resource-849f1c49.md +911 -0
  80. package/agent-docs/content-delivery/http-api/operations/get-content-resource-head-0a352acd.md +246 -0
  81. package/agent-docs/content-delivery/http-api/operations/list-content-resources-8e977ec7.md +913 -0
  82. package/agent-docs/content-delivery/http-api/operations/list-content-resources-head-b67cbad9.md +236 -0
  83. package/agent-docs/content-delivery/http-api.md +78 -0
  84. package/agent-docs/content-delivery/manifest.md +79 -0
  85. package/agent-docs/content-delivery/publish.md +72 -0
  86. package/agent-docs/content-delivery/render.md +73 -0
  87. package/agent-docs/content-delivery/rest.md +108 -0
  88. package/agent-docs/content-delivery/sections.md +110 -0
  89. package/agent-docs/content-delivery/select.md +100 -0
  90. package/agent-docs/content-delivery.md +79 -0
  91. package/agent-docs/documents.json +6748 -5073
  92. package/agent-docs/provenance.json +4 -4
  93. package/agent-docs/publish/content-export.md +32 -16
  94. package/agent-docs/publish/content-export.sections/assets-downloads-and-notices.md +3 -3
  95. package/agent-docs/publish/content-export.sections/check-the-result.md +2 -2
  96. package/agent-docs/publish/content-export.sections/export-selected-pages.md +12 -9
  97. package/agent-docs/publish/content-export.sections/inspect-the-manifest.md +5 -3
  98. package/agent-docs/publish/content-export.sections/prerequisites.md +3 -3
  99. package/agent-docs/publish/content-export.sections/related-reading.md +2 -2
  100. package/agent-docs/publish/content-export.sections/review-exported-api-material.md +3 -3
  101. package/agent-docs/publish/content-export.sections/try-the-help-drawer-example.md +3 -3
  102. package/agent-docs/publish/content-export.sections/upgrade-an-existing-integration.md +34 -0
  103. package/agent-docs/publish/content-export.sections/what-the-representations-retain.md +4 -4
  104. package/agent-docs/publish/mcp.md +3 -1
  105. package/agent-docs/publish/mcp.sections/check-budgets-and-errors.md +1 -1
  106. package/agent-docs/publish/mcp.sections/choose-the-documentation-source.md +1 -1
  107. package/agent-docs/publish/mcp.sections/configure-the-client.md +1 -1
  108. package/agent-docs/publish/mcp.sections/generate-a-vercel-endpoint.md +1 -1
  109. package/agent-docs/publish/mcp.sections/related-reading.md +3 -1
  110. package/agent-docs/publish/mcp.sections/search-then-read.md +1 -1
  111. package/agent-docs/publish/mcp.sections/serve-a-public-endpoint-on-node.md +1 -1
  112. package/agent-docs/publish/mcp.sections/verify-the-connection.md +1 -1
  113. package/agent-docs/publish/mcp.sections/why-offer-mcp-for-public-docs.md +1 -1
  114. package/agent-docs/publish/seo.md +16 -2
  115. package/agent-docs/publish/seo.sections/related-reading.md +28 -0
  116. package/agent-docs/publish/seo.sections/set-the-public-address.md +36 -0
  117. package/agent-docs/publish/seo.sections/what-agents-receive.md +28 -0
  118. package/agent-docs/publish/seo.sections/what-the-build-adds.md +42 -0
  119. package/agent-docs/publish/seo.sections/write-the-page-title-and-summary.md +43 -0
  120. package/agent-docs/search-index.json +1 -1
  121. package/agent-docs/styling/layouts.md +21 -3
  122. package/agent-docs/styling/layouts.sections/build-a-landing-page.md +6 -3
  123. package/agent-docs/styling/layouts.sections/build-a-splash-page.md +6 -3
  124. package/agent-docs/styling/layouts.sections/control-navigation-tabs.md +6 -3
  125. package/agent-docs/styling/layouts.sections/customize-the-hero.md +6 -3
  126. package/agent-docs/styling/layouts.sections/hero.md +6 -3
  127. package/agent-docs/styling/layouts.sections/hide-the-table-of-contents-or-give-content-more-room.md +54 -0
  128. package/agent-docs/styling/layouts.sections/html-markdown-and-agents.md +6 -3
  129. package/agent-docs/styling/layouts.sections/related-reading.md +6 -3
  130. package/dist/api.js +70 -3
  131. package/dist/authoring-hints.d.ts +3 -0
  132. package/dist/authoring-hints.js +35 -0
  133. package/dist/authoring-project.d.ts +1 -1
  134. package/dist/authoring-project.js +2 -0
  135. package/dist/authoring-validation.js +2 -0
  136. package/dist/code-samples.js +22 -11
  137. package/dist/compiler-config.d.ts +1 -0
  138. package/dist/compiler-config.js +13 -0
  139. package/dist/compiler.js +2 -1
  140. package/dist/component-names.js +1 -1
  141. package/dist/component-transform.js +7 -1
  142. package/dist/content-delivery-contract.d.ts +108 -0
  143. package/dist/content-delivery-contract.js +15 -0
  144. package/dist/content-delivery-transport.d.ts +3 -0
  145. package/dist/content-delivery-transport.js +47 -0
  146. package/dist/content-delivery-validation.d.ts +7 -0
  147. package/dist/content-delivery-validation.js +122 -0
  148. package/dist/content-delivery.d.ts +21 -0
  149. package/dist/content-delivery.js +119 -0
  150. package/dist/content-export-anchors.d.ts +11 -0
  151. package/dist/content-export-anchors.js +79 -0
  152. package/dist/content-export-command.d.ts +4 -2
  153. package/dist/content-export-command.js +15 -2
  154. package/dist/content-export-comparison.d.ts +16 -0
  155. package/dist/content-export-comparison.js +48 -0
  156. package/dist/content-export-config.d.ts +17 -0
  157. package/dist/content-export-config.js +47 -3
  158. package/dist/content-export-render.js +20 -1
  159. package/dist/content-export.d.ts +5 -1
  160. package/dist/content-export.js +193 -40
  161. package/dist/content-mount.d.ts +11 -0
  162. package/dist/content-mount.js +73 -0
  163. package/dist/content-rest-client.d.ts +12 -0
  164. package/dist/content-rest-client.js +162 -0
  165. package/dist/content-rest-contract.d.ts +27 -0
  166. package/dist/content-rest-contract.js +9 -0
  167. package/dist/content-rest-server.d.ts +7 -0
  168. package/dist/content-rest-server.js +99 -0
  169. package/dist/content-source.d.ts +3 -1
  170. package/dist/frontmatter.js +8 -7
  171. package/dist/html-renderer.js +25 -0
  172. package/dist/markdown-sections.d.ts +2 -1
  173. package/dist/markdown-sections.js +8 -18
  174. package/dist/page-renderer.js +5 -3
  175. package/dist/publication-plan.js +2 -1
  176. package/dist/scaffold-placeholders.d.ts +2 -0
  177. package/dist/scaffold-placeholders.js +19 -0
  178. package/dist/section-identity.d.ts +24 -0
  179. package/dist/section-identity.js +137 -0
  180. package/examples/content-delivery/README.md +87 -0
  181. package/examples/content-delivery/app.js +91 -0
  182. package/examples/content-delivery/content/billing.mdx +22 -0
  183. package/examples/content-delivery/docs.config.yaml +36 -0
  184. package/examples/content-delivery/index.html +25 -0
  185. package/examples/content-delivery/preview.mjs +86 -0
  186. package/examples/content-delivery/snippets/refund-window.mdx +3 -0
  187. package/examples/help-drawer/README.md +2 -2
  188. package/examples/help-drawer/app.js +3 -3
  189. package/package.json +6 -3
  190. package/schemas/content-export.schema.json +469 -33
  191. package/schemas/content-rest.openapi.json +1627 -0
  192. package/skills/shoalrun-author/SKILL.md +2 -0
  193. package/styles/site.css +4 -1
@@ -0,0 +1,394 @@
1
+ ---
2
+ id: reference.content-rest.getContentRepresentation
3
+ title: Read HTML or Markdown
4
+ summary: GET /resources/{key}/representations/{format}
5
+ type: api-reference
6
+ area: api
7
+ subarea: api-reference
8
+ canonical: /content-delivery/http-api/operations/get-content-representation-fa1d2e3f
9
+ ---
10
+
11
+ # Read HTML or Markdown
12
+
13
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
14
+
15
+ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/navigation/reference-tab-50f26fe22670.txt) (ID: reference-tab). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
16
+
17
+ Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Content delivery > Content REST API > Other > Read HTML or Markdown
18
+
19
+ **Updated: 2026-09-27.**
20
+
21
+ This reference is generated from the OpenAPI description. It shows the operation contract; follow any related guides below for task steps and context.
22
+
23
+ OpenAPI for this operation: [Download JSON](https://www.shoalrun.com/api/operations/production/current/en/content-rest-getcontentrepresentation-63a66b7a4eae1e1befb0ade4fd57d8346e3a5548cb933c1718acc72a9ab3ceed.json).
24
+
25
+ ## GET /resources/{key}/representations/{format}
26
+
27
+ Read HTML or Markdown
28
+
29
+ Query parameters are single-valued; unknown or duplicate parameters are rejected. Publication and revision checks run before conditional ETag checks. No pagination, search, writes, authentication, or cross-origin policy is supplied by this reference adapter.
30
+
31
+ ### Servers
32
+
33
+ `/content/v1`
34
+
35
+ ### Parameters
36
+
37
+ #### channel (query)
38
+
39
+ Required
40
+
41
+ Exact publication channel. No default or fallback.
42
+
43
+ string; minLength: 1; maxLength: 2048
44
+
45
+ **Default example**: `"production"`
46
+
47
+ #### version (query)
48
+
49
+ Required
50
+
51
+ Exact publication version. No default or fallback.
52
+
53
+ string; minLength: 1; maxLength: 2048
54
+
55
+ **Default example**: `"current"`
56
+
57
+ #### language (query)
58
+
59
+ Required
60
+
61
+ Exact publication language. No default or fallback.
62
+
63
+ string; minLength: 1; maxLength: 2048
64
+
65
+ **Default example**: `"en"`
66
+
67
+ #### revision (query)
68
+
69
+ Required
70
+
71
+ Exact revision returned by the list endpoint. A different revision returns 409; it never silently reads newer content.
72
+
73
+ string; pattern: ^\[a-f0-9]{64}$
74
+
75
+ **Default example**: `"0770e6d70db51967fac8dcc7bb4ff5a5bff87378eb2e2bbb63dea93d090c82e8"`
76
+
77
+ #### key (path)
78
+
79
+ Required
80
+
81
+ Opaque stable typed-reference key. Use the returned key. It is k\_ followed by unpadded base64url of UTF-8 JSON for \["page",documentId], \["section",documentId,sectionId], or \["snippet",id]. Publication and revision are separate selectors.
82
+
83
+ string; pattern: ^k\_\[A-Za-z0-9\_-]+$
84
+
85
+ **Default example**: `"k_WyJwYWdlIiwiZ3VpZGUuYmlsbGluZyJd"`
86
+
87
+ #### format (path)
88
+
89
+ Required
90
+
91
+ string
92
+
93
+ Available options: `"html"`, `"markdown"`
94
+
95
+ **Default example**: `"markdown"`
96
+
97
+ #### If-None-Match (header)
98
+
99
+ Optional
100
+
101
+ An ETag, comma-separated ETags, or \*. Weak comparison is supported for GET and HEAD.
102
+
103
+ string
104
+
105
+ ### Example request
106
+
107
+ ```bash
108
+ curl --request GET \
109
+ --url 'https://YOUR_API_HOST/content/v1/resources/YOUR_KEY/representations/YOUR_FORMAT?channel=YOUR_CHANNEL&version=YOUR_VERSION&language=YOUR_LANGUAGE&revision=YOUR_REVISION'
110
+ ```
111
+
112
+ ### Responses
113
+
114
+ #### 200: OK
115
+
116
+ `text/html`
117
+
118
+ `text/markdown`
119
+
120
+ The selected resource or inventory.
121
+
122
+ ##### Response headers
123
+
124
+ ###### ETag
125
+
126
+ Optional
127
+
128
+ Strong SHA-256 validator of the exact UTF-8 response bytes.
129
+
130
+ Serialization: simple; explode: false.
131
+
132
+ string
133
+
134
+ ###### Cache-Control
135
+
136
+ Optional
137
+
138
+ Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.
139
+
140
+ Serialization: simple; explode: false.
141
+
142
+ string
143
+
144
+ ##### text/html
145
+
146
+ string
147
+
148
+ ##### Example: Illustrative content; discover keys and revision from your own host.
149
+
150
+ Key: illustrative. Location: response 200; text/html. Authored in OpenAPI.
151
+
152
+ ```text
153
+ <p>Contact support.</p>
154
+
155
+ ```
156
+
157
+ ##### text/markdown
158
+
159
+ string
160
+
161
+ ##### Example: Illustrative content; discover keys and revision from your own host.
162
+
163
+ Key: illustrative. Location: response 200; text/markdown. Authored in OpenAPI.
164
+
165
+ ```text
166
+ Contact support.
167
+
168
+ ```
169
+
170
+ #### 304: Not Modified
171
+
172
+ The validated selected response matches If-None-Match. No response body.
173
+
174
+ ##### Response headers
175
+
176
+ ###### ETag
177
+
178
+ Optional
179
+
180
+ Strong SHA-256 validator of the exact UTF-8 response bytes.
181
+
182
+ Serialization: simple; explode: false.
183
+
184
+ string
185
+
186
+ ###### Cache-Control
187
+
188
+ Optional
189
+
190
+ Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.
191
+
192
+ Serialization: simple; explode: false.
193
+
194
+ string
195
+
196
+ #### 400: Bad Request
197
+
198
+ `application/json`
199
+
200
+ invalid_request: missing, duplicate, unknown, or malformed query parameter.
201
+
202
+ ##### Response headers
203
+
204
+ ###### Cache-Control
205
+
206
+ Optional
207
+
208
+ Serialization: simple; explode: false.
209
+
210
+ const: "no-store"
211
+
212
+ 1 property
213
+
214
+ - `error` `object` **always present**&#x20;
215
+
216
+ 2 properties
217
+
218
+ - `code` `enum<string>` **always present**&#x20;
219
+
220
+ Available options: `"invalid_request"`, `"not_found"`, `"unsupported_format"`, `"stale_revision"`, `"method_not_allowed"`, `"internal_error"`
221
+
222
+ - `message` `string` **always present**&#x20;
223
+
224
+ Additional properties: not allowed.
225
+
226
+ Additional properties: not allowed.
227
+
228
+ #### 404: Not Found
229
+
230
+ `application/json`
231
+
232
+ not_found: unknown publication, resource, or route.
233
+
234
+ ##### Response headers
235
+
236
+ ###### Cache-Control
237
+
238
+ Optional
239
+
240
+ Serialization: simple; explode: false.
241
+
242
+ const: "no-store"
243
+
244
+ 1 property
245
+
246
+ - `error` `object` **always present**&#x20;
247
+
248
+ 2 properties
249
+
250
+ - `code` `enum<string>` **always present**&#x20;
251
+
252
+ Available options: `"invalid_request"`, `"not_found"`, `"unsupported_format"`, `"stale_revision"`, `"method_not_allowed"`, `"internal_error"`
253
+
254
+ - `message` `string` **always present**&#x20;
255
+
256
+ Additional properties: not allowed.
257
+
258
+ Additional properties: not allowed.
259
+
260
+ #### 405: Method Not Allowed
261
+
262
+ `application/json`
263
+
264
+ method_not_allowed: only GET and HEAD are supported; Allow lists both.
265
+
266
+ ##### Response headers
267
+
268
+ ###### Cache-Control
269
+
270
+ Optional
271
+
272
+ Serialization: simple; explode: false.
273
+
274
+ const: "no-store"
275
+
276
+ ###### Allow
277
+
278
+ Optional
279
+
280
+ Serialization: simple; explode: false.
281
+
282
+ const: "GET, HEAD"
283
+
284
+ 1 property
285
+
286
+ - `error` `object` **always present**&#x20;
287
+
288
+ 2 properties
289
+
290
+ - `code` `enum<string>` **always present**&#x20;
291
+
292
+ Available options: `"invalid_request"`, `"not_found"`, `"unsupported_format"`, `"stale_revision"`, `"method_not_allowed"`, `"internal_error"`
293
+
294
+ - `message` `string` **always present**&#x20;
295
+
296
+ Additional properties: not allowed.
297
+
298
+ Additional properties: not allowed.
299
+
300
+ #### 406: Not Acceptable
301
+
302
+ `application/json`
303
+
304
+ unsupported_format: unsupported or unavailable representation format.
305
+
306
+ ##### Response headers
307
+
308
+ ###### Cache-Control
309
+
310
+ Optional
311
+
312
+ Serialization: simple; explode: false.
313
+
314
+ const: "no-store"
315
+
316
+ 1 property
317
+
318
+ - `error` `object` **always present**&#x20;
319
+
320
+ 2 properties
321
+
322
+ - `code` `enum<string>` **always present**&#x20;
323
+
324
+ Available options: `"invalid_request"`, `"not_found"`, `"unsupported_format"`, `"stale_revision"`, `"method_not_allowed"`, `"internal_error"`
325
+
326
+ - `message` `string` **always present**&#x20;
327
+
328
+ Additional properties: not allowed.
329
+
330
+ Additional properties: not allowed.
331
+
332
+ #### 409: Conflict
333
+
334
+ `application/json`
335
+
336
+ stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.
337
+
338
+ ##### Response headers
339
+
340
+ ###### Cache-Control
341
+
342
+ Optional
343
+
344
+ Serialization: simple; explode: false.
345
+
346
+ const: "no-store"
347
+
348
+ 1 property
349
+
350
+ - `error` `object` **always present**&#x20;
351
+
352
+ 2 properties
353
+
354
+ - `code` `enum<string>` **always present**&#x20;
355
+
356
+ Available options: `"invalid_request"`, `"not_found"`, `"unsupported_format"`, `"stale_revision"`, `"method_not_allowed"`, `"internal_error"`
357
+
358
+ - `message` `string` **always present**&#x20;
359
+
360
+ Additional properties: not allowed.
361
+
362
+ Additional properties: not allowed.
363
+
364
+ #### 500: Internal Server Error
365
+
366
+ `application/json`
367
+
368
+ internal_error: the source could not complete the request.
369
+
370
+ ##### Response headers
371
+
372
+ ###### Cache-Control
373
+
374
+ Optional
375
+
376
+ Serialization: simple; explode: false.
377
+
378
+ const: "no-store"
379
+
380
+ 1 property
381
+
382
+ - `error` `object` **always present**&#x20;
383
+
384
+ 2 properties
385
+
386
+ - `code` `enum<string>` **always present**&#x20;
387
+
388
+ Available options: `"invalid_request"`, `"not_found"`, `"unsupported_format"`, `"stale_revision"`, `"method_not_allowed"`, `"internal_error"`
389
+
390
+ - `message` `string` **always present**&#x20;
391
+
392
+ Additional properties: not allowed.
393
+
394
+ Additional properties: not allowed.
@@ -0,0 +1,256 @@
1
+ ---
2
+ id: reference.content-rest.getContentRepresentationHead
3
+ title: Read HTML or Markdown headers
4
+ summary: HEAD /resources/{key}/representations/{format}
5
+ type: api-reference
6
+ area: api
7
+ subarea: api-reference
8
+ canonical: /content-delivery/http-api/operations/get-content-representation-head-4052375c
9
+ ---
10
+
11
+ # Read HTML or Markdown headers
12
+
13
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
14
+
15
+ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/navigation/reference-tab-50f26fe22670.txt) (ID: reference-tab). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
16
+
17
+ Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Content delivery > Content REST API > Other > Read HTML or Markdown headers
18
+
19
+ **Updated: 2026-10-28.**
20
+
21
+ This reference is generated from the OpenAPI description. It shows the operation contract; follow any related guides below for task steps and context.
22
+
23
+ OpenAPI for this operation: [Download JSON](https://www.shoalrun.com/api/operations/production/current/en/content-rest-getcontentrepresentationhead-6325b1c205226b5695592ad06bf1bdc1e1da03febe3b6645866d4910f500491b.json).
24
+
25
+ ## HEAD /resources/{key}/representations/{format}
26
+
27
+ Read HTML or Markdown headers
28
+
29
+ Query parameters are single-valued; unknown or duplicate parameters are rejected. Publication and revision checks run before conditional ETag checks. No pagination, search, writes, authentication, or cross-origin policy is supplied by this reference adapter. HEAD returns the GET status and headers without a response body.
30
+
31
+ ### Servers
32
+
33
+ `/content/v1`
34
+
35
+ ### Parameters
36
+
37
+ #### channel (query)
38
+
39
+ Required
40
+
41
+ Exact publication channel. No default or fallback.
42
+
43
+ string; minLength: 1; maxLength: 2048
44
+
45
+ **Default example**: `"production"`
46
+
47
+ #### version (query)
48
+
49
+ Required
50
+
51
+ Exact publication version. No default or fallback.
52
+
53
+ string; minLength: 1; maxLength: 2048
54
+
55
+ **Default example**: `"current"`
56
+
57
+ #### language (query)
58
+
59
+ Required
60
+
61
+ Exact publication language. No default or fallback.
62
+
63
+ string; minLength: 1; maxLength: 2048
64
+
65
+ **Default example**: `"en"`
66
+
67
+ #### revision (query)
68
+
69
+ Required
70
+
71
+ Exact revision returned by the list endpoint. A different revision returns 409; it never silently reads newer content.
72
+
73
+ string; pattern: ^\[a-f0-9]{64}$
74
+
75
+ **Default example**: `"0770e6d70db51967fac8dcc7bb4ff5a5bff87378eb2e2bbb63dea93d090c82e8"`
76
+
77
+ #### key (path)
78
+
79
+ Required
80
+
81
+ Opaque stable typed-reference key. Use the returned key. It is k\_ followed by unpadded base64url of UTF-8 JSON for \["page",documentId], \["section",documentId,sectionId], or \["snippet",id]. Publication and revision are separate selectors.
82
+
83
+ string; pattern: ^k\_\[A-Za-z0-9\_-]+$
84
+
85
+ **Default example**: `"k_WyJwYWdlIiwiZ3VpZGUuYmlsbGluZyJd"`
86
+
87
+ #### format (path)
88
+
89
+ Required
90
+
91
+ string
92
+
93
+ Available options: `"html"`, `"markdown"`
94
+
95
+ **Default example**: `"markdown"`
96
+
97
+ #### If-None-Match (header)
98
+
99
+ Optional
100
+
101
+ An ETag, comma-separated ETags, or \*. Weak comparison is supported for GET and HEAD.
102
+
103
+ string
104
+
105
+ ### Example request
106
+
107
+ ```bash
108
+ curl --head \
109
+ --url 'https://YOUR_API_HOST/content/v1/resources/YOUR_KEY/representations/YOUR_FORMAT?channel=YOUR_CHANNEL&version=YOUR_VERSION&language=YOUR_LANGUAGE&revision=YOUR_REVISION'
110
+ ```
111
+
112
+ ### Responses
113
+
114
+ #### 200: OK
115
+
116
+ The selected resource or inventory.
117
+
118
+ ##### Response headers
119
+
120
+ ###### ETag
121
+
122
+ Optional
123
+
124
+ Strong SHA-256 validator of the exact UTF-8 response bytes.
125
+
126
+ Serialization: simple; explode: false.
127
+
128
+ string
129
+
130
+ ###### Cache-Control
131
+
132
+ Optional
133
+
134
+ Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.
135
+
136
+ Serialization: simple; explode: false.
137
+
138
+ string
139
+
140
+ #### 304: Not Modified
141
+
142
+ The validated selected response matches If-None-Match. No response body.
143
+
144
+ ##### Response headers
145
+
146
+ ###### ETag
147
+
148
+ Optional
149
+
150
+ Strong SHA-256 validator of the exact UTF-8 response bytes.
151
+
152
+ Serialization: simple; explode: false.
153
+
154
+ string
155
+
156
+ ###### Cache-Control
157
+
158
+ Optional
159
+
160
+ Unpinned discovery uses no-cache. Revision-pinned success uses public, max-age=31536000, immutable. Errors use no-store.
161
+
162
+ Serialization: simple; explode: false.
163
+
164
+ string
165
+
166
+ #### 400: Bad Request
167
+
168
+ invalid_request: missing, duplicate, unknown, or malformed query parameter.
169
+
170
+ ##### Response headers
171
+
172
+ ###### Cache-Control
173
+
174
+ Optional
175
+
176
+ Serialization: simple; explode: false.
177
+
178
+ const: "no-store"
179
+
180
+ #### 404: Not Found
181
+
182
+ not_found: unknown publication, resource, or route.
183
+
184
+ ##### Response headers
185
+
186
+ ###### Cache-Control
187
+
188
+ Optional
189
+
190
+ Serialization: simple; explode: false.
191
+
192
+ const: "no-store"
193
+
194
+ #### 405: Method Not Allowed
195
+
196
+ method_not_allowed: only GET and HEAD are supported; Allow lists both.
197
+
198
+ ##### Response headers
199
+
200
+ ###### Cache-Control
201
+
202
+ Optional
203
+
204
+ Serialization: simple; explode: false.
205
+
206
+ const: "no-store"
207
+
208
+ ###### Allow
209
+
210
+ Optional
211
+
212
+ Serialization: simple; explode: false.
213
+
214
+ const: "GET, HEAD"
215
+
216
+ #### 406: Not Acceptable
217
+
218
+ unsupported_format: unsupported or unavailable representation format.
219
+
220
+ ##### Response headers
221
+
222
+ ###### Cache-Control
223
+
224
+ Optional
225
+
226
+ Serialization: simple; explode: false.
227
+
228
+ const: "no-store"
229
+
230
+ #### 409: Conflict
231
+
232
+ stale_revision: revision unavailable, or source bytes no longer match the pinned snapshot.
233
+
234
+ ##### Response headers
235
+
236
+ ###### Cache-Control
237
+
238
+ Optional
239
+
240
+ Serialization: simple; explode: false.
241
+
242
+ const: "no-store"
243
+
244
+ #### 500: Internal Server Error
245
+
246
+ internal_error: the source could not complete the request.
247
+
248
+ ##### Response headers
249
+
250
+ ###### Cache-Control
251
+
252
+ Optional
253
+
254
+ Serialization: simple; explode: false.
255
+
256
+ const: "no-store"