Home › API

PayAppToExcel API

Extract AIA G702/G703 construction pay applications into clean, validated JSON. POST a PDF, get structured line items + schedule-of-values checks.

Available on the Business plan. Your license key is your API key — find it in your email receipt or the Polar customer portal. See plans →

Endpoint

POST https://payapptoexcel.com/v1/extract

Authentication

Send your license key as a Bearer token:

Authorization: Bearer YOUR_LICENSE_KEY

Request

The raw PDF as the request body (Content-Type: application/pdf). Digital and scanned pay-apps are both supported. Max 15 MB.

curl -X POST https://payapptoexcel.com/v1/extract \
  -H "Authorization: Bearer YOUR_LICENSE_KEY" \
  -H "Content-Type: application/pdf" \
  --data-binary @pay-application.pdf

Response 200

Clean JSON: the G702 summary, every G703 line item, and the validation results.

{
  "document_type": "AIA_G702_G703",
  "application_number": "1",
  "period_to": "2024-05-31",
  "project": { "name": "...", "owner": "...", "contractor": "...", "architect": "..." },
  "summary": {
    "original_contract_sum": 85000,
    "contract_sum_to_date": 85000,
    "total_completed_stored_to_date": 9330,
    "total_retainage": 933,
    "current_payment_due": 8397
    /* ...G702 lines 1–9... */
  },
  "line_items": [
    {
      "item_no": "1.0", "description": "Rough Clean",
      "scheduled_value": 1300, "from_previous_application": 0, "this_period": 1300,
      "materials_presently_stored": 0, "total_completed_stored_to_date": 1300,
      "percent": 100, "balance_to_finish": 0, "retainage": 130
    }
    /* ... */
  ],
  "validation": [
    { "check": "line.G=D+E+F", "scope": "line", "line": "1.0", "status": "pass", "detail": "..." }
    /* ... */
  ],
  "tally": { "pass": 213, "warn": 0, "fail": 0, "na": 4 }
}

Errors

StatusMeaning
401Missing license key
402License inactive, or monthly plan limit reached
403API requires a paid plan
413File too large (max 15 MB)
422No pay-application line items found (e.g. a blank form)

Notes