Skip to content

Forms

Restore a version

POST/v1/forms/{formId}/restore

Copy a published version into the draft. That's its definition, plus its theme overrides if the version recorded them. It doesn't publish. The version's checks come back as they were, whatever the plan. See AI builds and fixes.

Path parameters

  • formIdstringrequired

    The form's id.

Body

JSON, with Content-Type: application/json.

  • versionintegerrequired

    The number of the version to restore. Restoring the live version throws away the unpublished changes, and hasUnpublishedChanges becomes false.

    max 9007199254740991

Response

  • idstringrequired

    The form's id.

  • brandIdstringrequired

    The brand the form belongs to.

  • workspaceIdstringrequired

    The workspace the form belongs to.

  • namestringrequired

    The form's name.

  • statusenumrequired

    draft until it's first published, then published while it's live. unpublished once it's taken offline; its versions are kept.

    One of "draft", "published", "unpublished"

  • publishedVersionnumber or nullrequired

    The number of the live version. Null if the form was never published.

  • publishedAtnumber or nullrequired

    When the latest version was published, in milliseconds since the epoch. Null if never.

  • hasUnpublishedChangesbooleanrequired

    Whether the draft or theme overrides changed since the form was last published.

  • changedAtnumber or nullrequired

    When the draft or theme overrides last changed, in milliseconds since the epoch. Null if they were never edited.

  • partialCapturebooleanrequired

    Whether the draft has "Save unfinished responses" on. The webhook event for people who left (submission.abandoned) needs it, and the plan feature partialCapture too.

  • stepCountintegerrequired

    How many steps the draft has.

    -9007199254740991–9007199254740991

  • blockCountintegerrequired

    How many questions and other blocks the draft has, across all steps.

    -9007199254740991–9007199254740991

  • createdAtnumberrequired

    When the form was created, in milliseconds since the epoch.

  • updatedAtnumberrequired

    When anything about the form last changed, in milliseconds since the epoch.

  • draftobjectrequired

    The whole form as it is now, unpublished edits included. It holds steps in order, then endings, and settings, in the same shape as draft in PATCH /v1/forms/{formId}.

  • themeOverridesobjectrequired

    Theme values that override the brand theme for this form.

    Show 13 fields
    • accentstring
    • accentTextstring
    • backgroundstring
    • surfacestring
    • textstring
    • mutedstring
    • borderstring
    • radiusnumber

      0–48

    • buttonRadiusnumber

      0–48

    • fontstring
    • headingFontstring

      max 500 chars

    • backdropstring
    • fontStylesheetstring

      max 2000 chars · uri

  • trackingOverridesobjectrequired

    Whether this form fires the brand's Meta and GA4 tracking, and its own Jornaya campaign key.

    Show 3 fields
    • metabooleanrequired

      Whether this form fires the brand's Meta Lead, in the browser and through the Conversions API.

    • ga4booleanrequired

      Whether this form fires the brand's GA4 generate_lead event.

    • jornayaCampaignKeystring

      This form's own Jornaya campaign key. Leave it out to use the brand's. It applies while the brand has Jornaya on. A page loads one campaign script, so with two forms on a page the first one's key is used.

  • picturesarray of objectrequired

    Pictures AI is making in the background for image choice options after an AI build or fix. If a picture can't be made, or its option was removed or got a picture in the meantime, it drops off this list and the option stays as it is. You can add a picture yourself with POST /v1/forms/{formId}/images. Publishing while a picture is still making fails like a missing picture would, with a message that it's still coming.

    Show 4 fields
    • blockIdstringrequired

      The id of the image choice question.

    • valuestringrequired

      The value of the option the picture is for.

    • statusenumrequired

      making while AI makes the picture. added once it's on the option as imageId in the draft.

      One of "making", "added"

    • imageIdstring or nullrequired

      The picture's id once it's added. Null while it's being made.

Errors answer with a status and the error shape.