RevorRevor

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
cURL
curl -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"
  }'
FieldTypeRequiredConstraints
queriesstring[]Yes1-2 queries, each up to 500 characters.
search_limitintegerNo1-10 sources per query; default 10.
categorystringNoPreferred page type: company, news, financial report, people, or personal site. For example, use news for news pages and people for person-related pages.
include_domainsstring[]NoUp to 5 domains.
user_locationstringNoTwo-letter country code, such as 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.

POST/api/v2/research/contacts

Use a verified official company domain. Do not substitute a company name or LinkedIn URL for the domain.

cURL
curl -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"
  }'
FieldTypeRequiredConstraints
domainstringYesOfficial domain; protocol and www. are removed.
positionsstring[]NoUp to 30 job-title keywords, each up to 80 characters.
limitintegerNo1-50; default 20.
localestringNoen or zh; default 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.