Run Utility Bill Upload

Uploads a utility bill document for a project and starts an asynchronous OCR parse of its contents. The file upload itself is handled synchronously inside this endpoint, so a user_file_id is returned immediately along with the job_id for the parse step.

The bill bytes are sent as a raw request body (not multipart/JSON), with the original filename carried in the Content-Disposition header. Accepted formats: PDF, JPG, JPEG, PNG, GIF, WEBP.


Last-parse-wins semantics. Each completed parse replaces the consumption data derived from any previously parsed bill on the same project — only the most recently parsed bill feeds the project's load profile. Because parse jobs run asynchronously and are not strictly FIFO, an earlier upload that finishes parsing after a later upload will become the active bill. Older bill files persist in storage but no longer contribute to the project's consumption values. This matches the behavior of the in-app utility bill upload UI.

Note that this is an asynchronous endpoint. See the Asynchronous Endpoints appendix for more info.

Path Params
uuid
required

The ID of the tenant that the project is part of.

uuid
required

The ID of the project to attach the bill to.

Body Params

Raw bytes of the utility bill file.

Headers
string

Carries the bill's original filename. Format: attachment; filename="bill.pdf".

Responses

Language
Credentials
Bearer
header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json