It looks like, for private files, I have to send a signed url, which I need to get via a separate API call (it doesn't come back with the normal file upload API call). If I send a signed url with a form submission, what happens when it expires? Does Hubspot update these, automatically?
We do not currently provide the support of file uploads via our Forms API directly. Currently, if you wish to pass uploads via the Forms API, this must be done by passing a file URL to the form’s file upload field. The value will be stored as a string in a contact property.
However, if you wish to have this file stored in HubSpot' File Manager, you'll have to do this first through this server-side endpoint so that you get a file manager URL.
It's incredibly important here that you make sure to not set the property, hidden to the value of true. Once this step is complete, you will have the URL which you can then pass to the form field allowing you to use the intial method of passing this URL in the form's file upload field.