Skip to content
SimicX

Catalogue · Endpoint

List alphas

Every alpha the key may read — alpha_id, name and tldr per row.

GET/v1/alphas

Parameters

Query parameters

NameTypeRequiredDefaultDescription
searchstringoptionalCase-insensitive substring over alpha_id, name and tldr, e.g. search=volatility. Applied after the page is assembled server-side, so pagination.total counts the matches.
complete_onlybooleanoptionalfalseWhen true, omit seals still missing required kinds (in-progress runs). Completeness is not returned on the row — use this filter, or call a data endpoint / readiness, when you need that fact.
limitinteger 1–5000optional100Rows per page. Below 1 or above 5000 is a 400 bad_request naming the parameter and the constraint it broke.
offsetintegeroptional0Rows to skip; pagination.has_more is false at the end.

Example request

curl

curl -H "Authorization: Bearer sxk_live_4f9c…" \
  "https://api.simicx.com/v1/alphas?limit=1"

Try it

Execute GET /v1/alphas against the live API using your key. Paste a key below to send without signing in, or sign in to auto-fill from your profile — either way, the call counts towards your rate limits. Whether the route answers depends on your key's endpoint allow-list — /v1/me lists what is in force; a new key starts with only the self-service routes until an administrator grants more.

Sent server-side via a same-origin proxy; only the documented host(s) are allowed.

Request

GEThttps://api.simicx.com/v1/alphas?complete_only=false&limit=100&offset=0

Example response

JSON · synthetic values, real schema

{
  "data": [
    {
      "alpha_id": "CausalHaarActivityDisplacement_0de63b8678a2_sp500pit_weekly_20260730t000858z_f358d1480d42",
      "name": "Causal Haar Activity-Displacement Reversal",
      "tldr": "At weekly decisions, the alpha assesses active point-in-time S&P 500 members for temporary reversals following urgency-driven price displacement accompanied by unusual trading activity."
    }
  ],
  "pagination": { "limit": 1, "offset": 0, "returned": 1, "total": 4, "has_more": true },
  "meta": { "request_id": "req_7f3a2c", "generated_at": "2026-07-30T14:03:12Z", "source": "alpha_research" }
}

Response fields

Every field the response can carry, what it means, and how it is computed.

  • alpha_idstring

    The alpha's identifier — the only id you need.

    How it is computed

    Use this value in every /v1/alphas/{alpha}/… path.

  • namestring

    Display name.

    How it is computed

    Readable title from the research record when present; otherwise the alpha_id.

  • tldrstring | null

    One-line thesis.

    How it is computed

    From the alpha's description document; null when the run recorded none.

  • Rows come back newest first, ordered by started_at descending with the alpha_id as tiebreak, then paged with limit / offset. There is no sort parameter. Timestamps themselves are not on the row.
  • The list is deliberately thin. Call GET /v1/alphas/{alpha} for the written description, /metrics for diagnostics, and /admin/…/readiness (operators) for seal completeness.
  • There is no completeness flag on the row. Pass complete_only=true to hide seals that are still writing.