API Reference
Pull competitive signals into your own tools, dashboards, or workflows.
Authentication
All API endpoints require an API key. Generate one in Dashboard → Settings → API Access.
Pass your key as a query parameter or request header:
# Query parameter
curl https://www.argusintel.net/api/signals?api_key=argus_your_key_here
# Header (preferred for production)
curl https://www.argusintel.net/api/signals \
-H "X-Argus-Key: argus_your_key_here"
Note: API keys start with
argus_ followed by 48 hex characters. Keep your key secret — it's also used as the HMAC secret for webhook signatures.Base URL
https://www.argusintel.net
All endpoints return JSON unless otherwise noted.
List signals All plans
GET/api/signals
Returns an array of signals for companies in your account, sorted newest first.
| Parameter | Type | Description |
|---|---|---|
| api_key | string | Your API key (or use X-Argus-Key header) |
| company_id | integer | Filter to a specific company |
| source | string | Filter by source: github, jobs, news, website, patents, sec, reviews |
| min_importance | integer | Minimum importance score (1–5). Default: 1 |
| since_hours | integer | Only signals from the last N hours. E.g. 24, 168 |
| starred | 0 or 1 | Set to 1 to return only starred signals |
| q | string | Full-text search across title, summary, and company name |
| limit | integer | Max results. Default: 100, max: 200 |
# Get high-importance signals from the last 24 hours
curl "https://www.argusintel.net/api/signals?api_key=argus_...&min_importance=4&since_hours=24"
# Response
[
{
"id": 42,
"company_name": "Notion",
"source": "jobs",
"signal_type": "hiring_spike",
"title": "Hiring spike in ML_AI: 8 of 34 roles (24%)",
"summary": "Notion is aggressively scaling AI infrastructure...",
"importance": 5,
"url": "https://notion.so/careers",
"ts_utc": "2026-03-06T14:22:31",
"starred": 0,
"note": ""
}
]
RSS feed Pro
GET/api/signals/rss
Returns an RSS 2.0 feed of your signals. Plug directly into Slack, Feedly, Zapier, or any RSS reader.
| Parameter | Type | Description |
|---|---|---|
| api_key | string | Your API key |
| min_importance | integer | Minimum importance. Default: 3 |
| company_id | integer | Filter to one company |
# Use in Slack's /feed command or Zapier RSS trigger
https://www.argusintel.net/api/signals/rss?api_key=argus_...&min_importance=4
CSV export All plans
GET/api/signals/export
Download all signals as a CSV file. Supports the same filters as the list endpoint.
| Parameter | Type | Description |
|---|---|---|
| api_key | string | Your API key |
| min_importance | integer | Minimum importance score |
| source | string | Filter by source |
| since_hours | integer | Limit to last N hours |
# Download all signals from the last 7 days as CSV
curl "https://www.argusintel.net/api/signals/export?api_key=argus_...&since_hours=168" \
-o signals.csv
Star and annotate signals All plans
PATCH/api/signals/{id}
Star or unstar a signal, or add a private note. Requires session auth (not API key).
| Field | Type | Description |
|---|---|---|
| starred | boolean | Star or unstar the signal |
| note | string | Private annotation, max 500 chars |
curl -X PATCH https://www.argusintel.net/api/signals/42 \
-H "Content-Type: application/json" \
-H "Cookie: argus_session=YOUR_SESSION" \
-d '{"starred": true, "note": "Share with CEO"}'
Webhook setup Pro
Argus can POST high-importance signals to your endpoint in real time as they're discovered. Set your webhook URL in Dashboard → Settings → Alert Preferences → Outgoing webhook URL.
Webhooks fire when a new signal meets or exceeds your configured minimum importance threshold.
Payload format
// POST to your webhook URL
{
"company": "Notion",
"signals": [
{
"title": "Hiring spike in ML_AI: 8 of 34 roles (24%)",
"summary": "Notion is aggressively scaling AI infrastructure...",
"source": "jobs",
"importance": 5,
"url": "https://notion.so/careers"
}
]
}
Verifying signatures
Every webhook request includes an X-Argus-Signature header. The value is sha256=<hex_digest> where the digest is an HMAC-SHA256 of the raw request body using your API key as the secret.
Always verify signatures before processing webhook payloads to ensure requests come from Argus.
Python
import hmac, hashlib
def verify_signature(body: bytes, signature: str, api_key: str) -> bool:
expected = hmac.new(
api_key.encode(),
body,
hashlib.sha256
).hexdigest()
return hmac.compare_digest(f"sha256={expected}", signature)
# In your Flask/FastAPI handler:
body = await request.body()
sig = request.headers.get("X-Argus-Signature", "")
if not verify_signature(body, sig, "argus_your_key_here"):
return Response(status_code=401)
Node.js
const crypto = require('crypto');
function verifySignature(body, signature, apiKey) {
const expected = crypto
.createHmac('sha256', apiKey)
.update(body)
.digest('hex');
return signature === `sha256=${expected}`;
}
// Express handler:
app.post('/webhook', express.raw({type: 'application/json'}), (req, res) => {
if (!verifySignature(req.body, req.headers['x-argus-signature'], process.env.ARGUS_API_KEY)) {
return res.status(401).send('Invalid signature');
}
const payload = JSON.parse(req.body);
// ... process payload
res.json({ok: true});
});
Signal object
| Field | Type | Description |
|---|---|---|
| id | integer | Unique signal ID |
| company_name | string | Company this signal belongs to |
| source | string | github · jobs · news · website · patents · sec · reviews · producthunt |
| signal_type | string | Fine-grained type, e.g. hiring_spike, new_repo, price_change |
| title | string | Short headline describing the signal |
| summary | string | AI-generated one-sentence strategic interpretation |
| content | string | Raw extracted content (may be empty) |
| importance | integer 1–5 | AI-scored importance: 1=noise, 3=notable, 5=critical |
| url | string | Source URL (may be empty) |
| ts_utc | string | ISO 8601 timestamp in UTC |
| starred | integer 0/1 | Whether you've starred this signal |
| note | string | Your private annotation |
Importance scale
| Score | Label | Examples |
|---|---|---|
| 5 | Critical | Funding round, acquisition, CEO hire, product launch |
| 4 | High | Major hiring spike, pricing change, new patent cluster |
| 3 | Notable | New GitHub repo, moderate news coverage, SEC filing |
| 2 | Low | Minor job postings, review activity, small commits |
| 1 | Noise | Routine activity with no strategic signal |
Errors
| Code | Meaning |
|---|---|
| 401 | Missing or invalid API key / session |
| 402 | Trial expired — upgrade your plan |
| 403 | Forbidden — plan limit reached or not your resource |
| 404 | Resource not found |
| 429 | Rate limited — wait before retrying |