Save a product
save_product, in Changes: A connection or key that may make changes. None spends credits; prepare_* and stage tools (research, brainstorm, write_script, review, generate_clip, voice, storyboard) prepare paid work for confirm_spend.
POST
Create a product in a Space, or revise one by productId and the expectedVersion you read: the facts videos may state (only ones the person gave, each with its source when it has one: pass back the sources you read), claims to avoid, and photos (ready images from the library), which replace its old ones. Pass a new requestKey for each save.
apiKeyheader
AuthorizationBearer <token>An API key (prb_…) from Settings → Connections.
application/json- body
spaceId*stringMatch
^([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)$Format
uuidproductId?stringMatch
^([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)$Format
uuidexpectedVersion?integerRange
1 <= value <= 9007199254740991name*stringLength
1 <= length <= 120summary?stringLength
1 <= length <= 2000facts*array<>Items
items <= 100avoidClaims?array<>Items
items <= 50Default
[]photos?array<>Items
items <= 10Default
[]requestKey*stringMatch
^[\w.:-]+$Length
8 <= length <= 64The tool's answer.
application/json- response
id*stringMatch
^([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)$Format
uuidversion*numbercurl -X POST 'https://studio.probably.co/api/v1/tools/save_product' \ -H "Authorization: Bearer $PROBABLY_API_KEY" \ -H 'Content-Type: application/json' \ -d '{ "spaceId": "a330a273-e64a-4183-aedb-f3152797a9a5", "name": "string", "facts": [ { "statement": "string" } ], "requestKey": "stringst"}'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "version": 0}