Create participant link
/v1/api/studies/{study_id}/participant-links Requires links:writeCreate an invite link carrying what you already know about the people who will open it — company, role, the systems they use. Juno briefs the interviewer with it, so the interview does not ask for details you supplied. By default the link is for a **group**: send one link to everyone in that segment. Set `audience` to `person` when the context identifies one individual and you want the finished interview matched back to their record; that link then belongs to whoever opens it first. The context is recorded on the resulting interview and returned by List interviews.
Parameters
study_id string <uuid> Idempotency-Key string · nullable Request body application/json
context object Key/value facts about the people this link is for, e.g. {"company": "Coca-Cola", "role": "Head of Martech"}. At most 20 keys; keys up to 100 characters, values up to 2048, 16KB total.
audience enum("group", "person") Who the link is for. 'group' (the default) describes a segment — everyone you send it to gets this context, so one link covers a whole company or role. Use 'person' when the context identifies one individual (e.g. a contact_id you want the finished interview matched back to): the link then addresses one interview. Reopening that same link continues the interview with its original context, even in another browser or device. Give each different participant a fresh person link and treat it as sensitive.
note string Free-text direction for the interviewer about the people this link is for, e.g. 'These participants recently cancelled. Explore what changed and why they left.' Unlike context (facts, which become data columns on the interview), the note is guidance Juno follows during the conversation. Up to 2048 characters. Never shown to the participant and never included in exports.
Responses
url string Absolute invite URL. The context you supplied is stored against the link rather than written into it, so the URL reveals nothing about who it is for. Treat it as sensitive: anyone holding it arrives carrying the context.
audience enum("group", "person") The audience this link was minted for. 'group' is reusable — send it to as many people as you like. 'person' addresses one interview; reopening the same link continues that interview, so give each different participant a fresh link.
mode enum("test", "live", "paused", "closed") The study's lifecycle value when the link was minted. Advisory only — participant behavior follows the value when they open it.
ValidationError[] curl -X POST 'https://api.heyjuno.co/v1/api/studies/3fa85f64-5717-4562-b3fc-2c963f66afa6/participant-links' \
-H 'Authorization: Bearer $JUNO_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"context": {},
"audience": "group",
"note": ""
}'{
"url": "string",
"audience": "group",
"mode": "test"
}