---
title: "Get AI-powered engineering analysis for two items"
method: GET
path: "/items/{id1}/compare/{id2}/ai-analysis"
tags: ["items"]
---

# Get AI-powered engineering analysis for two items

`GET /items/{id1}/compare/{id2}/ai-analysis`

Returns a cached AI analysis or generates a new one using Claude.
The analysis includes engineering verdict, side-by-side attribute comparison,
and catalog management recommendations.

## Path parameters

- `id1` string, uuid, required
- `id2` string, uuid, required

## Response `200`

OK

- ModelsAIItemComparisonResponse
  - `analysis` ModelsAIAnalysisResult
    - `analysed_at` string
    - `catalog_actions` ModelsAIAnalysisCatalogActions
      - `notes_for_buyer` string
      - `primary_part` string
      - `secondary_part` string
      - `suggested_relationship_tag` string
    - `comparison_id` string
    - `engineering_verdict` ModelsAIAnalysisVerdict
      - `classification` string — "duplicate", "interchangeable_variant", "superseded", "same_series", "mated_pair", "component_of", "distinct"
      - `confidence` string — "high", "medium", "low"
      - `confidence_score` number
      - `critical_differences` string[]
      - `interchangeable` boolean
      - `override_reason` string
      - `override_system_classification` boolean
      - `recommendation` string
      - `summary` string
      - `superseded_by` string — ID of the newer (superseding) item; only set when classification is "superseded"
    - `items` object
      - `item1` ModelsAIAnalysisItemSummary
        - `category` string
        - `manufacturer` string
        - `part_number` string
        - `title` string
      - `item2` ModelsAIAnalysisItemSummary
        - `category` string
        - `manufacturer` string
        - `part_number` string
        - `title` string
    - `model` string
    - `side_by_side` ModelsAIAnalysisSideBySideRow[]
      - `attribute` string
      - `engineering_significance` string — "critical", "minor", "cosmetic", "none"
      - `item1_value` string
      - `item2_value` string
      - `note` string
      - `status` string — "identical", "equivalent", "different", "missing"
    - `similarity_scores` ModelsAIAnalysisSimilarityScores
      - `manufacturer_score` number
      - `part_number_score` number
      - `specifications_score` number
      - `system_classification` string
      - `system_weighted_total` number
      - `title_score` number
  - `completion_tokens` integer
  - `created_at` string
  - `model` string
  - `prompt_tokens` integer
  - `status` string — "ready", "unavailable"

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.net/resourcly/apis/resourcly-api.md) · [All operations](https://skmtc.net/resourcly/apis/resourcly-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/resourcly/resourcly-api/revisions/7f97d8cd0f1e/schema)
