Public-web and company-contact search
This page covers two independent capabilities: searching public-web sources by query and finding company contacts by official domain. These endpoints do not automatically create a comprehensive company report covering every dimension such as financials and competitors.
Both endpoints create asynchronous jobs and return results on the job object. Idempotency-Key is optional; send and reuse it when safe retries are required.
You may send Prefer: wait=20. If the job finishes during the wait window, the endpoint returns HTTP 200; otherwise it returns HTTP 202, and the caller continues polling /api/v2/jobs/{id}.
Public-web research
POST/api/v2/research/public-web
cURLcurl -X POST "https://revor.ai/api/v2/research/public-web" \ -H "Authorization: Bearer sk-revor-REPLACE_ME" \ -H "Content-Type: application/json" \ -H "Prefer: wait=20" \ -d '{ "queries": ["Banbros Commercial Inc company profile"], "search_limit": 5, "category": "company", "include_domains": [], "user_location": "US" }'
item.result for a successful job:
JSON{ "status": "complete", "queries": ["Banbros Commercial Inc company profile"], "searched_queries": 1, "results_per_query": 5, "results": [ { "query": "Banbros Commercial Inc company profile", "sources": [ { "url": "https://example.com/company", "title": "Company Profile", "published_date": null, "author": null, "image": null, "highlights": ["..."], "text": "..." } ] } ], "errors": [] }
If one query fails while another succeeds, status may be partial, with failures listed in errors. Source text is length-limited; ...[truncated] means the source text was trimmed to the response limit.
Company-contact search
POST/api/v2/research/contacts
Use a verified official company domain. Do not substitute a company name or LinkedIn URL for the domain.
cURLcurl -X POST "https://revor.ai/api/v2/research/contacts" \ -H "Authorization: Bearer sk-revor-REPLACE_ME" \ -H "Content-Type: application/json" \ -H "Prefer: wait=20" \ -d '{ "domain": "example.com", "positions": ["procurement", "supply chain", "purchasing"], "limit": 20, "locale": "en" }'
Example item.result for a successful job:
JSON{ "status": "done", "domain": "example.com", "company_name": "Example Inc.", "contacts": [ { "email": "[email protected]", "status": "valid", "position": "VP Supply Chain", "first_name": "Alex", "last_name": "Morgan", "full_name": "Alex Morgan", "linkedin_url": "https://www.linkedin.com/in/example/" } ], "nodes": [ { "id": "contact:[email protected]", "kind": "person", "title": "VP Supply Chain", "name": "Alex Morgan", "email": "[email protected]", "status": "valid", "linkedin_url": "https://www.linkedin.com/in/example/", "department": "Supply Chain", "seniority": "vp", "sort_order": 1 } ], "edges": [ { "from": "contact:[email protected]", "to": "department:supply-chain", "relation": "member_of", "confidence": 0.8, "sort_order": 1 } ], "note": "The hierarchy is inferred from available contact titles and is not a verified reporting structure." }
The organizational hierarchy is inferred from available job-title data; it is not a company-verified reporting structure. Upstream contact data is returned as received, and the API does not guess or correct identities.