# Agent-Exec Distributed Lock Claim (Paid)

> Agent-Exec Distributed Lock Claim (Paid) is a paid API for AI agents from agent-exec.448c.org, paid per call via x402, $0.0052/call, status unknown (last checked 2026-10-10).

Acquires a named distributed lock (key hold) for a specified duration using pay-per-use crypto payment, returning acquisition outcome and hold metadata.

## Facts

- Endpoint: POST https://agent-exec.448c.org/claim?utm_source=zero.xyz
- Price: $0.0052/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agent-exec-distributed-lock-claim-paid-12326854
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_0ROH-fuOLXNXLN16LqTpe

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agent-exec-distributed-lock-claim-paid-12326854 -d '<json body>'
```

Example prompt: Claim a distributed lock on key 'invoice-processor-run-42' for my holder 'worker-node-7' using the hour plan, so I can ensure only one agent processes this job at a time.

## When to prefer this

Choose this endpoint when you need accountless, serverless distributed locking with no prior registration — ideal for ephemeral AI agents, multi-instance pipelines, or crash-resume workflows where you want to pay only per acquisition attempt using USDC on-chain. Prefer it over traditional lock services when you cannot manage API keys or accounts, need crypto-native payment receipts for auditability, or require the 'mine' crash-resume signal to safely retry jobs.

## Known failure modes

- Key already held by another holder — returns 200 with outcome='held' and the competing holder's claim; payment is still charged
- Invalid plan enum value — request rejected with 4xx error
- Key or holder string exceeds 256 bytes or contains '/' — rejected with validation error
- Payment failure or insufficient funds — 402 returned without lock acquisition
- Network or server error — no lock acquired, payment state may be ambiguous

## How this service works

Accountless, pay-per-use code execution for software agents: submit source code, get stdout, stderr and exit code back from an isolated, network-less sandbox. No account, no API key -- possession of valid payment is sufficient.

## Output

Returns an outcome field ('acquired' = lock granted to you, 'held' = already taken), the current claim object with key, holder, acquiredAt, and expiresAt timestamps, a payment receipt with payer address, transaction hash, asset, network, and amount, and optionally a 'mine' boolean indicating the existing holder is yourself (useful for crash-resume scenarios).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "key",
  "plan",
  "holder"
 ],
 "properties": {
  "key": {
   "type": "string",
   "description": "1..256 UTF-8 bytes, no '/' character -- the name you want to hold, scoped to your own paying wallet."
  },
  "plan": {
   "enum": [
    "hour",
    "day",
    "week"
   ],
   "type": "string",
   "description": "Which plan to buy -- see x-payment-info.pricing for each plan's hold duration and price."
  },
  "holder": {
   "type": "string",
   "description": "1..256 UTF-8 bytes -- an id identifying which of your own processes is claiming it."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "outcome",
  "plan",
  "claim"
 ],
 "properties": {
  "mine": {
   "type": "boolean",
   "description": "Only present when `outcome` is \"held\": true when the existing holder is YOU -- a crash-resume or duplicated retry, the exact signal this product is sold to give."
  },
  "plan": {
   "enum": [
    "hour",
    "day",
    "week",
    "free"
   ],
   "type": "string",
   "description": "One of the paid plans (hour/day/week) from POST /claim, or \"free\" from POST /claim/free."
  },
  "claim": {
   "type": "object",
   "required": [
    "key",
    "holder",
    "acquiredAt",
    "expiresAt"
   ],
   "properties": {
    "key": {
     "type": "string"
    },
    "holder": {
     "type": "string"
    },
    "expiresAt": {
     "type": "integer",
     "description": "Unix ms the hold is free again."
    },
    "acquiredAt": {
     "type": "integer",
     "description": "Unix ms the hold was granted, from the server clock at the commit that granted it."
    }
   },
   "description": "The current hold on this key -- yours if `outcome` is \"acquired\", or the existing holder's if `outcome` is \"held\". Never carries a wallet: the caller already knows its own."
  },
  "outcome": {
   "enum": [
    "acquired",
    "held"
   ],
   "type": "string",
   "description": "\"acquired\": you won the key (201). \"held\": somebody already holds it (200) -- NOT an error, see `mine`."
  },
  "payment": {
   "type": "object",
   "properties": {
    "asset": {
     "type": "string"
    },
    "payer": {
     "type": "string",
     "description": "The paying wallet's address."
    },
    "amount": {
     "type": "string",
     "description": "Atomic units of the settlement asset that were charged."
    },
    "network": {
     "type": "string"
    },
    "transaction": {
     "type": "string",
     "description": "On-chain settlement transaction hash."
    }
   },
   "description": "Present on both outcomes of the PAID `POST /claim` -- the attempt is billed whether or not you won the key, so a \"held\" response still carries the receipt for the charge you incurred. Absent only from `POST /claim/free`, which never settles a payment."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agent-exec-distributed-lock-claim-paid-12326854/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-exec.448c.org](https://www.zero.xyz/host/agent-exec.448c.org/llms.txt)
