REST API
Getting Started

Getting Started

Technical reference for the AltIndex REST API. For a quick start, see Getting Started.

Base URL

All API V2 requests use the following base URL:

https://v2.api.altindex.com/api

Authentication

All API requests (except the root endpoint) require authentication via an API key passed in the X-API-Key header.

Request Header

Include your API key in every request:

X-API-Key: your_api_key_here

API Key Format

API keys use a v2_ prefix.

Obtaining an API Key

Create and manage keys in the developer console (opens in a new tab). It walks you from choosing a plan to your first response. Enterprise clients receive custom keys during onboarding.


Access Model

The API is organized into seven data families: entities, score, social, news, employment, ownership, and research. Every plan includes every family. Plans differ in request budget, history window, tickers per call, and MCP access, not in which endpoints you can reach.

If a request asks for something outside your plan, the API refuses it with a 403 Forbidden and a code that names the limit:

{
  "error": {
    "code": "HISTORY_LIMIT_EXCEEDED",
    "message": "The requested range is older than your plan allows.",
    "request_id": "req_abc123..."
  }
}

Rate Limiting

Each plan sets a daily request budget and a per-minute ceiling. Both reset on fixed UTC windows. The daily budget is shared between REST and MCP: one number covers both surfaces.

Plans

PlanRequests per dayRequests per minuteMCP calls per minuteHistory windowTickers per call
Hobbyist25020No MCP30 days1
Developer1,000300602 years1
Research10,000300120Full historyUp to 50
EnterpriseCustomCustomCustomFull historyUp to 200

Prices are on the pricing page (opens in a new tab). For Enterprise access, talk to our data team (opens in a new tab).

Rate Limit Headers

Every response to an authenticated request carries your remaining budget:

HeaderMeaning
X-RateLimit-LimitThe limit for the window that refused or served you
X-RateLimit-RemainingRequests left in that window
X-RateLimit-ResetUnix timestamp when the window resets

Rate Limit Exceeded

When you exceed your limit, the API returns a 429 Too Many Requests response with a Retry-After header:

{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Daily request limit exceeded.",
    "request_id": "req_abc123..."
  }
}

Best Practices

  • Cache responses when possible
  • Use date range filters to reduce data transfer
  • Read the X-RateLimit-* headers to track your usage

Error Handling

All errors follow a consistent JSON format with a unique request_id for troubleshooting. The full API Reference also lists the specific error codes each endpoint can return.

Error Response Format

{
  "error": {
    "code": "ERROR_CODE",
    "message": "Human-readable error description",
    "request_id": "req_<uuid>"
  }
}

Error Codes

The most common codes:

HTTP StatusCodeDescription
401 UnauthorizedMISSING_API_KEYNo API key provided in the X-API-Key header
403 ForbiddenINVALID_API_KEYAPI key is invalid or inactive
403 ForbiddenHISTORY_LIMIT_EXCEEDEDThe requested range is older than your plan allows
403 ForbiddenTOO_MANY_TICKERSMore tickers were requested than your plan allows per call
404 Not FoundTICKER_NOT_FOUNDThat ticker is not in our covered universe
422 Unprocessable EntityVALIDATION_ERRORRequest validation failed
429 Too Many RequestsRATE_LIMIT_EXCEEDEDDaily or per-minute request limit exceeded

The API also returns the request_id in the X-Request-ID response header. Quote that value in a support ticket and we can find the request.


OpenAPI Specification

Download the machine-readable spec: /openapi/v2.json


Next Steps

  • Browse the Reference for endpoint details
  • Connect AltIndex to your AI assistant via MCP
  • Explore the Data Dictionary for field definitions and coverage