openapi: 3.1.0 info: title: Cosmonic Template Catalog API version: '2026-10-11' description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-11: 7 operation(s) read from 2 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; Cosmonic has published no machine-readable contract that the pipeline could find. Engine: local.' x-evidence-tiers: code-example: 13 documentation: 0 pages-with-code: 13 pages-read: 13 x-generated-from: documentation x-provenance: generated x-authored-by: API Evangelist x-generated: '2026-10-11' x-generator: generate-contract-from-docs.py x-engine: local x-sources: - https://cosmonic.com/docs/template-catalog/blobstore-fileserver-nats - https://cosmonic.com/docs/template-catalog/http-server x-docs-section: template-catalog servers: - url: https://raw.githubusercontent.com paths: /error: get: operationId: get_error tags: - Error summary: GET /error x-source: https://cosmonic.com/docs/template-catalog/http-server responses: '200': description: Success (status as documented) x-evidence: kind: code-example language: curl snippet: "curl -v http://http-server.localhost.cosmonic.sh/error \n < HTTP/1.1 500 Internal Server Error \n < content-type: text/plain;\ \ charset=utf-8 \n < \n Something went wrong \n GET /headers \n Returns your User-Agent in the response headers. " /form: post: operationId: post_form tags: - Form summary: POST /form x-source: https://cosmonic.com/docs/template-catalog/http-server responses: '201': description: Success (status as documented) x-evidence: kind: code-example language: curl snippet: "curl -X POST -d \"field1=value1&field2=value2\" http://http-server.localhost.cosmonic.sh/form \n field2: value2 \n field1: value1\ \ \n POST /post \n Echoes back the entire body of a POST request. " /headers: get: operationId: get_headers tags: - Headers summary: GET /headers x-source: https://cosmonic.com/docs/template-catalog/http-server responses: '200': description: Success (status as documented) x-evidence: kind: code-example language: curl snippet: "curl -v http://http-server.localhost.cosmonic.sh/headers \n < HTTP/1.1 200 OK \n < x-your-user-agent: curl/8.7.1 \n < \n Check\ \ headers! \n POST /form \n Echoes back form data from a POST request. " /myfile.txt: delete: operationId: delete_myfile_txt tags: - Myfile summary: DELETE /myfile.txt x-source: https://cosmonic.com/docs/template-catalog/blobstore-fileserver-nats responses: '200': description: Success (status as documented) x-evidence: kind: code-example language: curl snippet: "curl -X DELETE -v 'http://blobby.localhost.cosmonic.sh/myfile.txt' \n * Host blobby.localhost.cosmonic.sh:80 was resolved. \n\ \ * IPv6: (none) \n * IPv4: 127.0.0.1 \n * Trying 127.0.0.1:80... \n * Connected to blobby.localhost.cosmonic.sh (127.0.0.1) port 80\ \ \n > DELETE /myfile.txt HTTP/1.1 \n > Host: blobby.localhost.cosmonic.sh \n > User-Agent: curl/8.7.1 \n > Accept: */* \n > \n * Request\ \ completely sent of" get: operationId: get_myfile_txt tags: - Myfile summary: GET /myfile.txt x-source: https://cosmonic.com/docs/template-catalog/blobstore-fileserver-nats responses: '200': description: Success (status as documented) x-evidence: kind: code-example language: curl snippet: "curl -H 'Content-Type: text/plain' -v 'http://blobby.localhost.cosmonic.sh/myfile.txt' --data-binary @myfile.txt \n * Host blobby.localhost.cosmonic.sh:80\ \ was resolved. \n * IPv6: (none) \n * IPv4: 127.0.0.1 \n * Trying 127.0.0.1:80... \n * Connected to blobby.localhost.cosmonic.sh (127.0.0.1)\ \ port 80 \n > POST /myfile.txt HTTP/1.1 \n > Host: blobby.localhost.cosmonic.sh \n > User-Agent: curl/8.7.1 \n > Ac" post: operationId: post_myfile_txt tags: - Myfile summary: Blobstore Fileserver (NATS) description: Upload or update a file to the blobstore fileserver. x-source: https://cosmonic.com/docs/template-catalog/blobstore-fileserver-nats requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostMyfileTxtRequest' responses: '201': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/PostMyfileTxtResponse' x-evidence: kind: documentation /post: post: operationId: post_post tags: - Post summary: POST /post x-source: https://cosmonic.com/docs/template-catalog/http-server responses: '201': description: Success (status as documented) x-evidence: kind: code-example language: curl snippet: "curl -X POST -d \"Hello World\" http://http-server.localhost.cosmonic.sh/post \n Hello World \n Development ​ \n Development\ \ requirements: \n tinygo for compiling Go \n wasm-tools for Go bindings \n wash v2.0.4 for building the component \n Clone the cosmonic-labs/control-demos\ \ repository: \n git clone https://github.com/cosmonic-labs/control-demos.git \n cd control-demos/http-server \n Start the development " components: schemas: PostMyfileTxtRequest: type: object properties: body: type: string description: File content (text/plain) required: - body PostMyfileTxtResponse: type: object properties: status: type: integer description: 201 Created on successful upload tags: - name: Error - name: Form - name: Headers - name: Myfile - name: Post