Skip to main content
A shareable survey has type: SURVEY and is delivered through a respondent link. It supports Blocks and Pages, uploaded assets, translations, and generated invitations.

1. Create the draft

Save the returned Study id, version, and ETag. studyUrl opens the Study in the Sprig dashboard for authors. shareUrl is null while the Study is DRAFT; read the Study after launch to obtain its respondent URL. Retake settings can change only before the Study launches.

2. Add Questions

Question titles use an object so they can support rich text and variables:
Use the returned ETag for the next authored write. Caller-defined name values make later logic and positioning easier to maintain, but they must be unique within the Study. The Question reference documents every supported Question kind, Option structure, display logic, skip logic, response piping, carry-forward rule, and positioning rule. Do not reuse a request body across Question kinds without validating it against that kind’s schema.

3. Organize Blocks and Pages

Blocks group related Questions. Set displayAsPage: true to present all direct member Questions on one page.
Create a Block, save its UUID, then set a Question’s blockId when creating the Question. You can also position a Question or Block before or after an existing resource. Block and Page rules own their group-level display and skip logic. A Page owns skip logic for its member Questions, so Question-level skip logic is rejected for Page members.

4. Upload and attach assets

Shareable surveys support:
  • CONSENT_DOCUMENT: one PDF up to 10 MB.
  • QUESTION_IMAGE: GIF, JPEG, PNG, or WebP up to 10 MB.
Upload an asset first, then reference the returned assetId from a compatible Question. Asset operations do not change the Study version and do not require If-Match. Deleting an asset fails with ASSET_IN_USE while a Question still references it.

5. Add translations

Use translation resources for precise authored copy, or start a translation job for asynchronous machine translation.
  • PUT replaces the complete translation for one locale.
  • PATCH changes only supplied fields.
  • Translation resource writes require If-Match.
  • Starting or checking a translation job does not require If-Match.
Wait for a job to reach a terminal status before assuming all output is available. Cancelling a job does not roll back translation content already committed.

6. Validate and launch

Resolve every item in errors. Then read the Study again and launch with its latest ETag:
Lifecycle updates must contain only status. Generated invitations provide one respondent link per invitation and support idempotent batch creation:
Reuse the same idempotencyKey when retrying the same logical batch. Sprig returns the original batch instead of creating duplicate invitations, even if a retry sends a different count. Invitation operations are available only for SURVEY Studies.