Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.manticscore.com/llms.txt

Use this file to discover all available pages before exploring further.

The Signals API powers ManticScore’s competitive intelligence layer. You add companies to a watchlist, configure web monitors that crawl their sites on a schedule, and the platform surfaces AI-enriched signals — funding announcements, product launches, hiring trends, and pricing changes — ranked by relevance. The score endpoint gives you a single number that reflects how actively your environment is being monitored.

List signals

Returns signals across all monitored companies. Filter by company or signal type using query parameters.
limit
number
default:"50"
Maximum signals to return. Upper bound: 200.
offset
number
default:"0"
Number of signals to skip for pagination.
company_id
string
UUID of a specific company. Omit to return signals for all monitored companies.
signal_type
string
Filter by signal type string (e.g. funding, product_launch, hiring).
curl "https://api.manticscore.com/signals?limit=50&company_id=9f4e2a1b-..." \
  -H "Authorization: Bearer <token>"
200 response
{
  "signals": [
    {
      "id": "a1b2c3d4-...",
      "company_id": "9f4e2a1b-...",
      "signal_type": "funding",
      "title": "Series B announced",
      "summary": "Acme Corp raises $40M Series B led by Sequoia.",
      "ai_insight": "Signals aggressive expansion into enterprise segment.",
      "relevance_score": 0.85,
      "signal_tag": "threat",
      "source_url": "https://techcrunch.com/...",
      "cluster_id": null,
      "detected_at": "2026-04-18T09:00:00Z",
      "created_at": "2026-04-18T09:05:00Z",
      "company_name": "Acme Corp",
      "company_domain": "acmecorp.com",
      "company_logo_url": "https://logo.clearbit.com/acmecorp.com"
    }
  ],
  "total": 42
}
signals
object[]
required
total
number
required
Total number of signals matching the query (before pagination).

Companies

List companies

Returns all companies in your watchlist with their full enriched profiles.
curl "https://api.manticscore.com/signals/companies" \
  -H "Authorization: Bearer <token>"
200 response
{
  "companies": [
    {
      "id": "9f4e2a1b-...",
      "name": "Acme Corp",
      "domain": "acmecorp.com",
      "relationship": "watchlist",
      "sector": "fintech",
      "description": "B2B expense management platform."
    }
  ]
}

Discover companies

Search for companies to add to your watchlist. Powered by Exa’s web search index.
q
string
required
Search query. Between 2 and 200 characters.
limit
number
default:"10"
Maximum results to return. Upper bound: 20.
curl "https://api.manticscore.com/signals/companies/discover?q=fintech+expense&limit=10" \
  -H "Authorization: Bearer <token>"
200 response
{
  "companies": [
    {
      "name": "Expensify",
      "domain": "expensify.com",
      "description": "Expense management and receipt scanning platform.",
      "already_added": false
    }
  ],
  "query": "fintech expense"
}
Returns 503 if the Exa search integration is not configured on this deployment.

Add a company

Creates a company entry and enqueues Exa enrichment. If you supply a domain, a web monitor is created automatically.
name
string
required
Display name for the company.
domain
string
Company domain (e.g. acmecorp.com). Providing a domain triggers enrichment and auto-creates a web monitor.
relationship
string
default:"watchlist"
How this company relates to your work. Currently only watchlist is supported.
sector
string
Industry sector label (e.g. fintech, devtools).
description
string
Free-text description of the company.
curl -X POST https://api.manticscore.com/signals/companies \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"name": "Acme Corp", "domain": "acmecorp.com", "relationship": "watchlist", "sector": "fintech"}'
200 response
{
  "company": {
    "id": "9f4e2a1b-...",
    "name": "Acme Corp",
    "domain": "acmecorp.com",
    "relationship": "watchlist",
    "sector": "fintech"
  }
}

Get a company

Returns the full company profile plus a 30-day signal summary.
curl "https://api.manticscore.com/signals/companies/9f4e2a1b-..." \
  -H "Authorization: Bearer <token>"
200 response
{
  "id": "9f4e2a1b-...",
  "name": "Acme Corp",
  "domain": "acmecorp.com",
  "sector": "fintech",
  "signal_summary": {
    "total_30d": 10,
    "threats": 3,
    "opportunities": 5,
    "recent_7d": 4
  }
}
signal_summary
object

Update a company

Accepts any subset of fields. Changing the domain triggers re-enrichment and creates a new monitor automatically.
name
string
Updated display name.
domain
string
New domain. Changing this re-enriches the company and auto-creates a monitor.
relationship
string
Relationship type.
sector
string
Industry sector.
description
string
Updated description.
curl -X PATCH "https://api.manticscore.com/signals/companies/9f4e2a1b-..." \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"sector": "payments"}'
Returns the full updated company row on 200.

Enrich a company

Queues an Exa enrichment job to refresh the company’s profile data.
curl -X POST "https://api.manticscore.com/signals/companies/9f4e2a1b-.../enrich" \
  -H "Authorization: Bearer <token>"
200 response
{"queued": true, "company_id": "9f4e2a1b-..."}

Delete a company

curl -X DELETE "https://api.manticscore.com/signals/companies/9f4e2a1b-..." \
  -H "Authorization: Bearer <token>"
200 response
{"deleted": true}

List signals for a company

limit
number
default:"50"
Maximum signals to return. Upper bound: 200.
signal_type
string
Filter to a specific signal type.
curl "https://api.manticscore.com/signals/companies/9f4e2a1b-.../signals?limit=50" \
  -H "Authorization: Bearer <token>"
200 response
{
  "signals": [],
  "total": 0,
  "company_id": "9f4e2a1b-..."
}

Get company highlights

Returns a summarized view of recent signal activity, agent metrics, and the last crawl timestamp — useful for rendering a company card.
curl "https://api.manticscore.com/signals/companies/9f4e2a1b-.../highlights" \
  -H "Authorization: Bearer <token>"
200 response
{
  "company_id": "9f4e2a1b-...",
  "company_name": "Acme Corp",
  "agent_metrics": {},
  "signal_summary": {"total_30d": 10, "threats": 3, "opportunities": 5, "recent_7d": 4},
  "last_crawled_at": "2026-04-18T06:00:00Z"
}

Get company snapshots

Returns point-in-time data snapshots captured during past enrichment runs.
limit
number
default:"20"
Maximum snapshots to return. Upper bound: 100.
curl "https://api.manticscore.com/signals/companies/9f4e2a1b-.../snapshots?limit=20" \
  -H "Authorization: Bearer <token>"
200 response
{
  "snapshots": [
    {
      "id": "c4d5e6f7-...",
      "data": {},
      "created_at": "2026-04-18T06:00:00Z"
    }
  ]
}

Monitors

Monitors define which URLs to crawl and how often. When you add a company with a domain, ManticScore creates a monitor automatically. Use these endpoints to view and control your monitors directly.

List monitors

curl "https://api.manticscore.com/signals/monitors" \
  -H "Authorization: Bearer <token>"
200 response
{
  "monitors": [
    {
      "id": "d1e2f3a4-...",
      "company_id": "9f4e2a1b-...",
      "crawl_frequency": "daily",
      "is_active": true,
      "last_crawl_at": "2026-04-18T06:00:00Z",
      "last_crawl_status": "success",
      "crawl_count": 12,
      "created_at": "2026-04-10T10:00:00Z"
    }
  ]
}
monitors
object[]

Create a monitor

company_id
string
required
UUID of the company to monitor.
crawl_urls
string[]
required
List of URLs to crawl during each run (e.g. homepage, blog, pricing page).
crawl_frequency
string
default:"daily"
How often to run the crawl. Either daily or weekly.
curl -X POST https://api.manticscore.com/signals/monitors \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"company_id": "9f4e2a1b-...", "crawl_urls": ["https://acmecorp.com", "https://acmecorp.com/blog"], "crawl_frequency": "daily"}'
201 response
{
  "monitor": {
    "id": "d1e2f3a4-...",
    "company_id": "9f4e2a1b-...",
    "crawl_frequency": "daily",
    "is_active": true,
    "crawl_count": 0
  }
}

Trigger an immediate crawl

Runs a crawl right now, outside the regular schedule. The job is enqueued asynchronously.
curl -X POST "https://api.manticscore.com/signals/monitors/d1e2f3a4-.../run" \
  -H "Authorization: Bearer <token>"
200 response
{"queued": true, "monitor_id": "d1e2f3a4-..."}

Competitive score

Returns a single score that summarizes how active your competitive monitoring is.
curl "https://api.manticscore.com/signals/score" \
  -H "Authorization: Bearer <token>"
200 response
{
  "score": 75,
  "status": "active",
  "signal_count": 42,
  "recent_count": 12
}
score
number
required
Competitive position score from 0 to 100.
status
string
required
gathering while monitors are still building signal history; active once you have sufficient coverage.
signal_count
number
required
Total signals collected across all monitored companies.
recent_count
number
required
Signals detected in the last 7 days.