Calculate reward recommendations
Authentication
The Prolific API uses API token to authenticate requests. You can create an API token directly from your settings.
Your API token does not have an expiry date and carries full permission, so be sure to keep them secure.
If your token is leaked, delete it and create a new one directly in the app.
In your requests add Authorization header with the value Token <your token>.
Query parameters
A URL-encoded, comma-delimited list of filter IDs (e.g. custom group filter IDs) that you plan to apply to your study.
There are various methods of converting an array of filter IDs to a URL-encoded, comma delimited array e.g:
JavaScript:
const screenerIDs = ["mandarin", "spanish"];
const encodedScreenerIDs = encodeURIComponent(screenerIDs.join(","));
const url = `https://api.prolific.com/api/v1/reward-recommendations?screener_ids=${encodedScreenerIDs}&workspace_id=<workspace ID>¤cy=GBP`
Python:
import urllib.parse
screener_ids = ["mandarin", "spanish"]
encoded_screener_ids = urllib.parse.quote(",".join(screener_ids))
url = f"https://api.prolific.com/api/v1/reward-recommendations?screener_ids={encoded_screener_ids}&workspace_id=<workspace ID>¤cy=GBP"
Response
The minimum hourly reward rate that we recommend you pay to your study’s participants.
Note that this is returned as the hundredth subunit of the given currency i.e:
- for USD, this will be the value in cents
- for GBP, this will be the value in pence
To display this as USD or GBP respectively, you’ll need to divide this value by 100 and use an appropriate number formatting API e.g:
JavaScript:
new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" }).format(2000/ 100); // "$20.00"
The good hourly reward rate that we recommend you pay to your study’s participants.
Note that this is returned as the hundredth subunit of the given currency i.e:
- for USD, this will be the value in cents
- for GBP, this will be the value in pence
To display this as USD or GBP respectively, you’ll need to divide this value by 100 and use an appropriate number formatting API e.g:
JavaScript:
new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" }).format(2000/ 100); // "$20.00"