Structured extraction, without a rigid template

Your document. Your schema. Useful JSON.

Routeser accepts supported document images and PDFs, applies the fields you define, and returns structured results through an asynchronous API built for production workflows.

Free plan: 20 page credits each month, no card required.

extract.tsTypeScript client
// Presigned regional upload, job creation, bounded wait.
const { result } = await client.extractFile({
  file,
  idempotencyKey: "invoice-2048",
  input: {
    fileName: "invoice.pdf",
    mediaType: "application/pdf",
    sizeBytes: file.size
  },
  schema: {
    version: "1",
    fields: [
      { name: "invoice_number", type: "string" },
      { name: "vendor_name", type: "string" },
      { name: "total_due", type: "number" }
    ]
  }
});
terminal resultcompleted
{
  "invoice_number": "INV-2048",
  "vendor_name": "Northwind Office Supply",
  "invoice_date": "2026-06-18",
  "total_due": 1248.5
}
InputsJPEG, PNG, WebP, PDF
AccessTenant-authenticated API
ExecutionAsynchronous jobs
DeliverySigned webhooks

A smaller integration surface

Define the result, not a training project.

Describe the fields your system needs, submit a supported image, and poll the job or receive a webhook. Routeser keeps model providers behind an adapter while your application integrates with one stable contract.

Document bytes upload directly to regional object storage after tenant authentication. They do not pass through the Cloudflare Worker.

Schema first

Field names, types, descriptions, and requirements travel with the extraction request.

Async by design

Create a job quickly, then use bounded polling or a signed webhook for the terminal result.

Explicit controls

Idempotency, per-job budgets, regional job state, retention, and deletion are designed into the workflow.

How it works

Four steps from document to validated data.

  1. Describe the fields your system consumes, with types and optional descriptions.
  2. Upload the document straight to regional object storage after tenant authentication.
  3. Create an asynchronous extraction job with an idempotency key.
  4. Take the terminal result from a bounded poll or a signed webhook, then validate it.

Use cases

Start from a workflow, not a blank schema.

Security posture

Controls you can name in a review.

Deployed safeguards, described exactly as they run today. No borrowed badges.

  • Encrypted transportPublic and service connections require encrypted transport, and regional object storage enforces server-side encryption.
  • Regional processingDocument bytes and extraction job state stay in the selected AWS home region.
  • Lifecycle defaultsProduction defaults expire raw documents and extraction results after 90 days.
  • Hashed API keysTenant API keys are compared as SHA-256 digests rather than stored as recoverable plaintext.

Read the trust center

No account needed

Explore a fixed sample safely.

Our public demos reveal stored example results. They never upload a file or call a model.

Questions, answered plainly

Frequently asked questions

What inputs does the public product currently advertise?

Native JPEG, PNG, and WebP images plus PDF documents. Enabled media types can vary by deployment, so integrations should also follow the API's admission response.

Does the free sample upload my document?

No. Each marketing demo uses one synthetic sample and a stored result. Production extraction requires a tenant-authenticated account.

Is extraction synchronous?

No. Routeser creates asynchronous jobs. Clients poll with a bounded waiter or configure a signed webhook.

Next step

Map one real workflow

Open the console to define a schema and evaluate Routeser with an authenticated workspace.

Open console