# SignalHarness Text Deduplication

> SignalHarness Text Deduplication is a paid API for AI agents from signalharness.ai, paid per call via x402, $0.005/call, status unknown (last checked 2026-09-14).

Identifies and groups exact and normalized duplicate strings within a list or document, returning canonical representatives and deduplication metadata.

## Facts

- Endpoint: POST https://signalharness.ai/api/agent/services/text_deduplicate/invoke
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/signalharness-text-deduplication-74c93acc
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_hhBM8xbb7R_SZoLQF838U

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 signalharness-text-deduplication-74c93acc -d '<json body>'
```

Example prompt: I have a list of 50 product tags with lots of duplicates — can you deduplicate them using case-insensitive matching and tell me which ones were grouped together and what the canonical representatives are?

## When to prefer this

Choose this endpoint when you need to programmatically deduplicate string arrays or text documents with explicit grouping of duplicates and canonical representatives, especially when you require both exact and normalized (case-insensitive) duplicate detection. Prefer it over simple set-based deduplication when you need to understand which items were duplicates of each other, not just the final deduplicated list.

## Known failure modes

- Array exceeds 256 items — request rejected with validation error
- Individual string exceeds 65536 characters — item rejected
- Empty array provided — minItems constraint violated
- Document field empty or missing when required — validation error
- Payment not included or insufficient — 402 response before execution
- Malformed JSON body — 400 bad request

## How this service works

Explore 330 pay-per-call x402 API services and 27 agent-native digital products, with Base USDC pricing, secure Polar checkout, and free discovery.

## Output

Returns a JSON object with the total item count, a retained-order array of deduplicated items, grouped exact duplicates, normalized duplicate groups, and canonical representative strings for each group, along with a payment receipt and execution metadata.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "items": {
   "type": "array",
   "items": {
    "type": "string",
    "maxLength": 65536,
    "minLength": 0
   },
   "maxItems": 256,
   "minItems": 1
  },
  "document": {
   "type": "string",
   "maxLength": 65536,
   "minLength": 1
  },
  "caseSensitive": {
   "type": "boolean"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "replay": false,
  "result": {
   "itemCount": 1,
   "retainedOrder": [
    0
   ],
   "exactDuplicateGroups": [
    "example"
   ],
   "canonicalRepresentatives": [
    {
     "text": "Example caller-supplied content.",
     "ordinal": 0,
     "exactHash": "0000000000000000000000000000000000000000000000000000000000000000",
     "normalizedHash": "0000000000000000000000000000000000000000000000000000000000000000"
    }
   ],
   "normalizedDuplicateGroups": [
    "example"
   ]
  },
  "status": "succeeded",
  "receipt": {
   "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
   "usage": [],
   "status": "succeeded",
   "network": "eip155:8453",
   "artifacts": [],
   "endedAtMs": 0,
   "latencyMs": 0,
   "paymentId": "example-payment",
   "receiptId": "example-receipt",
   "requestId": "example-request",
   "serviceId": "text_deduplicate",
   "executionId": "example-execution",
   "startedAtMs": 0,
   "amountAtomic": "5000",
   "resultSha256": "a4de56c0c6db65a7f92cfe363edd6deecdc15d4ff6e95cfff323ae8db68c24d5",
   "serviceVersion": "1.0.0",
   "settlementReference": "0x0000000000000000000000000000000000000000000000000000000000000000"
  },
  "artifacts": [],
  "requestId": "example-request",
  "executionId": "example-execution"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/signalharness-text-deduplication-74c93acc/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from signalharness.ai](https://www.zero.xyz/host/signalharness.ai/llms.txt)
