Skip to main content
GET
Read a company intelligence result
Use result_url unchanged on the API origin and authenticate with a Key permitted to read every Run. The response uses the same fields as the initial Solution response. HTTP 200 can still carry result_status: pending while an asynchronous lookup runs; keep polling until status is terminal. This read creates no Runs, calls no Providers and does not resume fallback.

Query Parameters

token
string
required

Opaque result context returned in result_url. Keep it unchanged and authenticate with a Key permitted to read every listed Run.

Required string length: 1 - 16384

Response

CompanyIntelligenceResult

id
string
required
run_url
string
required

Open this Run in the console. Requires Workspace membership.

provider
string
required
Pattern: ^[a-z0-9][a-z0-9-]*$
endpoint
string
required
Pattern: ^\/.+$
endpoint_version
integer
required
status
enum<string>
required

QUEUED or RUNNING: still in progress. COMPLETED: a Provider response is available, including non-2xx responses. FAILED: read failure. STOPPED: stopped before dispatch. Read charge_usd separately from status.

Available options:
QUEUED,
RUNNING,
COMPLETED,
FAILED,
STOPPED
failure
object | null
required

Why the Run failed. Non-null only when status is FAILED.

input
object
required
output
object
required

Normalized fields per action. The Provider's native output is not repeated here; it stays on the Run (GET /v1/runs/:id). Values a Provider does not report are null; an empty answer is the action's shape with every field null, or items: [], with result_status no_result. Money is USD. Employees and revenue are the Provider's own estimates; *_range_min / *_range_max are the edges of the Provider's bucket. A score from a Provider's own model is named after the Provider (exa_similarity_score) and is null for the others. Labels such as industry, categories, round and category are in the answering Provider's vocabulary.

  • enrich: name, website, description, industry, employees, employee_range_min, employee_range_max, founded_year, city, region, country, country_code, linkedin_url, phone, total_funding_usd, revenue_usd, revenue_range_min_usd, revenue_range_max_usd, ownership, ticker, latest_funding_date
  • tech_stack: items[]: name, categories[], detection_source, predictleads_confidence, first_detected_date, last_detected_date
  • traffic: monthly_visits, organic_traffic, paid_traffic, organic_keywords, paid_keywords, organic_traffic_value_usd, similarweb_global_rank, bounce_rate, pages_per_visit, avg_visit_duration_seconds
  • competitors: items[]: domain, name, page_title, position, predictleads_similarity_score, exa_similarity_score, reason
  • funding: total_funding_usd, items[]: round_date, round, amount_usd, investors[], source_url
  • news: items[]: title, url, source, published_at, event_date, date_text, category, snippet
provider_response
object | null
required

Non-null only when status is COMPLETED.

  • For 2xx responses, output contains Provider-native JSON (any shape), or null for an empty body.
  • For non-2xx responses, error contains the Provider's error body and output is null.

Sensitive fields are removed from both bodies.

charge_usd
string | null
required

Total charge of runs in this Solution response. Null until all listed Runs settle. Each Run retains its own charge; failures can also be charged.

Pattern: ^(0|[1-9]\d*)\.(\d{2}|\d{2}\d{0,3}[1-9])$
charge_basis
object | null
required

Single-Run charge basis, or null for a multi-Run total. Read runs[].charge_basis for each charge.

stoppable
boolean
required

Whether a stop request can currently be accepted. This does not guarantee that the Run can stop before dispatch.

stop_requested_at
string<date-time> | null
required

When a stop was requested. The Run can still continue if dispatch had already started.

created_at
string<date-time>
required

ISO-8601 UTC timestamp

started_at
string<date-time> | null
required

ISO-8601 UTC timestamp

completed_at
string<date-time> | null
required

ISO-8601 UTC timestamp

task_id
string | null
required
metadata
object
required

Your stored tracking fields. Use them to filter Runs. They never go to the Provider or affect routing, Price, or idempotency.

  • Up to 20 keys: lowercase letters, digits, and underscores; start with a letter; at most 40 characters.
  • Values: strings of 1–500 characters.
  • user_id: your End user's opaque ID, never their email address or name.
action
enum<string>
required
Available options:
enrich,
tech_stack,
traffic,
competitors,
funding,
news
result_status
enum<string>
required

Business delivery status, independent of the final Run lifecycle in status. no_result is an empty but valid answer; error means the Provider output could not be delivered.

Available options:
success,
no_result,
error,
pending
error
object | null
required
runs
object[]
required
result_url
string
required

Authenticated, read-only URL path for polling this normalized result and total charge. Use with the API origin. Does not create Runs or resume fallback. GET /v1/runs/:id still returns the native, individual Run.