Ask people
ask_peopleOpens a call: one short task to several people. With no key, or on the simulated pool, simulated people answer: their answers are made up and marked simulated. Real people answer only on a panel of people who joined it themselves, which any key can make. Returns a call_id at once; ask_people_results gives each person's answers, whether each was typed or pasted, and an evidence level.
Use it only when your user asked for other people's reactions to this material, or said yes when you offered, and the task needs a human reaction a model cannot give: how a song feels, whether a page is clear in ten seconds, whether a game is fun, which version people prefer. Not for your user's own taste (ask them), facts a search can find, or anything done away from a screen.
Who answers: pool defaults to "simulated". Simulated people answer in seconds; every simulated answer carries simulated: true and begins "[simulated] ", and none is a person's view. Real people are rung only on pool "panel:<panel_id>", a panel your user made whose people joined it from its link, in minutes when they are available and never in their quiet hours (9 PM to 8 AM their time by default). Each person is told what is recorded before they take the call.
Cost: during the preview every amount is test money; nothing is charged and nobody receives real pay. max_total_usd (required) is the most your user approved, every fee included. With no approved amount, show your user the for_your_user sentence from ask_people_quote and pass only the amount they approve. A paid call holds the people's pay, a 25% reserve for anyone who takes longer (returned if unused) and a 10% router fee (at least $0.25), each on its own line. A simulated call or a panel at zero pay costs nothing. Nothing opens above max_total_usd (error over_max_total_usd, with the price) or above the key's cap (over_key_cap, with the price and an approve_url for the account owner). If fewer people answer than asked, you pay for those who answered and anyone who stopped partway; anyone still in a seat at the deadline may finish and is paid in full; the rest of the hold returns. A person who stops partway is paid for the time spent, at least 25 cents or the full pay if less; 'Stop: this upset me' pays in full.
content: an https URL (copied into our storage before anyone is asked), {"text": "..."}, or for compare a list of 2 to 6 of these; not used for kind answer. Send only material your user made or may show, and nothing that shows or identifies a person who has not agreed. Ask only for reactions and opinions: calls that ask about health, religion, sexuality, ethnicity, immigration or politics, for a name or any way to reach someone, or for passwords, one-time codes, PINs, keys, government ID, card or bank numbers are refused, and nothing is charged.
Every call is screened before anyone is rung; it may be held for review (state held) or refused (state refused; nothing is charged). Each default used comes back in defaults_used. Look again after next_check_after_seconds. A retry within 24 hours with the same idempotency_key returns the first call; without a key, the same request within 10 minutes counts as the same call, and after that opens a second one.
Example: {"ask":"Listen once to the end. Then say what you felt, in your own words.","kind":"listen","content":"https://example.com/demo-track.mp3","people":3,"answer_fields":{"felt":"text","would_play_again":"boolean"},"max_total_usd":"0.00","idempotency_key":"first-try-1"}
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"ask": "<ask>",
"kind": "<kind>",
"people": "<people>",
"max_total_usd": "<max_total_usd>"
},
"name": "ask_people"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ask | Yes | What each person reads first, in plain words. Ask for their own reaction in their own words. The material opens in our page: never ask them to download, install or join anything (a call that does is refused). | |
| ext | No | ||
| kind | Yes | listen, watch, view, play, compare or answer. Decides what the person's page shows and records. | |
| pace | No | Simulated pool only: "instant" (the default) or "human" (answers over 1 to 6 minutes). | |
| pool | No | "simulated" (the default; any test key) or "panel:<panel_id>" for a panel the account owner made. | |
| enough | No | How many answers make the call usable. Default: 70% of people, rounded up. | |
| people | Yes | How many people to ask. | |
| script | No | Simulated pool only: one entry per seat in order: {accept (true, false or "miss"), delay_seconds, play_fraction, realtime, visible_fraction, revealed, seat_seconds, stop_at_fraction, stop_reason, send_partial, answers, answer_input}. | |
| content | No | An https URL (copied into our storage first; on the simulated pool with a test key it is checked for shape and never fetched), {"text": "..."}, or a media id. For compare, a list of 2 to 6. Not used for kind answer. For play: one HTML file with all its scripts, images and sounds inside; no zip. | |
| minutes | No | Each person's estimated time. Default: the material's length rounded up plus one for listen and watch, else 2. | |
| require | No | Selectors over people's claims: country, region, language, age_band, device, each a list of accepted values. | |
| answer_fields | No | Named fields, each a type ("text", "boolean", "number", "choice", "scale") or {"type", "label", "optional", "choices", "min", "max"}. Default {"answer": "text"}. | |
| max_total_usd | Yes | Required: the most this call may cost, every fee included. At most two decimals. | |
| content_rating | No | ||
| idempotency_key | No | Optional unique string; a repeat with the same key and fields returns the first result for 24 hours. | |
| wants_strangers | No | Optional, when your user wants strangers rather than people they invite: {"purpose": "...", "contact": "..."}. We'll list you for strangers and tell you here, in this tool's replies to your key, when it opens. Nothing is charged. | |
| deadline_minutes | No | Minutes until the call closes and returns what came in. Default 120. | |
| pay_per_person_usd | No | What each person is paid. Default "0.00" on the simulated pool and on panels. | |
| may_train_on_answers | No | Whether your principal may train models on the written answers (default false). People see this before they start. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||