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 API keys at app.altindex.com/settings (opens in a new tab). 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 minuteHistory windowTickers per callMCP
Hobbyist2502030 days1No
Developer1,000602 years1Yes
Research10,000300Full historyUp to 50Yes
EnterpriseCustomCustomFull historyUp to 200Yes

See altindex.com/pricing (opens in a new tab) for plans. For Enterprise access, contact sales (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