Skip to main content
POST
Clear filled data from a form

Overview

Remove user-filled values from a PDF form while preserving the original printed template (labels, headers, instructions, structural text). Returns a FormResult synchronously by default. Set async: true to run in the background and poll GET /job/jobId for the result.
/form/clear strips handwritten entries, typed responses, and selected checkbox marks from a PDF without altering the blank template underneath. instructions is optional:
  • Omit to clear every user-filled value on the form.
  • Provide a natural-language prompt (for example "clear only the address fields") to scope the clear to specific fields.

Providing the PDF

Provide the PDF in exactly one of the following ways:
  • form_id: chain off a prior /form/detect, /form/fill, or /form/clear call. The cached PDF and form_fields are reused, so there is no need to re-upload.
  • file_url: public or presigned URL to a PDF.
  • file: PDF uploaded inline with the request.
Sending more than one (or none) returns 400.
All three input modes ride on the same multipart/form-data request body — that’s how the SDKs send every call. JSON bodies (Content-Type: application/json) with form_id or file_url are still accepted server-side for backward compatibility, but the SDKs only model the multipart form.

Pricing

Billed at 3 credits per page of the PDF being cleared. Every response also returns a top-level credits_used for this request and a cumulative plan_info.total_credits_used snapshot for your organization.

Request

Request Body


Response

Sync (200): FormResult

Mirrors the /form/fill response, with fields_cleared substituted for fields_filled.

Async (202): FormJobAccepted

When async is true:
Poll GET /job/jobId. The job’s result carries the same FormResult shape that the sync flow would have returned inline.

Status Codes


Example Usage

Clear All User Input

Scoped Clear

Pass instructions to clear only specific fields.

Chain Fill, Clear, Fill

Clear an existing filled form and immediately re-fill it with new values without re-uploading the PDF. The form_id returned by each step is the hand-off.

Async Clear With Polling

Authorizations

x-api-key
string
header
required

Body

multipart/form-data

/form/clear request body. All three input modes (file, file_url, form_id) ride on this single multipart/form-data schema; the server validates that exactly one is provided.

file
file

Direct binary upload of the PDF. Mutually exclusive with file_url and form_id.

file_url
string<uri>

Public or pre-signed URL of a PDF Pulse will download. Mutually exclusive with file and form_id.

form_id
string<uuid>

Reference to a previously processed form. Mutually exclusive with file / file_url.

instructions
string

Optional natural language description of what to clear. When omitted, Pulse clears everything user-filled deterministically.

form_fields
string

Optional JSON-encoded array of FormCell objects to override detected cells. Multipart bodies must serialise this field as a string.

page_range
string

Restrict the operation to a subset of pages, e.g. "1-3,5".

async
string

Set to "true" to run asynchronously and receive {job_id, status} immediately.

Response

Cleared FormResult returned synchronously.

Result body returned by /form/detect, /form/fill, and /form/clear. For async jobs (async: true) the same shape is served back under result on GET /job/{jobId} [blocked].

form_id
string<uuid>

ID of the form record produced by this run. Pass to a subsequent /form/detect, /form/fill, or /form/clear call as the single input source to iterate without re-uploading the PDF.

page_count
integer

Number of pages in the output PDF.

Required range: x >= 1
pdf_url
string

URL to download the resulting PDF binary. Always points at GET /results/{jobId}/pdf [blocked] for the originating job. Authenticated callers can replay this URL until the underlying artifact is garbage-collected.

form_fields
object[]

Detected cells of the resulting PDF (refreshed from the filled/cleared output for fill/clear, or freshly detected for /form/detect). Use these as a starting point for further edits.

fields_filled
integer

Number of cells that were filled by this run. Present on /form/fill responses only.

Required range: x >= 0
fields_cleared
integer

Number of cells that were cleared by this run. Present on /form/clear responses only.

Required range: x >= 0
credits_used
number<float>

Number of credits consumed by this request. Detect charges 1 credit per page; fill and clear charge 3 credits per page.

plan_info
object

Billing tier and cumulative usage information for the calling org, including this form run.