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.

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"}.

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_questions here too. Trending questions come back under the same name as the article-level ones. Read data.related_questions for 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_id that no record carries returns an empty list and a null version, not a 404.
  • 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.