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

# Field detection

> With no tags in the document, the page is measured instead.

export const createTemplateStatus = "201";

With no tags in the document, the page is measured instead: signature boxes, date fields,
ID-number combs and marital-status questions are found where they already are, each coming back
with its `id` and — where a printed label named it — the `data_key` a prefilled value is addressed
to.

* ⚠️ It is the **same code** the editor’s “Find fields” button runs, not a second implementation. A
  template authored through the API and one authored by a person pressing that button have their
  fields in the same places, with the same masks and the same inferred types — because it is one
  function, not two copies that currently agree.
* It infers position and type. It cannot infer **ownership**: a page cannot say which of three
  signers writes in a box, so every detected field goes to the first role that is not a `cc`.
  Reassign them in the editor afterwards.
* ⚠️ **A document with nothing detectable is not an error.** A flat scan with no text layer yields
  no fields, and the call still answers {createTemplateStatus} with a template holding its roles and its document —
  which is the thing you then place fields on. `fields` being empty is how you tell.
