# TaskMint Catalog Audit

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

Audits a batch of product catalog records for import readiness, normalizing IDs and price decimals and flagging issues, paid per-call via USDC on Base.

## Facts

- Endpoint: POST https://taskmint-sign-proof-node22-production.up.railway.app/api/agent/catalog_audit?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/taskmint-catalog-audit-8a36de9c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_132JXwYPLs1Kx_3rqV8w0

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-catalog-audit-8a36de9c -d '<json body>'
```

Example prompt: Audit these 3 product records for import readiness — use locale en-US and currency USD, with 'sku' as the ID field and 'price' as the price field: [{"sku":"A-10","price":"1234.5"},{"sku":"B-20","price":"29.95"},{"sku":"C-30","price":"invalid"}].

## When to prefer this

Choose this endpoint when you need a fast, cheap ($0.005 USDC) per-batch import-readiness diagnostic for up to 50 product catalog records across 12 supported locales — especially when you need normalized price decimals and validated IDs before uploading to any storefront. It is not a substitute for store-specific certification, fuzzy ID matching, FX conversion, or writing data back to a store.

## Known failure modes

- HTTP 402 if payment not authorized or wallet is not an externally owned account on Base
- HTTP 202 (accepted but uncertain) requiring recovery with identical request body and request_token, never a new purchase
- Expired results (after 24 hours) if request_token is not used in time
- Validation error if records array is empty or exceeds 50 items, or if a record exceeds 20 properties
- Invalid locale or currency code format causes schema rejection
- Lost or regenerated request_token causes permanent loss of result access

## 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 state 'paid' and a result object containing: a validity boolean, a list of issues found, a list of flags, normalized records (each with index, identity, and price_decimal), a human-readable summary, the locale and currency used, service name, version, and a scope disclaimer noting this is an import-readiness diagnostic only (no FX conversion, store certification, fuzzy matching, or writes).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "payload": {
   "type": "object",
   "required": [
    "records",
    "id_field",
    "price_field",
    "locale",
    "currency"
   ],
   "properties": {
    "locale": {
     "enum": [
      "en-US",
      "en-GB",
      "en-AU",
      "en-IN",
      "de-DE",
      "fr-FR",
      "es-ES",
      "pt-BR",
      "ja-JP",
      "zh-CN",
      "ar-EG",
      "th-TH"
     ]
    },
    "records": {
     "type": "array",
     "items": {
      "type": "object",
      "maxProperties": 20,
      "additionalProperties": {
       "type": [
        "string",
        "number",
        "boolean",
        "null"
       ]
      }
     },
     "maxItems": 50,
     "minItems": 1
    },
    "currency": {
     "type": "string",
     "pattern": "^[A-Z]{3}$"
    },
    "id_field": {
     "type": "string",
     "maxLength": 100,
     "minLength": 1
    },
    "price_field": {
     "type": "string",
     "maxLength": 100,
     "minLength": 1
    }
   },
   "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": "Import-readiness diagnostic only. Exact typed IDs; no fuzzy matching, store-specific certification, FX conversion, price verification or writes to a store.",
   "valid": true,
   "issues": [],
   "locale": "de-DE",
   "status": "resolved",
   "service": "catalog_audit",
   "summary": "0 issues across 2 products",
   "version": "0.5.0",
   "currency": "EUR",
   "normalized": [
    {
     "index": 0,
     "identity": "A-10",
     "price_decimal": "1234.5"
    },
    {
     "index": 1,
     "identity": "B-20",
     "price_decimal": "29.95"
    }
   ]
  },
  "service": "catalog_audit"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/taskmint-catalog-audit-8a36de9c/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)
