Properties API
Browse a Pedra account's properties, read their photo URLs to feed into create_video and the editing endpoints, create properties, and add photos to them by URL.
Properties are how photos are organized in a Pedra account. These endpoints let you browse a user's properties, read a property's photo URLs (to feed straight into create_video or the editing endpoints), create properties, and add photos to them by URL — the server fetches each URL and stores it, so any public image works.
Photos already in the account are the easiest source for a video. New photos get in three ways: public URLs through add_images_to_property; local files through the same endpoint, sent as base64 data: URIs; or, when the photos are on someone's phone, an upload link they open and upload to with no login.
List properties
/api/list_propertiesReturns the account's properties (newest first), each with a photo count and an appUrl.
apiKeystringrequiredResponse
List property photos
/api/list_property_imagesReturns a property's photos as public img.pedra.ai URLs — pass them straight to create_video or the image-editing endpoints.
apiKeystringrequiredpropertyIdstringrequiredtypestringphoto 360photoResponse
Create a property
/api/create_propertyCreates an empty property and returns its propertyId and appUrl.
apiKeystringrequirednamestringResponse
Add photos to a property
/api/add_images_to_propertyAdds photos to a property by URL. The server fetches each URL and stores it (so any public https image — or a small data: URI — works), then returns the stored img.pedra.ai URLs. Up to 20 per call.
apiKeystringrequiredpropertyIdstringrequiredimageUrlsarrayrequirednamesarraytypestringphoto 360photoPass type: "360" to add 360° photos for a virtual tour instead: each one is checked to be equirectangular (2:1) and stored like the app stores them, up to 10 per call. data: URIs work here too, so local 360° files can be sent base64-encoded — one or a few per call, under the 50 MB request limit. Photos that aren't 360° come back in failed with the reason.
Every photo stored here counts toward the account's daily upload limit: 30 a day on the free plan, 500 on paid plans. Over it, the call returns 429 with code: "upload_limit" and nothing is stored; photos that fail on their own don't count.
Response
Photos from a phone: upload links
/api/create_upload_linkWhen the photos are on someone's phone — the agent, the photographer, the owner — create_upload_link is the simplest way to get them into a property. It returns a no-login page, valid for 24 hours, that takes up to 100 photos (JPEG, PNG, WebP, and HEIC from an iPhone). With the default type: "any" it takes regular photos and 360° photos, and 2:1 images are stored as 360° automatically; type: "360" takes 360° photos only.
Send the uploadUrl to the person; once they're done, call list_property_images (type "photo" or "360") and use the URLs with the editing endpoints, create_video or create_virtual_tour. Upload links are free; you can make 5 a day on the free plan and 50 on paid plans, and each uploaded file counts toward the daily upload limit. Full reference: create_upload_link.
Next
Feed a property's photo URLs into create_video, or use them with any virtual staging / enhancement endpoint.