> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# Upload file

> Upload a CSV or text file for bulk email verification.

`millionVerifier.uploadFile` starts bulk verification for a CSV or text file.

```ts automations/millionverifier-upload-file.automation.ts theme={null}
import { automation, defineAction, onDashboardRun } from "automate.ax"
import { millionVerifier } from "automate.ax/millionverifier"
import { z } from "zod"

const createEmailFile = defineAction("Create email file")
  .input(z.object({ email: z.email() }))
  .output(z.instanceof(File))
  .retry({ replaySafety: "safe" })
  .handler(
    ({ input }) => new File([input.email], "emails.csv", { type: "text/csv" }),
  )

export default automation("Upload email file", () => {
  onDashboardRun({ title: "Upload email file" })
  const file = createEmailFile({ email: "ada@example.com" })
  millionVerifier.uploadFile({ file })
})
```

Provide a `File` containing the addresses to verify. Create the file at runtime in an action handler, as shown; a `File` created directly in the automation body is not deployment-compatible. An optional second argument `{ account }` selects a named MillionVerifier binding.

Returns the normalized bulk file, including `fileId`, status, progress, row and result counts, required credits, estimated seconds, provider error text, and provider timestamps. An accepted upload can initially return `unknown`; this output-only status is not accepted by `listFiles.statuses`. Save `fileId` for later status and report actions.

An accepted upload can consume credits, so the action does not retry automatically after an indeterminate failure.
