Topics API
Create and manage monitoring topics via REST. All endpoints require a Bearer API key.
Topic types (auto-detected from name)
web_page— ifnameis a valid HTTPS URL, AyeWatch monitors that specific page.subject— ifnameis plain text, AyeWatch monitors that keyword/subject across the internet.
| Method | Path | Description |
|---|---|---|
| POST | /api/v1/topics | Create a topic |
| GET | /api/v1/topics | List topics (paginated) |
| GET | /api/v1/topics/:id | Get a topic |
| PUT | /api/v1/topics/:id | Update a topic |
| DELETE | /api/v1/topics/:id | Delete a topic |
POST
/api/v1/topicsCreate a new monitoring topic.
Request Body (JSON)
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | A valid HTTPS URL (e.g. "https://openai.com/news") to monitor a page, or plain text (e.g. "OpenAI announcements") to monitor a subject. Topic type is auto-detected. |
| interval | string | Yes | Check interval. One of: "1_hour", "3_hours", "6_hours", "12_hours", "18_hours", "1_day", "7_days", "15_days", "30_days". |
| description | string | No | (Optional) Notification Alert Criteria.Basically, on what update, should you be alerted. eg. Tell me when new AI model drops. |
| is_active | boolean | No | Whether to start monitoring immediately. Default: true. |
Example — monitor a URL
shell
curl -X POST https://ayewatch.app/api/v1/topics \
-H "Authorization: Bearer aw_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "https://openai.com/news",
"interval": "1_hour"
}'Example — monitor a subject / keyword
shell
curl -X POST https://ayewatch.app/api/v1/topics \
-H "Authorization: Bearer aw_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "OpenAI product announcements",
"interval": "1_day"
}'Response — 201 Created
json
{
"data": {
"id": 1042
}
}GET
/api/v1/topicsList all API-created topics for the authenticated user, paginated.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| page | number | No | Page number. Default: 1. |
| page_size | number | No | Results per page. Max: 100. Default: 20. |
| is_active | boolean | No | Filter by active status. Pass "true" or "false". |
| interval | string | No | Filter by interval. One of: "1_hour", "3_hours", etc. |
| created_after | string (ISO 8601) | No | Only topics created after this datetime. |
| created_before | string (ISO 8601) | No | Only topics created before this datetime. |
Request
shell
curl "https://ayewatch.app/api/v1/topics?page=1&page_size=10&is_active=true" \
-H "Authorization: Bearer aw_live_YOUR_API_KEY"Response — 200 OK
json
{
"data": [
{
"id": 1042,
"name": "https://openai.com/news",
"topic_type": "web_page",
"description": null,
"is_active": true,
"interval": "1_hour",
"created_at": "2026-03-08T12:00:00Z"
}
],
"pagination": {
"page": 1,
"page_size": 10,
"has_more": false
}
}GET
/api/v1/topics/:idRetrieve a single topic by ID.
Request
shell
curl https://ayewatch.app/api/v1/topics/1042 \
-H "Authorization: Bearer aw_live_YOUR_API_KEY"Response — 200 OK
json
{
"data": {
"id": 1042,
"name": "https://openai.com/news",
"topic_type": "web_page",
"description": null,
"is_active": true,
"interval": "1_hour",
"created_at": "2026-03-08T12:00:00Z"
}
}PUT
/api/v1/topics/:idUpdate a topic. Send only the fields you want to change.
Request Body (JSON) — all fields optional
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | No | New name or URL. Topic type is re-detected automatically. |
| description | string | No | New description. |
| interval | string | No | New check interval. One of: "1_hour", "3_hours", etc. |
| is_active | boolean | No | Enable or disable the topic. |
Request
shell
curl -X PUT https://ayewatch.app/api/v1/topics/1042 \
-H "Authorization: Bearer aw_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"interval": "6_hours", "is_active": false}'Response — 200 OK
json
{
"data": {
"message": "Topic updated successfully"
}
}DELETE
/api/v1/topics/:idPermanently delete a topic and its schedule. This action cannot be undone.
Request
shell
curl -X DELETE https://ayewatch.app/api/v1/topics/1042 \
-H "Authorization: Bearer aw_live_YOUR_API_KEY"Response — 200 OK
json
{
"data": {
"message": "Topic deleted successfully"
}
}