Skip to main content
POST
Restore a past Struct version into the working draft
Copies a published snapshot back into the working draft. Does not publish — call Publish to make it live.

Authorizations

Authorization
string
header
required

Organisation API key from Settings → API / /api/keys/. The secret is shown once. Send Authorization: Bearer sk-abacus-…. One active key per organisation. Ingest (/api/v2/ingest/*) refuses API keys — that surface is Auth0-only with ingest:read / ingest:write scopes.

Path Parameters

slug
string
required
version_number
integer
required

Response

Response for POST /structs/{slug}/restore/{n}/ — returns the updated draft.

id
integer
required
read-only
slug
string
required
Maximum string length: 200
Pattern: ^[-a-zA-Z0-9_]+$
name
string
required
Maximum string length: 200
field_count
integer
required
read-only
has_unpublished_changes
boolean
required
read-only
current_version_number
integer | null
required
read-only
version_count
integer
required
read-only
updated_at
string<date-time>
required
read-only
description
string
required
schema_json
any
required
annotations_json
any
required
sample_attachment
object | null
required
read-only
current_version
object | null
required

List shape for StructVersion rows (no schema body).

parsed_sections
object[]
required
read-only
created_at
string<date-time>
required
read-only
status
enum<string>
  • draft - Draft
  • active - Active
  • archived - Archived
Available options:
draft,
active,
archived
mode
enum<string>

Mirror of schema_json['mode'] for filtering/display; schema_json is authoritative.

  • form - Form
  • document - Document
Available options:
form,
document
black_hole_enabled
boolean

Org-scoped black-hole participation flag (Decision 2). Only the current PUBLISHED, non-deprecated version participates in classification — enforced by documents.services.black_hole.black_hole_participants(), not here. The flag may be set on a draft; it becomes effective on first publish.

latest_proposals_json
unknown