Request e-signatures from your Python app. Send documents to Anvil, collect legally binding signatures from any device.
packet = CreateEtchPacket(
name=f"Test Docs - {signer_name}",
signature_email_subject="Custom email subject",
signature_email_body="Custom please sign these documents....",
)
sample_template = EtchCastRef(
# Our ID we will use to reference and fill it with data.
id="sampleTemplate",
cast_eid=PDF_TEMPLATE_ID,
)
packet.add_file_payloads("sampleTemplate", dict(
data=dict(
name=signer_name,
email=signer_email,
)
))
packet.add_signer(EtchSigner(
id="signer1",
name="Testy Signer",
email="testy@signer.com",
fields=[
SignerField(
file_id="sampleTemplate",
field_id="signature"
)
]
))
packet.add_file(sample_template)
anvil = Anvil(api_key=API_KEY)
res = anvil.create_etch_packet(payload=packet)
packet_details = res["data"]["createEtchPacket"]
print("Visit the new packet on your dashboard:", packet_details.get("detailsURL"))
The python-anvil package is MIT-licensed and maintained in the open on GitHub.
$ pip install python-anvilInstall the Anvil Document SDK plugin in Claude Code and Claude will scaffold the SDK into your codebase — discovery, planning, and production-ready code.
/plugin marketplace add anvilco/anvil-plugins
/plugin install anvil-document-sdk@anvil-pluginsNo API key setup needed. The plugin connects to your Anvil account with OAuth and logs you in automatically.
Upload any PDF and watch Anvil Document AI identify input and signature fields, identify signers and connects them to fields. It's free - no signup required. Try an example below and see documentation when ready to send your own.