# Identify companies visiting your website — Ravn

Canonical: https://askravn.com/use-cases/identify-website-visitors

Use case

# See which companies visit. Not which people.

Pull visitor IPv4 addresses from your server logs, dedupe them, and run each through ip_to_company to get the organisation that owns the network. Home broadband, mobile carriers and cloud hosts return not_found, so expect matches only for companies that run their own network.
[Start free: 1,000 lookups](https://askravn.com/#start) [Read the docs](https://askravn.com/docs)

Playbook
## Logs to a list of companies

- / 01
### Get the IPs server-side
Take the client IP from your web server, CDN or backend logs. If you sit behind a proxy, use the forwarded client address, not the proxy's.
- / 02
### Filter and dedupe
Keep IPv4 only; IPv6 is not supported. Drop your own office, known bots and health checks. Dedupe so each IP is looked up once.
- / 03
### Look up each IP
Call ip_to_company. A match returns the organisation, network name, IP range and country.
- / 04
### Expect a lot of not_found
People browsing from home, on a phone or through a VPN on a cloud host show up as their ISP, carrier or host. We return not_found for these rather than a misleading name, and a miss is free.
- / 05
### Turn names into accounts
For organisations you care about, find their domain and run domain_to_company for size and industry (on your own People Data Labs key, `ravn keys add pdl`), or scrape_website for their public details, which is our own check and needs no key.
- / 06
### Act on the account, not the visitor
You know a company looked, not who. Use it to prioritise accounts and research the right buyer through [finding decision makers](https://askravn.com/use-cases/find-decision-makers).
Run it
## From log file to matches

```
# Pull unique IPv4 addresses from an nginx access log into a CSV
echo "ip" > ips.csv
awk '{print $1}' access.log | grep -E '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+

| sort -u >> ips.csv

# Look them all up
npx ravn enrich ips.csv --tool ip_to_company --column ip --out ips-matched.csv

# One IP over REST
curl https://api.askravn.com/v1/tools/ip_to_company \
-H "Authorization: Bearer $RAVN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ip": "203.0.113.7"}'

# In Claude
Here are last week's unique visitor IPs. Run each through Ravn ip_to_company.
Give me the organisations that matched, how many IPs each had, and their country.
Ignore anything not_found.
```

What it costs
## Lookups only, misses free
ip_to_company is one of our own checks: one lookup per IP, no provider key needed. Because not_found is free, you only spend lookups on IPs that match an organisation.Worked example: a month of logs has 30,000 visits from 6,000 unique IPv4 addresses. Deduping first means you look up 6,000, not 30,000. On Ravn ($24 a month, 10,000 lookups included) that is well inside one month's allowance, and fewer lookups still if many come back not_found. The free plan's 1,000 lookups is enough to try it on a week of a small site.If you then pull company records for 40 matched organisations with domain_to_company, that is 40 lookups on your own People Data Labs key, which bills you for the records. More on the tool is on the [IP to company page](https://askravn.com/features/ip-to-company).Privacy. IP addresses can be personal data in some places. Make sure your privacy notice covers this use, and treat the result as company-level information only.
FAQ
## Common questions.
[All questions →](https://askravn.com/faq)Can ip_to_company tell me which person visited?No. It names the organisation that owns the network an IP belongs to. It never identifies a person, and Ravn does not match visitors to individuals.Why do most of my visitors come back not_found?Most browsing happens on home broadband, mobile networks or through cloud-hosted VPNs. Those IPs belong to the ISP, carrier or host, not the visitor's employer, so we return not_found instead of naming the ISP. You are not charged for them.Does it support IPv6?No, IPv4 only. Filter IPv6 addresses out of your logs before you run the lookup, or the request returns an invalid input error.Is there a tracking script to install?No. There is no tracking script to install. You send IPs you already have in your own server logs.

## More in [use cases](https://askravn.com/use-cases)
Every page uses the same account, plan and tools. [See pricing →](https://askravn.com/pricing)
- [Build a B2B prospect list with ClaudeAsk Claude for companies that match your customer profile, the right people at each, and verified work emails, using Ravn through the MCP connector..](https://askravn.com/use-cases/build-prospect-list)
- [Check a number is a real mobile before textingNormalise numbers to E.164 and read the number-plan line type with validate_phone, then confirm the live carrier and real line type with phone_to_carrier..](https://askravn.com/use-cases/check-phone-before-texting)
- [Clean and dedupe CRM contact dataExport your CRM contacts, dedupe on email, verify what is left, fill missing company fields and import the cleaned file back, with the Ravn CLI..](https://askravn.com/use-cases/clean-crm-data)
- [Enrich inbound sign-ups automaticallyWhen someone signs up, check their email, skip free-mail addresses and add company size, industry and location from the domain, all in one webhook step..](https://askravn.com/use-cases/enrich-inbound-leads)
- [Find decision makers at target accountsTurn target company domains into named decision makers with titles and work emails, using people search on your own provider key and a verified email finder..](https://askravn.com/use-cases/find-decision-makers)
- [Reduce email bounce rateCut hard bounces by verifying before every send, dropping D and F grades, sending to catch-all addresses with care and re-checking lists that have gone stale..](https://askravn.com/use-cases/reduce-bounce-rate)
- [Account research with ClaudeHave Claude read a company website, pull its firmographics and find the right people with scrape_website, domain_to_company and search_people, in one brief..](https://askravn.com/use-cases/research-accounts-with-claude)
- [Verify an email list before sendingCheck every address on a list before a campaign: run the CSV through validate_email, keep the A and B grades, and decide on catch-all addresses yourself..](https://askravn.com/use-cases/verify-email-list)
