---
title: "Get a comet configuration by ID"
method: GET
path: "/v1/comet/{id}"
tags: ["Comet"]
---

# Get a comet configuration by ID

`GET /v1/comet/{id}`

## Request

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

Retrieves a specific comet configuration.

## Path parameters

- `id` string, required

## Response `200`

Successfully retrieved configuration

- CometDetailResponseDto
  - `data` CometConfigWithAnalysisDto, required
    - `id` string, required
    - `name` string, required
    - `keywords` string[], required
    - `platforms` string[], required
    - `cadence` string, required: Cron expression for scheduling
    - `min_views` number, required
    - `time_range` string, required: today | this_week | this_month | this_year
    - `is_active` boolean, required
    - `is_processing` boolean, required
    - `meta_ads_enabled` boolean, required
    - `data_intelligence_enabled` boolean, required: Whether per-video AI intelligence is enabled. When true, each scheduled run costs $1.50 (base $0.50 + intelligence $1.00).
    - `last_run_at` string, nullable
    - `next_run_at` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `intent` string, nullable: User-specified search intent
    - `analysis` string, nullable: Short human-readable highlight from the latest AI analysis (sourced from analysis_data.key_highlight). null if no analysis has run yet.
    - `analysis_data` object, nullable: Full structured AI analysis object (themes, connecting_thread, viral_tactics, timing_analysis, top_10_breakdown, …). null if no analysis has run yet. See GET /v1/comet/:id/analysis and /trends for dedicated endpoints.
    - `analysis_batch_start` string, nullable: Start of the batch window for the latest analysis (ISO-8601)
    - `analysis_batch_end` string, nullable: End of the batch window for the latest analysis (ISO-8601)
    - `finalized` boolean: True when this comet has nothing in flight: `is_processing` is false AND `pending_jobs` is empty. Optional for backwards compatibility; absent on responses where the field was not yet emitted.
    - `pending_jobs` PendingJobDto[]: Secondary jobs still running after the latest scheduled scrape completed (e.g. AI viral analysis). Always an array, never null. Empty when nothing is pending.
      - `type` 'viral_analysis' | 'audience_demographics' | 'audience_geography' | 'tracking_report', required: Stable identifier for the kind of secondary job. Use this to switch on the field where the result will appear (see `result_path`).
      - `status` 'pending' | 'processing', required: Current non-terminal state of the job. Once the job reaches a terminal state (ready / failed / skipped) the entry is removed from `pending_jobs[]`.
      - `job_id` string: Optional opaque identifier for the underlying job, when one exists. Useful with `poll_url` to fetch the result directly.
      - `poll_url` string: Path (relative to api.virlo.ai) you can GET to fetch the result of this job once it is ready. Free to call.
      - `result_path` string: Dot-path inside the parent resource's response body where the completed result will appear. Useful for clients that re-fetch the resource instead of using `poll_url`.
      - `webhook_event` string: Name of an event from the existing `SUPPORTED_EVENTS` list that fires when this job reaches a terminal state. Subscribe to it via POST /v1/webhooks to avoid polling. Guaranteed to be one of the already-supported event names so existing webhook subscriptions keep working — no new event types were introduced.
      - `started_at` string: When the job entered its current state (ISO 8601 UTC).
      - `retry_after_seconds` number: Suggested minimum delay (seconds) before polling again. Respect this to avoid hitting rate limits.

## 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)
