research_hook_evidence
Return a deterministic, unpadded portfolio of verified hook evidence. Hard evidence gates precede relevance and diversity; views are observed platform views. Openers are audio_verified, or transcript_grounded with explicit caveats when enabled. Each item has a grounded idea and later exact payoff, bound by content_arc_receipt to one request, media and transcript, with first_audible_speech and leading_segments preserving earlier speech. New calls are exact-only; retained terminals may replay legacy shapes. Where the provider runtime is bound this DISPATCHES and SPENDS credits under a 300-second authorization: allow at least 310 seconds. Errors: unauthorized, invalid_request, idempotency_conflict, rate_limited.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | V1 standard supports up to 5 items; deep supports up to 10. | standard |
| topic | Yes | The exact subject the evidence hooks must address. | |
| locale | No | Explicit country, dialect, script, and code-switch policy. | |
| api_key | No | API key for this call. Omit to fall back to the Authorization: Bearer / X-API-Key request header (streamable-HTTP only), then the VHGENGINE_API_KEY env var (the stdio default). No key resolvable -> unauthorized. | |
| formats | No | V2 allowed speaking formats. Omit for the four-format bundle. | |
| audience | No | Optional intended viewer whose fit is scored from evidence. | |
| freshness | No | Maximum source age: any, 7d, 30d, or 90d. | any |
| must_exclude | No | Concepts every admitted item must evidence as absent. | |
| must_include | No | Exact concepts every admitted item must evidence. | |
| allow_partial | No | Must be false; public evidence delivery is exact-only. | |
| viewer_action | No | Optional desired viewer action scored from evidence. | |
| schema_version | No | Use hook-research-request-v2 to opt into the V2 contract. | hook-research-request-v1 |
| desired_outcome | No | Optional outcome that evidence must support. | |
| idempotency_key | No | Caller-chosen replay key (any string, unique per intended effect). A repeat call with the SAME key returns the stored result and is NEVER charged twice; the same key with different arguments is an idempotency_conflict. Omit and every call is a fresh, separately charged operation. | |
| requested_count | No | V1 maximum verified items, 1-10. | |
| requested_format | No | Optional V1 format preference; omission makes format irrelevant to selection and refusal. | |
| problem_or_tension | No | Optional problem or tension that evidence must match. | |
| requested_count_v2 | No | V2 maximum verified items, 1-30; omission defaults to 10. | |
| requested_language | No | Requested output evidence language: en, fr, es, ar, or ary. | en |
| source_requirements | No | Per-platform delivery quota policy. If supplied, include TikTok, Instagram, and YouTube exactly once. Required sources use a minimum of 1-10; preferred sources must use 0. | |
| allowed_opener_states | No | Opener states this caller accepts. Both public states are accepted by default; transcript_grounded items carry an explicit caveat. | |
| source_requirements_v2 | No | V2 per-platform quotas; omission prefers all three platforms. | |
| minimum_acceptable_count | No | Legacy compatibility field. Omit to require requested_count exactly; an explicit value must equal requested_count. | |
| minimum_distinct_sources | No | Minimum distinct admitted platforms, 1-3. | |
| accepted_source_languages | No | Verified spoken languages eligible as sources. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| items | No | Up to ten admitted items. New non-success responses contain none; an exact retained pre-strict insufficient terminal may preserve historical items. Each item includes the canonical URL, observed platform views, non-ad evidence, acquisition origins and call receipts, verification artifact hashes, language, format, opener state, topic-fit explanation, an explicit source_video object, an explainable non-virality score receipt, and caveats. | |
| status | No | New commissions return succeeded, insufficient_verified_supply, unsupported_cell, or failed. An exact retained pre-strict terminal may reproduce deprecated degraded or an item-bearing insufficient response; replayed stays truthful for first publication after crash recovery versus a stored retry. | |
| replayed | No | Whether an idempotency record supplied this response. | |
| operation | No | Always research_hook_evidence. | |
| request_id | No | Trace id for this call. | |
| cost_receipt | No | Pricing policy plus credits_reserved, credits_charged, credits_remaining, and proof that charge did not exceed reservation. | |
| deficiencies | No | Machine-readable shortfall, unsupported-cell, or execution-failure reasons. | |
| plan_receipt | No | Sanitized planning receipt, support decision, and any unsupported cells. | |
| schema_version | No | Frozen response contract version. | |
| delivered_count | No | Verified items actually delivered, exactly matching items length. | |
| policy_receipts | No | Planner, verifier, ranking, and pricing policy identifiers that governed the result. | |
| public_response | No | Optional candidate evidence view. Omitted unless VHGENGINE_RESEARCH_INTELLIGENCE_PUBLIC_RESPONSE_V2 is on. Never replaces hook_text. Never includes signed media URLs. | |
| ranking_receipt | No | Stable hard-gate, score, rejection, and selection receipts for every candidate. | |
| request_receipt | No | Canonical request schema version and SHA-256 receipt. | |
| requested_count | No | Requested portfolio size, 1-10. | |
| replayed_at_charge | No | Whether replay was detected inside the atomic commit boundary. | |
| acquisition_receipt | No | Immutable acquisition plan, call, budget, source-settlement, and deficiency receipt. | |
| minimum_acceptable_count | No | Minimum count the caller declared useful. | |
| distinct_source_settlement | No | Requested and delivered source diversity plus its met flag. | |
| required_source_settlement | No | Per-platform policy, required minimum or preferred zero, delivered count, and met flag. |