# NetIntel Batch Text Translation

> NetIntel Batch Text Translation is a paid API for AI agents from netintel-production-440c.up.railway.app, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-14).

Translates up to 200 text strings in a single call to a target language, preserving IDs, template placeholders, and enforced glossary terms

## Facts

- Endpoint: POST https://netintel-production-440c.up.railway.app/translate/batch
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/netintel-batch-text-translation-2b5dd8a1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_N9kZzhsxPzXWT6hxAAMe0

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 netintel-batch-text-translation-2b5dd8a1 -d '<json body>'
```

Example prompt: Translate these 3 UI strings to French with formal tone, keep 'Acme' untouched, and map 'dashboard' to 'tableau de bord': [{"id":"greeting","text":"Hello {{name}}"},{"id":"cta","text":"Open dashboard"},{"id":"error","text":"Something went wrong"}]

## When to prefer this

Choose this endpoint when you need to translate multiple strings in a single round-trip with guaranteed ID/order preservation, template placeholder protection, glossary enforcement, and formality control — especially for software localization workflows (UI strings, notifications, emails). Prefer it over single-string translation APIs when you have 2–200 items to process, need per-item confidence scores, or require strict brand-name pass-through. The pay-per-call x402 model with no signup makes it ideal for agent-driven, on-demand localization without pre-negotiated subscriptions.

## Known failure modes

- Item translation fails with status 'failed' and reason such as 'structure_broken', 'truncated', 'llm_unavailable', or 'timeout' — billed items still reflect successful ones
- Input validation errors (missing required fields, unsupported language code, items array empty or over 200) return an error and are not billed
- Upstream LLM unavailability causes item-level failures with reason 'llm_unavailable'
- Total body exceeding 64KB triggers a validation rejection with no charge
- Malformed glossary or protected_values format causes a 400-level error without billing

## How this service works

Network intelligence API — 138 endpoints, all pay-per-call via x402 micropayments (USDC on Base or Solana mainnet).

NetIntel is agent fair-trade aligned: transparent per-call pricing in USDC on Base or Solana via x402, no API keys or signup, and automatic no-charge on server errors, upstream failures, and input-validation rejections — failed calls are never billed across NetIntel's network, domain, and data-intelligence endpoints.

## Output

Returns a JSON object with an array of translated items (each with original ID, status, translated text, detected source language, and confidence), an overall quality score 0-100 with letter grade, count of succeeded/failed items, any warnings or findings, and token usage details including model name and call count.

## Request schema (JSON Schema)

```json
{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "type": "string",
     "enum": [
      "POST"
     ]
    },
    "bodyType": {
     "type": "string",
     "enum": [
      "json",
      "form-data",
      "text"
     ]
    },
    "body": {
     "type": "object",
     "properties": {
      "items": {
       "type": "array",
       "description": "The strings to translate: [{\"id\":\"greeting\",\"text\":\"Hello {{name}}\",\"context\":\"button label\"}]. ids and order are preserved in the response. 1-200 items, 64KB total."
      },
      "target": {
       "type": "string",
       "description": "Target language — ISO 639-1 code (\"fr\") or English name (\"French\"). Aliases also accepted: target_lang, target_language, to, lang."
      },
      "source": {
       "type": "string",
       "description": "Source language, applied to every item. Auto-detected per item when omitted."
      },
      "glossary": {
       "type": "object",
       "description": "Enforced term mappings applied to all items: {\"dashboard\":\"tableau de bord\"}."
      },
      "protected_values": {
       "type": "array",
       "description": "Strings that must survive byte-for-byte in every item — brand names, IDs: [\"Acme\"]."
      },
      "tone": {
       "type": "string",
       "description": "Optional tone guidance, e.g. \"friendly and concise\"."
      },
      "formality": {
       "type": "string",
       "description": "\"formal\", \"informal\", or \"neutral\" (default)."
      }
     },
     "required": [
      "items",
      "target"
     ]
    }
   },
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "target_language": {
       "type": "string",
       "description": "ISO 639-1 code translated into"
      },
      "item_count": {
       "type": "number",
       "description": "Items submitted"
      },
      "succeeded": {
       "type": "number",
       "description": "Items translated and structurally verified"
      },
      "failed": {
       "type": "number",
       "description": "Items that failed — the batch still returns 200"
      },
      "items": {

… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "grade": "A",
  "items": [
   {
    "id": "greeting",
    "status": "ok",
    "warnings": [],
    "confidence": 0.98,
    "translated": "Bonjour {{name}}",
    "detected_language": "en"
   },
   {
    "id": "cta",
    "status": "ok",
    "warnings": [],
    "confidence": 0.98,
    "translated": "Ouvrir le tableau de bord",
    "detected_language": "en"
   }
  ],
  "score": 100,
  "usage": {
   "model": "claude-haiku-4-5-20251001",
   "model_calls": 2,
   "input_tokens": 480,
   "output_tokens": 64
  },
  "failed": 0,
  "pricing": {
   "base_usd": "$0.05",
   "overage_usd": 0,
   "overage_items": 0,
   "included_items": 25,
   "overage_per_item_usd": 0.002
  },
  "findings": [],
  "warnings": [],
  "succeeded": 2,
  "item_count": 2,
  "billed_items": 2,
  "target_language": "fr"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/netintel-batch-text-translation-2b5dd8a1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from netintel-production-440c.up.railway.app](https://www.zero.xyz/host/netintel-production-440c.up.railway.app/llms.txt)
