run_debate
Run a multi-round simulated debate (a Pulse debate). Respondents discuss the motion over several rounds and update their positions in response to each other. Returns the final consensus, the key arguments on each side, dissenting views and a synthesis, without individual answers. Use it to see whether a position survives scrutiny, not just a snapshot.
RECOMMENDED FLOW: if the user didn't pick an audience, call list_demographic_presets and propose one or two; call preview_cost for the price; confirm with the user; then run. Studies are charged to the account's wallet at the same per-respondent rate as on the web. A debate costs population_size × num_rounds, so preview it.
Your plan allows up to 20 respondents per study (Free 20, Pro 500, Max 1,000). The default debate is 30 respondents × 5 rounds.
WHEN IT FITS: whether a position survives argument, and which arguments move people. WHEN IT MISLEADS: read as a population estimate. Deliberation pulls a panel together; for the unprompted split, use run_focus_group.
Returns: final_consensus_score (0-1), summary, key_arguments_for, key_arguments_against, dissenting_views, num_rounds, agent_count (respondents counted in the final round), position_shifts_count, and breakdowns (final positions by age_band, gender, political_ideology, region and, where respondents carry their market's party lean, party).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | The motion the panel debates, e.g. 'Should the federal minimum wage be $20/hr?' | |
| context | No | Background every respondent reads before answering: a product description, the ad copy, a news story, the terms of an offer. Plain text, up to 16,000 characters. The result's shown_to_respondents block echoes what the panel read. | |
| language | No | Language the respondents answer in. Default: en. | en |
| image_url | No | Optional public HTTPS URL of an image to attach to the debate topic. Same shape as run_focus_group.image_url. | |
| num_rounds | No | Debate rounds. Default 5 (platform standard). More rounds = more convergence pressure and cleaner consensus, but cost grows linearly. | |
| custom_audience | No | Optional filter narrowing the panel INSIDE the market preset. Keys (all optional): countries, regions, cities (each market's own vocabulary), age_min / age_max, genders ('all' | 'men' | 'women' | 'non_binary'), interests / interest_exclusions (taxonomy tags), income_min_tier / income_max_tier (affluence ladder 0-7, 7 = top), income_currency + income_min_amount / income_max_amount (REAL annual household amounts in a named ISO currency — currency is required with amounts; e.g. {'income_currency': 'USD', 'income_min_amount': 100000}), income_match ('position' = the equivalent affluence standing within each market's own income ladder, the default; 'absolute' = actual earnings at indicative FX), ethnicities / religions (multi-ethnic markets only). Preview a custom_audience with the free estimate_reach tool before paying for a run — it reports the audience size and which constraint cuts hardest. A 'small' audience is not a blocker: the panel is still delivered at the population_size you ask for, with every respondent matching the filter, and its age and gender mix follows the market's profile within the filter's age, gender, place, income and heritage terms (interest tags pick who within each group, not how many of each). Results carry panel_check (the panel's age, gender and region mix against that profile) and, for an uncommon audience, audience_note. Guide: https://crowdos.ai/mcp. | |
| population_size | No | Respondents in the debate. Default 20. Your plan's limit is 20 (Free 20, Pro 500, Max 1,000). | |
| stance_statement | No | Optional declarative the agents argue FOR or AGAINST. Sharpens the split when the topic is open-ended. | |
| demographic_preset | No | Audience preset. Use list_demographic_presets to see all options. Default: us_general_population. | us_general_population |