Owler Company Intelligence API avatar

Owler Company Intelligence API

Pricing

from $5.14 / 1,000 company record returneds

Go to Apify Store
Owler Company Intelligence API

Owler Company Intelligence API

Competitor intelligence and private company data as clean, structured JSON. Send company URLs and get revenue estimates, employee counts, funding totals, competitor sets, industry, location, and CEO details. Pay per company, MCP-ready for Claude and AI agents.

Pricing

from $5.14 / 1,000 company record returneds

Rating

0.0

(0)

Developer

John

John

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

5

Monthly active users

4 hours ago

Last modified

Categories

Share

Owler Company Intelligence API: Competitor Intelligence and Private Company Data

Competitor intelligence and private company data as clean, structured JSON. Send Owler company profile URLs and get back revenue estimates, employee counts, funding totals, the named competitor set, industry, headquarters location, and CEO details. One row per company.

Most company data tools tell you what a company is. This one also tells you who it competes with: every record carries a competitor count and the named competitor set, which is the part that competitor-intelligence and market-mapping work actually runs on.

What this actor returns

  • Revenue and size: revenue estimate as a number and as a banded range, employee count and employee range
  • Competitors: competitor count plus the named competitor set, each with a profile link you can feed back in
  • Funding: total disclosed funding raised, number of acquisitions made
  • Firmographics: industry classifications, year founded, ownership status, SIC codes
  • Location and identity: city, state or region, country, postal code, street address, website, primary domain, phone, CEO name

Every company row also carries a one-line plain-language summary, so an AI agent can read a record without post-processing.

Use cases

  • Map a competitive set. Pull a company plus its competitor list, then run those competitor URLs back through the Actor to map a whole market in two passes.
  • Enrich an account list with firmographics. Attach industry, employee band, revenue band, and headquarters location to accounts you already hold.
  • Research private companies. Revenue and funding estimates for companies that file nothing publicly.
  • Size territories and segment accounts. Employee count and revenue range are the two fields most sales-ops teams filter on first.
  • Qualify inbound leads. Screen accounts by size, funding, and industry before routing them.

Input parameters

ParameterTypeRequiredDefaultDescriptionExample
companyUrlsarray of stringsRequired(none)Company profile URLs to collect. A bare company slug is also accepted as shorthand. Up to 1000 per run.["https://www.owler.com/company/stripe", "figma"]
{
"companyUrls": [
"https://www.owler.com/company/stripe",
"https://www.owler.com/company/figma"
]
}

Need larger batches than 1000 per run? Contact us and we can raise the limit for your account.

Example output

{
"result_type": "company",
"companyName": "SimplexCC Ltd.",
"website": "https://www.simplex.com/",
"domain": "simplex.com",
"industry": "Software, Internet & Computer Services",
"city": "Givatayim",
"state": "Tel Aviv District",
"country": "IL",
"founded": 2014,
"ownership": "Private",
"revenue": 10100000,
"estimatedAnnualRevenue": "$5M - 25M",
"employeeCount": 175,
"estimatedEmployees": "100 - 250",
"totalFunding": 8400000,
"totalCompetitors": 13,
"competitors": [
{ "name": "Nova", "profileUrl": "https://www.owler.com/company/fundmylawsuitnow" },
{ "name": "EPL", "profileUrl": "https://www.owler.com/company/energyprofiles" }
],
"summary": "SimplexCC Ltd. in Software, Internet & Computer Services - Givatayim, IL. Reported estimated revenue $5M - 25M, 175 employees."
}

A URL that cannot be collected returns a row with result_type: "error" and a plain-language error_message, so a failed input never disappears silently.

Output fields

One dataset item per input URL. Company rows carry the fields below; error rows carry result_type, error_message, error_type, and fetched_at.

FieldTypeDescription
result_typestringcompany for a collected record, error for an input that could not be collected.
companyIdstringStable identifier for the company on the source directory.
companyNamestringRegistered or commonly used company name.
profileUrlstringThe company profile page this record was collected from.
websitestringThe company's own website.
domainstringPrimary web domain, useful as a join key against other datasets.
descriptionstringShort prose description of what the company does.
industrystringThe first listed industry classification.
industriesarrayAll industry classifications on the profile.
foundedintegerYear the company was founded.
ownershipstringOwnership status, for example Private or Public.
statusstringOperating status reported on the profile.
city, state, countrystringHeadquarters city, state or region, and country code.
zipcodestringHeadquarters postal code.
streetAddressstringHeadquarters street address.
phoneNumberstringMain listed phone number.
revenueintegerEstimated annual revenue as a number, in US dollars.
estimatedAnnualRevenuestringEstimated annual revenue expressed as a banded range.
employeeCountintegerEstimated number of employees.
estimatedEmployeesstringEstimated employee count expressed as a banded range.
totalFundingintegerTotal disclosed funding raised, in US dollars.
totalAcquisitionsintegerNumber of acquisitions the company has made.
totalCompetitorsintegerNumber of competitors tracked for this company.
competitorsarrayNamed competitor set, each entry with a name and a profileUrl.
ceoNamestringCurrent chief executive, when the profile lists one.
followersintegerNumber of people following the company on the source directory.
exchange, tickerstringStock exchange and ticker symbol, for publicly traded companies.
sicCodearrayStandard Industrial Classification codes listed for the company.
summarystringOne-line plain-language summary of the record.
error_message, error_typestringWhy an input produced no company record, and its machine-readable category.
fetched_atstringUTC timestamp when the row was collected.

Not every profile lists every field. Where a profile has no value for something, the field comes back empty rather than filled with a guess. The dataset also ships with two saved views, Company overview and Competitor sets, so you can read either the firmographics table or the competitor mapping without writing a transformation.

Pricing

Pay per result. One event, company-scraped, is charged once for every company record pushed to the dataset. Nothing is charged for an input that returns no record, and nothing is charged for a run that returns nothing at all.

A 100-company run therefore costs 100 charged events. Higher Apify subscription tiers pay a lower per-record rate. Current rates are always shown on the Store card.

How to get started

  1. View on Apify Store and click Try for free.
  2. Paste one or more company URLs into Company URLs.
  3. Run it. Results appear on the Output tab and export as JSON, CSV, or Excel.

Prefer to work from code? The example repo with a Python and MCP walkthrough has a runnable client, a competitor-map recipe that follows the returned competitor URLs for a second pass, and install steps for five MCP clients.

๐Ÿ”Œ Use this API from Claude (MCP)

Add this Actor as a tool in Claude Code (free trial), Claude Cowork (free trial), Cursor, or any other MCP client through the hosted Apify MCP server:

https://mcp.apify.com/?tools=actors,docs,johnvc/owler-company-api

With Claude Code (free trial):

claude mcp add --transport http owler "https://mcp.apify.com/?tools=actors,docs,johnvc/owler-company-api"

Then ask your agent something like "get the competitor set and revenue estimate for Stripe".

Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp

๐Ÿ’ธ Pay per run with crypto (x402)

The Owler Company Intelligence API supports agentic payments via the x402 protocol. AI agents and MCP clients can pay for runs in USDC (on Base) with no Apify account or API token needed: point your agent at the Apify MCP server and it can discover, pay for, and run this Actor autonomously. Read the Apify x402 announcement for details.

Speed and reliability

This source is thorough rather than fast: allow roughly a minute or two per chunk of company URLs. The Actor collects in chunks and charges only for records actually returned, so a slow run never costs more than a fast one.

Input URLs are validated before anything is sent upstream. A malformed URL is rejected locally with a warning rather than forwarded, because a bad URL sent to the source can stall an entire collection.

๐Ÿ”Œ Integrations: Automate Competitor Intelligence Monitoring

A single run tells you how big a company is and who it competes with. Run the same list on a schedule and you get something better, because headcount, revenue bands, funding totals, and competitor sets all drift over time, and the dataset keeps every version. Native Apify platform integrations wire the Actor into the tools you already use, so you do not have to run a server or a cron job of your own.

Tasks and schedules: watch an account list on a cadence

The pattern is one saved task per list you care about, one schedule across all of them.

  1. Create a task. A saved task is this Actor plus a saved input, so give each list its own name, for example "Top 40 competitors", with the Owler profile URLs for those accounts in companyUrls. Click Create empty task on the Actor page, paste the URLs, and save.
  2. Attach a schedule. Open Schedules in Apify Console, create a schedule with a standard cron expression, and add your tasks to it. Useful ones: 0 7 1 * * (the 1st of each month at 7 AM), 0 9 * * 1 (Mondays at 9 AM), 0 */6 * * * (every six hours). One schedule can trigger many tasks, so a single "monthly company refresh" can cover every list you have saved.
  3. Read the history back. Each run appends rows carrying a fetched_at timestamp, so the task's dataset becomes a headcount and revenue history you can export as JSON, CSV, or Excel at any time.

Company size and funding move slowly, so monthly is usually the right cadence. The published task Track Competitor Revenue and Headcount Monthly is this pattern already configured.

n8n: enrich a CRM list inside a workflow

There is no dedicated community node for this Actor yet, so use the official Apify n8n integration, which exposes "Run Actor" and "Get Dataset Items" steps for any Actor on the platform. A four-step enrichment workflow looks like this:

  1. Schedule Trigger, weekly.
  2. Apify node, run johnvc/owler-company-api with the account URLs from your CRM.
  3. Filter node, keep rows where employeeCount crossed a threshold or totalFunding changed since the last run.
  4. Slack or email node, send yourself the accounts that moved.

The published task Enrich Company Records in an n8n Workflow walks through the same shape.

Make and Zapier

Both have native Apify integrations, Apify on Make and Apify on Zapier, with "Run Actor" and "Get Dataset Items" actions. The pattern is the same: trigger on a schedule, run this Actor, filter on a field, then notify or store the rows.

Supabase: keep a company history in your own database

Tracking size over time means storing it somewhere queryable. Supabase (hosted Postgres) fits well, and there are two easy paths:

  • No code: in n8n, connect the Apify node to the built-in Supabase node and insert a row per company after each scheduled run.
  • A few lines of Python: run the Actor and bulk-insert the company rows into a company_intel table.
from apify_client import ApifyClient
from supabase import create_client
apify = ApifyClient("YOUR_APIFY_TOKEN")
supabase = create_client("https://YOUR_PROJECT.supabase.co", "YOUR_SERVICE_ROLE_KEY")
run = apify.actor("johnvc/owler-company-api").call(
run_input={
"companyUrls": [
"https://www.owler.com/company/stripe",
"https://www.owler.com/company/figma",
]
}
)
rows = [
{
"company_name": item["companyName"],
"domain": item.get("domain"),
"industry": item.get("industry"),
"revenue": item.get("revenue"),
"revenue_band": item.get("estimatedAnnualRevenue"),
"employees": item.get("employeeCount"),
"total_funding": item.get("totalFunding"),
"total_competitors": item.get("totalCompetitors"),
"fetched_at": item.get("fetched_at"),
}
for item in apify.dataset(run.default_dataset_id).iterate_items()
if item.get("result_type") == "company"
]
if rows:
supabase.table("company_intel").insert(rows).execute()

Run that on a schedule and company_intel becomes a time series of headcount, revenue band, and funding per account, ready for a dashboard or a "this account just doubled" alert.

MCP and AI agents

Apify exposes this Actor through the Apify MCP server, so Claude Code (free trial), Claude Cowork (free trial), Cursor, and other MCP clients can call it as a tool and answer questions like "who does Figma compete with, and how big are they" against live data instead of training data. The published task Get Company Competitor Data in Claude via MCP covers the one-click setup.

Webhooks: connect anything else

For custom setups, attach an Apify webhook to the ACTOR.RUN.SUCCEEDED event. When a scheduled run finishes, Apify POSTs the run details, including the dataset ID, to your endpoint, so your own service, an n8n or Make webhook trigger, or a serverless function can fetch the rows and do whatever comes next.

Company research rarely runs off a single source. These are the ones that pair with it:

Older alternatives such as Owler Scraper also sit on the Store, but at the time of writing that one carries no user ratings and a 70% run success rate on its Store card. This API documents every field it returns and charges only for records actually delivered. An input it cannot collect comes back as a typed error row instead of vanishing from the results.

๐Ÿ’ก Applications

Ready-to-run examples of this API in action. Open any one and run it in a single click.

Owler Company Data API: Revenue, Size, Competitors

The full record for a list of companies: revenue estimate, employee count, funding total, and the named competitor set. Run this task

Find Company Competitors with Revenue and Headcount

Start from one company and get its rivals back with a size figure attached to each name. Run this task

Look Up Company Revenue and Employee Counts

A straight firmographics lookup: revenue estimate and band, employee count and band, for a batch of companies. Run this task

Track Competitor Revenue and Headcount Monthly

Save the input once, attach a monthly schedule, and let the dataset build a size history for your competitive set. Run this task

Get Company Competitor Data in Claude via MCP

Add the Actor to an MCP client and ask for a competitor set and revenue estimate in plain language. Run this task

Enrich Company Records in an n8n Workflow

Drop the Actor into an n8n pipeline to attach firmographics to a CRM list on a schedule. Run this task

Map a Talent Market from Competitor Companies

Follow the competitor URLs from one seed account to build the list of companies hiring out of the same talent pool. Run this task

โ“ FAQ

What is competitor intelligence?

It is the practice of tracking who a company competes with, how large those competitors are, and how that set shifts over time. This Actor supplies the raw layer: a named competitor set per company, with profile links you can follow to collect those competitors in turn.

What are firmographics?

Firmographics are to companies what demographics are to people: industry, employee count, revenue band, location, ownership, and age. Every field in that list is returned here.

What is firmographic data used for?

Segmenting accounts, sizing territories, scoring inbound leads, and building target account lists. Employee band and revenue band are the two fields most teams filter on first.

How do I find financial data on private companies?

Private companies file little or nothing publicly, so the practical route is estimation from headcount, funding, and sector benchmarks. This Actor returns both a numeric revenue estimate and a banded range, plus total funding raised.

How current is the data?

Records are collected live at run time, not served from a cached copy, so you get the profile as it stands when you run it.

Can I get the competitors of a competitor?

Yes. Each record returns competitor profile URLs. Feed those back in as companyUrls for a second pass to map a full competitive set.

Does it return email addresses?

No. Company records carry a website, domain, and phone number, but no email addresses.

Why did a company come back with no record?

The profile may have been removed or renamed on the source site. That input returns an error row explaining why, rather than silently disappearing, and it is not charged.

Should I use an official API or a web Scraper for company data?

An API is a documented interface a provider offers on their own terms: rate limited, quota bound, usually sold per seat, and sometimes missing the field you actually need. Web scraping reads the public page instead. This Actor is the second thing wearing the interface of the first. You send a list of URLs, you get structured JSON back, there is no quota to negotiate and no annual contract. If you already pay for a feed that carries a named competitor set, keep it. If you do not, this is the cheaper way to get one.

Can I schedule this company data Scraper?

Yes, any run can be automated on a schedule. Create a saved task holding the company URLs you want watched, then attach a schedule from the Actor's Actions then Schedule menu. Cron examples: 0 7 1 * * for the 1st of each month at 7 AM, 0 9 * * 1 for Mondays at 9 AM, 0 */6 * * * for every six hours. One schedule can trigger many tasks at once, so a single monthly refresh can cover every account list you keep. The Integrations section above has the full recipe, including how the accumulated dataset turns into a headcount and revenue history.

Can I integrate this company data Scraper with other apps?

Yes. The Actor connects to almost any cloud service through Apify integrations, including Make, Zapier, Slack, Google Drive, and GitHub, plus webhooks that fire on ACTOR.RUN.SUCCEEDED for anything custom. The Integrations section above has worked examples for n8n and Supabase.

Can I use the Owler Company Intelligence API with the Apify API?

Yes. The Apify API runs the Actor, schedules it, and fetches datasets programmatically, and the apify-client package wraps it for both Python and Node.js. Ready-made calls for this Actor are on its API tab, and the example repo ships a working Python client you can copy.

Can I use this Actor through an MCP server?

Yes. Add it as a tool in any MCP client through the hosted Apify MCP server, using the Actor-specific URL https://mcp.apify.com/?tools=actors,docs,johnvc/owler-company-api. That covers Claude Code (free trial), Claude Cowork (free trial), Cursor, and anything else that speaks MCP. See the Apify MCP docs for setup.

How else can I research companies, investors, and private company data?

Pair this with Crunchbase Company API when you need the funding rounds and the investors behind them, PitchBook Company API for private-market financials, and LinkedIn Company API for a second read on headcount. If the question is who funds a segment rather than who competes in it, Startup Investors Data Scraper is the better starting point.

Is this an official Owler API?

No. This Actor is not affiliated with, endorsed by, or connected to Owler. It is an independent tool that collects the public company profile data those pages show and returns it as structured JSON, and it makes no claim of parity with any product Owler sells.

Collecting publicly available information is generally lawful in most places, though what you do with it afterwards is governed by local law and by whatever terms you signed. Apify's write-up on the legality of web scraping is a reasonable starting point. This Actor reads public profile pages only. It returns company-level fields plus the chief executive's name, and it does not return email addresses or personal contact details.

๐ŸŒ About Alpha OSINT

This Actor is part of Alpha OSINT, toolset of financial and operations data sources and APIs. For support or requests for this actor, please start a ticket directly on our support page.

Last Updated: 2026.08.08