# Account Settings and API Behavior

> v1 reads your account's web-app settings (bbox auto-annotate, retention policy, quality) directly rather than exposing a separate API config layer — this page explains exactly which settings the API always follows and the one it lets you override per request.

Some of your account's behavior is configured once, on the web app's [profile settings page](/profile/) — not through this API. This page explains, for every such setting, exactly how it shows up in v1: whether the API follows it unconditionally, or lets you override it per request. This deliberately isn't spread thin across individual endpoint docs — it's collected here because the cross-cutting behavior is easy to miss if you only read one endpoint's reference page at a time.

## The general rule

v1 reads your account's current configuration directly and applies it — there is no separate API-layer configuration system, and (with one deliberate exception, below) no way to override an account setting for a single request. This is intentional: maintaining two independent places to configure the same behavior (the web app and a parallel API config) would inevitably drift out of sync, and the goal is that the same account behaves the same way no matter which surface — web app, this API, or the Google Sheets Add-on — kicked off the processing.

## Settings and their API behavior

| Setting | Web app behavior | v1 API behavior | Overridable per request? |
| --- | --- | --- | --- |
| bbox auto-annotate auto_annotate_bbox | An account-level toggle. When on, every completed extraction automatically triggers a paid bbox annotation pass. | Followed exactly — batches created and processed through v1 obey this toggle with no exception. If it's on, you can be billed for bbox annotation even if you never call POST /documents/{document_id}/bbox yourself. | No. No request-level way to skip or force it. |
| Processing quality thinking_type | An account-level setting choosing a speed/quality tier for processing. | The one exception to the rule above. When you omit quality on POST /batches/{batch_name}/process , it falls back to your account's current setting — same behavior as the web app. But you can also pass quality: "fast" or quality: "high" on that request to override it for that call only. | Yes — the only setting on this page you can override per request. |
| Data retention auto_delete / auto_delete_after | An account-level setting for automatically deleting original images N days after processing. | Followed exactly — documents created through v1 are subject to the same retention policy as anything uploaded through the web app. | No. |
| Processing mode (internal rec_mode , exposed as mode ) | The web app currently supports table-style extraction and full-document Word conversion. | v1 currently supports only mode=table (structured field extraction). Full-document conversion is planned but not yet available through the API. | Not applicable yet — there's only one value to choose from. When more modes ship, this will be a pure addition, not a behavior change to the existing value. |

## Why not just add request-level overrides?

bbox auto-annotate and the retention policy are treated as account-level governance, not per-call preferences — they're the kind of "on for everything, or off for everything" switch where letting one API call quietly deviate from the account's standing configuration would create exactly the two-config-sources-drift problem this design avoids. `quality` is different: which speed/quality tier makes sense can genuinely vary call to call (this batch needs to go out fast, that one needs maximum accuracy), so it's treated as an operational choice rather than a governance setting, and opened up as the one override.

---

Source: https://imagetotable.ai/developers/guides/account-settings
