Update Proposal Item Image
POST /public/proposals//items//image — Sets the image of a proposal item from a hosted URL or inline file data.
ImageUrl or FileData: both, or neither, returns 400.
ImageUrlmust be an absolutehttporhttpsURL and must be reachable from Portal.io, which downloads and stores a copy. A failed download leaves the item with no image. A relative URL or any other scheme returns400.FileDatacarries the raw bytes, base64-encoded. Animated GIFs are not stored and leave the item without an image.
imageUrl pointing at the stored copy, not at the source you supplied.
Part items using the same catalog item across the company’s other draft proposals — only to items that have no image of their own, and never to submitted or accepted proposals. Because it runs asynchronously, those items may take a moment to catch up and never appear in this response.SetDefault also makes the image the company’s default for the catalog item. Depending on the account’s trust level and how many companies already use the same image, it can become the shared catalog primary image as well.
UpdateAllInstances decides what happens to the other instances of this item in the proposal that already have an image — they are overwritten only when it is true. Instances with no image are updated either way.
Authorizations
Portal application identifier used as part of HMAC-authenticated API requests.
Portal user API key used together with the HMAC signature headers.
Timestamp header included in the signed request to prevent replay attacks.
HMAC-SHA256 signature for the request, calculated over the canonical string defined in the authentication docs.
Headers
Accept Header
application/json Path Parameters
Unique ID of the proposal (not the proposal number).
Id of the proposal item to update.
Body
Proposals Service
Absolute http(s) URL of the image; any other scheme or a relative URL returns 400. Must be reachable from Portal - a failed download leaves the item without an image. Exactly one of imageUrl and fileData is required.
Raw image bytes, sent base64-encoded. Animated GIFs are not stored and leave the item without an image. Exactly one of imageUrl and fileData is required.
When true, also sets this image as the company's default for the underlying catalog item, so later proposals inherit it. Depending on the account's trust level and how many companies already use the same image, it may also become the shared catalog primary image. Defaults to false.
When true, also overwrites the image of every other instance of the same catalog item in this proposal that already has one. Instances with no image are updated either way. Defaults to false.
Response
Success
Unique numeric identifier of the proposal item
Identifier of the catalog, labor, custom, or fee item this proposal item was created from
UTC timestamp when the proposal item was created
Quantity of the proposal item
Identifier of the parent item when this item is nested under another item
Part, Labor, CustomItem, Fee UTC timestamp when the proposal item was last modified
Brand name of the item
Model value of the item
Name of a Labor item
Short description shown for the proposal item
Client-facing note for the proposal item
Image URL of the item
MSRP amount of the item
Sell price for the proposal item
Supplier cost for the proposal item
UTC timestamp when the supplier cost was last updated
Display name of the supplier assigned to the item.
Total amount for a proposal item
Whether the proposal item is tax exempt
Whether the proposal item is a recurring service
Linked orders created from this proposal item