---
title: "Prepare or refine the plan"
description: "Describe in plain language what to translate, read the measured counts and a real extraction preview, and refine until the plan is right before spending credits."
canonical: "https://ai-glot.com/docs/api/translations/plan"
updated: "2026-08-31"
---

# Prepare or refine the plan

Requires `batches:create`. Planning is free and repeatable: nothing is charged until you [approve](/docs/api/translations/approve).

## Instruction or refinement

Send one or the other, not both.

| Field         | Meaning                                                                                       |
| ------------- | --------------------------------------------------------------------------------------------- |
| `instruction` | Plan from scratch. Replaces any previous plan entirely.                                       |
| `refinement`  | Adjust the plan that already exists: "actually, only the empty rows", "leave the URLs alone". |

The distinction matters when a plan is nearly right: `refinement` keeps everything you already agreed to, while `instruction` starts over and may reinterpret parts you were happy with.

## Read the plan before approving

The response embeds the rebuilt plan with **measured** counts (the actual number of items and words found in your file, not an estimate from its size), plus a preview of ten real extractions.

Those ten are the cheapest check available. They show the exact strings that will be sent for translation, so an instruction that quietly matched the wrong field is visible before it costs anything.

> **Warning: Plan first, always**
>
> Approving without a plan fails with `no_plan_yet`. This is deliberate: it means no integration can charge a workspace for a translation nobody described.
