Skip to content
looot docs
Esc
↑↓navigate↵open⌘Jpreview
On this page

List the technologies a company's site runs

Get a company's tech stack from its domain through looot's company.technographics job.

company.technographics lists the technologies a site runs (analytics, hosting, payments, frameworks and more), read from the domain. It is part of the account research guide; this page covers it on its own.

What it costs

search {"filters": {"capability": "company.technographics"}, "prefer": "cheapest"}

On 2026-09-28 the cheapest listed provider priced around $0.01 per result, and one provider on the job runs free. Check the live prices and balance before a batch of domains.

Run it

Send domain:

run {"endpointId": "job:company.technographics", "input": {"domain": "example.com"}, "idempotencyKey": "tech-example-1", "fallback": true}
curl -s "https://api.looot.ai/v1/runs?wait=20" \
  -H "Authorization: Bearer $LOOOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "endpointId": "job:company.technographics",
    "input": {"domain": "example.com"},
    "idempotencyKey": "tech-example-1",
    "fallback": true
  }'
looot run job:company.technographics --input '{"domain": "example.com"}' --wait

Read the stack

This job has no normalized map yet, so read the technology list from result. Providers differ in how they group results (by category, by vendor); check servedProviderId so you know whose shape you are reading.

What the answer looks like

Field What it is
status completed, failed, queued, running
outcome hit, weak, miss, error, rejected, skipped or pending
servedProviderId the provider that answered
actualCost what this run charged
route.summary fallback runs only

On a miss or error

  • A domain with nothing detected: outcome is miss, not an error. Some sites genuinely run little the providers fingerprint.
  • A domain that is not reachable: check the domain is a bare host (example.com, not https://example.com/about) before you run it again.
  • insufficient_balance: the run is blocked and not charged. Use top_up, then retry with a new idempotencyKey.

Was this page helpful?