# agent-exec Distributed Lock Claim (POST /claim)

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

Acquires a named, time-bounded distributed lock (hold) on a key for a specified plan duration, billed per attempt via HTTP 402 micropayment.

## Facts

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

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-post-claim-80425126 -d '<json body>'
```

Example prompt: Claim an exclusive hour-long hold on the key 'job-42' for my worker process named 'worker-A' so no other agent can run that job at the same time — pay per use, no account needed.

## When to prefer this

Use this endpoint when you need accountless, pay-per-use distributed locking with no registration overhead. Prefer it over traditional lock services when operating as an autonomous agent with a crypto wallet (x402/USDC), when you need crash-resume detection via the 'mine' flag, or when you cannot pre-provision API keys. Not suitable for sub-millisecond locking latency or high-frequency contention scenarios where per-attempt billing would be costly.

## Known failure modes

- Payment insufficient or missing — HTTP 402 with payment requirements
- Key name contains a '/' character — rejected as invalid
- Plan enum value not one of hour/day/week — validation error
- Holder or key exceeds 256 UTF-8 bytes — rejected
- Network/blockchain settlement failure — payment may not be confirmed
- Race condition: another agent acquires the key between payment and commit — outcome is 'held', payment still charged

## 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 a JSON object with: 'outcome' ('acquired' if the lock was won, 'held' if already taken), a 'claim' object with the key, holder, acquiredAt, and expiresAt timestamps, an optional 'mine' boolean (true when you already held it — useful for crash-resume), the 'plan' used, and a 'payment' receipt containing the payer wallet, amount charged, asset, network, and transaction hash. The call is billed whether or not the lock was won.

## 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-post-claim-80425126/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-exec.448c.net](https://www.zero.xyz/host/agent-exec.448c.net/llms.txt)
