Ingestion Engine

Turn any URL
into structured data.

Ingestion Engine scrapes, crawls, and extracts the web on demand — powered by a direct REST API integration — and hands your app clean markdown or JSON-schema data, ready to use.

Scrape to Markdown Crawl Site Extract Structured Data CRM & PM Integrations Live Knowledge
Scrape to Markdown

One URL in,
clean markdown out

Point scrapeToMarkdown at any page — a product listing, a news article, a landing page — and get back clean, readable markdown with boilerplate, ads, and navigation chrome stripped out.

  • AI-powered rendering handles JS-heavy pages, not just static HTML
  • Strips nav bars, ads, and cookie banners automatically
  • Returns page title, metadata, and markdown body in one call
  • Drop straight into a workflow node, a document, or an AI prompt
Open Ingestion Engine
totalapp.app / ingestion-engine / scrape
https://acme-supplies.com/products/steel-brackets scrapeToMarkdown
200 OK · 1.4s · via Ingestion Engine
# Heavy-Duty Steel Brackets
## Overview
Galvanized steel mounting brackets rated for 200kg static load. Sold in packs of 4...
## Specifications
- Material: Galvanized steel
- Load rating: 200kg
- Pack size: 4 units
Crawl Knowhow

Crawl a whole domain,
not just one page

crawlSite follows links across a domain — with depth and page-count limits you control — and returns every page's content in one structured batch. Ideal for pulling in a supplier catalogue or a documentation site.

  • Set max crawl depth so you don't accidentally ingest an entire internet
  • Page-count limit caps cost and runtime on large sites
  • Include/exclude path patterns to target only the sections you need
  • Live progress as the engine works through the queue of discovered URLs
Start a Crawl
totalapp.app / ingestion-engine / crawl
docs.supplier-portal.com crawlSite
Depth: 3 Limit: 50 pages Found: 37
/docs/getting-started
/docs/api/authentication
/docs/api/products
/docs/api/orders
/docs/api/webhooks (queued)
Extract Structured Data

Define a schema,
get back typed JSON

extractStructuredData pairs LLM-based extraction with a JSON schema you define. Point it at a page and get back exactly the fields you asked for — no manual parsing, no regex.

  • Define field names, types, and descriptions — the LLM does the mapping
  • Works across inconsistent page layouts — no CSS selectors to maintain
  • Confidence and source snippet returned per field for verification
  • Reusable schema templates for common shapes — company, product, contact
Define a Schema
totalapp.app / ingestion-engine / extract
Schema
{
  companyName: string,
  industry: string,
  contactEmail: string,
  valueProposition: string,
  products: string[]
}
Extracted JSON 96% conf.
"companyName": "Nordic Steel AB",
"industry": "Manufacturing",
"contactEmail": "sales@nordicsteel.se",
"valueProposition": "Precision steel components...",
"products": ["Brackets", "Fasteners", ...]
Integrations

Write to screens including
CRM and Project Management

Ingestion Engine is a dedicated web scraping and structured extraction service. Two modules in TotalApp already call it directly, no setup required.

  • CRM lead enrichment — paste a company URL into the "Add Lead" form in Sales Intelligence and it auto-fills company name, industry, contact email, value proposition, and product list
  • Project document import — "Import from URL" in Project Assets crawls an RFP or technical doc site and pulls back structured markdown sections for the project
  • Both integrations use the same IngestionEngine.ts service — one connection, reused everywhere
See It in Sales Intelligence
totalapp.app / sales-intelligence / add-lead
Add Lead
nordicsteel.se Fetched
Company
Nordic Steel AB
Industry
Manufacturing
Contact Email
sales@nordicsteel.se
Products
Brackets, Fasteners
Auto-filled via Ingestion Engine
Live Knowledge

Keeps your AI current,
not frozen in training data

The biggest weakness of a classic API-based model is that it has no idea what happened after training. Ingestion Engine can sit behind the scenes as a live RAG feeder, pulling in fresh context the moment it's needed.

  • Ask "Summarize this company's latest blog posts" from chat or the terminal, and the engine scrapes the live page on the spot to feed the model
  • Smart Wait holds off extraction until heavy animations and async-loaded content finish rendering, so even modern JS-heavy apps get scraped completely
  • No stale cache — every query re-fetches the current state of the page before answering
Try Live Knowledge
totalapp.app / ai-assistant / chat
Summarize this company's latest blog posts
Smart Wait · scraping live page…
Their latest post covers Q3 expansion into the Nordic market, a new sustainability certification, and a hiring push for the Oslo warehouse team.
Fetched 4s ago via Ingestion Engine
All Capabilities

Everything the web can give you

Ingestion Engine wraps a direct web scraping REST API into three core operations, plus the module wiring that puts scraped data straight into your CRM and project workflows.

Scrape to Markdown

Single-page scraping that returns clean markdown with boilerplate stripped, ready for documents, prompts, or workflow nodes.

Crawl Site

Whole-domain crawling with depth and page-limit controls so you can ingest a catalogue or doc site without runaway cost.

Extract Structured Data

Define a JSON schema and let LLM-based extraction pull exactly the fields you need from any page layout.

CRM Lead Enrichment

Add Lead in Sales Intelligence auto-fills company details from a single pasted URL.

Project Document Import

Import from URL in Project Assets crawls an RFP or spec site and returns structured markdown sections.

Tenant-Isolated Requests

Every scrape, crawl, and extract call runs under the requesting tenant's own scope — no cross-tenant data ever mixes.