Skip to main content

GET /v1/search/semantic

Semantic vector search across filing section content powered by Voyage AI embeddings and Pinecone vector search.
Audience: application and coding agent.

Parameters

ParameterTypeRequiredDescription
qstringYesSearch query text
modestringNoSearch mode: keyword, semantic, or hybrid (default: hybrid)
tickerstringNoFilter by ticker symbol
cikstringNoFilter by CIK number
formstringNoFilter by form type such as 10-K, 10-Q, or 8-K
filing_yearintegerNoFilter by filing year
fyintegerNoAlias for fiscal year filtering
yearintegerNoAlias for year filtering
limitintegerNoMaximum results to return (1-25, default: 10)

Canonical metadata

  • requestId
  • traceparent
  • Omni-Meter-Class: semantic_search billing header

Example request

curl -X GET \
  -H "x-api-key: $OMNI_DATASTREAM_API_KEY" \
  -H "omni-version: 2026-03-19" \
  "https://api.secapi.ai/v1/search/semantic?q=companies+discussing+supply+chain+disruptions&mode=hybrid&limit=10"

Example response

{
  "object": "semantic_search",
  "query": "companies discussing supply chain disruptions",
  "mode": "hybrid",
  "requestId": "req_example_123",
  "traceparent": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01",
  "sections": {
    "object": "list",
    "data": [
      {
        "id": "section_123",
        "filingId": "0000320193-25-000079",
        "ticker": "AAPL",
        "form": "10-K",
        "filingDate": "2025-10-31",
        "key": "item_1a",
        "title": "Risk Factors",
        "contentMd": "Supply chain constraints and component availability may adversely affect...",
        "snippet": "Supply chain constraints and component availability may adversely affect...",
        "provenance": {
          "accessionNumber": "0000320193-25-000079"
        }
      }
    ],
    "count": 1,
    "degradedState": null
  }
}

Give this prompt to your agent

Failure posture

  • treat non-2xx responses as contract-aware failures, not free-form errors
  • preserve requestId and traceparent in logs and downstream reports
  • preserve Omni-Meter-Class when present so downstream billing and usage reasoning stays intact, even if it is carried as header metadata rather than payload data
  • handle search_not_configured (503) as an infrastructure readiness issue, not a bad query
  • handle semantic_search_failed (502) as backend search failure and retry only with awareness of duplicate billing risk