# Massive x402 API – EMA (Exponential Moving Average)

> Massive x402 API – EMA (Exponential Moving Average) is a paid API for AI agents from agent.massive.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-13).

Returns the exponential moving average (EMA) for a given US stock ticker over a specified time window and timespan, paid per-request via x402 with no account required.

## Facts

- Endpoint: GET https://agent.massive.com/v1/indicators/ema/%7BstockTicker%7D
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/massive-x402-api-ema-exponential-moving-average-222ac83f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_nbf138qbfvbG6m58OdAa9

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 massive-x402-api-ema-exponential-moving-average-222ac83f
```

Example prompt: What's the 20-day exponential moving average for AAPL using daily close prices? Give me the last 30 data points in descending order.

## When to prefer this

Choose this endpoint when you need EMA technical indicator data for US equities on a pay-per-request basis with no account, API key, or subscription. Ideal for agents that need occasional or bursty access to stock technical indicators without committing to a recurring plan. Prefer over traditional API subscriptions when usage is sporadic or cost-per-call economics are preferred. Use over the SMA endpoint specifically when an exponentially weighted moving average (giving more weight to recent prices) is required.

## Known failure modes

- Payment not settled — 402 response with payment terms header returned instead of data
- Invalid or unrecognized ticker symbol — empty results or error status
- Timestamp filter outside available data range — empty results array
- Window size or limit out of allowed bounds — validation error
- Network timeout during payment settlement — request must be retried

## How this service works

US stock market data, sold per request over x402. Every path here answers 402 with the payment terms in the PAYMENT-REQUIRED header, and answers with the data once the payment settles. No account, no API key, no subscription.

## Output

Returns a JSON object containing an array of EMA values each with a numeric EMA value and a millisecond timestamp, the URL of the underlying aggregate data used in the calculation, a pagination cursor (next_url) for retrieving additional results, and a request ID. Status field indicates success or failure.

## 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"
    },
    "pathParams": {
     "type": "object",
     "required": [
      "stockTicker"
     ],
     "properties": {
      "stockTicker": {
       "type": "string",
       "description": "Specify a case-sensitive ticker symbol for which to get exponential moving average (EMA) data. For example, AAPL represents Apple Inc."
      }
     }
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "limit": {
       "type": "integer",
       "default": 10,
       "maximum": 5000,
       "description": "Limit the number of results returned, default is 10 and max is 5000"
      },
      "order": {
       "enum": [
        "asc",
        "desc"
       ],
       "type": "string",
       "default": "desc",
       "description": "The order in which to return the results, ordered by timestamp."
      },
      "window": {
       "type": "integer",
       "default": 50,
       "description": "The window size used to calculate the exponential moving average (EMA). i.e. a window size of 10 with daily aggregates would result in a 10 day moving average."
      },
      "adjusted": {
       "type": "boolean",
       "default": true,
       "description": "Whether or not the aggregates used to calculate the exponential moving average are adjusted for splits. By default, aggregates are adjusted. Set this to false to get results that are NOT adjusted for splits."
      },
      "timespan": {
       "enum": [
        "minute",
        "hour",
        "day",
        "week",
        "month",
        "quarter",
        "year"
       ],
       "type": "string",
       "default": "day",
       "description": "The size of the aggregate time window."
      },
      "timestamp": {
       "type": "string",
       "description": "Query by timestamp. Either a date with the format YYYY-MM-DD or a millisecond timestamp."
      },
      "series_type": {
       "enum": [
        "open",
        "high",
        "low",
        "close"
       ],
       "type": "string",
       "default": "close",
       "description": "The price in the aggregate which will be used to calculate the exponential moving average. i.e. 'cl
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "status": "OK",
  "results": {
   "values": [
    {
     "value": 140.139,
     "timestamp": 1517562000016
    }
   ],
   "underlying": {
    "url": "https://api.massive.com/v2/aggs/ticker/AAPL/range/1/day/2003-01-01/2022-07-25"
   }
  },
  "next_url": "https://api.massive.com/v1/indicators/ema/AAPL?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy",
  "request_id": "a47d1beb8c11b6ae897ab76cdbbf35a3"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/massive-x402-api-ema-exponential-moving-average-222ac83f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent.massive.com](https://www.zero.xyz/host/agent.massive.com/llms.txt)
