Documentation menu

Presign service object upload

POSThttps://api.instacloud.com/projects/{projectId}/services/{serviceId}/objects/upload

Token scope: account · org · project — read-only tokens refused (not a GET).

Presign a short-lived upload straight to a storage service's bucket. Gated — storage.write.

Parameters

NameInTypeRequiredDescription
branchquerystringnoBranch name (defaults to the project's default branch)
projectIdpathstringyes
serviceIdpathstringyes

Request body

application/json

FieldTypeRequiredDescription
keystringyesfull object key to write, overwriting any object already there
contentTypestringyesMIME type of the file; the policy pins it, so the upload must send the same one
sizeintegeryesfile size in bytes; over the cap is refused before anything is signed

Responses

200

Default Response

FieldTypeRequiredDescription
urlstringyesPOST the multipart form here — straight to the provider, not through this API
fieldsobjectyespolicy form fields; send them verbatim BEFORE the file part
expiresAtstringyes5 minutes out — an upload takes longer than a download click

202

Default Response

FieldTypeRequiredDescription
status"approval_required"no
approvalIdstringno
actionstringnothe gated action, or a comma-joined compound set — prefer `actions`
actionsstring[]noevery capability this approval covers
messagestringno
urlstringnothe console page where a project admin reviews this request
nextActionsobject[]no
nextActions.opstringyesNeutral logical action id, e.g. "service.add" — NOT an operationId or a CLI/MCP tool name; each client maps it to its own surface.
nextActions.reasonstringyesNatural-language, human/LLM-facing "why do this now".
nextActions.argsobjectnoSuggested, flat named arguments; "<placeholder>"s where a value is unknown.
nextActions.gatedbooleannoTrue if the action passes a governance gate.

400

Default Response

FieldTypeRequiredDescription
errorstringyes

403

Default Response

FieldTypeRequiredDescription
errorstringyes

404

Default Response

FieldTypeRequiredDescription
errorstringyes

View as Markdown