---
name: sales-prolific
description: "Prolific (prolific.com) platform help — a developer-native online research-participant panel: recruit, screen, and pay vetted participants from a 13M+ global pool (130+ countries, ID/video-verified, representative samples) for surveys, tasks, and AI human-data collection (RLHF/preference labeling via the AI Task Builder). Its edge is a self-serve public REST API (Token auth, api.prolific.com/api/v1), HMAC-signed webhooks, an MCP server, and a CLI. Use when creating a study via the API, wiring webhooks or the cost calculator into a recruit/warehouse pipeline, setting demographic filters or a representative sample, reading the platform fee (42.8% corporate / 33.3% academic) or minimum pay rates, or collecting human feedback for AI training. Do NOT use for choosing a research tool broadly or the validate-before-building method (use /sales-idea-validation), recruiting B2B pros for moderated interviews (use /sales-respondent), or an all-in-one recruit+run+repository suite (use /sales-great-question)."
argument-hint: "[describe what you need help with in Prolific]"
license: MIT
version: 1.0.1
github: https://github.com/prolific-oss
tags: [sales, pre-launch, platform]
---

# Prolific Platform Help

Prolific (prolific.com) is a **developer-native online research-participant panel** — it **recruits,
screens, and pays** vetted participants from a **13M+ global pool** (130+ countries) for **surveys,
online tasks, and AI human-data collection** at scale. Participants pass **ID + live-video +
government-document verification** and Prolific runs active **bot / AI-answer detection** + a manual
data-quality team, hence its **research-grade data integrity** reputation.

It's the **bring-your-own-instrument** panel: you host the survey/task in **your own tool** (Qualtrics,
Google Forms, a custom app, a prototype) and Prolific supplies the humans. Unlike the recruit-only
interview marketplace **Respondent** (`/sales-respondent`), Prolific's edge is a **self-serve public REST
API with an instant Token key** — plus **HMAC-signed webhooks, an MCP server, and an open-source CLI** —
so recruitment can sit in a real pipeline. It's also the recruitment backbone usability tools plug into
(e.g. **Useberry** recruits via Prolific).

**Two things to say almost every time:**
- **Real people answering ≠ demand.** A large, vetted sample is strong signal for *problem/behavior*
  research — but "I'd pay" is **still not a purchase**; keep the *why* and take a go/no-go to a **real behavior test** (`/sales-idea-validation`, `/sales-funnel`).
- **The sticker reward is not the cost.** A **platform fee** rides on top (best-effort 42.8% corporate / 33.3% academic) — budget **reward + fee** and run the **cost calculator** first (prolific.com/pricing).

## Step 1 — Gather context

If `references/learnings.md` exists, read it first for accumulated platform knowledge.

Ask only what you can't infer:

1. **What do you need?**
   - A) **Recruit / target** — filters, screeners, representative samples, eligible-count checks, quotas
   - B) **Study lifecycle** — create → cost → publish → monitor → review/approve submissions
   - C) **Pay / bonuses** — approve, reject, pay bonuses, understand the platform fee + minimum pay
   - D) **Automate / integrate** — the REST API, webhooks, the MCP server, or the CLI in a pipeline
   - E) **AI human data** — annotation/eval Batches or original-data Collections via the AI Task Builder
2. **Where does the task live?** (Prolific supplies participants; your survey/task/app is external.)

Skip-ahead: if the user wants to **compare research/recruit tools across the market** or the
**validate-before-building method**, that's `/sales-idea-validation` — route in Step 2.

## Step 2 — Route or answer directly

| If the user's question is about… | Route to |
|---|---|
| Comparing research/recruitment/idea tools across the market, or the validate-before-building **method** | `/sales-idea-validation {question}` |
| The **data-quality-first** peer panel — **Sentry** screening + a **support-provisioned** API (no self-serve token/webhooks) | `/sales-cloudresearch {question}` |
| Recruiting **B2B / hard-to-reach professionals** for **moderated interviews** (a recruit-only marketplace) | `/sales-respondent {question}` |
| An **all-in-one** recruit + run + repository research suite | `/sales-great-question {question}` |
| Running a **usability / IA test** (card sort, tree test, prototype tasks) on a **built** artifact | `/sales-uxtweak` or `/sales-lyssna` `{question}` |
| Running a **real behavior** demand test (smoke-test page, waitlist, pre-sale) after research | `/sales-idea-validation` or `/sales-funnel` `{question}` |

When routing, give the exact command: "This is a {domain} question — run: `/sales-idea-validation {original question}`"

Otherwise, answer Prolific-specific questions using Step 3.

## Step 3 — Prolific reference

**Read `references/platform-guide.md`** for the full reference — the capability/automation-surface table
(API vs webhook vs MCP vs UI), pricing/plan gates + the fee and minimum-pay math, the Study → Submission
→ Participant data model, filters/representative samples, the AI Task Builder (Batches vs Collections),
integrations, and quick-start recipes. **Read `references/prolific-api-reference.md`** for the verbatim
API surface (Token auth, base URL, study & submission objects, filters, webhooks + HMAC verification,
cost calculator, CLI, MCP). Answer using only the relevant section — don't dump the full reference.

## Step 4 — Actionable guidance

- **Say the caveat: a vetted sample is not demand.** Prolific gets **real, verified people to answer** (a
  strong signal — genuine behavior/language) but a stated "I'd pay" is **not observed demand**. Keep the
  *why*; take the go/no-go to a **real behavior test** (pre-sale, smoke test) → `/sales-idea-validation`.
- **Budget reward + platform fee, and use the cost calculator.** Total ≈ **reward + platform fee**
  (best-effort **42.8% corporate / 33.3% academic**), and Prolific enforces a **minimum pay rate**
  (best-effort **£6/$8/hr**, recommended **£9/$12/hr** — higher for specialized AI/coding/STEM work).
  Call **`POST /api/v1/study-cost-calculator/`** with `reward` + `total_available_places` to get the
  VAT-and-fee-inclusive total **before** publishing. Present all figures as best-effort — confirm at
  prolific.com/pricing.
- **Fix "participants don't fit the brief" with filter/screener design, not the panel.** Prolific is
  ID/video-verified, so off-brief responses are a **targeting/screener** issue: apply **prescreening
  filters** (`GET /api/v1/filters/`, then a select/range payload), check the **eligible count** before
  launch, add **custom-screening questions** with attention checks, and use **quotas** to balance the
  sample. Report genuinely bad submissions for **data-quality review**.
- **Guard against AI-generated open-ended answers.** The top data-quality threat now is humans pasting
  ChatGPT into free-text. Mitigate with **behavior-specific prompts**, timing/attention checks, and
  copy-paste detection in your own instrument — then **reject** or request a **return** on failing
  submissions, and reserve **bonuses** for quality.
- **Run the API pipeline — create → publish → approve — self-serve and instant.** Create a **Researcher
  token** in account settings (no expiry, full permission) and send **`Authorization: Token <token>`** to
  **`api.prolific.com/api/v1`**. Flow: **`POST /studies/`** (external_study_url with `{{%PROLIFIC_PID%}}`,
  reward in cents, filters, completion codes) → **publish** via **`POST /studies/{id}/transition/`**. A
  submission pays **only once APPROVED** — gate on your quality check, then auto-approve valid completions
  (a completion-code auto-approve action, or `POST /submissions/{id}/transition/` APPROVE / bulk-approve).
  Use **webhooks** (`participant.submission.created`, `payment.processed`, …) and **verify the
  HMAC-SHA256 signature** (`X-Prolific-Request-Signature` over `timestamp + body`, base64, constant-time)
  before trusting the body; add a **status-filtered reconcile poll** (`GET /api/v1/studies/{id}/submissions/`)
  so a missed event never leaves a submission unpaid.
- **For AI human data, pick Batches vs Collections.** **Batches** = you upload data (CSV), participants
  **evaluate/label** it (annotation, model eval, pairwise preference); **Collections** = participants
  **produce** original data (images/files/text). Both attach via `data_collection_method` +
  `data_collection_id` — reach for these for **RLHF / preference / eval** rather than hand-rolling a task.
- **CLI + MCP for exploration/CI.** The open-source CLI (`prolific-oss/cli`, `PROLIFIC_TOKEN`) and MCP
  server (`docs.prolific.com/_mcp/server`) suit scripting; use the raw API for production pipelines.

If you discover a gotcha or tip not in `references/learnings.md`, append it there with today's date.

## Gotchas

*Best-effort from research (2026-07) — pricing (platform fee 42.8% corporate / 33.3% academic, min pay
~£6/$8/hr, rec. £9/$12/hr), panel size ("13M+"), and API/webhook specifics all move; verify at
prolific.com/pricing and docs.prolific.com.*

- **The reward is not the total.** A **platform fee** sits on top (best-effort 42.8% corporate / 33.3%
  academic) and a **minimum pay** floor is enforced (best-effort £6/$8/hr, rec. £9/$12/hr — low pay also
  drags quality). Run the **cost calculator** before publishing so the fee + VAT don't surprise you.
- **A Researcher API token has no expiry and full permission.** Treat it like a password — never expose
  it client-side, scope it to a workspace, and rotate if leaked.
- **Verify the webhook signature, and don't rely on delivery alone.** HMAC-SHA256 over
  `timestamp + body`, base64, constant-time compare against `X-Prolific-Request-Signature`. Also
  **reconcile with a status poll** — treat webhooks as best-effort and payments/approvals as the source
  of truth.
- **A vetted sample ≠ demand.** 1,000 verified people answering "I'd buy this" is stated preference at
  scale, not a purchase — take the WTP go/no-go to a real behavior test.
- **AI-generated free-text is the new data-quality threat.** ID/video verification stops bots, not a
  human pasting ChatGPT — add attention/timing checks and copy-paste detection in your own instrument.
- **"Participants don't fit the brief" is a filter/screener problem, not a bad panel.** Prescreen with
  filters, check the **eligible count** before launch, add screening questions + attention checks, quotas.
- **Prolific supplies people, not the survey.** You host the task (Qualtrics/Forms/your app), pass
  `{{%PROLIFIC_PID%}}`/`{{%STUDY_ID%}}`/`{{%SESSION_ID%}}` in the URL, then return a completion code.

## Related skills

- `/sales-idea-validation` — The validate-before-building method + the full research/recruit/validator tool landscape (a research "yes" is not demand). Install: `npx skills add sales-skills/sales --skill sales-idea-validation -a claude-code`
- `/sales-cloudresearch` — The **data-quality-first** peer panel: the same recruit class, but its edge is **Sentry** data-quality screening and a **support-provisioned `X-API-KEY`** (no self-serve token, no webhooks/MCP — poll to reconcile), where Prolific's is an **instant token + HMAC webhooks + MCP + CLI**. Pick CloudResearch when screening is the priority, Prolific when a self-serve pipeline is. Install: `npx skills add sales-skills/sales --skill sales-cloudresearch -a claude-code`
- `/sales-respondent` — The recruit-only **B2B/professional interview** marketplace (Prolific's edge is broad online samples + a self-serve API; Respondent's is hard-to-reach professionals + a partner-provisioned API). Install: `npx skills add sales-skills/sales --skill sales-respondent -a claude-code`
- `/sales-great-question` — The all-in-one recruit + run + repository suite (Prolific is recruit + collect only; you bring your own instrument and repository). Install: `npx skills add sales-skills/sales --skill sales-great-question -a claude-code`
- `/sales-useberry` — Prototype-first usability testing that **recruits its participants via Prolific** — pair them when you need usability testing on top of Prolific's panel. Install: `npx skills add sales-skills/sales --skill sales-useberry -a claude-code`
- `/sales-funnel` — Build the smoke-test / fake-door landing page that turns a research hypothesis into a real demand test. Install: `npx skills add sales-skills/sales --skill sales-funnel -a claude-code`
- `/sales-do` — Not sure which skill to use? The router matches any sales objective to the right skill. Install: `npx skills add sales-skills/sales --skill sales-do -a claude-code`

## Examples

### Example 1: "How do I create a Prolific study and auto-approve submissions from my own backend?" (developer/automation)
**User says**: "I want to launch studies and pay people through Prolific's API without clicking around the dashboard."
**Skill does**: Explains the **self-serve** flow (Step 4's API pipeline) — Researcher token +
`Authorization: Token`, **`POST /studies/`** → **publish transition**, subscribe to
**`participant.submission.created`** webhooks, **verify the HMAC signature**, and **APPROVE** valid
completions (approval releases payment) with a **reconcile poll** so nothing is left unpaid.
**Result**: The user runs the whole study lifecycle from their backend with the payment gate correct.

### Example 2: "Half my Prolific responses look low-effort or AI-written"
**User says**: "I'm getting open-ended answers that read like ChatGPT — is the panel bad?"
**Skill does**: Reframes it as a **data-quality/instrument** issue, not a bad panel (Prolific is
ID/video-verified with bot/AI detection). Prescribes **behavior-specific prompts**, **attention +
timing checks** and **copy-paste detection in your own survey**, tighter **prescreen filters** with an
**eligible-count** check, and **rejecting / requesting returns** on failing submissions while reserving
**bonuses** for quality; report genuinely bad submissions for Prolific's data-quality review.
**Result**: The user cleans the sample by fixing screening + attention checks instead of switching tools.

### Example 3: "What will an n=300 study actually cost on Prolific?"
**User says**: "I want 300 participants at a 10-minute survey — what's the real bill?"
**Skill does**: Explains total ≈ **reward + platform fee** (best-effort **42.8% corporate / 33.3%
academic**) with an enforced **minimum pay** (best-effort £6/$8/hr, recommended £9/$12/hr), and shows the
**`POST /study-cost-calculator/`** call (`reward` in cents + `total_available_places`) that returns the
**VAT-and-fee-inclusive total in cents** before publishing. Presents all figures as best-effort —
**confirm at prolific.com/pricing**.
**Result**: The user budgets reward + fee up front and sizes the study to their spend.

## Troubleshooting

### "My API calls 401 / where's my API key?"
**Symptom**: Requests fail auth.
**Cause**: Prolific uses a **`Authorization: Token <token>`** header (not Bearer, not two-header), and
the token is a **Researcher token** you create in account settings.
**Solution**: Create a Researcher token at `app.prolific.com/researcher/tokens/`, send
`Authorization: Token <token>` against `https://api.prolific.com/api/v1/`. The token has **no expiry and
full permission** — keep it secret and workspace-scoped.

### "My webhook fired but I'm not sure it's really from Prolific / I missed some events"
**Symptom**: Untrusted or missing webhook deliveries.
**Cause**: Webhook bodies must be **signature-verified**, and delivery is best-effort.
**Solution**: Recompute **HMAC-SHA256** over `X-Prolific-Request-Timestamp + body` with your secret,
base64-encode, and **constant-time compare** against `X-Prolific-Request-Signature`. Also run a
**status-filtered reconcile poll** (`GET /studies/{id}/submissions/`) so a dropped event never leaves a
submission unreviewed or unpaid.

### "A participant says they weren't paid"
**Symptom**: A completed submission wasn't rewarded.
**Cause**: A submission only pays once it's **APPROVED** (RESERVED → ACTIVE → AWAITING REVIEW →
APPROVED); left in review it stays unpaid, and rejected/returned/timed-out/screened-out submissions
don't pay.
**Solution**: Review the submission status via `GET /studies/{id}/submissions/`, **transition it to
APPROVED** (or bulk-approve), and use a **bonus payment** for extra compensation. Automate
"valid completion → approve" but keep a manual review path for disputes.
