Dry-run an archive against every import screen
Runs the SAME screens ingestPageArchive runs — the manifest schema, the archive and path guards, the dependency allowlist, recipe resolution, the conformance gate and every declared ceiling — over the archive you send, and answers the FULL list of refusals at once. It spends no build, mints no revision and writes nothing: no site is created or modified, and sending the same archive to the import afterwards is what actually imports it. Read screensRun before treating an empty refusals as a guarantee: anything we cannot decide without compiling your project stays a build result. Authenticated exactly like the import, and metered as a read.
Request
- Base URL: https://app.goosybear.ai
- URL: https://app.goosybear.ai/api/pages/ingest/validate
- Auth: HTTP bearer
Query parameters
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.
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.
Changes
No recorded changes to this operation across all 4 revisions of this API.