Retrieve structured firmographic, funding, financial, M&A, headcount, and web traffic data for any company from Wokelo’s native database of 20M+ cached companies — synchronously for a single company, or asynchronously in batch for multiple companies at once.
The Company Instant Enrichment API delivers structured data for any company from Wokelo’s native database of 20M+ pre-cached companies. Results are returned within seconds for a single company, or asynchronously for batch enrichment of multiple companies simultaneously.Two endpoints, two usage patterns:
Single Enrichment
Batch Enrichment
Endpoint
POST /api/enterprise/company/enrich/single/
POST /api/enterprise/company/enrich/
Input
company (single string)
companies (array of strings)
Response pattern
Synchronous — data returned immediately in the HTTP response
Asynchronous — returns request_id; poll until complete
Speed
Results within ~10 seconds
Depends on company count and sections
Use case
Real-time lookups, CRM enrichment on demand
Bulk watchlist enrichment, pipeline ingestion
Both endpoints support the same nine structured data sections, and the batch endpoint additionally accepts all nine Company Deep Intelligence section types in the same request.The nine structured data sections:
All funding rounds with amounts, investors, round types, and linked news; total raised, funding stage, key investors
public_company_financials
Revenue, margins, market cap, valuation multiples — public companies only
acquisitions
Full M&A history: targets, dates, amounts, descriptions
investments
Portfolio investments made by the company: investee names, round types, dates
website_traffic
Monthly visits, traffic sources, geographic distribution
uk_private_company_financials
Income statement and balance sheet data for UK-registered private companies
Common use cases:
CRM enrichment on demand — call the single endpoint in a webhook or Zapier flow to instantly populate Salesforce, HubSpot, or DealCloud records when a new company is added
Deal screening data pull — request firmographics + funding + acquisitions for a shortlist of targets before a deal team meeting
Watchlist bulk enrichment — batch enrich hundreds of portfolio or prospect companies overnight with headcount + public_company_financials + website_traffic for a regular market pulse report
Funding intelligence — pull funding for a set of companies to map investor syndicates, identify lead investors, and track round progression
UK private company financials — use uk_private_company_financials to pull Companies House financials for UK-based private targets where Crunchbase data is thin
The Single Enrichment endpoint is synchronous — data is returned directly in the HTTP response. The Batch Enrichment endpoint is asynchronous — it returns a request_id and requires polling. The two endpoints and response patterns are not interchangeable.
All requests must include a Bearer token in the Authorization HTTP header.
Authorization: Bearer <YOUR_API_TOKEN>
API tokens are issued from your Wokelo account. Navigate to Account Details → API Credentials in the Wokelo dashboard to get your client id and client secret. Contact support@wokelo.ai if you do not yet have API access.
Never expose your token in client-side code, browser requests, or public repositories. A missing or invalid token returns 401 Unauthorized. A valid token without sufficient plan permissions returns 403 Forbidden.
POST https://api.wokelo.ai/api/enterprise/company/enrich/single/
Parameter
Type
Required
Description
company
string
Required
Permalink or URL of the company to enrich. Permalinks (e.g. "canva", "tesla-motors") resolve faster. Full URLs (e.g. "https://tesla.com") are also accepted. Use the Company Search API to look up a permalink by name.
sections
string[]
Required
Array of section identifiers to include. Defaults to all sections if omitted. Request only what you need — each additional section adds processing time.
POST https://api.wokelo.ai/api/enterprise/company/enrich/
Parameter
Type
Required
Description
companies
string[]
Required
Array of company permalinks or URLs to enrich. Accepts 1–N entries. All companies are processed in parallel.
sections
string[]
Required
Array of section identifiers to include. Same 9 structured sections as Single Enrichment, plus all 9 Company Deep Intelligence sections (products_and_services, product_launches, strategic_initiatives, partnerships, business_model, key_customers, management_profiles, employee_sentiment, product_sentiment).
The Batch endpoint accepts both the structured data sections listed in Section 1 and the full set of Company Deep Intelligence sections. This means you can fetch firmographics, funding, and AI-synthesised product narratives in a single batch request. See the Company Deep Intelligence API for documentation on those additional sections.
Poll GET /api/enterprise/request/status/?request_id={request_id} until status is "COMPLETED". The full result is embedded in the polling response:
Status
Meaning
"PENDING"
Queued, waiting to start.
"PROCESSING"
In progress.
"COMPLETED"
Done. The result field contains all company data.
"FAILED"
Failed. Retry the submission.
When completed, result is a dict keyed by company identifier — one entry per company in your companies array. Each company object has section data at the top level (not nested under "data"):
Stock ticker (e.g. "NASDAQ:FRSH"). null for private companies.
fundingContains two keys: overall (aggregate summary) and funding_rounds (per-round array), plus key_investors array.overall fields:
Field
Type
Description
funding_stage
string
Most recent round type (e.g. "Series F", "Secondary Market").
total_funding
float
Total capital raised in raw USD (e.g. 2508450682.0 = $2.51B).
last_funding_date
string
Date of most recent funding event (YYYY-MM-DD).
num_funding_rounds
string
Total number of rounds as a string (e.g. "21").
key_investors
string[]
Flat list of all investor names across all rounds.
Each funding_rounds object:
Field
Type
Description
date
string
Round close date (YYYY-MM-DD).
round
string
Round type (e.g. "Series A", "Seed", "Venture", "Debt", "Private Equity").
amount
float
Amount raised in raw USD. 0.0 when the amount was not publicly disclosed — not null.
total_investors
integer or string
Number of investors. May be "-" when count is unknown.
lead_investors
string[]
Names of lead investors. Empty array when not disclosed.
investors
string[]
Names of non-lead investors. Empty array when not disclosed.
pre_money_valuation
float or null
Pre-money valuation if available. Usually null.
news
object
{type: "news", data: [{publisher, news_url, news_title}]} — press coverage of the round.
key_investors array (top-level in funding):
Field
Type
Description
name
string
Investor name.
permalink
string
Wokelo/Crunchbase permalink for the investor entity.
type
string
Investor type: "angel", "investment_partner", or empty string for institutional.
first_entry_date
string
Date of their first investment in this company (YYYY-MM-DD).
rounds_participated
string[]
List of round types they participated in.
acquisitionsArray of acquisition objects:
Field
Type
Description
acquisition_date
string
Date of acquisition (YYYY-MM-DD).
name
string
Descriptive name (e.g. "Doohly acquired by Canva").
amount
float or null
Raw USD deal amount. null when undisclosed.
amount_usd
float or null
Same as amount — present for compatibility.
description
string
One-line summary of the deal.
acquiree_name
string
Name of the company acquired.
acquiree_permalink
string
Permalink of the acquired company.
investmentsArray of investment objects made by the company:
Field
Type
Description
announcement_date
string
Investment announcement date (YYYY-MM-DD).
amount
float or null
Investment amount in raw USD. null when undisclosed.
amount_usd
float or null
Same as amount.
description
string
One-line summary (e.g. "Canva investment in Series B - Black Forest Labs").
lead_investor
boolean
Whether this company was the lead investor.
funding_round_id
string
Wokelo/Crunchbase ID for the funding round.
investee_name
string
Name of the company invested in.
investee_permalink
string
Permalink of the investee.
In funding_rounds, an amount of 0.0 means the round amount was not publicly disclosed — it is not a zero-dollar round. Always distinguish between 0.0 (undisclosed) and a genuine small amount. In acquisitions, an undisclosed deal amount is represented as null, not 0.0.
Both endpoints use standard HTTP status codes. The single endpoint returns all errors synchronously. The batch endpoint returns submission errors synchronously; processing errors appear as "FAILED" when polling.
Status
Meaning
Cause & Resolution
200 OK
Single success
Data returned in response body.
202 Accepted
Batch accepted
request_id returned. Proceed to polling.
400 Bad Request
Invalid parameters
Missing company or companies, missing sections, invalid section name, or empty companies array. Check the detail field.
401 Unauthorized
Auth failed
The Authorization header is missing 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 or section. Contact support@wokelo.ai.
404 Not Found
Company not found
The permalink could not be resolved. Verify using the Company Search API, or try the website URL instead.
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.
Retry with exponential back-off (batch submission):
import time, requestsdef submit_with_retry(body, api_key, max_retries=3): headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json" } for attempt in range(max_retries): try: r = requests.post( "https://api.wokelo.ai/api/enterprise/company/enrich/", headers=headers, json=body, timeout=30 ) if r.status_code == 429: time.sleep(2 ** attempt) continue r.raise_for_status() return r.json()["request_id"] except requests.exceptions.Timeout: if attempt == max_retries - 1: raise time.sleep(1) raise Exception(f"Submission failed after {max_retries} attempts")
Use Single for real-time lookups; use Batch for bulk enrichmentThe two endpoints serve different workflows. Single Enrichment returns data within ~10 seconds synchronously — ideal for CRM webhook triggers, API-driven form enrichment, and on-demand lookups. Batch Enrichment processes many companies in parallel and is better suited to overnight bulk jobs, watchlist refreshes, and pipeline ingestion tasks where latency is less critical than throughput.Use permalinks over URLs for faster resolutionPermalinks (e.g. "canva", "tesla-motors") resolve from Wokelo’s cached index directly, typically within 1–2 seconds. Website URLs trigger a lookup step that adds latency, particularly for companies with non-standard or redirecting domains. Use the Company Search API to resolve names to permalinks:
Request only the sections you needBoth endpoints process each section independently. A single-section request (firmographics only) returns in under 5 seconds; a full 9-section request takes longer. For time-sensitive integrations (webhook-driven CRM updates, real-time enrichment), request only the sections you will use immediately.Distinguish 0.0 (undisclosed) from null (not available) in funding dataIn funding_rounds, an amount of 0.0 means the round amount was not publicly disclosed — it is not an actual zero-dollar round. In acquisitions, an undisclosed deal amount is null. Never sum or average amount values without filtering out 0.0 entries first:
# Sum only rounds with disclosed amountsdisclosed_rounds = [r for r in funding_rounds if r["amount"] > 0]total_disclosed = sum(r["amount"] for r in disclosed_rounds)# Acquisition amounts — null means undisclosedfor acq in acquisitions: amt = acq.get("amount") label = f"${amt/1e6:.0f}M" if isinstance(amt, (int, float)) and amt > 0 else "Undisclosed"
num_funding_rounds is a string, not an integerThe funding.overall.num_funding_rounds field returns a string (e.g. "21") rather than an integer. Parse it before arithmetic:
Batch result keys match the identifiers you submittedThe batch result is keyed by whatever identifier you passed in the companies array. Submit permalinks for predictable, clean keys. Mixing URLs and permalinks in the same request produces mixed key formats in the result:
# ❌ Mixed formats — inconsistent result keyscompanies=["https://canva.com", "hubspot", "https://pipedrive.com"]# ✅ All permalinks — consistent result keyscompanies=["canva", "hubspot", "pipedrive"]
The batch endpoint accepts Deep Intelligence sections alongside structured sectionsThe batch endpoint’s sections parameter accepts both the nine structured data sections documented here and all nine Company Deep Intelligence sections (products_and_services, product_launches, strategic_initiatives, etc.). Use this to fetch firmographics, funding, and AI narratives in a single request — reducing total round-trips. Be aware that Deep Intelligence sections take longer to generate than structured data sections.Understand the difference from Company Deep IntelligenceCompany Instant Enrichment returns raw structured data from Wokelo’s cached database — firmographic fields, funding round records, M&A history — in seconds. Company Deep Intelligence returns AI-synthesised narratives — product portfolio analysis, strategic initiative summaries, sentiment data — in minutes. For CRM enrichment and data pipelines, use Instant Enrichment. For pre-IC product intelligence and competitive sweeps, use Deep Intelligence. For both in one call, use the Batch endpoint with mixed sections.
AI-synthesised intelligence on products, strategy, sentiment, and leadership — section-selective, async, uses the same request_id pattern as Batch Enrichment.
Company Research
Full async intelligence report for a single company — Executive Summary, Key Insights, Product Insights, Transaction Highlights — with PDF/DOCX/PPT export.
Company News Monitoring
Real-time, source-cited news articles for any company — synchronous, no polling, complements enrichment data with current event context.
Peer Comparison
Side-by-side benchmarking of 2–5 companies with financial data, feature matrices, and business model analysis — async Workflow API.
Target Screening
AI-ranked acquisition target identification — use before enrichment to build the shortlist, then enrich to populate deal screening data.
Supporting APIs
Company Search and Request Status — both used alongside Company Instant Enrichment for permalink resolution and batch polling.