Preview publishing a draft

POST /supplier-assessment-templates/{templateId}/publish/preview

Scope supplier_template:read Plan Growth+

A dry run of publishing, without a request body and without any change: the scoring impact of the draft against the latest published version (the built-in questionnaire for a first publish), the same violations and warnings as validate plus the weight-raised warning W6_WEIGHT_RAISED_3X, and the permissions of the caller. Publishing itself is refused for every token. A read: requires the supplier_template:read scope.

Example

curl -X POST "https://api.autociso.io/api/v1/supplier-assessment-templates/<templateId>/publish/preview" \
  -H "Authorization: Bearer <your-api-token>"

Response 200

{
  "data": {
    "impact": {
      "fromVersion": null,
      "toVersion": 1,
      "baselineIsBuiltin": true,
      "baselineKey": "supplier_security_privacy",
      "maxPenalty": [
        {
          "mode": "general",
          "before": 100,
          "after": 100,
          "change": 0,
          "unloseableBefore": 0,
          "unloseableAfter": 0,
          "deltaPct": 0
        }
      ],
      "criticalOptionCount": {
        "before": 4,
        "after": 4,
        "change": 0
      },
      "scoreableQuestionCount": {
        "before": 60,
        "after": 60,
        "change": 0,
        "added": 0,
        "removed": 0
      },
      "weightChanges": [],
      "riskValueChanges": [],
      "severityChanges": [],
      "addedQuestions": [],
      "removedQuestions": [],
      "changes": [],
      "requiresAcknowledgement": false,
      "acknowledgementReasons": [],
      "acknowledgementRowCount": 0
    },
    "violations": [],
    "warnings": [],
    "permissions": {
      "canEdit": true,
      "canSubmit": true,
      "canWithdraw": false,
      "canReject": false,
      "canPublish": false,
      "canSetDefault": false,
      "canArchive": false,
      "canDelete": true,
      "publishBlockedReason": null
    }
  }
}

Path parameters

  • templateId string required
    Questionnaire document id (satpl_...), or satpl_builtin_supplier_security_privacy_v1 for the built-in one.

Returns

The data field of the standard { data, error, meta } envelope:

  • impact object required
    What publishing the draft would change in scoring, against the baseline version.
    • fromVersion integer or null required
    • toVersion integer required
    • baselineIsBuiltin boolean required
    • baselineKey string required
    • maxPenalty array of object required
      Show 7 propertiesHide 7 properties { mode, before, after, change, … }
      • mode string required
      • before integer required
      • after integer required
      • change integer required
      • unloseableBefore integer required
      • unloseableAfter integer required
      • deltaPct number required
    • criticalOptionCount object required
      Show 3 propertiesHide 3 properties { before, after, change }
      • before integer required
      • after integer required
      • change integer required
    • scoreableQuestionCount object required
      Show 5 propertiesHide 5 properties { before, after, change, added, … }
      • before integer required
      • after integer required
      • change integer required
      • added integer required
      • removed integer required
    • weightChanges array of object required
      Show 6 propertiesHide 6 properties { questionId, sectionId, text, before, … }
      • questionId string required
      • sectionId string required
      • text string required
      • before integer required
      • after integer required
      • zeroRiskOnly boolean required
    • riskValueChanges array of object required
      Show 5 propertiesHide 5 properties { questionId, optionId, label, before, … }
      • questionId string required
      • optionId string required
      • label string required
      • before integer required
      • after integer required
    • severityChanges array of object required
      Show 7 propertiesHide 7 properties { questionId, optionId, label, before, … }
      • questionId string required
      • optionId string required
      • label string required
      • before string required
      • after string required
      • downgrade boolean required
      • removed boolean
        True when the option or its question no longer exists in the draft.
    • addedQuestions array of object required
      Show 5 propertiesHide 5 properties { questionId, sectionId, text, weight, … }
      • questionId string required
      • sectionId string required
      • text string required
      • weight integer required
      • scoreable boolean required
    • removedQuestions array of object required
      Show 5 propertiesHide 5 properties { questionId, sectionId, text, weight, … }
      • questionId string required
      • sectionId string required
      • text string required
      • weight integer required
      • scoreable boolean required
    • changes array of object required
      Show 14 propertiesHide 14 properties { kind, questionId, sectionId, optionId, … }
      • kind string required
        weight, riskValue, severity, required, allowNa, questionAdded, questionRemoved, optionAdded, optionRemoved, conditionalRemoved or text.
      • questionId string required
      • sectionId string required
      • optionId string
      • textEn string required
      • before any or null required
        Previous value; its type depends on kind. Null on questionAdded, questionRemoved, optionAdded and optionRemoved rows.
      • after any or null required
        New value; its type depends on kind. Null on questionAdded, questionRemoved, optionAdded and optionRemoved rows.
      • shareBefore number required
      • shareAfter number required
      • shareMode string required
      • allOptionsZeroRisk boolean required
      • reducesRisk boolean required
      • tier string required
        "notice" | "significant" | "severe"
      • actor object
        Show 7 propertiesHide 7 properties { type, userId, name, email, … }
        • type string required
          user, api_token or mcp.
        • userId string
        • name string
        • email string
        • tokenId string
        • tokenName string
        • surface string
          console, api_token or mcp.
    • requiresAcknowledgement boolean required
      True when a person must acknowledge a risk reduction to publish.
    • acknowledgementReasons array of string required
    • acknowledgementRowCount integer required
  • violations array of object required
    • code string required
      V1 to V12.
    • path string required
    • message string required
  • warnings array of object required
    • code string required
      W1_NO_ZERO_RISK_OPTION, W2_MISSING_TRANSLATION, W3_NO_CONTROL_IDS, W4_TOP_OF_SCALE_SKEW, W5_ALL_OPTIONS_ZERO_RISK, or (preview only) W6_WEIGHT_RAISED_3X.
    • path string required
    • parameters object required
  • permissions object required
    What the caller may do with this version right now.
    • canEdit boolean required
    • canSubmit boolean required
    • canWithdraw boolean required
    • canReject boolean required
    • canPublish boolean or null required
    • canSetDefault boolean required
    • canArchive boolean required
    • canDelete boolean required
    • publishBlockedReason string or null required

Errors

Status Code Retry Meaning
401 INVALID_TOKEN no Missing (UNAUTHORIZED) or invalid, expired or revoked (INVALID_TOKEN) token.
402 FEATURE_GATED no The tenant plan does not include supply chain security. code FEATURE_GATED; args.feature, args.minTier, args.minTierName.
403 INSUFFICIENT_SCOPE no The token lacks the required scope (INSUFFICIENT_SCOPE), or the request is refused (FORBIDDEN, INSUFFICIENT_ROLE for a draft the caller may not read).
404 NOT_FOUND no Unknown or foreign-tenant questionnaire, version or clone source. code NOT_FOUND.
429 RATE_LIMITED yes Too many failed authentication attempts from this address. code RATE_LIMITED; wait Retry-After seconds.
500 DB_ERROR no Unexpected server error. code DB_ERROR; quote error.id to support.
503 BILLING_UNAVAILABLE yes Billing is temporarily unavailable, so the plan could not be checked. code BILLING_UNAVAILABLE. Retry later.
Last reviewed: 2026-10-15

Was this page helpful?

Esc