GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • PDF filling API
  • PDF generation API
  • HTML to PDF API
  • Word templates
  • Page Designer
  • Embedded editor
  • Web forms
  • Connect your AI
  • Financial Services
  • Insurance
  • Real Estate
  • Healthcare
  • HR & Onboarding
  • Legal

This view

  • Original page
  • New address

GeezerVison is showing docspring.com — PDF Filling API & Document Generation | DocSpring

New Word templates

Fill any document with one API

Upload a PDF form or a Word document, design a page, or write HTML. Send JSON and get back a finished PDF, ready to sign.

Start free Connect your AI
  • No credit card needed
  • SOC 2 Type II
  • HIPAA compliant
Your JSON data
POST /api/v2/templates/{template_id}/submissions
{
  "data": {
    "applicant": {
      "name": "Maya Chen"
    },
    "date_of_birth": "1991-04-12",
    "employer": "Northwind Health",
    "monthly_income": 6200,
    "credit_check": true
  }
}
POST /api/v2/templates/{template_id}/submissions
{
  "data": {
    "tenant": {
      "name": "Maya Chen"
    },
    "start_date": "2026-11-01",
    "charges": [
      {
        "item": "Rent",
        "amount": 2400
      },
      {
        "item": "Deposit",
        "amount": 4800
      }
    ]
  },
  "output_formats": ["docx", "pdf"]
}
POST /api/v2/templates/{template_id}/submissions
{
  "data": {
    "attendee": {
      "name": "Maya Chen"
    },
    "seat": "B12",
    "ticket_id": "NWS-20931"
  }
}
POST /api/v2/templates/{template_id}/submissions
{
  "data": {
    "invoice_number": "INV-1042",
    "customer": {
      "name": "Brightwater Studio"
    },
    "items": [
      {
        "name": "Onboarding",
        "price": 1200
      },
      {
        "name": "Support plan",
        "price": 450
      }
    ],
    "total": 1650
  }
}
From your app, a script or an AI agent
Your PDF template
Rental Application
Form RA-1
Full name
applicant.name
Date of birth
date_of_birth
Employer
employer
Monthly income ($)
monthly_income
credit_check
signature
Applicant signature
Fields you set up once
Your Word template
Harbor Property Management

Dear {{ tenant.name }},

Your lease starts on {{ start_date | date: "%B %-d, %Y" }}. Here is what's due before you move in:

{% for row in charges %}
{{ row.item }} {{ row.amount | currency }}
{% endfor %}

Kind regards,

Tags you type in Word
Your Page Designer template
Northwind Summit 2026
Pier 27, San Francisco
Attendee
{{ attendee.name }}
Date
Nov 14, 2026
Seat
{{ seat }}
ticket_id
ticket_id
{{ ticket_id }}
A page you build once
Your HTML template
<h1>Fernway</h1>
<p>Invoice {{ invoice_number }}</p>
<p>Billed to {{ customer.name }}</p>
<table>
  {% for item in items %}
  <tr>
    <td>{{ item.name }}</td>
    <td>{{ item.price | currency }}</td>
  </tr>
  {% endfor %}
  <tr>
    <td>Total</td>
    <td>{{ total | currency }}</td>
  </tr>
</table>
HTML and CSS you write once
Your filled-out document
Rental Application
Form RA-1
Full name
Maya Chen
Date of birth
04/12/1991
Employer
Northwind Health
Monthly income ($)
6200.00
I agree to a credit check
Sign here
Applicant signature
rental-application.pdf
Harbor Property Management

Dear Maya Chen,

Your lease starts on November 1, 2026. Here is what's due before you move in:

Rent $2,400.00
Deposit $4,800.00

Kind regards,

lease-letter.docx lease-letter.pdf
Northwind Summit 2026
Pier 27, San Francisco
Attendee
Maya Chen
Date
Nov 14, 2026
Seat
B12
NWS-20931
ticket-NWS-20931.pdf
Fernway
Invoice INV-1042
Billed to Brightwater Studio
Description Amount
Onboarding $1,200.00
Support plan $450.00
Total $1,650.00
Payment is due within 14 days. Thank you for your business.
invoice-1042.pdf

Trusted by teams in lending, insurance, property and healthcare

  • Jones
  • Harvust
  • Northwoods
  • iENROLL by EMREACH
  • BloomerHealth
  • FlowEQ
  • NOCD
  • Leeway

Start from your document, or design one

Bring a PDF form, a Word document or an HTML layout, or build a page in the Page Designer. DocSpring fills it with your data and returns a finished document.

PDF
Rental Application
Applicant applicant.name
Date of birth date_of_birth
Monthly income monthly_income

PDF forms

Upload any PDF, fillable or flat. We import its form fields, or you drag and drop your own onto the page.

PDF filling API
DOCX
Dear {{ tenant.name }},
Your lease starts on {{ start_date | date }}
{% for charge in charges %}
Rent {{ charge.amount | currency }}
{% endfor %}

Word documents

Type tags into a Word document, with conditions and loops for table rows. Get back a Word file or a PDF.

Word templates
DESIGN
Northwind Summit 2026
Pier 27, San Francisco
Attendee
{{ attendee }}
Date
Nov 14
Seat
{{ seat }}

Page Designer

Build certificates, tickets and reports on a blank page, with text, images, tables, charts, QR codes and barcodes.

Page Designer
HTML
<h1>Invoice {{ number }}</h1>
<table>
{% for item in items %}
 <tr>
  <td>{{ item.name }}</td>
  <td>{{ item.price }}</td>
 </tr>
{% endfor %}
</table>

HTML and CSS

Design documents that grow with their data, using HTML, CSS and Liquid. Preview the PDF as you write.

HTML to PDF API
Form W-9 Rev. March 2024
Request for Taxpayer Identification Number and Certification
Give form to the requester. Do not send to the IRS.
1 Name of entity/individual
name
2 Business name/disregarded entity name, if different from above
business_name
3a Check the appropriate box for federal tax classification
tax_classification Individual C corporation S corporation Partnership Trust/estate LLC
5 Address (number, street, and apt. or suite no.)
address
Social security number
ssn
–
–
Fields found
name Text
tax_classification Radio
llc_tax_class Shown for LLC
ssn SSN, 9 digits
signature Signature

AI sets up your fields

Upload a PDF form and DocSpring sets up the template for you. You review every field in the editor before you publish.

  • Finds the fields on flat PDFs, not just fillable forms
  • Gives each field a clear name and data type
  • Adds conditional logic, required fields and totals
How automatic field detection works

Collect data and signatures

Send a signature request and DocSpring emails each signer a link, or share a web form with a link. Every signed PDF includes an audit trail.

  • One signer or several, each with their own fields
  • Signing links, reminders and the signed PDF by email
  • Embed the signing page or the form in your own app
  • Webhooks tell your app the moment a document is signed
How signature requests work
Residential Lease Agreement
Tenant Signed
Landlord signs here
Audit trail
Sent to 2 signers 09:14
Maya Chen opened the document 09:31
Maya Chen signed 09:33
Waiting for the landlord

Built for developers and their AI agents

Connect Claude, ChatGPT, Cursor or VS Code to our MCP server and sign in. Your agent can set up templates, fill them in and send them for signature, with the access you choose.

https://mcp.docspring.com/mcp

Coding agents can also install our agent skills:

$ npx skills add https://docspring.com
Set up your agent

SDKs in ten languages

import { Client } from 'docspring-ts'

const client = new Client()
const templateId = 'tpl_1234567890abcdef01'
const submission = await client.createSubmission(templateId, {
  data: { full_name: 'Maya Chen', monthly_income: 6200 },
})
console.log(submission.files.pdf?.download_url)
import { Client } from 'docspring'

const client = new Client()
const templateId = 'tpl_1234567890abcdef01'
const submission = await client.createSubmission(templateId, {
  data: { full_name: 'Maya Chen', monthly_income: 6200 },
})
console.log(submission.files.pdf.download_url)
from docspring import Client

client = Client()
data = {"full_name": "Maya Chen", "monthly_income": 6200}
submission = client.create_submission(
    "tpl_1234567890abcdef01",
    {"data": data},
)
print(submission.files.pdf.download_url)
require 'docspring'

client = DocSpring::Client.new
submission = client.create_submission(
  'tpl_1234567890abcdef01',
  { data: { full_name: 'Maya Chen', monthly_income: 6200 } }
)
puts submission.files.pdf.download_url
<?php
require 'vendor/autoload.php';

$client = new DocSpring\Api\Client();
$data = ['full_name' => 'Maya Chen', 'monthly_income' => 6200];
$submission = $client->createSubmission(
    'tpl_1234567890abcdef01',
    ['data' => $data]
);
echo $submission->getFiles()->getPdf()->getDownloadUrl() . "\n";
import com.docspring.*;
public class Example {
  public static void main(String[] args) throws Exception {
    CreateSubmissionRequest body = new CreateSubmissionRequest()
        .putDataItem("full_name", "Maya Chen")
        .putDataItem("monthly_income", 6200);
    Submission submission = new Client().createSubmission(
        "tpl_1234567890abcdef01", body, null, null);
    GeneratedFile pdf = submission.getFiles().getPdf();
    System.out.println(pdf.getDownloadUrl());
  }
}
using DocSpring.Client.Model;

var client = DocSpring.Sdk.NewClientFromEnv();
var data = new Dictionary<string, object> {
    ["full_name"] = "Maya Chen",
    ["monthly_income"] = 6200,
};
var response = await client.CreateSubmissionAsync(
    "tpl_1234567890abcdef01",
    new CreateSubmissionRequest { Data = data });
var submission = response.Created();
Console.WriteLine(submission.Files.Pdf.DownloadUrl);
import "github.com/docspring/docspring-go/v4"

client := docspring.NewClient("", "")
submission, _, err := client.CreateSubmission(
	context.Background(), "tpl_1234567890abcdef01",
).Body(docspring.CreateSubmissionRequest{Data: map[string]any{
	"full_name": "Maya Chen", "monthly_income": 6200,
}}).Execute()
if err != nil {
	log.Fatal(err)
}
fmt.Println(submission.Files.Pdf.GetDownloadUrl())
conn = Docspring.Connection.new()

{:ok, %Docspring.Model.Submission{} = submission} =
  Docspring.Api.Client.create_submission(
    conn,
    "tpl_1234567890abcdef01",
    %{data: %{full_name: "Maya Chen", monthly_income: 6200}}
  )

IO.puts(submission.files.pdf.download_url)
use docspring::models::CreateSubmissionRequest as Request;
use docspring::{Api, CreateSubmissionParams as Params};
use serde_json::{from_value, json};

let client = docspring::Client::from_env()?;
let data = json!({"full_name": "Maya Chen", "monthly_income": 6200});
let body = Request { data: from_value(data)?, ..Default::default() };
let params = Params::builder()
    .template_id("tpl_1234567890abcdef01").body(body).build();
let submission = client.create_submission(params).await?;
let pdf = submission.files.pdf.and_then(|f| f.download_url);
println!("{}", pdf.unwrap_or_default());
API=https://sync.api.docspring.com/api/v2
curl -s "$API/templates/tpl_1234567890abcdef01/submissions" \
  -u "$DOCSPRING_TOKEN_ID:$DOCSPRING_TOKEN_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "data": { "full_name": "Maya Chen", "monthly_income": 6200 }
  }' \
  | jq -r '.files.pdf.download_url'

Test PDFs are free and unlimited. Every template has a schema, so a request with missing or wrong data gets a clear error before a document is made.

The DocSpring CLI runs every API call from your terminal, your scripts and GitHub Actions.

API reference

Works with the tools you already use. See all integrations

  • Zapier
  • Make
  • n8n
  • Google Drive
  • Dropbox
  • Slack

Features

Template editors

Drag fields onto a PDF, edit Word documents in the browser, design pages with drag and drop, or write HTML with a live preview.

Embedded editor

Put the template editor inside your own app, so your customers can manage their own templates.

Fields and logic

Barcodes, QR codes, images and signatures. Show, hide or require fields based on other answers.

Validation and versions

Every request is checked against the template's schema. Publish versions without breaking your integration.

Batches and combined PDFs

Generate up to 50 documents in one request, and merge PDFs into one file for a complete packet.

Webhooks and integrations

Get notified when a document is ready. Connect Zapier, Make, Bubble, n8n, Node-RED and Parabola.

Your own storage

Save every finished document to your own S3 bucket, or to Google Drive, Dropbox or Box.

Online web forms

Every template gets a web form. Share it with a link, embed it on your site, or use it to test.

What our customers say

DocSpring has been the PDF engine at the core of iENROLL for more than five years, and we couldn’t be happier. Of all the solutions we evaluated, it was the most capable and had the richest API, and it has only gotten better with each release. But what has made the biggest difference is the team. They go well beyond support. They’ve built a real relationship with us and are invested in our product’s continued success.
Mike Gillan VP of Technology, EMREACH Inc. iENROLL by EMREACH
DocSpring's simple API and client library was fast to integrate, flexible to our needs, and well documented. Using your service has allowed Harvust to iterate faster and deliver the best product to our growers.
James Christopher Hall Founder & CEO, Harvust
DocSpring has been great! We had to do a lot more PDF template iterations than we originally planned, and being able to do those from your interface was a lifesaver. When a PDF fails because we didn’t send the right payload, the detailed error messages you provide have been very helpful.
Mike Moone Co-Founder & CEO, BrightReps
I spent a good two days trying to integrate with one of your competitors, and came away frustrated because it still wasn’t working. I was up and running with DocSpring in thirty minutes.
Scottie Schneider Founder & CEO, Followup Edge

Start from a form in our library

Ready-made templates for common forms, set up and ready to fill.

IRS Form W-9

Use Form W-9 to provide your correct Taxpayer Identification Number (TIN) to the person who is required to file an information ...

IRS Form W-4: Employee's Withholding Certificate

Employees fill in Form W-4 so their employer withholds the right amount of federal income tax from their pay. This template cov...

Form I-9: Employment Eligibility Verification (Section 1)

New employees complete Section 1 of Form I-9 by their first day of work to confirm their identity and that they're authorized t...

Browse all forms

Security and compliance

SOC 2 Type II

Independently audited controls for security and availability.

HIPAA

HIPAA compliant, and we sign a BAA on every paid plan.

GDPR

A data processing agreement, and a full list of our subprocessors.

US or EU hosting

Choose the region your account and its documents are stored in.

Security at DocSpring

Fill your first document today

Test PDFs are free and unlimited. No credit card needed.

Start free See pricing
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.