Recipes are data
A recipe describes what to gather. The engine is the only thing that runs HTTP or emits records.
Write a recipe to gather structured records, enrich them against other sources, then share it on the hub.
Top 30 Hacker News front-page stories from the Algolia API. One step, no auth, no pagination.
recipe "hacker-news"
type Story {
title: String
url: String?
points: Int
author: String
comments: Int
}
step front {
method "GET"
url "https://hn.algolia.com/api/v1/search?tags=front_page&hitsPerPage=30"
}
for $story in $front.hits[*] {
emit Story {
title ← $story.title
url ← $story.url
points ← $story.points
author ← $story.author
comments ← $story.num_comments
}
}forage run hacker-news{
"observedAt": "2026-05-11T15:11:11Z",
"records": [
{
"_typeName": "Story",
"fields": {
"title": "Hardware Attestation as Monopoly Enabler",
"url": "https://grapheneos.social/@GrapheneOS/116550899908879585",
"points": 1879,
"author": "ChuckMcM",
"comments": 617
}
},
{
"_typeName": "Story",
"fields": {
"title": "Local AI needs to be the norm",
"url": "https://unix.foo/posts/local-ai-needs-to-be-norm/",
"points": 1498,
"author": "cylo",
"comments": 580
}
}
]
}