API Reference

API Endpoints

Complete reference for all izli.io API endpoints.

API Endpoints

Complete reference for the izli.io REST API.

Base URL: https://izli.io/api/v1

Authentication: All endpoints require Authorization: Bearer YOUR_API_KEY header.

API keys are managed on the Agents page under the API Keys tab.


Monitors

List Monitors

GET /api/v1/monitors

Example:

curl -X GET "https://izli.io/api/v1/monitors" \
  -H "Authorization: Bearer YOUR_API_KEY"

Create Monitor

POST /api/v1/monitors

URL Monitor:

{
  "name": "Production API",
  "type": "url",
  "url": "https://api.example.com/health",
  "method": "GET",
  "interval": 60,
  "timeout": 30,
  "locations": ["us-east", "eu-west"],
  "headers": {
    "Authorization": "Bearer token"
  },
  "assertions": [
    {
      "type": "status_code",
      "operator": "equals",
      "value": 200
    }
  ]
}

TCP Monitor:

{
  "name": "Database Check",
  "type": "tcp",
  "host": "db.example.com",
  "port": 5432,
  "interval": 60,
  "timeout": 10,
  "locations": ["us-east"]
}

Get Monitor

GET /api/v1/monitors/{id}

Update Monitor

PUT /api/v1/monitors/{id}

Delete Monitor

DELETE /api/v1/monitors/{id}

Trigger Manual Check

POST /api/v1/monitors/{id}/check

Get Check Results

GET /api/v1/monitors/{id}/results

Get Monitor Stats

GET /api/v1/monitors/{id}/stats

API Monitors

Multi-step HTTP workflow monitors.

List API Monitors

GET /api/v1/api-monitors

Create API Monitor

POST /api/v1/api-monitors

Get API Monitor

GET /api/v1/api-monitors/{id}

Update API Monitor

PUT /api/v1/api-monitors/{id}

Delete API Monitor

DELETE /api/v1/api-monitors/{id}

Trigger API Monitor

POST /api/v1/api-monitors/{id}/trigger

List API Monitor Runs

GET /api/v1/api-monitors/{id}/runs

Journeys

List Journeys

GET /api/v1/journeys

Create Journey

POST /api/v1/journeys
{
  "name": "Login Flow",
  "description": "Tests the user login process",
  "interval_seconds": 300,
  "timeout_seconds": 60,
  "primary_location": "us-east",
  "max_retries": 1
}

Get Journey

GET /api/v1/journeys/{id}

Update Journey

PUT /api/v1/journeys/{id}

Delete Journey

DELETE /api/v1/journeys/{id}

Trigger Manual Run

POST /api/v1/journeys/{id}/run-now

List Journey Runs

GET /api/v1/journeys/{id}/runs

Get Journey Stats

GET /api/v1/journeys/{id}/stats

Runs

Get Run

GET /api/v1/runs/{id}

Run statuses: running, passed, failed, pending_retry

Get Run Steps

GET /api/v1/journeys/{journey_id}/runs/{id}/steps

Alerts

List Alerts

GET /api/v1/alerts

Query Parameters:

ParameterTypeDescription
statusstringpending, sent, failed, resolved

Get Alert

GET /api/v1/alerts/{id}

Resolve Alert

POST /api/v1/alerts/{id}/resolve

Alert Channels

List Channels

GET /api/v1/alerts/channels

Create Channel

POST /api/v1/alerts/channels

Slack:

{
  "name": "Ops Alerts",
  "type": "slack",
  "config": {
    "webhook_url": "https://hooks.slack.com/..."
  }
}

Email:

{
  "name": "Email Alerts",
  "type": "email",
  "config": {
    "recipients": ["[email protected]"]
  }
}

Webhook:

{
  "name": "Custom Webhook",
  "type": "webhook",
  "config": {
    "url": "https://your-service.com/alerts",
    "headers": {
      "Authorization": "Token ..."
    }
  }
}

Update Channel

PUT /api/v1/alerts/channels/{id}

Delete Channel

DELETE /api/v1/alerts/channels/{id}

Test Channel

POST /api/v1/alerts/channels/{id}/test

Alert Rules

List Rules

GET /api/v1/alerts/rules

Create Rule

POST /api/v1/alerts/rules

Rule types: consecutive_failures, error_rate, latency_threshold, visual_diff_threshold, ssl_expiry

{
  "name": "3 Consecutive Failures",
  "type": "consecutive_failures",
  "params": {
    "threshold": 3
  },
  "channel_id": "CHANNEL_ID",
  "journey_id": "JOURNEY_ID",
  "enabled": true
}

Update Rule

PUT /api/v1/alerts/rules/{id}

Delete Rule

DELETE /api/v1/alerts/rules/{id}

Organizations

List Your Organizations

GET /api/v1/user/organizations

Get Organization

GET /api/v1/organizations/{id}

Update Organization

PUT /api/v1/organizations/{id}

List Members

GET /api/v1/organizations/{id}/members

Invite Member

POST /api/v1/organizations/{id}/invitations
{
  "email": "[email protected]",
  "role": "member"
}

Roles: owner, admin, member, viewer

Update Member Role

PUT /api/v1/organizations/{id}/members/{member_id}

Remove Member

DELETE /api/v1/organizations/{id}/members/{member_id}

Billing

Get Current Usage

GET /api/v1/billing/usage

List Plans

GET /api/v1/billing/plans

Create Checkout Session

POST /api/v1/billing/checkout
{
  "org_id": "ORG_ID",
  "plan_id": "starter"
}

Get Billing Portal URL

GET /api/v1/billing/portal

Variables

List Variables

GET /api/v1/variables

Create Variable

POST /api/v1/variables
{
  "name": "PASSWORD",
  "value": "secret123",
  "type": "secret",
  "org_id": "ORG_ID"
}

Types: string, secret

Update Variable

PUT /api/v1/variables/{id}

Delete Variable

DELETE /api/v1/variables/{id}

CI/CD Integration

Trigger journeys from your deployment pipeline using an API key.

# Trigger a journey run
curl -X POST https://izli.io/api/agent/journeys/JOURNEY_ID/trigger \
  -H "Authorization: Bearer YOUR_API_KEY"

# Poll for run result
curl -X GET https://izli.io/api/agent/runs/RUN_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

All timestamps are in UTC using ISO 8601 format.