Juno
API reference

Create participant link

POST /v1/api/studies/{study_id}/participant-links Requires links:write

Create 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

200 Successful Response
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.

422 Validation Error
ValidationError[]
cURL
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": ""
}'
Example response
{
  "url": "string",
  "audience": "group",
  "mode": "test"
}