---
title: "Perceive Status"
method: GET
path: "/v2/perceive/{operation_id}"
tags: ["v2", "v2-perceive"]
---

# Perceive Status

`GET /v2/perceive/{operation_id}`

## Request

- Base URL: `https://api.enconvert.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.enconvert.com/v2/perceive/{operation_id}`
- Auth: none declared

Look up one perceive operation with refreshed signed URLs.

With ``direct_download=true`` the response body IS the artifact.

## Path parameters

- `operation_id` string, required

## Query parameters

- `direct_download` boolean
- `output` string, nullable

## Headers

- `X-API-Key` string, nullable
- `authorization` string, nullable

## Response `200`

Successful Response

- PerceiveResponse
  - `operation_id` string, required
  - `status` 'queued' | 'processing' | 'completed' | 'failed', required
  - `url` string, required
  - `url_final` string, nullable
  - `content_hash` string, nullable
  - `status_code` integer, nullable: HTTP status of the final main-document response (e.g. 200, 404). None when the engine could not observe it.
  - `render_quality` number, nullable: 0.0-1.0; populated by the F.7 scorer.
  - `deductions` object: Named render-quality deductions that fired for this render (e.g. {'http_error': 0.7}). Empty on a clean render.
  - `is_blocked` boolean: True when the scorer judged the render an anti-bot challenge or WAF block page. A block with no page content behind it returns 200 with this flag set and outputs={}.
  - `billed` boolean: Whether this operation consumed one op from the monthly quota. False for blocked reads and for renders whose deductions include http_error or login_wall; cache hits bill.
  - `options_echo` object, nullable: Echo of the request options the server honoured (secrets redacted to booleans), so a caller can verify what was actually applied.
  - `cache_hit` boolean
  - `outputs` object
  - `structured` object, nullable
  - `extraction_tier` 'heuristic' | 'css' | 'llm', nullable
  - `tokens` PerceiveTokens
    - `input` integer
    - `output` integer
  - `cost_cents` number
  - `duration_ms` integer, nullable
  - `error` string, nullable
  - `warnings` string[]

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/enconvert/apis/conversion-api.md) · [All operations](https://skmtc.dev/enconvert/apis/conversion-api/llms.txt) · [OpenAPI document](https://skmtc.dev/enconvert/apis/conversion-api/revisions/b8c820393569?raw)
