Skip to main content

Managing project status

Each project status PATCH endpoint updates two key fields that control what a project is doing:
  • projectStatus: DRAFT, PAID, ARCHIVED, CLOSED
  • projectRecruitingStatus: RECRUITING, RECRUITED, PAUSED

Status transitions

There is no dedicated “stop” endpoint. To stop sourcing new applicants temporarily, pause the project. To end recruitment permanently, close the project.

Publish details

When published, the following fields are set automatically:
  • publishedAt = current time
  • expireAt = 1 month from now

Project expiry

expireAt is the point at which Respondent stops recruiting on the project on its own. Approaching that date, two emails go to the researcher account: an Auto-Pause Warning on day 27, and Project Recruiting Stopped if the project reaches day 30 without being paused (see Automated researcher emails). At day 28 the project auto-pauses and after day 30 no new applicants are sourced. Expiry stops sourcing; it does not close the project or lock participant actions. On an expired project you can still invite qualified applicants who were already sourced, schedule them, mark them attended or no-show, pay them, and close the project — the same participant endpoints continue to work. There is no expireAt extension endpoint. To keep recruiting past 30 days, contact partner support. Although in most cases we recommend that you close the current project and create a new one with the same targeting instead of extending.

Pause details

A project’s projectRecruitingStatus becomes PAUSED in two ways:
  • Manually, via PATCH …/pause.
  • Automatically, When enough qualified participants to meet the project’s targetNumberOfParticipants have applied to the project. Our recruiting algorithm dynamically sources up to 3x the target to ensure you can reach your target even if some participants do not complete the study or provide poor quality answers and need to be replaced
While a project is PAUSED:
  • Sourcing stops. New applicants can no longer apply through matching, and matching/recruitment emails are not sent.
  • Auto-invites keep flowing. Applicants who were already qualified before the pause continue to receive invitations on their normal automations.invite schedule, up to the project’s invite cap (or completes cap for invite-to-complete flows). Participants who have already been invited can still schedule, attend, and be paid.
In other words, PAUSED means “stop sourcing new applicants” — not “stop inviting.” This matters most for invite-to-complete integrations, where completion volume, not invite volume, determines when recruitment is finished; the project will keep auto-inviting qualified applicants (subject to eligibility and quota checks) even while paused. To resume sourcing after an auto-pause, unpause the project with PATCH …/pause (the same endpoint toggles the status). There is no separate response-count limit for resuming. Unpausing is available on any PAID project. The only caps that govern recruitment are targetNumberOfParticipants itself (min 1, max 500) and the 3x sourcing buffer above it. Disqualifying a participant via Qualify participant frees their spot, and Respondent automatically backfills disqualified participants.

Close details

Closing is permanent. Once a project is closed, you cannot contact participants or change any participant’s status. Pay and resolve all participants before you close. When closed, the following fields are populated:
  • closedDetails.closed = true
  • closedDetails.closedMessage = message passed in the request
  • closedDetails.closedByUserId = current user ID
  • closedDetails.closedOnDate = current time
If your project has screener responses in SCHEDULED or ATTENDED status, you will receive a 400 error with the message “Project has unpaid participants and cannot be closed”. Ensure all participants are paid before closing.
If your project has screener responses in INVITED status, you will receive a 400 error naming how many participants have an open invitation. A participant who took part but whose status was later moved back to INVITED is still owed payment, so closing is blocked until each one is resolved: mark them ATTENDED and pay them if they took part, or cancel the invitation (which returns them to PENDING) if they did not.

Editing a project after publish

PATCH /v1/projects/{projectId} accepts different fields depending on the project’s current status. Once a project is live (projectStatus: PAID), it is treated as a published project and only a limited set of fields can be modified.

Fields you can update on a live (published) project

  • publicTitle
  • publicInternalName
  • publicDescription
  • participantTimeRequiredMinutes
  • incentiveAmount
  • ndaDetails
  • externalResearcher
  • externalScreenerLink (external-screener organizations only; see External screeners)
  • unmoderatedStudyOrSurvey.deadline (Unmoderated Study and Survey projects only; the new deadline also applies to participants with an open invitation)

Fields that cannot be changed on a live project

Targeting, methodology, and recruitment-shape fields are locked once a project is published. This includes (but is not limited to):
  • targetNumberOfParticipants
  • targetResearchMethodology, typeOfResearch
  • targetMarketType, targetCountry, targetCities, targetLocationRespondentInPerson
  • targetProjectTopics, targetProfessionalIndustries, targetJobTitles, targetJobFunctions, targetAudienceSkills
  • automations (including autoinvite and autopay)
If you need to change any of these on a live project, close or archive the project and create a new one. Screener questions can still be edited after publish through the screener question endpoints, including qualifying and skip logic. Editing effectively replaces the screener: responses collected before the edit remain qualified against the original version, and only new responses are evaluated against the update. See Creating questions for the caveats. See Update a project for the full request reference.
Last modified on September 28, 2026