IB IntelBrief

API Reference

The IntelBrief REST API lets you pull competitive signals, weekly digests, and account data into your CRM, automations, or internal dashboards. Available on the Business plan.

Authentication

All API requests require a Bearer token in the Authorization header. Generate your API key in Settings → API.

Authorization: Bearer ibk_your_key_here
Business plan only. API access requires the Business plan ($50/mo). Keys on lower plans return 403 Forbidden.

Keep your key secret — it grants full read/write access to your account data. If compromised, revoke it from Settings and generate a new one.

Base URL

https://intelbrief.xyz/api/v1

All endpoints are HTTPS only. Responses are JSON with Content-Type: application/json.

Errors

StatusMeaning
400Bad request — missing or invalid parameter. Check the error field in the response body.
401Missing or invalid API key.
403API access requires the Business plan.
404Resource not found or does not belong to your account.
500Internal server error. Retry with exponential backoff.

Error responses always include an error string:

{ "error": "Account limit (100) reached for your plan" }

Accounts

An "account" is any entity you monitor — a competitor, customer, or prospect. Accounts correspond to what the dashboard calls Competitors / Customers / Prospects.

List accounts

GET/api/v1/accounts

Returns all accounts for your workspace, sorted alphabetically by name.

curl https://intelbrief.xyz/api/v1/accounts \
  -H "Authorization: Bearer ibk_your_key_here"
[
  {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "name": "Acme Corp",
    "domain": "acme.com",
    "type": "competitor",
    "status": "active",
    "createdAt": "2025-01-15T09:00:00.000Z"
  }
]

Create account

POST/api/v1/accounts

Creates a new monitored account and queues its first scrape jobs using your default source preferences from Settings.

FieldDescription
namerequiredCompany name, up to 200 characters.
domainrequiredBare domain without protocol, e.g. acme.com. Must be unique per workspace.
typeoptionalcompetitor (default), client, or prospect.
curl -X POST https://intelbrief.xyz/api/v1/accounts \
  -H "Authorization: Bearer ibk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"name":"Acme Corp","domain":"acme.com","type":"competitor"}'
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "name": "Acme Corp",
  "domain": "acme.com",
  "type": "competitor",
  "status": "pending",
  "createdAt": "2025-06-01T10:00:00.000Z"
}

Returns 201 Created on success. Accounts created through the API are picked up by the next weekly scan (Sunday); signals appear in /signals after that scan.

Signals

Signals are individual detected changes — a pricing update, new job posting, product launch, etc. Each signal has an importance level classified by AI: critical, notable, or minor.

List signals

GET/api/v1/signals
ParamDescription
daysoptionalLook-back window in days. Default 7, max 90.
importanceoptionalComma-separated filter: critical, notable, minor. Default: all three.
account_idoptionalUUID of a specific account. Omit to return signals across all accounts.
limitoptionalMax signals to return. Default 100, max 500.
curl "https://intelbrief.xyz/api/v1/signals?days=14&importance=critical,notable&limit=50" \
  -H "Authorization: Bearer ibk_your_key_here"
[
  {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "accountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "changeType": "pricing",
    "importance": "critical",
    "summary": "Acme Corp removed the free tier from their pricing page",
    "detectedAt": "2025-06-10T14:23:00.000Z"
  }
]

Digests

Weekly AI-edited briefs select the stories worth reading from the previous week's signals across your accounts (under 400 words, never repeating a story already published). Digests are generated every Monday morning (between 4 and 7 AM UTC) and sent to your email.

Get latest digest

GET/api/v1/digests/latest

Returns the most recently generated digest. Returns 404 if no digests have been generated yet (new accounts wait until the next Monday cron).

curl https://intelbrief.xyz/api/v1/digests/latest \
  -H "Authorization: Bearer ibk_your_key_here"
{
  "id": "d9e8f7a6-b5c4-3210-fedc-ba9876543210",
  "weekOf": "2025-06-09",
  "status": "sent",
  "createdAt": "2025-06-09T04:00:00.000Z",
  "content": {
    "headline": "3 critical signals this week",
    "sections": [...]
  }
}

List digests

GET/api/v1/digests
ParamDescription
limitoptionalNumber of digests to return. Default 10, max 52 (one year of weeklies).
curl "https://intelbrief.xyz/api/v1/digests?limit=4" \
  -H "Authorization: Bearer ibk_your_key_here"

Returns an array of digest objects in descending order (most recent first), each with the same shape as the /latest response.