---
title: "Get the latest AI analysis for a comet"
method: GET
path: "/v1/comet/{id}/analysis/latest"
tags: ["Comet"]
---

# Get the latest AI analysis for a comet

`GET /v1/comet/{id}/analysis/latest`

## Request

- Base URL: `https://api.virlo.ai`
- URL: `https://api.virlo.ai/v1/comet/{id}/analysis/latest`
- Auth: HTTP bearer

Returns the full structured analysis produced in the most recent completed cycle. The `analysis` string is a short human-readable highlight; `analysis_data` contains the full object (themes, connecting_thread, viral_tactics, timing_analysis, top_10_breakdown, …).

## Path parameters

- `id` string, required

## Response `200`

Latest analysis (data = null when none exists yet)

- V1AnalysisLatestResponseDto
  - `data` V1AnalysisItemDto, required
    - `id` string, required
    - `insight_type` 'custom_niche' | 'orbit', required
    - `reference_id` string, required
    - `batch_start` string, required
    - `batch_end` string, required
    - `analysis` string, nullable: Short human-readable highlight ("analysis" string shown in the web app). Sourced from analysis_data.key_highlight.
    - `analysis_data` object, required: Full structured analysis object produced by the LLM. Includes themes (trends), connecting_thread, viral_tactics, timing_analysis, top_10_breakdown, etc. Additive fields may appear over time — callers should treat unknown keys as optional.
    - `video_count` number, nullable
    - `analyzed_video_ids` string[]: IDs of videos analyzed
    - `model_used` string, nullable
    - `created_at` string, required

## Other responses

- `401`: Unauthorized - missing or invalid API key
- `404`: Comet configuration not found
- `429`: Rate limit exceeded (`rate_limit_exceeded`); see the Retry-After header

---

[API](https://skmtc.dev/virlo/apis/virlo-public-api.md) · [All operations](https://skmtc.dev/virlo/apis/virlo-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/virlo/apis/virlo-public-api/revisions/3b69c6145087?raw)
