Company research and sourcing API
All paths are relative to https://api.corpdev.ai/v1/public. Search, research and contact operations have different schemas and billing behavior.
Company lookup
GET /companies/lookup?query=...&limit=... searches company names or text. query is required; limit defaults to 10 and is capped at 50. It returns companies and total, where total is the number returned, not a claim about an exhaustive global count.
curl --fail-with-body --get \
'https://api.corpdev.ai/v1/public/companies/lookup' \
--header "Authorization: Bearer ${CORPDEV_API_KEY}" \
--data-urlencode 'query=Northstar' \
--data-urlencode 'limit=5'Verify the entity and domain before using a lookup result. GET /companies/:domain returns the accessible workspace and reference company information. GET /companies/apollo/:id reads a provider organization by its identifier.
Structured company and people search
Use POST /companies/search with filters, page and per_page. A minimal body is:
{
"filters": {},
"page": 1,
"per_page": 10
}Add supported filters for a useful production query. Unsupported filter names return 422 with supported-filter information; they are not silently ignored. Company search defaults to 25 results per page and allows up to 100.
POST /people/search uses its own supported filter set and defaults to 10 results per page, with a maximum of 100. Email reveal is off by default; enabling reveal_emails can incur metered work. Confirm the person's current employer and contact details before acting on the result.
Description-based sourcing
POST /search/semantic starts a semantic sourcing request and returns HTTP 202. Supply a query of 3–2,000 characters and an optional numeric limit (default 25):
Unknown request fields are rejected. List requests with GET /search/semantic and inspect a known request with GET /search/semantic/:jobId. Deleting a saved search uses DELETE /search/semantic/:jobId and requires write access. Deletion removes the job record and subsequent polling returns 404; it does not interrupt an already-running sourcing pipeline.
Use the semantic request's own status response, not the document-generation polling contract. Research coverage is not exhaustive, and a result is not a verified acquisition recommendation.
Web research
Use POST /research/web with a required query and optional mode. fast returns a synchronous research response; reasoning is the default and returns asynchronous job information. Both can consume credits.
Optional fields include context, recency, after_date and before_date. Follow the returned job information for reasoning mode; do not treat HTTP 202 as a completed research answer.
Other research surfaces
POST /research/web
Web research using the requested supported mode. Responses may be synchronous or asynchronous.
GET /companies/:domain/overview
Read the company overview.
/markets/company/:ticker/...
Public-market profile, financials, peers, transcripts, analyst data or filings.
GET /markets/filings
Filings search.
GET /markets/maps and GET /markets/maps/:marketId
Accessible market maps.
Mode, filter and provider availability differ by operation. Check currencies, dates, source provenance and pagination in the response. Do not apply the legacy “get company field” or “ask document question” contract to these routes.
For uploaded source documents, use the AI Room family described in Workspace data API, or reference the source in a document-generation prompt.