Create a quote
Price a spending request without running it. Pass the returned id as quote_id to the operation within 10 minutes.
Requires a connection with edit access.
AuthorizationBearer <token>An API key from Settings → Developers (pp_live_…), or an OAuth access token.
Idempotency-Key?stringA unique key (for example a UUID) that makes retries safe. A retry with the same key and body returns the stored response; the same key with a different body returns 422. Keys last 24 hours.
length <= 255application/json- body
operation*stringThe spending operation to price.
"enhance_photos""stage_photos""apply_recommendations""create_video"input*The exact body you will send to that operation.
Create a quote
application/json- response
object*stringid*string^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidoperation*stringThe operation this quote prices, e.g. enhance_photos.
credits*integerTotal credits the request will spend.
balance*sufficient*booleanFalse when the balance can't cover the request.
description*stringlines*array<>watermarked*booleanTrue for trial accounts: results carry a watermark.
expires_at*string^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$date-timemanage_credits_url*|Where to add credits. Null inside ChatGPT.
confirm_instructions*stringcurl -X POST "https://example.com/quotes" \ -H "Content-Type: application/json" \ -d '{ "operation": "enhance_photos", "input": { "property1": null, "property2": null } }'{ "object": "quote", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "operation": "string", "credits": 0, "balance": { "available": 0, "after": 0 }, "sufficient": true, "description": "string", "lines": [ { "label": "string", "quantity": 0, "unit_credits": 0 } ], "watermarked": true, "expires_at": "2019-08-24T14:15:22Z", "manage_credits_url": "string", "confirm_instructions": "string"}Check a zip download GET
Check a zip started by get_download_link. While status is processing, wait poll_after_ms and call again; when ready, url is the zip (valid for 1 hour). If it failed, call get_download_link again. Works with view-only access.
Changelog
Changes to the PropertyPixel API and MCP server.