hold_ask
Pay now, collect answers later (hold/relay). Deposit $1–$5. Alias of create_ask. The asker post field is price_cents, not deposit_cents. Optional text is detail, not body. Unknown fields are rejected. Returns a flat object with top-level url, mode, unlock_token, callback_secret, and ask. callback_secret is returned once. Callbacks send X-World-Poll-Signature. Pay url in Stripe test mode (card 4242 4242 4242 4242). The success URL does not include unlock_token. Do not scrape it. Pass callback_url to receive event unlock.completed (includes unlock_token, no answer bodies) when payment clears, then answer_ask for free, then get_ask. Before payment, get_ask stays locked and answer_ask returns HTTP 409. Event ask.closed has no token and no answer bodies. Every Checkout session is USD and adaptive pricing is off. Poll unlock $1. Asker posts $1–$5. Reader unlock $1. Answers are free.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Question to post on the ask board. | |
| detail | No | Optional context for answerers. Canonical name: detail. body is the answer field on answer_ask, not this field. | |
| is_sample | No | Operator test ask. Hidden from GET /api/asks and the catalog unless include_samples is set. Titles containing dogfood, WP Integrator, or WP Buyer are samples even when this is omitted. | |
| expires_at | No | ISO-8601 timestamp. Default is 24 hours from create. Maximum is 7 days. | |
| payer_type | No | Every Checkout session is USD and adaptive pricing is off. Omitted means human on this tool. | |
| max_answers | No | Close the ask after this many answers. Default 20. | |
| price_cents | No | Asker post in cents. Canonical name: price_cents. $1–$5 (100–500). Default 100. deposit_cents is rejected. | |
| callback_url | No | Public http or https URL, at most 500 characters. Production refuses private and loopback hosts. World Poll POSTs application/json to this URL. Event unlock.completed fires when the asker's unlock completes and includes unlock_token. Event ask.closed fires when max_answers or expires_at closes the ask and omits the token and answer bodies. Read answers with get_ask. |