Crustdata
A RocketRide tool node that gives an AI agent B2B company and people search powered by Crustdata's discovery API.
Experimental: this node is marked
experimentaland may change. The endpoints and request/response schema here are read directly from Crustdata's versioned API reference (x-api-version: 2025-11-01), but no live account has exercised it end-to-end — see #2129.
What it does
When an agent calls company_search or person_search, the node runs a filter-based
search against Crustdata's POST /company/search or POST /person/search REST API and
hands back structured records: firmographics, funding, headcount, and hiring signals
for companies; title, work history, education, and verified contact info for people.
Filters are a list of {field, type, value} conditions (e.g. {"field": "basic_info.primary_domain", "type": "=", "value": "acme.com"}) — the node wraps them
into Crustdata's {"op": <match>, "conditions": [...]} group form before sending, so
callers just supply a flat list plus an optional match ("and"/"or", default "and").
Company search's op enum only has those two values; person search's third value,
all_of, is a specialized nested-array operator (all conditions on one employment
or education path, matched across possibly-different array elements) rather than a
generic combinator, and isn't exposed here. This is a search/discovery tool
(find records matching criteria), not a single-entity enrichment lookup by domain
or email.
Pagination is cursor-based, per Crustdata's API: a response's next_cursor is passed
back as cursor on the next call. Crustdata's docs note that changing filters or
sorts between pages invalidates the cursor, so pass an explicit sorts when
paginating to keep ordering stable.
Implemented with the requests library, no Crustdata SDK is used. Requests time out
after 30 seconds and are retried up to 3 times with exponential backoff (2 s base delay)
on rate limits (HTTP 429), server errors (5xx), and timeouts. Failures are returned to
the agent as a structured {"success": false, "error": ...} result rather than raised.
The node has no pipeline lanes (lanes is {}). Only agent runtimes reach it, through
the invoke capability.
Configuration
| Field | Type | Description |
|---|---|---|
apikey | string | Default empty. Crustdata API key (from https://crustdata.com) |
defaultLimit | integer | Default 10. Default maximum number of results per search (1-1000) |
The config values act as defaults; the agent can override limit per call.
Available tools
company_search
Search Crustdata's company index by filter criteria (industry, region, headcount,
funding, current company, and more). filters is the only required parameter.
person_search
Search Crustdata's people index by filter criteria (current company, current title,
region, and more). filters is the only required parameter.
| Tool | Description |
|---|---|
company_search | Search Crustdata for companies matching one or more filters. Returns structured company records: firmographics, funding history, headcount, and hiring signals. Use this to find prospects or research accounts by criteria, not to look up one already-known company by name. |
person_search | Search Crustdata for people matching one or more filters. Returns structured profiles: name, title, work history, education, and verified contact info where available. Use this to find or enrich people by criteria. |
Both accept filters (required, a list of {field, type, value} conditions), plus
optional match (how conditions combine), sorts, limit, and cursor. Both return
an object with success, filters (echoed back), count, results (array of raw
Crustdata records — exact per-record fields aren't remapped), next_cursor and
total_count (from Crustdata's response, when present), and error on failure.
Authentication
Drop your Crustdata API key into the API Key config field. The field is encrypted
at rest and masked in the UI. Alternatively, set the CRUSTDATA_API_KEY environment
variable on the engine host — the config field takes precedence when both are set. The
key is sent to Crustdata as Authorization: Bearer <key>, alongside a required
x-api-version: 2025-11-01 header on every request.
Crustdata's documentation indicates real-time, live web-derived enrichment is an enterprise/plan-gated feature separate from cached-database search results — which tier a given API key unlocks isn't confirmed here (see #2129).
Schema
| Field | Type | Description | Default |
|---|---|---|---|
tool_crustdata.apikey | string | API Key Crustdata API key (from https://crustdata.com) | "" |
tool_crustdata.defaultLimit | integer | Default Result Limit Default maximum number of results per search (1-1000) | 10 |
Dependencies
requests