Explore Questions
Explore generates the questions your readers see before they think of their own: related questions under an article, and trending questions on a homepage or a section front. Both endpoints return a list of strings. You render each one as a link into your answers page.
The questions come from your own catalog, so each one leads to an answer your content supports.
Base URL https://api.askmiso.com. Authenticate with the X-API-KEY
header, or ?api_key=. See Authentication.
Which one do I want?
| Where the reader is | Endpoint | Anchored to |
|---|---|---|
| An article page | POST /v1/ask/related_questions |
The article you name |
| A homepage, a section front, a search page | POST /v1/ask/trending_questions |
The whole app, or one brand |
Neither endpoint generates an answer, so both return fast enough to call while the page renders. Send the question the reader picks to the Answer API.
Related questions
POST /v1/ask/related_questions
| Field | Type | Default | Notes |
|---|---|---|---|
product_id |
string | required | The article to generate questions for. |
rows |
integer | 5 |
How many questions to return. |
version |
string | — | Pin a related-questions model version. |
fq |
string | — | Restrict the candidates. See Filter Syntax (fq). |
curl -X POST "https://api.askmiso.com/v1/ask/related_questions" \
-H "X-Api-Key: YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_id": "wikinews-2911067",
"rows": 5
}'
{
"message": "success",
"data": {
"related_questions": [
"Why did Red Hat shift its investment to CentOS Stream?",
"What is the difference between CentOS Stream and CentOS Linux?"
],
"version": 8,
"miso_id": "d02603ab-d544-42b4-8b6c-696c5c4dc5c5"
}
}
| Field | What it is |
|---|---|
related_questions |
The questions, ready to render. |
version |
The model version that produced them. null when Miso has none for that article. |
miso_id |
The request id. Send it back on an interaction to attribute the click. |
product_id is required. Without it the call returns
422 {"message": "product_id is required"}.
Trending questions
POST /v1/ask/trending_questions
| Field | Type | Default | Notes |
|---|---|---|---|
rows |
integer | 10 |
How many questions to return. |
_meta.site |
string | — | Limit to one site or brand, for a multi-brand app. |
curl -X POST "https://api.askmiso.com/v1/ask/trending_questions" \
-H "X-Api-Key: YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"rows": 10,
"_meta": { "site": "markets" }
}'
{
"message": "success",
"data": {
"related_questions": [
"What did Red Hat change about CentOS?",
"Which Linux distributions replaced CentOS?"
],
"_ver": "v2",
"miso_id": "c1fb45f7-2c5f-4fc8-82f7-0ae63d05b0c0"
}
}
The key is
related_questionshere too. Trending questions come back under the same name as the article-level ones. Readdata.related_questionsfor both endpoints, and keep one render function for the two.
An empty list is a normal answer
Both endpoints return 200 with an empty related_questions when Miso has
nothing to offer:
{
"message": "success",
"data": {
"related_questions": [],
"version": null,
"miso_id": "f1bc004b-b349-432f-bf7a-c79de9a511cd"
}
}
Three things produce it, and none of them is an error:
- The article is new. Miso has not generated questions for it yet.
-
The id is unknown. A
product_idthat no record carries returns an empty list and anullversion, not a404. - The app has no model yet. A new app returns an empty list until Miso trains one.
So render the block only when the list has entries. A heading above an empty rail is the most common bug on this endpoint.
Report what the reader picked
Send an interaction when a reader opens one of the questions, and pass the
miso_id from the response. Miso then learns which questions earn clicks:
curl -X POST "https://api.askmiso.com/v1/interactions" \
-H "X-Api-Key: YOUR_PUBLISHABLE_KEY" \
-H "Content-Type: application/json" \
-d '{
"data": [
{
"type": "click",
"user_id": "u-10293",
"miso_id": "d02603ab-d544-42b4-8b6c-696c5c4dc5c5",
"timestamp": "2026-08-04T10:15:00Z"
}
]
}'
Next
- Explore SDK module — calls both endpoints and renders the questions for you. Use the API directly when you build your own front end.
- Answer API — ask the question the reader picked.
- Filter Syntax (fq) — restrict which articles the questions cover.
