# TaskMint Record Duplicates

> TaskMint Record Duplicates is a paid API for AI agents from taskmint-sign-proof-node22-production.up.railway.app, paid per call via x402, $0.001/call, status unknown (last checked 2026-10-13).

Detects duplicate records in a list by comparing specified key fields, returning groups of matching records with the same key values.

## Facts

- Endpoint: POST https://taskmint-sign-proof-node22-production.up.railway.app/api/agent/record_duplicates?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/taskmint-record-duplicates-bbf55e8f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_NNk1rauqT6AhqnyPONx3n

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 taskmint-record-duplicates-bbf55e8f -d '<json body>'
```

Example prompt: Check these 20 product records for duplicates — treat 'sku' and 'warehouse' as the matching keys, and ignore any differences in letter case when comparing.

## When to prefer this

Use this endpoint when you need lightweight, deterministic duplicate detection across a small-to-medium set of structured records (up to 50) based on exact key field matching. It is ideal for pre-import validation, data quality checks, and deduplication pipelines where you want exact-match grouping (not fuzzy matching or merge operations) and need the result to be reproducible and idempotent via request_token retry semantics.

## Known failure modes

- Missing required 'records' or 'keys' fields returns a validation error
- Records array exceeds 50 items or keys array exceeds 10 items may be rejected
- Key values that are absent in some records are reported in the 'missing' field
- Invalid request_token format (not 64-char lowercase hex) causes rejection
- HTTP 202 or transport uncertainty requires retry with the identical body and token, never a new request
- Results expire after 24 hours from job submission
- Payment failure or insufficient USDC balance prevents job execution

## How this service works

Exact native USDC on Base; externally owned wallets only. Generate a private 32-byte random request_token for each new job, persist the entire body, and reuse it for challenge/retry and recovery. The token grants result access. Do not log or share it. HTTP 202 or an uncertain transport failure requires recovery with the identical body without a signature, never a new purchase. Results expire after 24 hours. Ten bounded deterministic services. Local execution is free; hosted jobs require customer-authorized payment only when billable.

## Output

Returns a JSON object with a 'result' containing: duplicate groups (each with a count and the indices of matching records), a list of checked keys, matching configuration (trim and ignore_case settings), a summary string, a scope note explaining what 'duplicate' means in this context, a list of any missing key fields, the service version, and overall status. The top-level response also includes the payment state and service name.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "payload": {
   "type": "object",
   "required": [
    "records",
    "keys"
   ],
   "properties": {
    "keys": {
     "type": "array",
     "items": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
     },
     "maxItems": 10,
     "minItems": 1
    },
    "trim": {
     "type": "boolean"
    },
    "records": {
     "type": "array",
     "items": {
      "type": "object",
      "maxProperties": 20,
      "additionalProperties": {
       "type": [
        "string",
        "number",
        "boolean",
        "null"
       ]
      }
     },
     "maxItems": 50,
     "minItems": 1
    },
    "ignore_case": {
     "type": "boolean"
    }
   },
   "additionalProperties": false
  },
  "request_token": {
   "type": "string",
   "pattern": "^[a-f0-9]{64}$",
   "description": "Generate 32 cryptographically random bytes as lowercase hex for each new job. Keep this private result credential and reuse the identical body for retries. Replace the synthetic example token."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "state": "paid",
  "result": {
   "flags": [],
   "scope": "Equal selected keys indicate a candidate duplicate. Other fields may differ. No merge, deletion, fuzzy identity or locale-specific case folding.",
   "groups": [
    {
     "count": 2,
     "indices": [
      0,
      1
     ]
    }
   ],
   "status": "resolved",
   "missing": [],
   "service": "record_duplicates",
   "summary": "1 duplicate key groups across 3 records",
   "version": "0.5.0",
   "matching": {
    "trim": false,
    "ignore_case": false
   },
   "checked_keys": [
    "sku",
    "warehouse"
   ],
   "records_checked": 3
  },
  "service": "record_duplicates"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/taskmint-record-duplicates-bbf55e8f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from taskmint-sign-proof-node22-production.up.railway.app](https://www.zero.xyz/host/taskmint-sign-proof-node22-production.up.railway.app/llms.txt)
