Skip to main content
The canonical layer indexes every named company and feature that appears across ManticScore research runs. These endpoints expose anonymized aggregate stats for each canonical entity — appearance counts, co-occurring features and companies, and a sitemap of every indexable slug. All endpoints on this page are public — no Authorization header required. Responses are aggressively cacheable and never expose user_id, project_id, or any user-identifiable data. Derivative idea texts only appear when the underlying project has been explicitly published.

Get a canonical company

Returns aggregate stats for a canonical company by slug. Rate limit: 60 requests per minute per IP+slug pair.
slug
string
required
Canonical company slug (lowercase, kebab-case).
curl "https://api.manticscore.com/public/canonical/company/expensify"
200 response
{
  "entity": {
    "name": "Expensify",
    "slug": "expensify",
    "domain": "expensify.com",
    "description": "Expense management for teams.",
    "category": "fintech"
  },
  "appearance_count": 42,
  "appearance_breakdown": {
    "research": 38,
    "build_node": 4
  },
  "top_derivative_ideas": [
    {
      "idea": "AI expense tracker for freelancers",
      "created_at": "2026-04-18T10:00:00Z"
    }
  ],
  "related_features": [
    {
      "slug": "receipt-ocr",
      "name": "Receipt OCR",
      "category": "capture",
      "co_occurrences": 12
    }
  ],
  "related_companies": [
    {
      "slug": "ramp",
      "name": "Ramp",
      "domain": "ramp.com",
      "co_occurrences": 9
    }
  ],
  "last_updated": "2026-04-19T08:00:00Z"
}
entity
object
required
Canonical entity descriptor: name, slug, domain, description, category.
appearance_count
number
required
Total number of artifacts (research runs, build nodes, etc.) referencing this company.
appearance_breakdown
object
required
Appearance counts grouped by artifact_type.
top_derivative_ideas
object[]
required
Up to 3 anonymized idea texts from public projects that reference this company. Each entry has idea and created_at. Empty array when no published projects reference the entity.
Up to 5 features that co-occur with this company in artifact links. Sorted by frequency.
Up to 5 other companies that co-occur with this one. Sorted by frequency.
last_updated
string
ISO 8601 timestamp of the most recent canonical row update, or null.
Responses include Cache-Control: public, max-age=300, s-maxage=3600 — browsers cache for 5 minutes, shared caches for 1 hour. Returns 404 if the slug does not exist.

Get a canonical feature

Returns aggregate stats for a canonical feature by slug. Slugs are not globally unique on features — when collisions exist, the most-referenced row wins. Rate limit: 60 requests per minute per IP+slug pair.
slug
string
required
Canonical feature slug.
curl "https://api.manticscore.com/public/canonical/feature/receipt-ocr"
200 response
{
  "entity": {
    "name": "Receipt OCR",
    "slug": "receipt-ocr",
    "category": "capture",
    "description": "Optical character recognition for paper and digital receipts."
  },
  "appearance_count": 27,
  "appearance_breakdown": {
    "research": 24,
    "build_node": 3
  },
  "top_derivative_ideas": [],
  "offered_by": [
    {
      "slug": "expensify",
      "name": "Expensify",
      "domain": "expensify.com",
      "co_occurrences": 12
    }
  ],
  "last_updated": "2026-04-19T08:00:00Z"
}
entity
object
required
Canonical feature descriptor: name, slug, category, description.
appearance_count
number
required
Total number of artifacts referencing this feature.
appearance_breakdown
object
required
Appearance counts grouped by artifact_type.
top_derivative_ideas
object[]
required
Up to 3 anonymized idea texts from public projects that reference this feature.
offered_by
object[]
required
Up to 10 companies that co-occur with this feature in artifact links. Sorted by frequency.
last_updated
string
ISO 8601 timestamp of the most recent canonical reference, or null.
Same edge cache headers as the company endpoint. Returns 404 if the slug does not exist.

Get similar companies

Returns the top-N canonical companies most similar to {slug} by embedding cosine distance. Powers “see also” surfaces on company pages. Rate limit: 60 requests per minute per IP+slug pair.
slug
string
required
Canonical company slug.
limit
integer
default:"10"
Maximum number of similar companies to return. Clamped to the range 1..50.
curl "https://api.manticscore.com/canonical/companies/expensify/similar?limit=5"
200 response
{
  "slug": "expensify",
  "similar": [
    {
      "slug": "ramp",
      "name": "Ramp",
      "domain": "ramp.com",
      "similarity": 0.87,
      "evidence_count": 14
    }
  ],
  "count": 1
}
slug
string
required
The canonical company slug that was queried.
similar
object[]
required
Companies ranked by descending embedding cosine similarity to the target. Each entry has slug, name, domain, similarity (cosine, 0..1, may be null if undefined), and evidence_count — the count of inbound artifact links for the candidate company so callers can rank by both similarity and corpus presence.Returns an empty array when the target company exists but has no embedding, or when no other embedded companies are available.
count
number
required
Number of entries returned in similar.
Responses include Cache-Control: public, max-age=3600, s-maxage=3600 — cacheable for 1 hour at every tier. Returns 404 if the slug does not exist.

Get feature decompositions

Returns the child features connected to {slug} via decomposes_into edges in the canonical knowledge graph. Useful for breaking a high-level capability into its constituent sub-features. When multiple feature rows share the same slug (slugs are not globally unique on features), the most-referenced row is selected — matching the resolution rule used by Get a canonical feature. Rate limit: 60 requests per minute per IP+slug pair.
slug
string
required
Canonical feature slug.
limit
integer
default:"20"
Maximum number of child features to return. Clamped to the range 1..100.
curl "https://api.manticscore.com/canonical/features/expense-management/decompositions?limit=10"
200 response
{
  "slug": "expense-management",
  "decompositions": [
    {
      "slug": "receipt-ocr",
      "name": "Receipt OCR",
      "category": "capture",
      "weight": 0.92,
      "evidence_count": 12,
      "updated_at": "2026-04-19T08:00:00Z"
    }
  ],
  "count": 1
}
slug
string
required
The canonical feature slug that was queried.
decompositions
object[]
required
Child features ranked by evidence_count descending, then weight descending, then name ascending. Each entry has slug, name, category, weight (edge weight, may be null), evidence_count (number of artifacts supporting the edge), and updated_at (ISO 8601 timestamp of the most recent edge update, or null).Returns an empty array when the parent feature exists but has no outgoing decomposes_into edges.
count
number
required
Number of entries returned in decompositions.
Responses include Cache-Control: public, max-age=3600, s-maxage=3600 — cacheable for 1 hour at every tier. Returns 404 if the slug does not exist.

Get the canonical sitemap

Returns every canonical company and feature slug along with its display name and last-updated timestamp. Used by the public site to generate sitemap.xml. Rate limit: 30 requests per minute per IP.
curl "https://api.manticscore.com/public/canonical/sitemap"
200 response
{
  "companies": [
    {"slug": "expensify", "name": "Expensify", "last_updated": "2026-04-19T08:00:00Z"}
  ],
  "features": [
    {"slug": "receipt-ocr", "name": "Receipt OCR", "last_updated": "2026-04-19T08:00:00Z"}
  ]
}
companies
object[]
required
All canonical companies with non-null slug. Each entry has slug, name, and last_updated.
features
object[]
required
Distinct canonical feature slugs, deduplicated by slug. Each entry has slug, name, and last_updated.
Responses include Cache-Control: public, max-age=3600, s-maxage=3600 — cacheable for 1 hour at every tier.