Skip to main content
In addition to automatic bill collection via connections, you can upload documents directly through the API. This is useful for historical bills, one-off documents, or bills from utilities that don’t have online portals.

How document upload works

  1. You submit one or more file URLs to the bulk upload endpoint.
  2. Nectar queues each file for processing.
  3. A job ID is returned that you can poll for status.
  4. When processing completes, documents and usage data appear in the API like any other bill.

Upload documents

Use the bulk upload endpoint to submit files for a company. Provide a documents array of publicly accessible HTTPS URLs. Optionally pin every document in the batch to a site and/or utility account, and pass free-text notes as background context for processing. Limits: each document is at most 25MB; PDF page limit is 800. Use v2.2 for new integrations (v2.1 remains available).

Request fields

Upload a single file

You can also upload a single file directly as a form submission. The same 25MB / 800-page limits apply. Optional siteId, accountId, and notes work the same as bulk upload.

Check job status

After uploading, poll the job detail endpoint to check processing status.

Job status values

When a job completes, the response includes additional fields:

List jobs for a company

Retrieve all upload jobs for a company to monitor bulk processing progress.

Supported file formats

Tips

  • All URLs in the documents array must start with https://. If your files are in a private S3 bucket, generate a pre-signed URL.
  • Include siteId and/or accountId when you need bills allocated to a known site or account — recommended for compliance-sensitive uploads.
  • Use notes for background context (billing period, source, special instructions).
  • Processing typically completes within a few minutes per document.
  • Once processed, the documents appear in the standard /document/ endpoints and trigger document.created.v2 webhooks if configured.

Next steps

Webhooks

Get notified when documents finish processing

Pagination

Iterate through document lists

Data model

Understand how documents relate to usage data