Skip to main content
POST
/
api
/
v1
/
corroborate
POST /corroborate
curl --request POST \
  --url https://api.getbeta.io/api/v1/corroborate \
  --header 'Content-Type: application/json' \
  --data '
{
  "company": "<string>",
  "claims": [
    {}
  ]
}
'
{
  "entity": {},
  "results": [
    {
      "result.claim_index": 123,
      "result.corroborated": true,
      "result.confidence": 123,
      "result.reason": "<string>",
      "result.detail": "<string>",
      "result.evidence": [
        {}
      ],
      "result.sources_checked": [
        {}
      ]
    }
  ],
  "meta": {}
}

Use case

Verify a factual claim about a company against BETA’s structured sources (SEC filings, M&A transactions, material events, news, people index) before your agent acts on it. Returns corroborated: true with evidence + confidence, or corroborated: false with reason: "no_match" when sources don’t support the claim. This is the citation-discipline primitive — treat corroborated: false as informational, not as failure. For the standard integration pattern, see Recipes → Corroborate before write.

Request

company
string
required
Company name or entity key. 2–200 characters.
claims
array
required
Array of 1–10 claim objects. Each claim:

Response

entity
object
Resolved entity (key, name, verified).
results
array
One result per submitted claim, indexed by claim_index.
meta
object
sources_available, entity_coverage (public_company | private_company), corroborated_at (ISO timestamp), resolution (per Citation Contract).

Code samples

curl -X POST https://api.getbeta.io/api/v1/corroborate \
  -H "Authorization: Bearer $BETA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "company": "NVIDIA",
    "claims": [
      {"type": "role", "person_name": "Jensen Huang", "role": "CEO"}
    ]
  }'

Live response

{
  "entity": {
    "key": "nvidia",
    "name": "NVIDIA Corporation",
    "verified": true
  },
  "results": [
    {
      "claim_index": 0,
      "corroborated": true,
      "confidence": 0.8,
      "reason": "people_index_match",
      "detail": "Jensen Huang found in 1 record(s) at this company.",
      "evidence": [
        {
          "type": "people_index",
          "person": "Jensen Huang",
          "role": "CEO",
          "source_type": "news_extraction",
          "is_current": true,
          "verified_count": 8
        }
      ],
      "sources_checked": [
        "sec_executive_changes",
        "company_mentioned_people"
      ]
    }
  ],
  "meta": {
    "sources_available": [
      "entity_registry",
      "sec_executive_changes",
      "sec_ma_transactions",
      "company_mentioned_people",
      "source_articles"
    ],
    "entity_coverage": "public_company",
    "corroborated_at": "2026-05-20T03:49:30.925Z",
    "resolution": { "source": "curated", "confidence": 1 }
  }
}

Cost notes

/corroborate is BETA’s most expensive call (0.10/claimduringoverageversus0.10/claim during overage versus 0.05 for the others). Batch up to 10 claims per request to minimize round-trip cost and latency.

Errors

StatusBodyWhen
400{"error": "At least one claim required"}Empty claims array
400{"error": "Maximum 10 claims per request"}claims.length > 10
404{"error": "Company not found", "code": "NOT_FOUND"}No entity resolved

Citation pointer

See Citation Contract for how corroborated: false is the explicit refusal signal — the most important shape this endpoint produces.