FOR DEVELOPERS AND AI BUILDERS

Company and person data your agents can call.

Sixty-plus data capabilities and seven agents behind one typed REST surface, an MCP server and a CLI: identify companies, enrich records, verify contacts, read signals and push audiences from your product, your cron jobs or your own agents.

TYPED END TO ENDMCP NATIVEBUDGETS BELOW YOUR CODE
⟨ THE JOB TODAY ⟩

Where the week actually goes.

01 /

Provider sprawl

Shipping one enrichment feature means integrating a company-data vendor, a contact vendor, a verifier and an intent feed, each with its own auth, schema and billing surprise.

02 /

Waterfalls are your problem to build

Try source A, fall back to B, dedupe, normalize, retry, and pay for the misses. The plumbing is most of the work and none of the product.

03 /

Agents need governed tools

Handing an LLM raw vendor keys is how budgets die. Assistants need scoped, metered, schema-described tools with hard ceilings and a log.

ONE CALLPOST /api/v1
curl -X POST .../api/v1/tools/person_enrich \
  -H "Authorization: Bearer ek_live_..." \
  -d '{"email": "jane@acme.com"}'

{ "ok": true,
  "person": { "title": "VP Sales", "company": "acme.com",
              "email_status": "valid", "phone": "+1…" },
  "sources": ["waterfall:2/4"], "cost_usd": 0.06 }
WITH ASTROFABRIC

What changes when agents carry the work.

One surface, typed end to end

Company discovery, enrichment, people search, verification, signals, lists and audiences behind POST /api/v1, zod-validated inputs, structured errors, OpenAPI 3.1 published.

openapi 3.1 · zod schemas

The waterfall, done

One call per field family; the platform tries sources in order, charges only for the one that answered and returns the provenance with the value.

sources: ["waterfall:2/4"]

MCP native

One URL turns the whole data catalog into tools inside Claude, Cursor or your own agents, OAuth sign-in, scope-checked per call, same meter as REST.

one URL · claude · cursor

Async that behaves

Queue list-scale jobs, poll or take signed webhooks with at-least-once delivery. Idempotency-Key makes retries safe; the 402 at the ceiling is clean and catchable.

signed HMAC · reserve → execute → settle
MISSIONS YOU WOULD RUN

Described in plain language. Delivered end to end.

DATA FOR AGENTS

Enrichment endpoint for your product

POST a domain or an email, render the company record and verified contact in your product. One endpoint replaces four vendor integrations.

EnrichmentEmail VerificationREST
ONE MISSION · EVIDENCE ATTACHED
DATA FOR AGENTS

Nightly enrichment cron → your DB

A cron that enriches new signups with firmographics, stack and intent, writes back to your database, and posts anomalies to Slack.

FirmographicsIntent DataWebhooks
ONE MISSION · EVIDENCE ATTACHED
DATA FOR AGENTS

MCP: your assistant, our data tools

Add the MCP URL to your agent config; it calls company, person and signal tools under your workspace’s budget and returns provenance with every value.

MCPAgents
ONE MISSION · EVIDENCE ATTACHED

Three of a hundred. The full playbook library ships in every workspace, and anything you can describe becomes a mission.

GOVERNED AUTONOMY

Safe enough to actually turn on.

⟨ CONTROL PLANE ⟩ENFORCED AT RUNTIME · NOT ADVISORY

Scoped keys

Mint keys per surface with exactly the scopes they need. Revoke in one click; the audit log remembers.

Tenant isolation is structural

Every query is workspace-bound at the data layer with row-level security behind it. Careless code returns zero rows.

Contract-grade errors

401/403/402/409/422 with machine-readable bodies. Budget exhaustion is a status code you handle in code, ahead of any invoice.

FAQ

Questions, answered.

What does the developer surface include?

A public REST API with scoped bearer keys, an MCP server so assistants like Claude and Cursor use the data tools natively, a zero-dependency CLI, signed webhooks for job completions, and an OpenAPI spec generated from the same registries the runtime executes, so the docs cannot drift from reality.

How is data provenance exposed?

Every enriched value returns with the source family that filled it and the date, and list-scale jobs return per-field coverage. Your product can show where a number came from, and your agents can decide whether a value is fresh enough to act on.

How do we meter and cap programmatic usage?

Every call meters against the same credit ledger as console missions, with per-workspace ceilings and daily caps enforced at the platform level. Paid sources reserve before they run and settle after, keys are scoped and revocable individually, and a leaked credential is a one-key rotation.

⟨ DEPLOY ASTROFABRIC ⟩

Ship the data feature this sprint.

One key. One schema. Company, person and signal data behind it.