When and how to use scheduling
Scheduling endpoints are applicable for the following methodologies:oneOnOne, focusGroup, inRespondentHome, inRespondentOffice.
Where to start
Scheduling begins with project creation. When one of the above methodologies is select for a project, thebookingURL field in the externalResearcher object is required to schedule with participants. The link provided should lead participants to a page where they can select a time to participate in the study. The booking page should not require a participant to enter email or phone number and should instead rely on the data passed in the redirect URL parameters to associate the schedule with the appropriate participant: ?respondent_profile_id={{%PROFILE_ID%}}&respondent_project_id={{%PROJECT_ID%}}&respondent_screener_response_id={{%SCREENER_RESPONSE_ID%}}

Participants will see the link as the "Book a Time" button in their dashboard.
Inviting participants
Before a participant has the opportunity to book time they must first be invited to the project via:/v1/projects/{projectId}/screener-responses/{screenerResponseId}/invite
Scheduling participants
Once a participant has been invited, they will be able to follow the “Book a Time” button to scheduled a time on your platform. Once the participant has confirmed a time the schedule endpoint,/v1/projects/{projectId}/screener-responses/{screenerResponseId}/schedule, should be utilized to send Respondent the booking information to keep the participant informed.

Participants will see the ability to Reschedule, a Scheduled status, and the time of meeting

Clicking on a project name will review projects details including the meeting link.
Who cancels matters
Researcher cancel and reschedule use a 4 hour window before start. Participant cancel and no-show do not.
No-show is after the session starts. On the Partner API, wait more than 15 minutes after start. A call at exactly 15 minutes returns 400. Status is
NOSHOW. The participant is not paid. See No-shows.
Respondent does not enforce participant reschedule or cancel windows on your calendar. If you need a cutoff, enforce it before you call Schedule.
Rescheduling (researcher)
Call/v1/projects/{projectId}/screener-responses/{screenerResponseId}/cancel-booking-reinvite to cancel the booking and let the participant pick a new time. They return to INVITED.
The API rejects the request less than 4 hours before start, for both remote (oneOnOne, focusGroup) and in-person (inRespondentHome, inRespondentOffice).
There is no public API equivalent of the platform “Enable reschedule” flag.
Cancelling (researcher)
When the researcher cannot make the session and is not re-inviting now, call/v1/projects/{projectId}/screener-responses/{screenerResponseId}/cancel-booking.
- 4 hours or more before start:
CANCELLED. Not paid. Recruitment slot released. - Less than 4 hours before start, or after start:
ATTENDED. Autopay. Full incentive and service fee charged.

Participants will see a "Cancelled" status when the researcher cancels 4 hours or more before the session.
Cancelling on behalf of a participant
When the participant asked to cancel, call/v1/projects/{projectId}/screener-responses/{screenerResponseId}/participant-cancel-booking.
Always CANCELLED. Never paid, no matter how close the session is. If you send shortNoticeCancel, it is stored. It does not start autopay.
On the native Respondent scheduler, participants are warned if they cancel within 12 hours of a remote session or 24 hours of an in-person session. They are not blocked. That warning is UI only. The public API does not apply it.
No-shows
If the participant does not attend, call Mark as no-show. They are not paid. Status isNOSHOW.
- Partner API and external bookings: more than 15 minutes after start. A call at exactly 15 minutes returns 400.
- Unmoderated and survey Invalid Response: Response statuses.
- Clears pending pay. Does not clear
externalProject.bookedDateor free your calendar slot. Free that slot on your side. - Respondent emails the participant. Talk to them first. This cannot be undone.
ATTENDED and pays.
Replacing a no-show
Respondent does not automatically schedule a standby participant for the missed slot. To fill the session, invite another qualified applicant from your project via/v1/projects/{projectId}/screener-responses/{screenerResponseId}/invite and let them book a time through your bookingURL.
Respondent’s recruiting algorithm sources up to 3x the project’s targetNumberOfParticipants, so a project usually has qualified, uninvited applicants available as replacements. Use List screener responses to find them. See Project statuses for how sourcing and auto-pause interact with the 3x buffer.