# Factline Watch – Create Ongoing Monitor

> Factline Watch – Create Ongoing Monitor is a paid API for AI agents from factline.dev, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-16).

Creates a persistent watch subscription to monitor a sanctions/PEP person, a company (across 10+ registers), or a Dutch vehicle (APK) for changes, sending alerts via webhook or a polling URL.

## Facts

- Endpoint: GET https://factline.dev/v1/watch/new?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/factline-watch-create-ongoing-monitor-c0a1387f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_SzDJ0tO2xLPPvzYDIQtG_

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability factline-watch-create-ongoing-monitor-c0a1387f
```

Example prompt: Set up a daily Factline watch on Ryanair (Irish company, IE:Ryanair) so I get alerted via https://my.app/webhooks/factline if anything changes in the company register or its sanctions status.

## When to prefer this

Use this endpoint when you need continuous, automated monitoring of an entity over time rather than a one-off lookup. It is the right choice for compliance workflows, AML/KYC screening pipelines, fleet management (APK), or any scenario where you need to be notified of changes rather than checking manually. Prefer the one-off lookup endpoints for immediate, single-shot checks.

## Known failure modes

- Missing or invalid 'kind' enum value returns a validation error
- Invalid entity value format (e.g. missing country prefix for company) causes rejection
- Webhook URL not reachable or not HTTPS may be accepted but alerts will silently fail
- Expired or invalid x402 payment token returns 402 Payment Required
- Duplicate watches on the same entity may return a new watch or reference the existing one depending on API logic

## How this service works

Sanctions and company monitoring for 30 days with alerts. Use when the user wants to be told later: watches one item for 30 days, paid once, no account. kind=sanctions (a name, re-screened when the EU, UN, UK or US lists change), company (COUNTRY:name or number, register checked daily) or apk (Dutch plate, daily). Alerts go to webhook and to /v1/watch/alerts with the returned token. Input: kind, value, optional webhook, label.

## Output

Returns a JSON object containing a unique watch_id and a reusable token (wt_…), the alerts polling URL, a human-readable description of what is checked and how often, the optional webhook that was registered, and the expiry date of the watch subscription.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "kind",
      "value"
     ],
     "properties": {
      "kind": {
       "enum": [
        "sanctions",
        "company",
        "apk"
       ],
       "type": "string"
      },
      "label": {
       "type": "string"
      },
      "value": {
       "type": "string",
       "description": "Name, COUNTRY:company (e.g. IE:Ryanair) or Dutch plate"
      },
      "webhook": {
       "type": "string",
       "description": "Optional https URL for alerts"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "kind": "company",
  "token": "wt_0123456789abcdef0123456789abcdef",
  "value": "IE:Ryanair",
  "alerts": "https://factline.dev/v1/watch/alerts?token=wt_0123456789abcdef0123456789abcdef",
  "checks": "register status, name and address checked daily",
  "webhook": null,
  "watch_id": "6f1c2a7e-9d1b-4c55-8f1e-2a9e0f3b7c11",
  "expires_at": "2026-11-10T12:00:00.000Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/factline-watch-create-ongoing-monitor-c0a1387f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from factline.dev](https://www.zero.xyz/host/factline.dev/llms.txt)
