How document upload works
- You submit one or more file URLs to the bulk upload endpoint.
- Nectar queues each file for processing.
- A job ID is returned that you can poll for status.
- 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 adocuments array of publicly accessible HTTPS URLs and an optional siteId to assign the documents to a site.
Request fields
| Field | Type | Required | Description |
|---|---|---|---|
documents | Array of strings | Yes | HTTPS URLs where Nectar can download each file |
siteId | UUID | No | Site to assign the uploaded documents to |
Upload a single file
You can also upload a single file directly as a form submission.Check job status
After uploading, poll the job detail endpoint to check processing status.Job status values
| Status | Description |
|---|---|
PENDING | Job is queued or in progress |
COMPLETED | Processing finished successfully |
FAILED | Processing failed — contact support |
| Field | Type | Description |
|---|---|---|
parsedDocumentIds | Array | IDs of successfully processed documents |
duplicateDocumentIds | Array | IDs of documents identified as duplicates |
duplicates | Integer | Count of duplicate documents |
nonUtilityDocumentIds | Array | IDs of documents that are not utility bills |
terminationReason | String | Reason for termination (if applicable) |
List jobs for a company
Retrieve all upload jobs for a company to monitor bulk processing progress.Supported file formats
| Format | Extension | Notes |
|---|---|---|
.pdf | Most common format; supports multi-page documents | |
| PNG | .png | Image of a utility bill |
| JPG | .jpg, .jpeg | Image of a utility bill |
Tips
- All URLs in the
documentsarray must start withhttps://. If your files are in a private S3 bucket, generate a pre-signed URL. - Include
siteIdto help Nectar assign the extracted data to the correct location. - Processing typically completes within a few minutes per document.
- Once processed, the documents appear in the standard
/document/endpoints and triggerdocument.created.v2webhooks if configured.