africa.kandake.asha.recipe.scrapeUrl
Scrape a URL to extract structured recipe data. Tries schema.org parsing first, falls back to LLM extraction.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | recipe.asha.kandake.africa |
| Indexed |
Checks
Validunlimited-stringdefs.scrapedRecipe.properties.categories.itemsNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.scrapedRecipe.properties.descriptionNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.scrapedRecipe.properties.notesNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.scrapedRecipe.properties.nutritionNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.scrapedRecipe.properties.sourceNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.scrapedRecipe.properties.titleNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Scrape a URL to extract structured recipe data. Tries schema.org parsing first, falls back to LLM extraction.",
"errors": [
{
"description": "Unable to extract recipe data from the provided URL.",
"name": "ScrapeFailed"
},
{
"description": "The URL is not reachable or not a valid recipe page.",
"name": "InvalidUrl"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"imageUrl": {
"description": "URL of the discovered header image, if any.",
"format": "uri",
"type": "string"
},
"recipe": {
"ref": "#scrapedRecipe",
"type": "ref"
}
},
"required": [
"recipe"
],
"type": "object"
}
},
"type": "procedure"
},
"scrapedRecipe": {
"description": "Recipe data extracted from a URL, presented for user confirmation before writing to PDS.",
"properties": {
"categories": {
"items": {
"type": "string"
},
"type": "array"
},
"cookTimeMinutes": {
"type": "integer"
},
"description": {
"type": "string"
},
"ingredients": {
"items": {
"ref": "africa.kandake.asha.recipe.recipe#ingredient",
"type": "ref"
},
"type": "array"
},
"instructions": {
"items": {
"ref": "africa.kandake.asha.recipe.recipe#instruction",
"type": "ref"
},
"type": "array"
},
"notes": {
"type": "string"
},
"nutrition": {
"type": "string"
},
"prepTimeMinutes": {
"type": "integer"
},
"servings": {
"type": "integer"
},
"source": {
"type": "string"
},
"title": {
"type": "string"
},
"totalTimeMinutes": {
"type": "integer"
}
},
"required": [
"title",
"ingredients",
"instructions"
],
"type": "object"
}
},
"id": "africa.kandake.asha.recipe.scrapeUrl",
"lexicon": 1
}