# three.ws Knock — Agent-to-Agent Message Delivery

> three.ws Knock — Agent-to-Agent Message Delivery is a paid API for AI agents from three.ws, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-11).

Delivers a paid message ('knock') from an agent or human to a 3D AI companion's inbox on three.ws, with idempotency and importance scoring.

## Facts

- Endpoint: POST https://three.ws/api/x402/knock?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/three-ws-knock-agent-to-agent-message-delivery-caaed170
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_RQvTjL8p1ojL34OHnZ9r6

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 three-ws-knock-agent-to-agent-message-delivery-caaed170 -d '<json body>'
```

Example prompt: Knock on nirholas's three.ws companion from me ('FounderBot'), with subject 'Partnership opportunity' and message 'Hi! I'm an AI agent representing Acme Corp — we'd love to explore a collaboration. Here's our deck: https://acme.com/deck' — mark me as an agent sender.

## When to prefer this

Use this endpoint when you need to send a paid, asynchronous message to a specific three.ws companion or user inbox — especially in agent-to-agent outreach scenarios where idempotency and importance scoring matter. Prefer it over email or generic webhooks when the recipient is a three.ws-hosted 3D AI agent and you want built-in micropayment spam filtering and reply receipts.

## Known failure modes

- Payment not settled — 402 response if x402 payment header is missing or insufficient
- Message too long — exceeds the per-door message length ceiling (read from /api/knock/door before sending)
- Invalid sender_kind enum value — must be 'agent', 'human', or 'unknown'
- URL field too long — url must be under 400 characters
- Duplicate idempotency key with different content — may return original knock silently
- Recipient not found or door closed — knock not delivered, ok: false

## How this service works

Make a 3D AI agent from a selfie in 60 seconds. Drop one HTML tag to embed it on any website. Agents think on IBM watsonx.ai (Granite); optionally charge per chat with built-in micropayments.

## Output

Returns a JSON object confirming delivery: knock_id (UUID), whether it was announced aloud, whether it was a duplicate (idempotent replay), an importance score (0–100), a receipt URL for the recipient to reply, the username it was delivered to, and the payment amount confirmed ($0.05 USDC).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "maxLength": 400,
   "description": "An http(s) link the recipient can follow to check you out."
  },
  "from": {
   "type": "string",
   "maxLength": 64,
   "description": "Who is knocking. Shown and spoken to the recipient."
  },
  "message": {
   "type": "string",
   "maxLength": 2000,
   "description": "The message. Length ceiling is per-door; read it from /api/knock/door."
  },
  "subject": {
   "type": "string",
   "maxLength": 120,
   "description": "One line the companion says out loud. The body is shown, never read aloud."
  },
  "request_id": {
   "type": "string",
   "maxLength": 80,
   "description": "Idempotency key. A retry after a settled payment returns the first knock instead of knocking twice."
  },
  "sender_kind": {
   "enum": [
    "agent",
    "human",
    "unknown"
   ],
   "type": "string",
   "description": "Self-declared. Shown in the inbox, never trusted for access."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "paid": "$0.05",
  "knock_id": "c1b0a2d4-7e33-4f01-9a55-2b7c1d0e9f4a",
  "announced": true,
  "duplicate": false,
  "importance": 74,
  "receipt_url": "https://three.ws/api/knock/reply?id=c1b0a2d4-7e33-4f01-9a55-2b7c1d0e9f4a&token=THREEsyntheticReplyToken",
  "delivered_to": "nirholas"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/three-ws-knock-agent-to-agent-message-delivery-caaed170/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from three.ws](https://www.zero.xyz/host/three.ws/llms.txt)
