Skip to content
looot docs
Esc
↑↓navigate↵open⌘Jpreview
On this page

Cloro / ChatGPT answer with sources, ads and shopping

Cloro tool cloro-monitor-chatgpt on looot: input fields, $0.0088 per call, output shape, and code to run it with curl, JavaScript or Python.

Runs a prompt through the live ChatGPT web interface from a chosen country and returns the answer text with cited sources, citation pills, brand entities, and on request shopping cards, ads and the search queries ChatGPT fanned out. Cloro bills 7 credits for a plain call, 9 with any of rawResponse, searchQueries, ads or shopping, and 2 more with a state. looot holds the 11 credit maximum at $0.0008 per credit and settles at the exact charge Cloro reports. A failed extraction is not charged.

  • Tool id: cloro-monitor-chatgpt
  • Provider: Cloro
  • Job: Answer search chatgpt (search.chatgpt.answer)
  • Price: $0.0088 per call. A call that fails at the provider costs $0.

Inputs

Name Type Required Description
country string yes ISO 3166-1 alpha-2 country the prompt runs from. Each engine refuses a few countries, list them with the countries endpoint. Example: “US”
disableWebSearch boolean no Answer from the model alone, without a web search.
include object no Optional response formats.
legacy boolean no Serve the desktop ChatGPT UI, where ads and shopping cards render. Free. Defaults to the mobile web UI.
prompt string yes The prompt to send. 1 to 10,000 characters. Example: “best running shoes for flat feet”
state string no US state code such as CA for state-level targeting. Only valid with country US. Costs 2 extra credits at Cloro, billed to looot as reported. Example: “CA”

Output

The run’s result holds the provider’s answer. Signed in, looot inspect cloro-monitor-chatgpt prints its fields.

Run it

Every call needs your API token in LOOOT_TOKEN; Sign in shows how to get one. Each run also needs a new idempotency key, so a retry never pays twice. With wait: 30 the answer comes back inline when the run ends within 30 seconds. Otherwise you get the running run back: poll GET /v1/runs/<runId>.

Example input with placeholder values:

curl -X POST "https://api.looot.ai/v1/runs" \
  -H "Authorization: Bearer $LOOOT_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"endpointId":"cloro-monitor-chatgpt","input":{"prompt":"best running shoes for flat feet","country":"US","state":"CA"},"wait":30}'
const response = await fetch("https://api.looot.ai/v1/runs", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.LOOOT_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({
    endpointId: "cloro-monitor-chatgpt",
    input: {
      prompt: "best running shoes for flat feet",
      country: "US",
      state: "CA",
    },
    wait: 30,
  }),
});
const run = await response.json();
console.log(run.status, run.result);
import os
import uuid

import requests

response = requests.post(
    "https://api.looot.ai/v1/runs",
    headers={
        "Authorization": f"Bearer {os.environ['LOOOT_TOKEN']}",
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={
        "endpointId": "cloro-monitor-chatgpt",
        "input": {
            "prompt": "best running shoes for flat feet",
            "country": "US",
            "state": "CA",
        },
        "wait": 30,
    },
    timeout=90,
)
run = response.json()
print(run["status"], run.get("result"))

To let looot pick among every provider of this job instead, send job:search.chatgpt.answer as endpointId; see the job page.

Was this page helpful?