# Invoke a version with explicit inputs

Submit a deliberate hosted invocation using the reviewed version and its own input contract. This procedure can start execution; it is not a way to preview a package.

## Before you submit

Use the owning signed-in browser session and check `services["cloud.loops.run"] === true` on the account read. The version must be approved. Read its artifact to determine required inputs; do not copy a request from another loop merely because both use JSON.

## Prepare and invoke

1. Retain the returned loop ID and full immutable version. Compare them with your review record.
2. Build the artifact's `inputs` object. Keep credentials and unrelated personal information out of it.
3. Create and retain one key matching `^[A-Za-z0-9_-]{16,128}$`. Store it alongside the exact serialized inputs, including property order.
4. Follow [POST invocation](/docs/loop-builder/run-reference) on the signed-in origin. Send `Content-Type: application/json` and the retained `Idempotency-Key`.
5. Include only `confirmedVersion` equal to the path version, `allowCloudProcessing:true` and the `inputs` object. Keep the UTF-8 serialized body within 16,384 bytes.
6. Record the run ID from the HTTP 202 response. Read that run; do not send another invocation to check progress.

## Check acceptance and outcome separately

A new accepted run is queued. Replaying the same identity can return the existing run and its current state, still with 202. Neither response proves completion. Follow [one run to its result](/docs/loop-builder/follow-one-run-to-a-terminal-state).

## If submission is refused or uncertain

For explicit-consent errors, compare the path and confirmed version rather than approving another package. For a lost response or service error, look up the original key first. Do not regenerate the key or reorder inputs to bypass a conflict.
