Documentation Index
Fetch the complete documentation index at: https://docs.wokelo.ai/llms.txt
Use this file to discover all available pages before exploring further.
1. Overview
The Competitor List API generates a ranked list of companies similar to a given seed company, enriched with structured firmographic, funding, and financial data. Given a single company permalink (e.g."del-air") and an optional set of refinements, Wokelo’s AI pipeline searches its coverage universe of 3M+ companies, evaluates each candidate against the seed company’s product, customers, and business model, and returns a ranked peer set with AI-generated similarity scores and per-company commentary.
This is an asynchronous API — submitting a request returns a request_id immediately, and you must poll for status and then retrieve results once the job is complete. Read more about the async pattern in How Async APIs work.
Each peer in the result set is returned with:
- Identity & firmographics — name, website, HQ location, founding year, ownership type
- Product & business profile — product category, AI-generated core offering description, product catalog
- Funding & employees — funding stage, total funding raised, investor list, headcount
- Financials — revenue, EBITDA, net income, market cap, EV multiples (for public companies)
- M&A history — past acquisitions and investments
- AI similarity scoring — an
Overall Score(1–10) measuring how closely the peer matches the seed company, plus aCommentaryparagraph explaining the overlap and differentiation
- Competitive intelligence — Build a competitive battlecard or vendor landscape around a specific company
- Peer benchmarking — Identify the right comparable set for valuation, financial benchmarking, or KPI comparisons
- Sales & GTM — Map adjacent and competing vendors for partner strategy or competitive deal positioning
- M&A roll-up sourcing — Find regional or sub-segment players similar to a platform company for bolt-on consolidation
- Investor research — Build a peer set for diligence on a private or public company under evaluation
- Sell-side & corp dev — Identify likely competitive intermediaries or strategic peers in a sale process
This API is asynchronous. You submit a job, receive a
request_id, poll until status is "COMPLETED", and then read results from the same response. See How Async APIs work.2. Quick Start
Step 1 — Submit the job3. Authentication
All requests must include a Bearer token in theAuthorization HTTP header. No other authentication method is supported.
4. Request Reference
Endpointcompany is required; all parameters fields are optional refinements. The parameters object itself must always be included in the request body — pass empty values ("", [], {}) for any fields you do not want to filter on.
| Parameter | Type | Required | Description |
|---|---|---|---|
company | string | Required | Permalink (e.g. "del-air") or full URL of the seed company whose peers you want to find. Use the Company Search API to resolve a permalink if needed. |
parameters.detailed_query | string | Optional | A natural-language description that refines what “similar” should mean for this run (e.g. focusing on a specific product line, customer segment, or business model). Highly recommended when the seed company is multi-product or operates across multiple segments. |
parameters.sample_companies | string[] | Optional | Permalinks (e.g. "service-titan") or full URLs of additional representative companies to anchor the peer set. Use when you want to bias results toward a particular flavour of competitor. |
parameters.geography | string[] | Optional | Geographic scope as ISO country codes (e.g. ["USA", "GBR"]). Defaults to global if omitted. |
parameters.company_type | string | Optional | Ownership type filter. Accepted values: "private", "public", "all". Defaults to "all". |
parameters.employee_count | string[] | Optional | Headcount band filter. Accepted values: "1-10", "11-50", "51-100", "101-250", "251-500", "501-1000", "1001-5000", "5001-10000", "10000+". Empty array = all. |
parameters.founded_year | object | Optional | Filter by founding year. Accepts { "from": 2010 }, { "to": 2020 }, or both. |
parameters.funding_stage | string[] | Optional | Filter by most-recent funding stage. Accepted values: "Non-Equity Assistance", "Angel round", "Pre-seed", "Seed", "Series A" through "Series J", "Corporate-Funded", "Debt-Funded", "Private equity round", "Others". Empty array = all. |
parameters.total_funding | object | Optional | Filter by total funding raised in USD. Accepts { "from": 1000000 }, { "to": 50000000 }, or both. |
parameters.last_funding_round | object | Optional | Filter by last funding round size in USD. Accepts from and/or to values. |
parameters.revenue | object | Optional | Filter by annual revenue in USD. Accepts from and/or to values. Most useful when combined with company_type: "public". |
parameters.ebitda | object | Optional | Filter by EBITDA (USD). Accepts from and/or to values. |
parameters.net_income | object | Optional | Filter by net income (USD). Accepts from and/or to values. |
parameters.ev_ebitda | object | Optional | Filter by EV/EBITDA multiple. Accepts from and/or to values. |
5. Response
Job submission response
When you submit the job, you receive a response immediately with arequest_id and an initial status.
| Field | Type | Description |
|---|---|---|
request_id | string | Unique identifier for this job. Use it to poll status and retrieve results. |
status | string | Initial job state. One of "PENDING", "PROCESSING", "COMPLETED", "FAILED". |
Completed result response
Oncestatus is "COMPLETED", the result contains a result array of peer company objects.
Peer object fields
Each object in theresult array contains the following fields:
Identity & firmographics
| Field | Type | Description |
|---|---|---|
Permalink | string | Wokelo company identifier (e.g. "horizon-services"). Use this with other Wokelo APIs. |
Name | string | Display name of the peer company. |
Website | string | Primary domain (e.g. "horizonservices.com"). |
HQ City | string | Headquarters city. |
HQ Country | string | Headquarters country. |
HQ Continent | string | Headquarters continent. |
Founded | string or null | Year the company was founded. |
Type | string | Ownership type: "Public" or "Private". |
Operating Status | string | Current operational status (e.g. "Operating", "Acquired", "IPO"). |
| Field | Type | Description |
|---|---|---|
Product Category | string or null | High-level category describing the peer’s primary product (e.g. "Residential Plumbing HVAC Services"). |
Core Offering | string or null | AI-generated paragraph describing the peer’s core business and product. |
Product Catalog | string or null | Comma-separated list of key products and services offered. |
| Field | Type | Description |
|---|---|---|
Employees (Crunchbase) | string | Employee count band from Crunchbase (e.g. "251-500"). |
Employees (LinkedIn) | integer or null | Employee count from LinkedIn. May be null. |
Funding Stage | string or null | Most recent funding stage (e.g. "Private equity round"). May be null for non-funded companies. |
Total Funding | float or null | Total disclosed funding raised in USD. |
Last Funding Date | string or null | Date of the most recent funding round (YYYY-MM-DD). |
Key Investors | string[] or null | Array of notable investors. |
| Field | Type | Description |
|---|---|---|
Revenue | float or null | Annual revenue in USD. |
Ticker | string or null | Exchange and ticker symbol (e.g. "NYSE:ABC"). |
EBITDA | float or null | Earnings before interest, taxes, depreciation, and amortisation. |
Net Income | float or null | Net income in USD. |
EBITDA Margin (%) | float or null | EBITDA as a percentage of revenue. |
Net Income Margin (%) | float or null | Net income as a percentage of revenue. |
EPS Diluted | float or null | Diluted earnings per share. |
ROA (%) | float or null | Return on assets. |
Unlevered FCF | float or null | Unlevered free cash flow in USD. |
D/E | float or null | Debt-to-equity ratio. |
Market Cap | float or null | Market capitalisation in USD. |
Enterprise Value | float or null | Enterprise value in USD. |
EV/Revenue (LTM) | float or null | Enterprise value to last-twelve-months revenue multiple. |
EV/EBITDA (LTM) | float or null | Enterprise value to LTM EBITDA multiple. |
P/E (LTM) | float or null | Price-to-earnings ratio on LTM basis. |
| Field | Type | Description |
|---|---|---|
Acquisitions | string or null | Comma-separated list of past acquisitions with year (e.g. "Hutchinson Plumbing (2020), Casteel (2017)"). |
Investments | string or null | Notable investments made by the peer. May be null. |
| Field | Type | Description |
|---|---|---|
Overall Score | float | Similarity score (1–10) measuring how closely the peer matches the seed company on product, customer segment, business model, and geography. Higher = closer match. |
Commentary | string | AI-written paragraph explaining the similarity to the seed company — calling out specific product overlaps, geographic differences, scale differences, and any unique offerings of the peer. |
The Competitor List API focuses on similarity to a seed company, so its AI scoring is a single composite
Overall Score plus a Commentary paragraph. This is intentionally simpler than Buyer or Target Screening, which return multiple sub-scores (feasibility, precedent, synergy) because they evaluate a deal, not just similarity. Read the Commentary carefully — it’s where the AI explains why a peer was scored as such.6. Examples
Building a peer set for a private company
Find U.S.-based private companies similar to Del-Air, focused on residential home services. Filter to peers of comparable scale and rank by similarity.Competitive landscape for a public software company
Build a peer set for a public SaaS company to support valuation work or competitive positioning. Restrict to public peers and use revenue filters to find comparables of similar scale.Roll-up sourcing for a PE platform
Find regional competitors and add-on targets similar to a platform company. Narrow thedetailed_query to the platform’s core service lines and use geography, employee_count, and total_funding filters to find absorbable players.
Disambiguating a multi-product seed with detailed_query
When the seed company operates across multiple product lines, use detailed_query to focus the peer set on a specific segment. Without this, the API returns peers matching the broadest interpretation of the seed.
7. Error Handling
The API uses standard HTTP status codes. All error responses include a JSON body with adetail or message field.
| Status | Meaning | Cause & Resolution |
|---|---|---|
200 OK / 202 Accepted | Success | Job submitted (202) or result retrieved (200) successfully. |
400 Bad Request | Invalid parameters | A required field is missing or a parameter value is invalid — e.g. missing parameters object, unrecognised funding_stage, or malformed founded_year object. Check the detail field. |
401 Unauthorized | Auth failed | The Authorization header is missing, malformed, or contains an invalid token. Verify your key in Settings → API Keys. |
403 Forbidden | Insufficient access | Your plan does not include access to this endpoint. Contact support@wokelo.ai to review your plan. |
404 Not Found | Resource not found | The seed company permalink could not be resolved, a sample_companies permalink is invalid, or the request_id does not exist. Use the Company Search API to verify permalinks. |
429 Too Many Requests | Rate limit exceeded | Implement exponential back-off. The response includes a Retry-After header. |
500 Internal Server Error | Server error | Retry after a brief delay. If the issue persists, contact support@wokelo.ai with your request_id. |
8. Best Practices
Usedetailed_query to focus multi-product seed companies
If the seed company spans multiple product lines or segments (e.g. Amazon, Microsoft, Salesforce), the peer set can drift toward whichever segment the AI infers as dominant. Use detailed_query to lock the run to a specific segment — for example, “Public cloud infrastructure and platform providers, not retail” for Amazon, or “CRM and customer data platforms, excluding analytics tools” for Salesforce. For single-product seed companies, detailed_query is often unnecessary.
Anchor the peer set with sample_companies when the seed is niche or ambiguous
For niche businesses, regional players, or companies whose public profile is thin, supply 2–4 representative permalinks in sample_companies to bias the search toward the right flavour of competitor. Use the Company Search API to resolve company names to permalinks.
Always include the full parameters object
Even when you don’t want to filter on a field, the API expects the parameters object to be present. Pass empty values ("", [], {}) for unused filters. Omitting parameters entirely returns a 400 Bad Request.
Tier peers by Overall Score before review
Sort results descending by Overall Score and segment into tiers (e.g. 9–10: Direct competitors, 7–8: Close peers, 5–6: Adjacent, below 5: Tangential) for efficient triage. The Commentary paragraph then explains why each peer was scored — calling out specific product overlaps, geographic differences, or scale differences worth knowing before downstream work.
Read the Commentary to validate the peer set
The Commentary is the most diagnostic signal in the response. A peer with a high Overall Score but a commentary noting “narrower geographic focus” or “broader product scope” is still useful context for benchmarking or competitive positioning. Use the commentary to decide which peers to include in a final comparable set.
Combine filters thoughtfully for valuation comparables
When building a comparable set for valuation, layer company_type, revenue, ebitda, and ev_ebitda filters to find peers at similar financial scale. For public-company comparables, set company_type: "public" so financial fields are reliably populated. For private-company peers, use funding_stage, total_funding, and employee_count instead since financial fields will mostly be null.
Compare against Market Map when defining a market
If your seed company is a clear category-defining player and you want to map the full category, run Competitor List first to get the strongest direct peers, then run Market Map with the category as the topic to capture earlier-stage and tangential players Competitor List may miss. The two endpoints are complementary.
Iterate the query — treat the first run as a diagnostic
Review the top 20 peers and their commentaries from the first run, then refine detailed_query, swap or add sample_companies, or tighten filters and re-run. Two or three iterations typically produce a substantially cleaner peer set than a single pass.
Store the request_id for reproducibility
Each peer set is a snapshot at a point in time. Store the request_id alongside the seed company, parameters, and run date so you can re-retrieve the same result set later, compare runs over time as the market evolves, or audit which peer set was used for a given valuation or competitive memo.
9. Related APIs
Market Map
Discover and map all companies competing in a specific market or product category — start from a topic instead of a single seed company.
Target Screening
Identify and score acquisition targets for a defined acquirer with deal-fit scoring.
Buyer Screening
Identify and score potential acquirers for a target company.
Peer Comparison
Run side-by-side financial and operational comparisons across a defined peer set.
Company Deep Intelligence
Generate deep AI intelligence on any peer — business model, financials, strategy, and M&A history.
Company Instant Enrichment
Synchronously enrich firmographic and financial data for any peer in the result set.