Skip to main content
POST
Dry-run an archive against every import screen

Authorizations

Authorization
string
header
required

An API key minted at Settings › API & MCP. Send it as Authorization: Bearer <key>. A key carries its holder's own permissions, resolved on every call — revoking a membership closes the key's reach immediately. Keep it in an environment variable (GOOSY_API_KEY), never in a committed file.

Query Parameters

workspace
string

Which workspace to act in — its slug or id. The SAME argument every workspace-scoped tool takes, resolved the same way: an account-wide key may select any workspace its holder currently reaches, a workspace-pinned key may only name its own, and a call that names nothing falls through to your default. It is a QUERY parameter rather than a body field on purpose: this endpoint's body is a multipart upload, and reading a field out of it would decode that body before the bearer and the rate limiter had run. Ignored for a signed-in session, whose workspace comes from its own claims.

Minimum string length: 1

Body

multipart/form-data
file
file
required

The single ZIP archive to screen.

siteId
string<uuid>

The site you intend to import onto. OPTIONAL, and it is NOT looked up — only its shape is checked. It decides one thing: whether the managed-adoption screen applies, which it does only when you are replacing the source of an existing site.

Response

The archive was screened. data.ok is the verdict; a 200 with data.ok: false is the ordinary answer for an archive that would be refused.

ok
boolean
required
data
object
required