Between one and five deliberately divergent takes on whatever you are working on, returned
Between one and five deliberately divergent takes on whatever you are working on, returned as an array of strings. Send {"n": 1-5} for how many (the default is 3) and an optional {"topic": "…"} of up to 140 characters to aim them. Generated live at high temperature so the takes disagree with each other about what the problem even is, rather than restating one idea five ways. No pool, no cache, and no charge if the model could not answer.
2500 (raw units)
price
3
calls / 30d
1
unique payers
2026-09-02
updated
Provider
penny402.fun · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x9d0bb5dA24cADe855DeE8d1231A1c416e0bB2FFe",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "2500",
"maxTimeoutSeconds": 60
},
{
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "HiQDSev6m8QwangqGFpfHZtKGFRYkAiqi24aF6BFKJrw",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "2500",
"maxTimeoutSeconds": 60
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"body": {
"n": 3,
"topic": "a caching layer nobody wants to own"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"mechanic": "written live by google/gemma-3-12b-it at temperature 1.1, top_p 0.95 — the takes are asked to disagree with each other rather than restate one idea, and nothing is pooled. Your topic, if you sent one, reached the model as its own message rather than inside these instructions.",
"model": "google/gemma-3-12b-it",
"n": 3,
"takes": [
"One take on your topic, framed one way.",
"A second take that disagrees with the first about what the problem is.",
"A third that changes the scale rather than the answer."
],
"topic": "a caching layer nobody wants to own"
},
"format": "application/json",
"type": "text"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"description": "a JSON body, up to 4 KB. Optionally {\"topic\": \"…\"} of at most 140 characters — it steers the answer, and it is sent to the model as its own message rather than inside our instructions. POST {} to let the model choose. Optionally {\"n\": 1-5} for how many takes; the default is 3. Every attraction on penny402 is a flat $0.0025; the unpaid 402 carries those exact terms.",
"type": "object"
},
"bodyType": {
"const": "json",
"type": "string"
},
"method": {
"const": "POST",
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"additionalProperties": false,
"properties": {
"example": {
"description": "a sample response from the real code path"
},
"format": {
"const": "application/json",
"description": "the attraction, as JSON, in the response body",
"type": "string"
},
"type": {
"const": "text",
"type": "string"
}
},
"required": [
"type",
"format"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://penny402.fun/brainstorm" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://penny402.fun/brainstorm");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://penny402.fun/brainstorm")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/7309.json, and this resource appears in /discovery/resources and /discovery/search.