cookbook · Query Fanout 1 · Generative engine optimisation
Turn a buyer's question into a content brief
When a buyer asks an AI assistant a question, the assistant runs web searches to build its answer, and you want your page to be among the results it cites. This recipe turns a buyer's question into the searches the assistant is likely to run, then uses those searches as the brief for the page you are writing.
Request
POST /v1/fanout, documented in the Query Fanout 1 reference.
curl https://meragpt.com/v1/fanout \
-H "Authorization: Bearer $MERAGPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "query-fanout-1",
"question": "Which project management tool is best for a 10-person design agency?"
}'What came back
The real output from running this recipe, unedited.
{
"run 1": [
"best project management tools small team",
"Agile project management tools 2025 2026",
"Trello project management board",
"Asana project management tool",
"ClickUp project management app"
],
"run 2": [
"best project management software small team 2026",
"project management tools small teams pricing agile scrum Jira Monday.com Trello 2026"
]
}Python
import os, requests
API = "https://meragpt.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['MERAGPT_API_KEY']}"}
QUESTION = "Which project management tool is best for a 10-person design agency?"
# the model samples, so merge a few runs
searches = []
for _ in range(3):
r = requests.post(f"{API}/fanout", headers=HEADERS, json={"model": "query-fanout-1", "question": QUESTION}).json()
for s in r["queries"]:
if s.lower() not in (x.lower() for x in searches):
searches.append(s)
for s in searches:
print("-", s) # each line is a search your page should answer
TypeScript
const API = "https://meragpt.com/v1";
const headers = {
Authorization: `Bearer ${process.env.MERAGPT_API_KEY}`,
"Content-Type": "application/json",
};
const QUESTION = "Which project management tool is best for a 10-person design agency?";
// the model samples, so merge a few runs
const searches = new Map<string, string>();
for (let i = 0; i < 3; i++) {
const r = await fetch(`${API}/fanout`, {
method: "POST",
headers,
body: JSON.stringify({ model: "query-fanout-1", question: QUESTION }),
}).then((res) => res.json());
for (const s of r.queries) searches.set(s.toLowerCase(), s);
}
console.log([...searches.values()]);
When to trust it
The output predicts likely searches, not the exact ones an engine will run, so treat results as directional rather than guaranteed. Because the model samples, runs differ; call it 3 times and merge the results before writing.
Try it without code in the playground, or see more Query Fanout 1 recipes: see which rivals an assistant pulls in.