# Translated Summary: Order a job, or get the offer: the price and the exact next call.

URL: https://services.dev/docs/examples/lingua/api/order_translated_summary

## Translated Summary: Order a job, or get the offer: the price and the exact next call.

`POST /jobs` · `order_translated_summary`

Status: live

A long document, translated, with a one-page summary on top. $79 per job, within 48 hours, charged on delivery. AI delivers every job.

### Parameters

- `service` string · required: The Service to order: "translated-summary".
- `document` object · file · required
  - `document.url` string · uri · required
  - `document.name` string · required
- `to` string · language · required: such as fr-CA
- `max_usd` number: The most you will pay, in dollars. Missing or below the price, you get an offer instead of a job.
- `key` string: Any string you choose. Retrying with the same key returns the same job.
- `metadata` object: Your own keys, echoed on the job and its events.
- `test_clock` string: A test clock the job runs on: tc_….

### Returns

- 200 job: The same job, for a key already used.
- 202 job: The job, working.
- 400 error: BLOCKED: body_invalid, version_unknown. (not captured yet)
- 401 error: BLOCKED: key_missing, key_invalid. (not captured yet)
- 402 OFFER: OFFER: the price and the exact next call.
- 403 error: BLOCKED: not_live, act_refused, region_not_ratified, brand_unverified. (not captured yet)
- 404 error: EMPTY: not_found. (not captured yet)
- 409 error: BLOCKED: key_reused.
- 422 error: BLOCKED: input_invalid, policy_invalid.
- 500 error: BLOCKED: api_error. (not captured yet)

### CLI

```
$ npx services.dev translated-summary document=document.pdf to=fr-CA service=translated-summary
OFFER · $79 per job, within 48 hours, charged on delivery.
  next    npx services.dev translated-summary document=document.pdf to=fr-CA --max 79

$ npx services.dev translated-summary document=document.pdf to=fr-CA --max 79
job_7Hq6 · working · $79.00 held
```

### API

```
curl http://localhost:8787/jobs \
  -H 'content-type: application/json' \
  -d '{"service":"translated-summary","document":{"url":"https://example.com/document.pdf","name":"document.pdf"},"to":"fr-CA","max_usd":79,"key":"any-string-you-choose"}'
```

### MCP

```
→ tools/call order_translated_summary {"document":{"url":"https://example.com/document.pdf","name":"document.pdf"},"to":"fr-CA","max_usd":79,"key":"translated-summary-1"}
← job_7Hq6 · working · $79.00 held
```

### SDK

```
import { connect } from 'services.dev/agent'

const lingua = connect('http://localhost:8787', { budget: 100 })
const job = await lingua.order('translated-summary', {"document":{"url":"https://example.com/document.pdf","name":"document.pdf"},"to":"fr-CA"}, { key: 'translated-summary-1' })
```

### 202 job

```json
{
  "id": "job_7Hq6",
  "object": "job",
  "created": "2026-10-25T14:01:26.000Z",
  "livemode": false,
  "simulated": true,
  "service": "translated-summary",
  "input": {
    "document": {
      "url": "https://example.com/document.pdf",
      "name": "document.pdf"
    },
    "to": "fr-CA"
  },
  "metadata": {},
  "price": {
    "usd": 79,
    "approved": false,
    "max_usd": 79
  },
  "payment": {
    "status": "held",
    "amount_usd": 79
  },
  "human": "AI delivers every job.",
  "stage": null,
  "steps": [
    {
      "id": "stp_1",
      "object": "step",
      "step": "translate",
      "by": "service",
      "status": "working"
    },
    {
      "id": "stp_2",
      "object": "step",
      "step": "summarize",
      "by": "ai",
      "status": "pending"
    },
    {
      "id": "stp_3",
      "object": "step",
      "step": "review",
      "by": "ai",
      "review": "adversarial",
      "status": "pending"
    }
  ],
  "next": [
    {
      "do": "get",
      "arguments": {
        "id": "job_7Hq6"
      },
      "tool": "get_job",
      "http": "GET http://localhost:8787/jobs/job_7Hq6?wait=50"
    },
    {
      "do": "cancel",
      "arguments": {
        "id": "job_7Hq6"
      },
      "tool": "cancel_job",
      "http": "POST http://localhost:8787/jobs/job_7Hq6/cancel"
    }
  ],
  "status": "working"
}
```

### 200 job

```json
{
  "id": "job_7Hq6",
  "object": "job",
  "created": "2026-10-25T14:01:26.000Z",
  "livemode": false,
  "simulated": true,
  "service": "translated-summary",
  "input": {
    "document": {
      "url": "https://example.com/document.pdf",
      "name": "document.pdf"
    },
    "to": "fr-CA"
  },
  "metadata": {},
  "price": {
    "usd": 79,
    "approved": false,
    "max_usd": 79
  },
  "payment": {
    "status": "charged",
    "amount_usd": 79
  },
  "human": "AI delivers every job.",
  "stage": "review",
  "steps": [
    {
      "id": "stp_1",
      "object": "step",
      "step": "translate",
      "by": "service",
      "status": "committed",
      "hash": "sha256:21255a755ba4991ffd2799e8fdf39d0997678ced5a36fea9d9c8c10e8154bf7f"
    },
    {
      "id": "stp_2",
      "object": "step",
      "step": "summarize",
      "by": "ai",
      "status": "committed",
      "hash": "sha256:da91dd52f93fb56488cd18ab02cb143858263899a8edaa828d3c6603861de0f5"
    },
    {
      "id": "stp_3",
      "object": "step",
      "step": "review",
      "by": "ai",
      "review": "adversarial",
      "verdict": "pass",
      "status": "committed",
      "hash": "sha256:b1331ecd8a7e9f14c736ef09d2694788f7e6857e406cb86b6c4f233104af2d5e"
    }
  ],
  "next": [
    {
      "do": "accept",
      "arguments": {
        "id": "job_7Hq6"
      },
      "tool": "accept_job",
      "http": "POST http://localhost:8787/jobs/job_7Hq6/accept"
    },
    {
      "do": "send_back",
      "arguments": {
        "id": "job_7Hq6",
        "note": ""
      },
      "tool": "send_back_job",
      "http": "POST http://localhost:8787/jobs/job_7Hq6/send_back"
    }
  ],
  "status": "delivered",
  "output": {
    "document": {
      "url": "data:text/plain,Simulated%20Translation%3A%20document",
      "name": "document.fr-CA.pdf"
    },
    "summary": {
      "url": "data:text/plain,Simulated%20Translated%20Summary%3A%20summary",
      "name": "summary.pdf"
    }
  },
  "final_at": "2026-11-01T14:02:03.000Z"
}
```

### 402 OFFER

```json
{
  "type": "OFFER",
  "object": "offer",
  "service": "translated-summary",
  "title": "Translated Summary",
  "price": {
    "usd": 79,
    "sentence": "$79 per job, within 48 hours, charged on delivery."
  },
  "eta": "48h",
  "terms": "Charged on delivery. Cancel at $0 until it ships. Send it back with a note and the AI redoes it, or you pay $0. Final 7 days after delivery.",
  "next": {
    "do": "order",
    "service": "translated-summary",
    "arguments": {
      "document": {
        "url": "https://example.com/document.pdf",
        "name": "document.pdf"
      },
      "to": "fr-CA",
      "max_usd": 79,
      "key": "translated-summary-1",
      "service": "translated-summary"
    },
    "tool": "order_job",
    "http": "POST http://localhost:8787/jobs {\"service\":\"translated-summary\"}"
  },
  "simulated": true
}
```

### 422 input_invalid

```json
{
  "type": "BLOCKED",
  "category": "invalid_request",
  "code": "input_invalid",
  "reason": "Missing to.",
  "param": "to",
  "next": {
    "do": "order",
    "service": "translated-summary",
    "arguments": {
      "document": {
        "url": "https://example.com/document.pdf",
        "name": "document.pdf"
      },
      "max_usd": 79,
      "key": "translated-summary-1-short",
      "to": null,
      "service": "translated-summary"
    },
    "fill": [
      "to"
    ],
    "tool": "order_job",
    "http": "POST http://localhost:8787/jobs {\"service\":\"translated-summary\"}"
  },
  "doc_url": "http://localhost:8787/docs/errors/input_invalid",
  "request_id": "req_gtakPK",
  "simulated": true
}
```

### 409 key_reused

```json
{
  "type": "BLOCKED",
  "category": "conflict",
  "code": "key_reused",
  "reason": "That key was already sent with a different body.",
  "param": "key",
  "next": {
    "do": "order",
    "service": "translated-summary",
    "arguments": {
      "document": {
        "url": "https://example.com/document.pdf",
        "name": "document.pdf"
      },
      "to": "de",
      "max_usd": 79,
      "key": "order-c286e976",
      "service": "translated-summary"
    },
    "tool": "order_job",
    "http": "POST http://localhost:8787/jobs {\"service\":\"translated-summary\"}"
  },
  "doc_url": "http://localhost:8787/docs/errors/key_reused",
  "request_id": "req_Ha21h8",
  "simulated": true
}
```
