Firma.dev · Schema

AnchorTag

Anchor tag definition for automatic field placement. Anchor tags are text markers embedded in a PDF document (e.g., '{{SIGN_HERE}}') that are automatically located and converted into positioned fields. The anchor text is removed from the PDF after processing by default.

CompanyeSignatureAPIDeveloperToolsLowCostWhiteLabel

Properties

Name Type Description
anchor_string string Text string to search for in the PDF document. Common patterns include '{{SIGN_HERE}}', '{{DATE}}', etc.
type string Type of field to place at the anchor location
recipient_id object ID of the recipient assigned to this field. Use temporary ID (e.g., 'temp_1') for document-based creation or integer order for template-based.
x_offset number Horizontal offset from anchor position. Units determined by offset_units (default: percent of page width).
y_offset number Vertical offset from anchor position. Units determined by offset_units (default: percent of page height).
offset_units string Unit type for x_offset and y_offset. 'percent' = percentage of page dimensions, 'pixels' = PDF points (72 DPI).
width number Field width as percentage of page width. Defaults vary by field type (e.g., signature=25, text=20, checkbox=3).
height number Field height as percentage of page height. Defaults vary by field type (e.g., signature=5, text=3, checkbox=3).
case_sensitive boolean Whether anchor string matching is case-sensitive
match_whole_word boolean Whether to match whole words only (bounded by non-word characters)
ignore_if_not_present boolean If true, skip this anchor without error when not found in the document. If false (default), a missing anchor causes a validation error.
occurrence integer Which occurrence to place a field on. 0 = all occurrences (default), 1 = first only, 2 = second only, etc.
remove_anchor_text boolean Whether to remove the anchor text using corrected glyph geometry and sub-pixel text removal. Defaults to true.
add_white_background boolean Whether to draw a white background across the full resolved field rectangle. This is independent of anchor-text removal.
required boolean Whether the field must be completed by the signer
read_only boolean Whether the field is read-only (pre-filled)
read_only_value stringnull Static value for read-only fields
variable_name stringnull Variable name for the field
variable_defined_name stringnull Human-readable custom field definition name. Can be used as an alternative to variable_name for targeting fields in template-based creation.
background_color stringnull Background color as hex (e.g., '#FFFDE7')
font_size integer Optional starting/maximum font size in pixels for text-bearing field types, stored on the resolved field as format_rules.fontSize (see TextFormatRules). Text still auto-shrinks to fit the field box. O
dropdown_options object Options for dropdown fields
date_default stringnull Default date value
date_signing_default boolean Use signing date as default
multi_group_id stringnull Group ID for linking checkbox/radio fields
View JSON Schema on GitHub

JSON Schema

firma-dev-anchor-tag-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/firma-dev/main/json-schema/firma-dev-anchor-tag-schema.json",
  "title": "AnchorTag",
  "description": "Anchor tag definition for automatic field placement. Anchor tags are text markers embedded in a PDF document (e.g., '{{SIGN_HERE}}') that are automatically located and converted into positioned fields. The anchor text is removed from the PDF after processing by default.",
  "x-generated": "2026-09-25",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/firma-dev-signing-requests-api-openapi.yml#/components/schemas/AnchorTag",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "anchor_string",
    "type",
    "recipient_id"
  ],
  "properties": {
    "anchor_string": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Text string to search for in the PDF document. Common patterns include '{{SIGN_HERE}}', '{{DATE}}', etc."
    },
    "type": {
      "type": "string",
      "enum": [
        "signature",
        "initial",
        "initials",
        "text",
        "date",
        "checkbox",
        "radio_buttons",
        "radio",
        "dropdown",
        "textarea",
        "text_area",
        "url",
        "approval_signature",
        "approval_checkmark",
        "approval_date"
      ],
      "description": "Type of field to place at the anchor location"
    },
    "recipient_id": {
      "oneOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        }
      ],
      "description": "ID of the recipient assigned to this field. Use temporary ID (e.g., 'temp_1') for document-based creation or integer order for template-based."
    },
    "x_offset": {
      "type": "number",
      "description": "Horizontal offset from anchor position. Units determined by offset_units (default: percent of page width).",
      "default": 0
    },
    "y_offset": {
      "type": "number",
      "description": "Vertical offset from anchor position. Units determined by offset_units (default: percent of page height).",
      "default": 0
    },
    "offset_units": {
      "type": "string",
      "enum": [
        "percent",
        "pixels"
      ],
      "default": "percent",
      "description": "Unit type for x_offset and y_offset. 'percent' = percentage of page dimensions, 'pixels' = PDF points (72 DPI)."
    },
    "width": {
      "type": "number",
      "description": "Field width as percentage of page width. Defaults vary by field type (e.g., signature=25, text=20, checkbox=3).",
      "exclusiveMinimum": 0
    },
    "height": {
      "type": "number",
      "description": "Field height as percentage of page height. Defaults vary by field type (e.g., signature=5, text=3, checkbox=3).",
      "exclusiveMinimum": 0
    },
    "case_sensitive": {
      "type": "boolean",
      "default": false,
      "description": "Whether anchor string matching is case-sensitive"
    },
    "match_whole_word": {
      "type": "boolean",
      "default": true,
      "description": "Whether to match whole words only (bounded by non-word characters)"
    },
    "ignore_if_not_present": {
      "type": "boolean",
      "default": false,
      "description": "If true, skip this anchor without error when not found in the document. If false (default), a missing anchor causes a validation error."
    },
    "occurrence": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000,
      "default": 0,
      "description": "Which occurrence to place a field on. 0 = all occurrences (default), 1 = first only, 2 = second only, etc."
    },
    "remove_anchor_text": {
      "type": "boolean",
      "default": true,
      "description": "Whether to remove the anchor text using corrected glyph geometry and sub-pixel text removal. Defaults to true."
    },
    "add_white_background": {
      "type": "boolean",
      "default": false,
      "description": "Whether to draw a white background across the full resolved field rectangle. This is independent of anchor-text removal."
    },
    "required": {
      "type": "boolean",
      "default": true,
      "description": "Whether the field must be completed by the signer"
    },
    "read_only": {
      "type": "boolean",
      "default": false,
      "description": "Whether the field is read-only (pre-filled)"
    },
    "read_only_value": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 10000,
      "description": "Static value for read-only fields"
    },
    "variable_name": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 255,
      "description": "Variable name for the field"
    },
    "variable_defined_name": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100,
      "description": "Human-readable custom field definition name. Can be used as an alternative to variable_name for targeting fields in template-based creation."
    },
    "background_color": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$",
      "description": "Background color as hex (e.g., '#FFFDE7')"
    },
    "font_size": {
      "type": "integer",
      "minimum": 8,
      "maximum": 48,
      "description": "Optional starting/maximum font size in pixels for text-bearing field types, stored on the resolved field as format_rules.fontSize (see TextFormatRules). Text still auto-shrinks to fit the field box. Omit for automatic sizing. Values outside 8-48 are clamped; non-numeric values are ignored."
    },
    "dropdown_options": {
      "description": "Options for dropdown fields",
      "oneOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "object"
        }
      ]
    },
    "date_default": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 50,
      "description": "Default date value"
    },
    "date_signing_default": {
      "type": "boolean",
      "default": false,
      "description": "Use signing date as default"
    },
    "multi_group_id": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 255,
      "description": "Group ID for linking checkbox/radio fields"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/firma-dev-anchor-tag"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.