# OuterProduct - [Introduction to OuterProduct](https://docs.outerproduct.com/introduction.md) - [Quickstart](https://docs.outerproduct.com/quickstart.md): Install the Python package, configure an API key, and run your first remote function. - [OuterProduct CLI](https://docs.outerproduct.com/outerproduct-cli.md): Install, update, and remove the op terminal command. - [Use OuterProduct with coding agents](https://docs.outerproduct.com/coding-agents.md): Install and update the OuterProduct skill for Codex or Claude Code. - [Runs, calls, and attempts](https://docs.outerproduct.com/runs-calls-attempts.md): Understand how OuterProduct organizes and executes remote functions. - [Images](https://docs.outerproduct.com/images.md): Define the container, Python dependencies, and local files used by a Call. - [Hardware](https://docs.outerproduct.com/hardware.md): Request CPUs, memory, and GPUs for each Call. - [Environment variables](https://docs.outerproduct.com/env-vars.md): Pass configuration to remote functions through environment variables. - [Volumes](https://docs.outerproduct.com/volumes.md): Store and mount data using managed or external object storage. - [Nested calls](https://docs.outerproduct.com/nested-calls.md): Build workflows by launching child Calls from remote functions. - [Call fanouts](https://docs.outerproduct.com/call-fanouts.md): Run a function across multiple inputs with client.map(). - [Retries and durability](https://docs.outerproduct.com/retries-and-durability.md): Configure retries and understand how completed work is reused. - [Async usage](https://docs.outerproduct.com/async-usage.md): Submit Calls and await results in asynchronous Python applications. - [Secrets](https://docs.outerproduct.com/secrets.md): Manage API keys and credentials used by remote functions. - [Users and workspaces](https://docs.outerproduct.com/users-and-workspaces.md): Accounts, workspaces, and how people join them. - [Policies](https://docs.outerproduct.com/policies.md): Control access to OuterProduct resources with Cedar policies. - [CreateApiKey](https://docs.outerproduct.com/api-reference/apikey/createapikey.md): Returns the credential exactly once. Only its verifier is persisted. - [DeleteApiKey](https://docs.outerproduct.com/api-reference/apikey/deleteapikey.md) - [ListApiKeys](https://docs.outerproduct.com/api-reference/apikey/listapikeys.md) - [Opens the payment processor's hosted checkout for a one-time payment of `amount`, which the workspace's balance gains once paid, registering the workspace there first if it is not yet. The caller sends the user to the returned URL.](https://docs.outerproduct.com/api-reference/billingaccount/opens-the-payment-processors-hosted-checkout-for-a-one-time-payment-of-`amount`-which-the-workspaces-balance-gains-once-paid-registering-the-workspace-there-first-if-it-is-not-yet-the-caller-sends-the-user-to-the-returned-url.md): cf. AIP-136. - [Opens the payment processor's hosted billing portal: payment methods and receipts.](https://docs.outerproduct.com/api-reference/billingaccount/opens-the-payment-processors-hosted-billing-portal:-payment-methods-and-receipts.md): cf. AIP-136. - [GetBillingAccount](https://docs.outerproduct.com/api-reference/billingaccount/getbillingaccount.md): The billing account of the credential's workspace. - [ListSkus](https://docs.outerproduct.com/api-reference/billingaccount/listskus.md): The list prices usage is charged at, by accelerator. - [What the credential's workspace was charged per SKU for usage that started at or after start_time and before end_time: the sum of the charges to its balance.](https://docs.outerproduct.com/api-reference/billingaccount/what-the-credentials-workspace-was-charged-per-sku-for-usage-that-started-at-or-after-start_time-and-before-end_time:-the-sum-of-the-charges-to-its-balance.md): cf. AIP-136. - [GetManifest](https://docs.outerproduct.com/api-reference/image/getmanifest.md): Pulls a manifest: `GET /v2//manifests/`. A repository of another registry, such as `docker.io/library/python`, pulls through: the OCI registry imports the image first. - [HasBlob](https://docs.outerproduct.com/api-reference/image/hasblob.md): Checks for a blob: `HEAD /v2//blobs/`. - [PushManifest](https://docs.outerproduct.com/api-reference/image/pushmanifest.md): Pushes a manifest after its blobs: `PUT /v2//manifests/`. A file mount's, of artifact type `application/vnd.outerproduct.file-mount.v1`, converts before the push returns. - [SubmitImageBuild](https://docs.outerproduct.com/api-reference/imagebuilder/submitimagebuild.md): Submits the build of `image_spec`'s Image, and returns it at once. Submitting an equal image spec again returns that build. - [WaitImageBuild](https://docs.outerproduct.com/api-reference/imagebuilder/waitimagebuild.md): Returns once the build succeeded or failed, or at the server's deadline. A build the server no longer holds is not found, and is submitted again. - [CreatePolicy](https://docs.outerproduct.com/api-reference/policy/createpolicy.md) - [DeletePolicy](https://docs.outerproduct.com/api-reference/policy/deletepolicy.md) - [GetPolicy](https://docs.outerproduct.com/api-reference/policy/getpolicy.md) - [ListPolicies](https://docs.outerproduct.com/api-reference/policy/listpolicies.md) - [TestPermissions](https://docs.outerproduct.com/api-reference/policy/testpermissions.md): Evaluate existing Cedar actions for the authenticated caller, not another principal. Results are UI hints; operations still enforce authorization. - [UpdatePolicy](https://docs.outerproduct.com/api-reference/policy/updatepolicy.md) - [CancelCall](https://docs.outerproduct.com/api-reference/run/cancelcall.md): Requests cancellation of this Call and its unfinished descendants. The Call is Cancelling until their compute has stopped. - [CancelRun](https://docs.outerproduct.com/api-reference/run/cancelrun.md): Requests cancellation of the root Call. The Run is Cancelling until every Call's compute has stopped. - [CreateAttempt](https://docs.outerproduct.com/api-reference/run/createattempt.md): Dispatches a failed Call again as its next Attempt. - [CreateCall](https://docs.outerproduct.com/api-reference/run/createcall.md): Snapshots one child Call in its Run. Root Calls are created with Runs. - [CreateRun](https://docs.outerproduct.com/api-reference/run/createrun.md) - [DeleteRun](https://docs.outerproduct.com/api-reference/run/deleterun.md): Deletes a terminal Run with all of its Calls and Attempts. Cancel a running Run first. - [GetAttempt](https://docs.outerproduct.com/api-reference/run/getattempt.md): Gets one execution Attempt by resource name. - [GetCall](https://docs.outerproduct.com/api-reference/run/getcall.md): Gets one Call by resource name. - [GetRun](https://docs.outerproduct.com/api-reference/run/getrun.md) - [ListAttempts](https://docs.outerproduct.com/api-reference/run/listattempts.md): Lists the Attempts of one or more Calls in creation order. - [ListCalls](https://docs.outerproduct.com/api-reference/run/listcalls.md): Lists every Call in one or more Runs. Root Calls are included. - [ListRunLogs](https://docs.outerproduct.com/api-reference/run/listrunlogs.md): Lists up to 500 of a Run's log entries before cursor `before`, oldest first. - [ListRuns](https://docs.outerproduct.com/api-reference/run/listruns.md) - [SummarizeRuns](https://docs.outerproduct.com/api-reference/run/summarizeruns.md) - [WaitCall](https://docs.outerproduct.com/api-reference/run/waitcall.md): Waits up to 25 seconds, within clients' default request timeout, for the Call to finish, and answers it then, or as it stands. - [WaitRun](https://docs.outerproduct.com/api-reference/run/waitrun.md): Waits up to 25 seconds, within clients' default request timeout, for the Run to finish, and answers it then, or as it stands. - [AccessSecret](https://docs.outerproduct.com/api-reference/secret/accesssecret.md): Requires permission to read secret material, separate from metadata access. - [CreateSecret](https://docs.outerproduct.com/api-reference/secret/createsecret.md) - [DeleteSecret](https://docs.outerproduct.com/api-reference/secret/deletesecret.md) - [GetSecret](https://docs.outerproduct.com/api-reference/secret/getsecret.md) - [ListSecrets](https://docs.outerproduct.com/api-reference/secret/listsecrets.md) - [UpdateSecret](https://docs.outerproduct.com/api-reference/secret/updatesecret.md) - [GetCurrentUser](https://docs.outerproduct.com/api-reference/user/getcurrentuser.md) - [GetUser](https://docs.outerproduct.com/api-reference/user/getuser.md) - [GetUserPhoto](https://docs.outerproduct.com/api-reference/user/getuserphoto.md) - [ListUserSessions](https://docs.outerproduct.com/api-reference/user/listusersessions.md) - [ListUsers](https://docs.outerproduct.com/api-reference/user/listusers.md) - [UpdateUser](https://docs.outerproduct.com/api-reference/user/updateuser.md) - [UpdateUserPhoto](https://docs.outerproduct.com/api-reference/user/updateuserphoto.md): Stores the full photo and sets the user's image to its thumbnail. Updating the image through UpdateUser removes the stored photo. - [CreateVolume](https://docs.outerproduct.com/api-reference/volume/createvolume.md) - [DeleteVolume](https://docs.outerproduct.com/api-reference/volume/deletevolume.md) - [GenerateTemporaryCredentials](https://docs.outerproduct.com/api-reference/volume/generatetemporarycredentials.md): Fails when scoped vending is unsupported; never returns a base Secret's material. - [GetVolume](https://docs.outerproduct.com/api-reference/volume/getvolume.md) - [ListVolumes](https://docs.outerproduct.com/api-reference/volume/listvolumes.md) - [UpdateVolume](https://docs.outerproduct.com/api-reference/volume/updatevolume.md) - [Joins the workspace of a pending invitation to the caller's verified email, and binds the caller's session to it.](https://docs.outerproduct.com/api-reference/workspace/joins-the-workspace-of-a-pending-invitation-to-the-callers-verified-email-and-binds-the-callers-session-to-it.md): cf. AIP-136. - [Invites an email address to the credential's workspace and mails it the invitation. Inviting an address again renews its pending invitation and mails it again.](https://docs.outerproduct.com/api-reference/workspace/invites-an-email-address-to-the-credentials-workspace-and-mails-it-the-invitation-inviting-an-address-again-renews-its-pending-invitation-and-mails-it-again.md): cf. AIP-133. - [Creates a workspace that the caller owns, with a balance of zero.](https://docs.outerproduct.com/api-reference/workspace/creates-a-workspace-that-the-caller-owns-with-a-balance-of-zero.md): cf. AIP-133. - [Withdraws an invitation.](https://docs.outerproduct.com/api-reference/workspace/withdraws-an-invitation.md): cf. AIP-135. - [Removes a member from the workspace.](https://docs.outerproduct.com/api-reference/workspace/removes-a-member-from-the-workspace.md): cf. AIP-135. - [The workspace the credential is bound to.](https://docs.outerproduct.com/api-reference/workspace/the-workspace-the-credential-is-bound-to.md): cf. UserService.GetCurrentUser. - [A pending invitation to the caller's verified email, in any workspace.](https://docs.outerproduct.com/api-reference/workspace/a-pending-invitation-to-the-callers-verified-email-in-any-workspace.md): cf. AIP-131. - [The credential's workspace's pending invitations.](https://docs.outerproduct.com/api-reference/workspace/the-credentials-workspaces-pending-invitations.md): cf. AIP-132. - [The members of the credential's workspace.](https://docs.outerproduct.com/api-reference/workspace/the-members-of-the-credentials-workspace.md): cf. AIP-132. - [The workspaces the caller belongs to.](https://docs.outerproduct.com/api-reference/workspace/the-workspaces-the-caller-belongs-to.md): cf. AIP-132, Zitadel AuthService.ListMyMemberships. - [Binds the caller's session to another workspace the caller belongs to.](https://docs.outerproduct.com/api-reference/workspace/binds-the-callers-session-to-another-workspace-the-caller-belongs-to.md): cf. AIP-136. - [Changes a member's role to admin or member; role is the only mutable field.](https://docs.outerproduct.com/api-reference/workspace/changes-a-members-role-to-admin-or-member;-role-is-the-only-mutable-field.md): cf. AIP-134. - [Renames the workspace; display_name is the only mutable field.](https://docs.outerproduct.com/api-reference/workspace/renames-the-workspace;-display_name-is-the-only-mutable-field.md): cf. AIP-134. - [AccessSecretResponse](https://docs.outerproduct.com/python-api-reference/AccessSecretResponse.md) - [Attempt](https://docs.outerproduct.com/python-api-reference/Attempt.md): One independently addressable dispatch of a logical Call. - [AttemptStatus](https://docs.outerproduct.com/python-api-reference/AttemptStatus.md): Lifecycle states for one numbered dispatch of a Call. - [AwsCredential](https://docs.outerproduct.com/python-api-reference/AwsCredential.md) - [AwsCredentialAccessKeys](https://docs.outerproduct.com/python-api-reference/AwsCredentialAccessKeys.md) - [AwsCredentialAssumeRole](https://docs.outerproduct.com/python-api-reference/AwsCredentialAssumeRole.md) - [AzureCredential](https://docs.outerproduct.com/python-api-reference/AzureCredential.md) - [AzureCredentialOauthToken](https://docs.outerproduct.com/python-api-reference/AzureCredentialOauthToken.md) - [AzureCredentialSasToken](https://docs.outerproduct.com/python-api-reference/AzureCredentialSasToken.md) - [AzureCredentialServicePrincipal](https://docs.outerproduct.com/python-api-reference/AzureCredentialServicePrincipal.md) - [AzureCredentialStorageKey](https://docs.outerproduct.com/python-api-reference/AzureCredentialStorageKey.md) - [Call](https://docs.outerproduct.com/python-api-reference/Call.md): One independently addressable invocation in a Run's call tree. - [CallStatus](https://docs.outerproduct.com/python-api-reference/CallStatus.md): Public lifecycle states for one Call in a Run's call tree. - [ComputeResources](https://docs.outerproduct.com/python-api-reference/ComputeResources.md) - [GcpCredential](https://docs.outerproduct.com/python-api-reference/GcpCredential.md) - [GcpCredentialOauthToken](https://docs.outerproduct.com/python-api-reference/GcpCredentialOauthToken.md) - [GcpCredentialServiceAccountKey](https://docs.outerproduct.com/python-api-reference/GcpCredentialServiceAccountKey.md) - [Image](https://docs.outerproduct.com/python-api-reference/Image.md): A registry base and ordered layers, prepared on first use. - [init](https://docs.outerproduct.com/python-api-reference/init.md): Initialize an authenticated OuterProduct client. - [Node](https://docs.outerproduct.com/python-api-reference/Node.md) - [NodeStatus](https://docs.outerproduct.com/python-api-reference/NodeStatus.md) - [OuterProductClient](https://docs.outerproduct.com/python-api-reference/OuterProductClient.md): An authenticated client for OuterProduct resources. - [OuterProductProvider](https://docs.outerproduct.com/python-api-reference/OuterProductProvider.md) - [RetryStrategy](https://docs.outerproduct.com/python-api-reference/RetryStrategy.md) - [Run](https://docs.outerproduct.com/python-api-reference/Run.md): A Run accepted by the control plane. - [RunFailed](https://docs.outerproduct.com/python-api-reference/RunFailed.md): A Run, Call, or Attempt ended without a result. - [RunStatus](https://docs.outerproduct.com/python-api-reference/RunStatus.md): Public lifecycle states for a Run. - [Sandbox](https://docs.outerproduct.com/python-api-reference/Sandbox.md): A sandbox: an image with volumes, running its command until deleted. - [SandboxFailed](https://docs.outerproduct.com/python-api-reference/SandboxFailed.md): The sandbox's container failed. - [SandboxProcess](https://docs.outerproduct.com/python-api-reference/SandboxProcess.md): A process running in a sandbox. - [SandboxStatus](https://docs.outerproduct.com/python-api-reference/SandboxStatus.md) - [Secret](https://docs.outerproduct.com/python-api-reference/Secret.md) - [SecretKind](https://docs.outerproduct.com/python-api-reference/SecretKind.md) - [SecretValue](https://docs.outerproduct.com/python-api-reference/SecretValue.md) - [Timestamp](https://docs.outerproduct.com/python-api-reference/Timestamp.md) - [UserInfo](https://docs.outerproduct.com/python-api-reference/UserInfo.md): The authenticated user's profile: `id` is the native ID and `name` is the display name. - [Volume](https://docs.outerproduct.com/python-api-reference/Volume.md): A standalone volume with a mutable name and immutable UID. - [VolumeHandle](https://docs.outerproduct.com/python-api-reference/VolumeHandle.md): A volume resource and its authorized object-store operations. - [VolumeProvider](https://docs.outerproduct.com/python-api-reference/VolumeProvider.md) - [op self-update](https://docs.outerproduct.com/cli-reference/op-self-update.md): Replace this op with the newest release - [op skill](https://docs.outerproduct.com/cli-reference/op-skill.md): Install and manage the OuterProduct skill for coding agents - [op version](https://docs.outerproduct.com/cli-reference/op-version.md): Print the version and build information for this binary ## OpenAPI Specs - [openapi](/http-api-reference/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.