1. Before you start
- An API key. The one issued to you, starting with
dw_. If you don't have one, ask for access. - The poll page open in a desktop browser — a
poll.fmlink, or the Crowdsignal poll embedded in the page that hosts it. - At least one proxy. The run is rejected without one — every attempt goes out through the pool you supply.
2. Step 1 — the poll ID
Open the poll and read the address bar. The trailing digits are the poll ID — nothing else from the URL is needed.
poll.fm/17450495
→ Poll ID = 17450495If the poll is embedded in someone else's article, the embed is an iframe: right-click inside it and pick Open frame in new tab (or copy the iframe's src) to get the poll.fm URL with the ID in it.
3. Step 2 — the answer ID
The answer ID isn't shown anywhere on screen; it lives in the markup of the option you want to vote for. Four clicks:
- 1.Find the answer you want votes on in the list.
- 2.Right-click directly on that answer's label or radio button.
- 3.Choose Inspect — DevTools opens with that element selected.
- 4.Read the
<label for="PDI_answer…">attribute and copy just the number.
for attribute. Click the shot to open it full screen and zoom in.<label for="PDI_answer76163132">
→ Answer ID = 76163132Drop the PDI_answerprefix — the tool rejects anything that isn't digits. One run targets one answer; to split votes across several options, run the tool once per answer ID.
4. Step 3 — cast the votes
Open the control deck, paste both numbers and fill the rest:
| Field | Accepted | Notes |
|---|---|---|
| API key | Starts with "dw_" | Sent as X-API-Key; never stored in the page. |
| Poll ID | Digits only | From the poll.fm URL — see step 1. |
| Answer ID | Digits only | From the answer's label — see step 2. |
| Votes | 1–10 per run | Higher values are clamped to 10 by the API. |
| Concurrency | 1–10 workers | How many votes are in flight at once. |
| Delay | "MIN-MAX" seconds | Random pause per vote, e.g. 0.1-0.5. |
| Proxies | 1–50 entries | Required. One per line; rotated across attempts. |
Hit Cast votes. The run holds the connection until every attempt has finished, so leave the tab open.
5. Reading the results
The stat rail totals the run — attempts, succeeded, failed, success rate and elapsed time — and the table below lists every attempt in order with its status, how long it took and the detail the poll returned. A row that failed carries the error in the same column, which is usually either a dead proxy or the poll refusing a repeat vote from that IP.
Reload the poll afterwards to confirm the count moved — the tool reports what the endpoint accepted, not what the poll ultimately keeps.
6. Limits & troubleshooting
- "At least one proxy is required."
- The proxies box is empty. Paste one per line, as
http://user:pass@host:portorhost:port:user:pass. - Fewer votes landed than you asked for
- A run is capped at 10 votes and anything larger is clamped. Repeat the run for more, and widen the delay range if attempts start failing in bursts.
- HTTP 429
- The tool serves 20 runs per 10 minutes across all visitors. Wait and retry.
- "Must be numeric."
- A prefix came along with the ID — strip
PDI_answerand any stray whitespace.