# Comet (deprecated)

> Deprecated. Comet is the old name for a recurring Content Research Agent. How to move from /v1/comet to /v1/agents.

Source: https://dev.virlo.ai/docs/comet
Markdown: https://dev.virlo.ai/docs/comet.md
Section: Legacy (deprecated)

## About the Virlo API (applies to every page)

- Base URL: `https://api.virlo.ai/v1`. Every request needs the header `Authorization: Bearer YOUR_API_KEY` (keys start with `virlo_tkn_`).
- Responses are JSON inside a `data` field, except the `/v1/webhooks` endpoints, which return the object or array directly. Field names are snake_case.
- Prices are in US dollars from a prepaid balance. 1 credit = $0.01. The `X-Cost` response header on each successful response is the exact charge. Errors are free.
- Slow jobs return an ID. Check its status every 15 seconds (or whatever `retry_after_seconds` says) until `finalized` is `true`.
- All docs pages: https://dev.virlo.ai/llms.txt. Every page in one file: https://dev.virlo.ai/llms-full.txt. MCP server for AI assistants: https://dev.virlo.ai/api/mcp/mcp.

---

Comet is the old name for a recurring [Content Research Agent](https://dev.virlo.ai/docs/agents). `/v1/comet` still works but is past its August 3, 2026 removal date and may stop any time.

**At a glance**

- **What it does:** Runs a Content Research Agent on a schedule.
- **You send:** `POST /v1/agents` with `is_recurring: true`, a schedule (`cadence`) and a goal (`intent`).
- **You get back:** The same results at `/v1/agents/:id/...`, usually within 20 minutes of each run.
- **Cost:** $0.50 per run ($1.50 with [Data Intelligence](https://dev.virlo.ai/docs/intelligence)) until you pause or delete it.

## Move to agents

Your comets keep running and already live at `/v1/agents/:id`, same ID. Swap `/v1/comet` for `/v1/agents` everywhere, except:

- `POST /v1/comet` becomes `POST /v1/agents` with `is_recurring: true`.
- `GET /v1/comet` or `/v1/comet/list` becomes `GET /v1/agents?is_recurring=true`. `include_inactive=true` adds paused ones.

New recurring agents start with [autopilot](https://dev.virlo.ai/docs/agents/autopilot#autonomy) on. After each run it rewords searches and adds keywords, and it never removes the ones you set. To turn it off, send `autopilot: false` to `PUT /v1/agents/:id`. Read an agent's `autopilot` field from `/v1/agents`; `/v1/comet` doesn't show it.

## Change your request

- Add `is_recurring: true` and `intent`, a sentence on what you want to find.
- Drop `min_views`, `time_range` (Comet ignored both) and `is_active`, or you get `400`. Pause with `PUT /v1/agents/:id` and `active: false`. Filter [videos](https://dev.virlo.ai/docs/agents#get-agent-videos) by `min_views`, `start_date` and `end_date` instead.
- Up to 50 `keywords` (Comet: 20). Optional: `name`, and `platforms` (default: `youtube`, `tiktok`, `instagram`).
- `cadence` (unchanged): `daily`, `weekly`, `monthly`, or a cron schedule like `0 9 * * 1` (Mondays 09:00 UTC). More often than daily returns `400`.

**Before: POST /v1/comet:**

```bash
curl -X POST https://api.virlo.ai/v1/comet \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Cold brew watch",
    "keywords": ["cold brew concentrate", "#coldbrew"],
    "platforms": ["tiktok", "youtube"],
    "cadence": "weekly",
    "min_views": 10000,
    "time_range": "this_week"
  }'
```

**After: POST /v1/agents:**

```bash
curl -X POST https://api.virlo.ai/v1/agents \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "is_recurring": true,
    "cadence": "weekly",
    "intent": "Track viral cold brew videos to plan content for a coffee brand",
    "name": "Cold brew watch",
    "keywords": ["cold brew concentrate", "#coldbrew"],
    "platforms": ["tiktok", "youtube"]
  }'
```

## Renamed fields

- The list is paged (`data.agents`), not one `data.configurations` array.
- `is_active` is now `active`. `min_views`, `time_range` and `intent_summary` are gone.
- `custom_niche_id` (videos, slideshows, ads) and `comet_id` (outliers) are now `agent_id`, and their `_name` fields are now `agent_name`.

## Webhooks

Runs send both `comet.run.completed` and `content_research_agent.run.completed`. Subscribe your [webhook](https://dev.virlo.ai/docs/webhooks#update-webhook) to the new one, then drop the old. The new event keeps agent details in `comet` and adds `data.is_recurring`. Failed runs put them in `content_research_agent`.

## Cost

- Creating costs $0 (`X-Cost: 0.00`), but the first run starts at once, billed when done. Failed runs are free.
- Creating fails with `402` unless your balance covers one run.

---

More in Legacy (deprecated):

- [Orbit (one-time agents)](https://dev.virlo.ai/docs/orbit.md)
