Skip to main content

Need2Watch API (1.0.0)

Download OpenAPI specification:Download

AI-powered change monitoring API. Monitor web pages for changes and get notified when important updates occur.

Authentication

User registration, login, and session management

Register User

Create a new user account. Includes 7-day free trial.

Request Body schema: application/json
required
email
required
string <email>
password
required
string >= 8 characters

Minimum 8 characters, must include uppercase, lowercase, and number

Responses

Request samples

Content type
application/json
{
  • "email": "developer@example.com",
  • "password": "SecurePassword123!"
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "accessToken": "string",
  • "refreshToken": "string"
}

Login

Authenticate and receive access tokens

Request Body schema: application/json
required
email
required
string <email>
password
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "accessToken": "string",
  • "refreshToken": "string"
}

Refresh Token

Exchange refresh token for new access token

Request Body schema: application/json
required
refreshToken
required
string

Refresh token from login/register response

Responses

Request samples

Content type
application/json
{
  • "refreshToken": "string"
}

Response samples

Content type
application/json
{
  • "accessToken": "string"
}

Logout

Invalidate refresh token

Authorizations:
BearerAuthApiKeyAuth
Request Body schema: application/json
required
refreshToken
required
string

Responses

Request samples

Content type
application/json
{
  • "refreshToken": "string"
}

Response samples

Content type
application/json
{
  • "success": true
}

Monitors

Create and manage web page monitors

Create Monitor

Create a new web page monitor using natural language intent or direct URL

Authorizations:
BearerAuthApiKeyAuth
Request Body schema: application/json
required
mode
required
string
Enum: "nlp" "url"

Monitor creation mode

intent
string

Natural language intent (required for nlp mode)

name
string

Monitor name (required for url mode)

url
string <uri>

Page URL (required for url mode)

extractionPrompt
string

VLM extraction prompt (optional for url mode)

sensitivity
number [ 0 .. 1 ]
Default: 0.5

Threshold for change detection (0=more alerts, 1=fewer alerts)

checkIntervalSeconds
integer >= 900
Default: 900

Check frequency in seconds (minimum 15 minutes)

Responses

Request samples

Content type
application/json
Example
{
  • "mode": "nlp",
  • "intent": "Monitor iPhone 16 Pro price on Amazon",
  • "sensitivity": 0.5,
  • "checkIntervalSeconds": 3600
}

Response samples

Content type
application/json
{
  • "id": "mon-abc123",
  • "user_id": "string",
  • "name": "Monitor iPhone 16 Pro price on Amazon",
  • "mode": "nlp",
  • "intent": "string",
  • "status": "active",
  • "sensitivity": 0.5,
  • "check_interval_seconds": 3600,
  • "source_count": 3,
  • "last_check_at": 1706198400000,
  • "created_at": 1706112000000,
  • "updated_at": 1706198400000,
  • "interpreted_as": {
    }
}

List Monitors

Get paginated list of all monitors

Authorizations:
BearerAuthApiKeyAuth
query Parameters
page
integer >= 1
Default: 1

Page number (1-indexed)

limit
integer [ 1 .. 100 ]
Default: 20

Items per page

Responses

Response samples

Content type
application/json
{
  • "monitors": [
    ],
  • "pagination": {
    }
}

Get Monitor

Get details of a specific monitor

Authorizations:
BearerAuthApiKeyAuth
path Parameters
id
required
string

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "id": "mon-abc123",
  • "user_id": "string",
  • "name": "Monitor iPhone 16 Pro price on Amazon",
  • "mode": "nlp",
  • "intent": "string",
  • "status": "active",
  • "sensitivity": 0.5,
  • "check_interval_seconds": 3600,
  • "source_count": 3,
  • "last_check_at": 1706198400000,
  • "created_at": 1706112000000,
  • "updated_at": 1706198400000,
  • "interpreted_as": {
    }
}

Update Monitor

Update monitor settings

Authorizations:
BearerAuthApiKeyAuth
path Parameters
id
required
string

Monitor ID

Request Body schema: application/json
required
status
string
Enum: "active" "paused"
sensitivity
number [ 0 .. 1 ]
checkIntervalSeconds
integer >= 900

Responses

Request samples

Content type
application/json
{
  • "status": "active",
  • "sensitivity": 1,
  • "checkIntervalSeconds": 900
}

Response samples

Content type
application/json
{
  • "id": "mon-abc123",
  • "user_id": "string",
  • "name": "Monitor iPhone 16 Pro price on Amazon",
  • "mode": "nlp",
  • "intent": "string",
  • "status": "active",
  • "sensitivity": 0.5,
  • "check_interval_seconds": 3600,
  • "source_count": 3,
  • "last_check_at": 1706198400000,
  • "created_at": 1706112000000,
  • "updated_at": 1706198400000,
  • "interpreted_as": {
    }
}

Delete Monitor

Delete a monitor permanently

Authorizations:
BearerAuthApiKeyAuth
path Parameters
id
required
string

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Trigger Check

Manually trigger an immediate check for changes

Authorizations:
BearerAuthApiKeyAuth
path Parameters
id
required
string

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Check scheduled",
  • "monitorId": "string"
}

Webhooks

Configure webhooks for change notifications

Create Webhook

Register a webhook URL for change notifications

Authorizations:
BearerAuthApiKeyAuth
Request Body schema: application/json
required
url
required
string <uri>

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
{
  • "id": "wh-123456",
  • "url": "string",
  • "secret": "string",
  • "active": true,
  • "created_at": 0
}

List Webhooks

Get all registered webhooks (secret hidden)

Authorizations:
BearerAuthApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "webhooks": [
    ]
}

Delete Webhook

Deactivate a webhook

Authorizations:
BearerAuthApiKeyAuth
path Parameters
id
required
string

Webhook ID

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Account

Account settings and API key management

Create API Key

Generate a new API key for programmatic access

Authorizations:
BearerAuthApiKeyAuth
Request Body schema: application/json
required
name
required
string

Descriptive name for the API key

Responses

Request samples

Content type
application/json
{
  • "name": "Production Server"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "key": "n2k_live_abc123xyz789",
  • "created_at": 0
}

List API Keys

Get all API keys (keys hidden)

Authorizations:
BearerAuthApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "apiKeys": [
    ]
}

Delete API Key

Revoke an API key

Authorizations:
BearerAuthApiKeyAuth
path Parameters
id
required
string

API Key ID

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Health Check

Check API health and service status

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "timestamp": 1706198400000,
  • "version": "0.1.0",
  • "checks": {
    }
}