REST API

Read your competitor data from anywhere. Tokens live under Settings → API tokens inside the app.

Authentication

Every request must include a bearer token:

Authorization: Bearer cw_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Tokens are shown once at creation. If you lose one, create a new one and revoke the old.

Base URL

https://trident-watch.vercel.app/api/v1

GET /api/v1/competitors

Returns every competitor you're tracking.

curl https://trident-watch.vercel.app/api/v1/competitors \
  -H "Authorization: Bearer cw_xxx..."

GET /api/v1/changes

Returns the change-event feed. Query params:

  • limit — 1–500, default 100
  • event_type — one of price_change, stock_out, restock, new_product, removed_product, inventory_low
  • competitor_id — filter to a specific competitor
  • since — ISO timestamp; only events after
curl 'https://trident-watch.vercel.app/api/v1/changes?event_type=price_change&limit=50' \
  -H "Authorization: Bearer cw_xxx..."

GET /api/v1/matches

Side-by-side matches between your products and competitor products.

curl https://trident-watch.vercel.app/api/v1/matches \
  -H "Authorization: Bearer cw_xxx..."

Outgoing webhooks (push instead of pull)

If you'd rather receive events as they happen, configure an outgoing webhook in Settings → Outgoing webhooks. We POST a signed JSON body with X-Foresight-Signature (HMAC-SHA256 of the raw body using the secret you saved once).

POST /api/v1/competitors

Track a new competitor. Body: { "domain": "competitor.com" }. Honors your plan limit.

curl -X POST https://trident-watch.vercel.app/api/v1/competitors \
  -H "Authorization: Bearer cw_xxx..." \
  -H "Content-Type: application/json" \
  -d '{"domain":"allbirds.com"}'

Browser extension

Drop-in MV3 extension at /extension/manifest.json. Load it in Chrome via chrome://extensions → Load unpacked pointing at the public/extension/ folder of this repo. Set your token once; click the icon on any storefront to add it.

Slack slash command

Create a slash command in your Slack workspace pointed at:

https://trident-watch.vercel.app/api/slack/command

Set SLACK_SIGNING_SECRET in Vercel env. Usage in Slack:

/competitor cw_xxx                   → list every competitor you track
/competitor cw_xxx allbirds.com     → stats for one competitor

Zapier / Make / n8n

The outgoing-webhooks system is the easiest fit. In any of those tools, create a webhook trigger and paste the URL into Settings → Outgoing webhooks. We POST every event as a signed JSON body.

If you prefer pull, use scheduled HTTP requests against GET /api/v1/changes?since=<last_seen> and track the latest detected_at in your tool of choice.

Rate limits

One request per second per token is fine. Hammer it and you may see 429 responses without warning.