Your API Keys
Create and manage keys that authenticate requests to the WatchfulEye Intelligence API. Keys are shown in full only at creation time — copy and store them in a secrets manager immediately.
Create a new key
API Documentation
REST endpoints for intelligence articles, predictions, market mood, causal hypotheses, and more. All requests require an x-api-key header.
Authentication
Every request must include your API key in the x-api-key header. Keys are prefixed with wfe_ followed by 64 hex characters.
curl -H "x-api-key: wfe_YOUR_KEY_HERE" \ https://api.watchfuleye.us/api/v1/articles?limit=5
Rate limits
Each key has a per-minute request budget (default 100 req/min, configurable up to 1000). Exceeding the limit returns HTTP 429. The budget refills 60 seconds after the first request in a window.
Errors
All endpoints return JSON with a success boolean. On failure, error contains a human-readable message.
- 401 — missing, invalid, expired, or revoked key
- 403 — key lacks the required scope
- 404 — resource not found
- 429 — rate limit exceeded
- 500 — server error
Articles
limit (1–100, default 20), offset, category, min_impactSearch
Intel reports
limit (1–50, default 10)Predictions
limit, offset, status (evaluated|pending)Market mood
Called It — verified predictions
Predictions WatchfulEye published before the event happened, then confirmed by independent reporting. Every row passes the same admissibility gate as the in-app Called It feed: status=confirmed, slug present, at least one verified confirmation event, max verifier confidence ≥ 85, not flagged as novelty failure.
limit (1–50, default 10)limit (1–100), offset, status = wins | losses | all (default wins)Hypotheses
limit, status (default active)Narratives
Asset exposures
Saved articles
Conversations
Credits
Programmatic key management
Recommended: sign in once via POST /api/auth/login to receive a JWT, then call the endpoints below with header Authorization: Bearer <token>. This is the same login the mobile and web apps use, so any account that can log into the app works here.
{ username, password } · Returns { token, user }Authorization: Bearer <token>.{ name?, scopes?, rateLimit?, expiresInDays? } · Requires Bearer token.Legacy (still supported for accounts with a local password — does not work for SSO-only or legacy-proxied accounts):
{ username, password, name?, scopes?, rateLimit?, expiresInDays? }{ username, password }{ username, password, keyId }Usage Examples
Drop-in snippets showing how to call the API from common languages and tools.
List the latest 10 critical articles
curl -H "x-api-key: $WFE_API_KEY" \ "https://api.watchfuleye.us/api/v1/articles?limit=10&min_impact=4"
const res = await fetch(
"https://api.watchfuleye.us/api/v1/articles?limit=10&min_impact=4",
{ headers: { "x-api-key": process.env.WFE_API_KEY } }
);
const { data } = await res.json();
console.log(data);
import os, requests
r = requests.get(
"https://api.watchfuleye.us/api/v1/articles",
params={"limit": 10, "min_impact": 4},
headers={"x-api-key": os.environ["WFE_API_KEY"]},
)
print(r.json()["data"])
Get current market mood
curl -H "x-api-key: $WFE_API_KEY" https://api.watchfuleye.us/api/v1/market/mood
const r = await fetch("https://api.watchfuleye.us/api/v1/market/mood", {
headers: { "x-api-key": process.env.WFE_API_KEY }
});
console.log(await r.json());
import os, requests
r = requests.get("https://api.watchfuleye.us/api/v1/market/mood",
headers={"x-api-key": os.environ["WFE_API_KEY"]})
print(r.json())