Fill the slots on a page

Decide what to render in each slot on a page, and return it already filled with content.

Each returned slot carries a type (the module family), a variant (the UI style chosen) and a data payload in the same shape the matching API already returns, so your existing renderers work unchanged.

Echo miso_id, slot_id, type and variant on the impression and click events you report, so outcomes attribute to the right choice.

Body·
required
application/json
  • anonymous_id
    Type: string
  • fl
    Type: array string[]

    Fields to return on recommendations.

  • fq
    Type: string

    Filter query restricting eligible articles.

  • metadata
    Type: object

    Page context. Use site for multi-brand.

  • product_id
    Type: string

    The article the reader is on.

  • slots
    Type: array object[] ·

    The placements to fill.

  • user_id
    Type: string
Responses
  • application/json
Request Example for post/v1/ask/conversion
curl 'https://api.askmiso.com/v1/ask/conversion?api_key=YOUR_SECRET_TOKEN' \
  --request POST \
  --header 'Content-Type: application/json' \
  --data '{
  "anonymous_id": "visitor-8f3a1c",
  "product_id": "art-20260612-rates",
  "slots": [
    {
      "slot_id": "slot_top"
    },
    {
      "slot_id": "slot_inline"
    }
  ]
}'
{
  "message": "success",
  "data": {
    "miso_id": "550e8400-e29b-41d4-a716-446655440000",
    "slots": [
      {
        "slot_id": "slot_top",
        "type": "recirculation",
        "variant": "carousel",
        "data": {
          "recommendations": []
        }
      },
      {
        "slot_id": "slot_inline",
        "type": "related_questions",
        "variant": "default",
        "data": {
          "related_questions": [
            "…",
            "…"
          ]
        }
      }
    ]
  }
}