cloro WebsiteAPI Get an API key
Documentation › Guides › Output formats

Output formats

Every cloro response can be consumed in several shapes at once — raw HTML for auditing, and plain text or markdown for downstream LLM pipelines. This guide explains when to reach for each and how to deal with the structured objects that sit inside the text fields.

Overview

A single monitoring result carries the answer in multiple representations so you don't have to re-fetch or re-parse to fit a different use case. The HTML view preserves exactly what the AI provider rendered, which makes it useful as an audit trail. The text and markdown views are stripped down for machine reading, and a set of typed fields expose the rich objects (products, places, ads, and so on) in a clean, queryable form.

HTML as a rendered snapshot

Ask for HTML by setting include.html: true on any request. The response then carries a link to the complete captured page hosted on the cloro CDN. That link is short-lived and stops resolving roughly a day after the capture, so download and archive the file yourself if you need it beyond that window. Including HTML does not consume extra credits.

Because the snapshot is a faithful copy of what the model actually showed, it doubles as evidence you can hand to a client or reviewer. Keep in mind that it also carries the surrounding page furniture — navigation bars, footers, consent prompts, and inline scripts — so you will usually want to clean it before displaying it in your own interface. Run it through any reputable HTML sanitizer to drop scripts and chrome, then mount the result in whatever framework you use.

FieldTypeDescription
html_urlstringTemporary CDN link to the full captured page; expires about 24 hours after capture.
textstringFlattened plain-text version of the answer, suitable as raw LLM input.
markdownstringMarkdown rendering of the answer; returned when include.markdown is true.
shopping_cardsarrayStructured product cards with prices, ratings, and links.
placesarrayStructured location listings surfaced by the provider.
adsarraySponsored placements extracted from the response.
inline_productsarrayInline product mentions parsed into discrete records.
entitiesarrayNamed entities the provider highlighted in the answer.
map_entriesarrayMap pins and their associated metadata.

Text and markdown for analysis

For text mining or LLM workflows, read text or markdown straight from the response. There is one subtlety worth planning for: when the provider renders rich widgets — shopping cards, places, ads, inline products, entities, or map pins — the contents of those widgets are flattened into the same text stream. Citation sources and page footers, by contrast, are omitted from these two fields.

The typed fields (shopping_cards, places, ads, inline_products, entities, map_entries) hold the identical content in a structured form. A reliable pipeline uses text or markdown as the base input, then uses the typed fields both to strip the embedded widget text out of that base and to pull object-level values such as price or rating when you need them.

Response example

{
  "id": "res_8f21ab",
  "provider": "chatgpt",
  "html_url": "https://cdn.cloro.cloud/captures/res_8f21ab.html",
  "text": "The most recommended cordless drills this year are ...",
  "markdown": "The most recommended **cordless drills** this year are ...",
  "shopping_cards": [
    {
      "title": "VoltEdge 20V Cordless Drill",
      "price": "$89.00",
      "rating": 4.6,
      "url": "https://example-retailer.com/voltedge-20v"
    }
  ],
  "places": [],
  "ads": [],
  "inline_products": [],
  "entities": [
    { "name": "VoltEdge", "type": "brand" }
  ],
  "map_entries": []
}

Notes