CONTRACT
Free bounded earnings preview
- Skill
qj-earnings-preview- Route
/v1/query/earnings-preview- Identity
- OAUTH · agents:query
- Price
- FREE
QJ//BOUNDED QUERY · OFFLINE
Prepare an evidence-backed earnings preview with consensus, revisions, dispersion, historical surprises, valuation context and explicit review questions.
/v1/query/earnings-previewOAUTH · agents:queryFREE
CONTRACT
qj-earnings-preview/v1/query/earnings-previewGOVERNED METHOD
data.profile.getqj-data-mcpdata.prices.latestqj-data-mcpdata.metrics.snapshotqj-data-mcpdata.events.earnings_calendarqj-data-mcpdata.estimates.consensusqj-data-mcpdata.estimates.surpriseqj-data-mcpdata.estimates.revisionsqj-data-mcpdata.estimates.dispersionqj-data-mcpdata.events.consensus_driftqj-data-mcpdata.events.earnings_historyqj-data-mcpNo direct database, provider API or private service access. Missing coverage remains missing—it is never turned into a negative fact.
INVOKE
Register an OAuth client, request scope agents:query, then call the route with its bearer token. This query is free; OAuth identifies the caller and enforces its limits.
REQUEST
{
"ticker": "AAPL"
}
ILLUSTRATIVE RESPONSE SHAPE · NOT LIVE MARKET DATA
{
"schemaVersion": "qj-agents.earnings-preview.v3",
"skillId": "qj-earnings-preview",
"priceUsd": "0.00",
"status": "complete | partial",
"query": {
"ticker": "AAPL"
},
"facts": {
"example": "live fields are returned here"
},
"interpretation": [],
"coverage": [
{
"tool": "data.profile.get",
"status": "ok"
}
],
"toolsUsed": [
"data.profile.get",
"data.prices.latest",
"data.metrics.snapshot",
"data.events.earnings_calendar",
"data.estimates.consensus",
"data.estimates.surprise",
"data.estimates.revisions",
"data.estimates.dispersion",
"data.events.consensus_drift",
"data.events.earnings_history"
],
"asOf": "ISO-8601 source timestamp",
"freshness": {
"status": "fresh | stale | unknown"
},
"lineageRefs": [
"source and materialization references"
]
}