Skip to content

Agent Analysis API

POST /api/analytics/evaluate evaluates one reproducible die population under up to twelve proposed limit scenarios. It is a bounded, read-only endpoint for agents and unattended workflows using a bearer token from a user session or a service-account key with read or full scope.

The endpoint is the automation counterpart to Analyze brushing and what-if limits, but it does not remote-control the browser. It accepts stable selection predicates rather than pointer coordinates, canvas pixels, or a serialized die mask.

Selections can combine:

  • wafer numbers and coordinate rectangles
  • site and head numbers
  • hard bins, soft bins, and pass/fail state
  • a result range for a native test number and optional MPR return index

Predicates use an OR-of-AND form: any clause may match, every all_of filter in that clause must match, and every none_of filter must not match.

Every request must provide an exact snapshot_job_id and the current semantics_version. Responses identify the acquisition, curated schema, analysis semantics, loaded defaults and overrides, normalized limits, selected and evaluated die counts, and deterministic fingerprints.

Die identity is evaluated on the final die attempt. Parametric selection and limit impact use the account’s configured retest handling and active spec overrides. The response contains aggregate yield impact, not die-level rows.

{
"lot_id": "LOT-2026-0042",
"snapshot_job_id": "550e8400-e29b-41d4-a716-446655440000",
"semantics_version": 1,
"selection": {
"any_of": [{
"all_of": [
{ "type": "wafer", "wafer_numbers": [1, 2] },
{ "type": "rectangle", "min_x": -20, "max_x": 20, "min_y": -20, "max_y": 20 },
{ "type": "result_range", "test_number": 1001, "return_index": null, "min": 1e-15, "max": 8e-15 }
],
"none_of": [
{ "type": "hard_bin", "values": [90, 91] }
]
}]
},
"scenarios": [{
"id": "wider-leakage",
"limits": [{
"test_number": 1001,
"return_index": null,
"lsl": null,
"usl": 9e-15
}]
}]
}

See API Reference for the complete request and response schemas.

The synchronous contract permits at most twelve scenarios and 128 limits per scenario. Each API process admits four evaluations, waits up to five seconds for capacity, and interrupts execution after 120 seconds.

Evaluation cannot save an analysis, approve a proposal, publish a disposition, or apply production limits. Browser brush index runs, polygons, named spatial regions, and free-form SQL are not selection predicates in version 1.