# Otto AI Earnings Calendar

> Otto AI Earnings Calendar is a paid API for AI agents from x402.ottoai.services, paid per call via x402, $0.003/call, status unknown (last checked 2026-09-14).

Returns upcoming and past earnings data for an equity or ETF ticker, including EPS estimates, report dates, session timing, and surprise results.

## Facts

- Endpoint: GET https://x402.ottoai.services/earnings-calendar
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/otto-ai-earnings-calendar-bfefad94
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_-SyOmK2I5wZcFFJePctnl

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability otto-ai-earnings-calendar-bfefad94
```

Example prompt: When is Apple's next earnings report and what's the EPS estimate? Also tell me if they beat or missed last quarter.

## When to prefer this

Use this endpoint when you need structured earnings calendar data for a specific US equity or ETF ticker, including both historical EPS surprise results and upcoming report dates with session timing. Prefer this over generic financial data APIs when you need a single clean pay-per-call lookup without a subscription, especially within an AI agent workflow that already handles x402 micropayments on Base, Polygon, or Solana.

## Known failure modes

- Unsupported ticker symbol returns an error or empty data payload
- ETFs with no earnings calendar (e.g. broad index ETFs) may return unavailable fields
- Pre/post price drift status may be returned as 'unavailable' when data is not available
- Stale data if cache has not refreshed — check meta.stalenessSec and meta.validUntil
- Missing or malformed ticker query parameter returns a validation error

## How this service works

Earnings calendar and surprise history for a vendor-resolved equity: next report date/session with EPS and revenue estimates, latest reported EPS versus estimate, surprise percentage, and four-quarter history. Monetary estimates retain Finnhub payload units because the captured feed does not identify a currency. Event-window price drift is explicitly unavailable rather than inferred.

## Output

Returns a JSON object with the ticker, data provider (Finnhub), last earnings details (result beat/miss, EPS surprise %, fiscal period end), next earnings details (report date, session timing like after-market-close, EPS estimate), and metadata including freshness timestamp and staleness in seconds.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "ticker"
     ],
     "properties": {
      "ticker": {
       "type": "string",
       "description": "Vendor-supported equity or ETF ticker (e.g. AAPL, NVDA, TSLA, SPY); returned monetary values use the vendor payload units and are not relabeled as USD."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "status"
     ],
     "properties": {
      "data": {},
      "meta": {
       "type": "object"
      },
      "reason": {
       "type": "string",
       "description": "status=unavailable only; every >=400 is UNCHARGED"
      },
      "status": {
       "enum": [
        "success",
        "unavailable"
       ],
       "type": "string"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "ticker": "AAPL",
   "provider": "Finnhub",
   "lastEarnings": {
    "result": "beat",
    "epsBasis": "vendor-reported",
    "epsSurprisePct": 1.09
   },
   "nextEarnings": {
    "session": "after-market-close",
    "reportDate": "2026-07-30",
    "epsEstimate": 1.93
   },
   "prePostPriceDrift": {
    "status": "unavailable"
   }
  },
  "meta": {
   "degraded": false,
   "validUntil": "",
   "generatedAt": "",
   "stalenessSec": 0
  },
  "status": "success"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/otto-ai-earnings-calendar-bfefad94/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.ottoai.services](https://www.zero.xyz/host/x402.ottoai.services/llms.txt)
