Execute an attached action with session-bound parties and required metadata
product.objects.execute
Validates revision and subject requirements, updates object metadata, and executes the attached instrument action. Kind, object id and action are enough: the platform reads the revision, target, Build and digest the caller leaves out from the record as it stands, and checks any it sends.
POST /v1/products/{productId}/objects/{kind}/{objectId}/actions/{action}
Scopes: product:write
Input
| Field | Type | Description |
|---|---|---|
productId required | string | Hyperscale product ID |
kind required | string | |
objectId required | string | |
action required | string | |
expectedRevision | integer | The revision you read. Omit it to act on the record as it stands; send it to refuse if the record changed since. |
productBuildId | string | Omit it to use the Build the target runs on: the agreement's own Build, or the current one for a new agreement. |
digest | string | Omit it with productBuildId; send both to pin what you read. |
target | object | Omit it to act on the attachment's one open agreement, or to open one when there is none. With several open, the action refuses with target_needs_instance and lists them. A non-create action sent to an attachment that has an open agreement refuses the same way. |
fields | object | |
input | object | |
onBehalfOf | string | Customer the Product key or a member session acts for. The call runs with that customer's accounts and keeps the operator's view of records. |
idempotencyKey required | string | New per change; reuse only to retry it. |
confirmation required | product_objects_execute | product.objects.execute | This tool's name, once the founder agrees. |
Request sample
curl --request POST 'https://console.hyperscale0.ai/v1/products/{productId}/objects/{kind}/{objectId}/actions/{action}' \
--header "Authorization: Bearer $HYPERSCALE_API_KEY" \
--header 'X-Hyperscale-Environment: sandbox' \
--header 'Content-Type: application/json' \
--data-raw '{
"idempotencyKey": "<string>",
"confirmation": "<product_objects_execute | product.objects.execute>"
}'