spool.as/…
Append and read a stream at a URL
A stream is a path on https://spool.as. You append bytes; they stay in order. Readers don't have to be online when you write.
PUT /{stream} create
POST /{stream} append
GET /{stream}?offset=… read
HEAD /{stream} metadata
DELETE /{stream} delete
The wire protocol is Durable Streams. A POST with Stream-Closed: true seals the stream. A GET can catch up, long-poll, or use SSE.
Create, append, and read
export SPOOL=https://spool.as
export SPOOL_KEY=spool_live_…
curl -X PUT "$SPOOL/demo" \
-H "Authorization: Bearer $SPOOL_KEY" \
-H "Content-Type: application/x-ndjson"
echo '{"hi":1}' | curl -X POST "$SPOOL/demo" \
-H "Authorization: Bearer $SPOOL_KEY" \
-H "Content-Type: application/x-ndjson" \
--data-binary @-
curl "$SPOOL/demo?offset=-1" \
-H "Authorization: Bearer $SPOOL_KEY"
The plan is $5 per month. See Pricing.
Use the CLI
Use the same key. The CLI reads stdin and writes stdout. There is no pretty-print flag.
spool put demo
echo '{"hi":1}' | spool append demo
spool tail demo
spool read demo --offset -1
spool rm demo
Pricing
$5 per month.
| included | then |
| stored | 20 GB-month | $0.15 / GB-month |
| appended | 20 GB | $0.08 / GB |
| read | 3× stored GB / month | $0.04 / GB |
You aren't billed for stream count, SSE minutes, or catch-up operations. Default retention is 30 days. The maximum is 365 days, or until you delete the stream.
Authentication
Send Authorization: Bearer spool_live_…. The key is shown once. You can limit a key to a URL prefix.
Related information
See spool(1) and the Durable Streams protocol specification. For support, send email. If a live GET times out, retry from the last offset.