https://www.osminog.app/api/v1All API requests must include your API key in the X-Api-Key header:
curl -H "X-Api-Key: <your-api-key>" https://www.osminog.app/api/v1/{endpoint}?{params}
To obtain an API key:
/api/v1/task/status
Returns the current status and performance summary for a monitoring task.
Returns the current status and performance summary for a monitoring task.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
X-Api-Key |
string |
Yes | Your personal API key |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
task_id |
string (UUID) |
Yes | UUID of the monitoring task |
Example Request
GET /api/v1/task/status?task_id=019cdeae-d393-7d65-8044-c07dd0fe2a17 HTTP/1.1
Host: www.osminog.app
X-Api-Key: your-api-key-here
| Field | Type | Description |
|---|---|---|
task_id |
string |
Task UUID |
website |
string |
Domain name of the monitored website |
uri |
string |
Monitored URI path |
http_code |
integer|null |
Latest HTTP status code (null if no results yet) |
last_check |
string|null |
Timestamp of the latest check (ISO 8601, UTC) |
response_time_ms |
float|null |
Latest response time in milliseconds |
min_ms |
float|null |
Minimum response time across all checks (ms) |
max_ms |
float|null |
Maximum response time across all checks (ms) |
avg_ms |
float|null |
Average response time across all checks (ms) |
last_spike |
object|null |
Latest threshold spike event (null if none) |
last_spike.datetime |
string |
Timestamp of the spike (ISO 8601, UTC) |
last_spike.response_time_ms |
float |
Response time during the spike (ms) |
last_spike.baseline_avg_ms |
float |
Baseline average at the time of the spike (ms) |
last_spike.diff_percent |
float|null |
Percentage above baseline (null if baseline is zero) |
Example Response
{
"task_id": "019cdeae-d393-7d65-8044-c07dd0fe2a17",
"website": "example.com",
"uri": "/api/health",
"http_code": 200,
"last_check": "2026-03-12T18:45:30Z",
"response_time_ms": 142.35,
"min_ms": 98.12,
"max_ms": 1523.67,
"avg_ms": 187.44,
"last_spike": {
"datetime": "2026-03-12T18:30:10Z",
"response_time_ms": 482.15,
"baseline_avg_ms": 187.44,
"diff_percent": 157.2
}
}
{ "error": "task_id is required." }
{ "error": "Invalid API key." }
{ "error": "Task not found." }
/api/v1/website/tasks
Returns all tasks and their status/performance data for a website.
Returns all tasks and their status/performance data for a website.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
X-Api-Key |
string |
Yes | Your personal API key |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
website_id |
string (UUID) |
Yes | UUID of the website |
Example Request
GET /api/v1/website/tasks?website_id=019cdeae-a1b2-7c3d-9044-abcdef123456 HTTP/1.1
Host: www.osminog.app
X-Api-Key: your-api-key-here
| Field | Type | Description |
|---|---|---|
website_id |
string |
Website UUID |
domain |
string |
Domain name of the monitored website |
is_verified |
boolean |
Whether the website ownership is verified |
tasks |
array |
Array of tasks with status data |
tasks[].task_id |
string |
Task UUID |
tasks[].uri |
string |
Monitored URI path |
tasks[].http_method |
string |
HTTP method (GET, POST, etc.) |
tasks[].frequency_seconds |
integer |
Check interval in seconds |
tasks[].concurrency |
integer |
Number of concurrent requests per tick |
tasks[].execution_mode |
string |
"background" or "on_demand" |
tasks[].is_active |
boolean |
Whether the task is currently active |
tasks[].http_code |
integer|null |
Latest HTTP status code (null if no results yet) |
tasks[].last_check |
string|null |
Timestamp of the latest check (ISO 8601, UTC) |
tasks[].response_time_ms |
float|null |
Latest response time in milliseconds |
tasks[].min_ms |
float|null |
Minimum response time across all checks (ms) |
tasks[].max_ms |
float|null |
Maximum response time across all checks (ms) |
tasks[].avg_ms |
float|null |
Average response time across all checks (ms) |
tasks[].last_spike |
object|null |
Latest threshold spike event (null if none) |
Example Response
{
"website_id": "019cdeae-a1b2-7c3d-9044-abcdef123456",
"domain": "example.com",
"is_verified": true,
"tasks": [
{
"task_id": "019cdeae-d393-7d65-8044-c07dd0fe2a17",
"uri": "/api/health",
"http_method": "GET",
"frequency_seconds": 60,
"concurrency": 1,
"execution_mode": "background",
"is_active": true,
"http_code": 200,
"last_check": "2026-03-12T18:45:30Z",
"response_time_ms": 142.35,
"min_ms": 98.12,
"max_ms": 1523.67,
"avg_ms": 187.44,
"last_spike": null
},
{
"task_id": "019cdeae-e4f5-7a2b-8055-fedcba987654",
"uri": "/",
"http_method": "GET",
"frequency_seconds": 300,
"concurrency": 2,
"execution_mode": "background",
"is_active": true,
"http_code": 200,
"last_check": "2026-03-12T18:40:00Z",
"response_time_ms": 85.20,
"min_ms": 45.00,
"max_ms": 920.10,
"avg_ms": 112.33,
"last_spike": {
"datetime": "2026-03-12T17:15:00Z",
"response_time_ms": 482.15,
"baseline_avg_ms": 112.33,
"diff_percent": 329.2
}
}
]
}
{ "error": "website_id is required." }
{ "error": "Invalid API key." }
{ "error": "Website not found." }