# Index Constituents

> Index Constituents is a paid API for AI agents from api.edifiedlab.com, paid per call via x402, $0.011/call, status unknown (last checked 2026-10-02).

Returns the current constituent list and GICS sector data for S&P 500, Nasdaq-100, or Russell 2000 indices, with optional single-ticker lookup.

## Facts

- Endpoint: GET https://api.edifiedlab.com/v1/market/indices?utm_source=zero.xyz
- Price: $0.011/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/index-constituents-9a1c8e15
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_OW_SZYfFy-3Y2i2kt1-Oq

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 index-constituents-9a1c8e15
```

Example prompt: Can you pull the full list of current Nasdaq-100 constituents with their GICS sectors, and check if NVDA is in there?

## When to prefer this

Choose this endpoint when you need an authoritative, up-to-date list of index constituents for S&P 500, Nasdaq-100, or Russell 2000, especially when GICS sector classification is also needed. It supports alias-based index naming (ndx, rut, sp500, etc.) making it convenient for agents parsing user intent. Prefer this over manual scraping or static datasets when freshness and structured output matter. It is not suitable for SPX or other indices not in the supported enum.

## Known failure modes

- Invalid or unsupported index alias returns an error — only the documented enum values are accepted (e.g. SPX is explicitly not valid)
- Missing required 'index' query parameter results in a validation error
- Unknown ticker passed with a valid index returns an empty or null constituent match
- Degraded mode may return stale or partial data indicated by the 'degraded: true' flag
- Payment failure via x402 protocol blocks access before data is returned

## How this service works

S&P 500, Nasdaq-100, and Russell 2000 constituents and GICS sectors.

## Output

Returns a JSON object containing the normalized index name, a data_date indicating freshness, the total constituent_count, and a constituents array of objects (each with ticker and GICS sector fields). Also includes action, source, payload, and degraded flags for operational status.

## 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",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "index"
     ],
     "properties": {
      "index": {
       "enum": [
        "NASDAQ",
        "NASDAQ100",
        "NDX",
        "RUSSELL",
        "RUSSELL2000",
        "RUT",
        "S&P500",
        "SP",
        "SP500",
        "nasdaq",
        "nasdaq100",
        "ndx",
        "russell",
        "russell2000",
        "rut",
        "s&p500",
        "sp",
        "sp500"
       ],
       "type": "string",
       "description": "Case-insensitive. Aliases ndx/nasdaq→nasdaq100, rut/russell→russell2000, sp/s&p500→sp500. SPX is not an index."
      },
      "ticker": {
       "type": "string",
       "minLength": 1
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "payload",
      "action",
      "index",
      "constituent_count",
      "constituents",
      "degraded",
      "source",
      "data_date"
     ],
     "properties": {
      "index": {
       "type": "string"
      },
      "action": {
       "type": "string",
       "const": "lookup"
      },
      "source": {
       "type": "string",
       "const": "live"
      },
      "payload": {
       "type": "string",
       "const": "indices"
      },
      "degraded": {
       "type": "boolean",
       "const": false
      },
      "data_date": {
       "type": "string",
       "format": "date"
      },
      "constituents": {
       "type": "array",
       "items": {
        "type": "object"
       }
      },
      "constituent_count": {
       "type": "integer"
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/index-constituents-9a1c8e15/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.edifiedlab.com](https://www.zero.xyz/host/api.edifiedlab.com/llms.txt)
