Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.sixtyfour.ai/llms.txt

Use this file to discover all available pages before exploring further.

Use case

Research and enrich company data with additional firmographic information and find associated people. Use it for sales outreach, CRM enrichment, lead qualification, or investigative diligence.

Endpoint

POST https://api.sixtyfour.ai/company-intelligence

API Reference

See the full request/response schema and parameters in the API Reference.

Pricing

See Credits & Pricing Guide for credit costs by tier.

Errors

For error responses (400, 403, 422, etc.), see Handling Errors.

Tiers

The tier parameter controls research depth and cost.
TierDescriptionAccess
low (default)Baseline tier — fast and cheap. Good for high-volume firmographic enrichment.All orgs
mediumDeeper research — more fields filled, more sources.All orgs
highOSINT-grade investigation — deeply recursive crawling across the open web, dark web, directories, proprietary sources. Designed for high-stakes accounts, sensitive diligence, and investigative workflows.Exclusive — access is granted case-by-case by our team. Contact sales to request.
If tier is omitted, low is used. Requests with tier: "high" on an org without high-tier access return 403 — see Handling Errors.

Using the struct field

The struct field defines exactly what data you want back. Each key becomes a field in structured_data, and its value tells the agent what to find. You can pass either a plain-English description or an object with description and type:
{
  "struct": {
    "instagram_url": "Instagram url for the photography company",
    "num_employees": {"description": "Approximate employee count", "type": "int"}
  }
}
The agent uses these descriptions to guide its research. Be specific — "company's primary Instagram handle" returns better results than "social". For supported types, type resolution priority, and casting examples, see Struct & Type Casting.

find_people vs full_org_chart

  • find_people — Finds specific people associated with the company. Pair with people_focus_prompt to filter by role or seniority.
  • full_org_chart — Returns a compact view of employees grouped by department (capped per department). It’s broad coverage of who works where, not a literal reporting tree or an exhaustive employee dump. When true, the response includes a top-level org_chart field.
Use find_people for targeted lead discovery and full_org_chart for department-level visibility.

research_plan vs people_focus_prompt

  • research_plan — Methodology. Tells the agent where to look (e.g., "Check the 'About Us' page and LinkedIn Company People tab").
  • people_focus_prompt — Criteria. Tells the agent who to find (e.g., "Find the VP of Marketing and the CTO").

Understanding scores

FieldMeaningRange
confidence_scoreGlobal quality score — overall quality, consistency, and correctness of the returned data.0–10
scoreRelevance score — likelihood that a returned person matches the prompt or is helpful. Returned per lead.0–10
The findings field on the response is deprecated. It currently returns an empty list and will be removed in a future update.

Async pattern

For production workflows, use /company-intelligence-async to submit a job and poll for results. This avoids long-lived HTTP connections during deep research runs. The flow is:
  1. SubmitPOST /company-intelligence-async with the same body as the sync endpoint. Response includes a task_id.
  2. PollGET /job-status/{task_id} until status is completed, failed, or cancelled.
  3. Read result — When completed, the full enrichment is in the result field.
The async start endpoint returns uppercase RUNNING. Subsequent /job-status/{task_id} calls return lowercase statuses. charge_amount is returned in cents, not credits.

Polling example

import requests
import time

response = requests.post(
    "https://api.sixtyfour.ai/company-intelligence-async",
    headers={"x-api-key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
        "target_company": {
            "company_name": "Pacific View Studios",
            "website": "https://pacificview.studio"
        },
        "struct": {
            "instagram_url": "Instagram url for the photography company",
            "num_employees": "How many employees work there"
        },
        "find_people": True
    }
)
response.raise_for_status()
task_id = response.json()["task_id"]

while True:
    status = requests.get(
        f"https://api.sixtyfour.ai/job-status/{task_id}",
        headers={"x-api-key": "YOUR_API_KEY"}
    ).json()

    if status["status"] == "completed":
        results = status["result"]
        break
    if status["status"] in ("failed", "cancelled"):
        raise RuntimeError(f"Job {status['status']}: {status.get('error', 'Unknown error')}")

    time.sleep(10)