API reference

Developer docs

The Gist API serves pre-synthesized cultural context as JSON. One authenticated GET returns the current context block for a topic — drop it into your agent's system prompt or fetch it fresh on each call. Blocks are built ahead of time and served as-is, so reads are fast and cacheable. Need an answer to a specific question instead? Search a topic with a free-text query for an on-demand read.

Base URL

All endpoints are relative to:

https://gist-api.the-alt.co

Authentication

Every request needs a secret key in the Authorization header as a bearer token. Create and manage keys from your dashboard. Keys look like gist_sk_live_… — keep them server-side. A missing or invalid key returns 401.

Get the current context block

GET/v1/context/{topic}

Returns the current context block for a subscribed topic — one interpreted, prompt-ready read of where the topic stands right now. knowledgeCutoff tells you exactly how fresh it is, and cacheControl.nextRefresh when to fetch again.

Path parameters

ParameterTypeDescription
topicstringrequired · The topic slug, e.g. fashion. Must be a topic you are subscribed to.

Query parameters

ParameterTypeDescription
segmentstringoptional · A segment id or name that targets a specific segment. Omit to get the topic's default segment. The segment must be active on your plan.
Example request
curl https://gist-api.the-alt.co/v1/context/fashion \
  -H "Authorization: Bearer $GIST_KEY"
200 · application/json
{
  "topic": "fashion",
  "segment": { "segmentId": "c980ccca-…", "name": "Global" },
  "knowledgeCutoff": "2026-07-12T23:59:59.999Z",
  "asOf": {
    "week": "2026-07-13-W29",
    "windowStart": "2026-07-06",
    "windowEnd": "2026-07-12"
  },
  "summary": "Wide-leg trousers and baggy jeans are foundational, often ...",
  "read": "The dominant silhouette is relaxed and oversized from the ...",
  "cacheControl": {
    "validUntil": "2026-07-20",
    "nextRefresh": "2026-07-20"
  },
  "noSignal": false,
  "notes": "",
  "contentRead": null
}

Response fields

FieldTypeDescription
topicstringThe topic slug.
segment.segmentIdstringStable id of the segment this block is for.
segment.namestringHuman-readable segment name, e.g. "Global".
knowledgeCutoffstringISO 8601 · The instant the block's knowledge runs through (inclusive).
asOf.weekstringPublishing-week code for the source window.
asOf.windowStartstringdate · First day of the window the block summarizes (inclusive).
asOf.windowEndstringdate · Last day of the window (inclusive).
summarystringShort, prompt-ready synthesis of the topic.
readstringLonger narrative read with more detail.
cacheControl.validUntilstringdate · The block is current until this date.
cacheControl.nextRefreshstringdate · When the next version is expected — poll on or after this.
noSignalbooleanTrue when the block’s focused slice lacked cross-creator support (default segments never signal false here).
notesstringHuman note, e.g. the reason for a no-signal block. Empty string when none.
contentReadstring | nullThe content-formats read for content/campaign consumers, or null for blocks baked without it.

Search a topic

POST/v1/search/{topic}

Ask a free-text question about a topic and get an on-demand, always-fresh read — the same synthesis engine as a saved segment, but throwaway. Requires an active subscription to the topic. Each call spends 3 units from your plan's search-unit budget. A repeat of the same query is served from cache until cacheControl.nextRefresh and does not spend a unit (usage.cached: true); usage.unitsRemaining tells you what's left. The read core (asOf, summary, read, knowledgeCutoff, cacheControl) matches Get the current context block field-for-field.

Path parameters

ParameterTypeDescription
topicstringrequired · The topic slug, e.g. fashion. Must be a topic you are subscribed to.

Body parameters

ParameterTypeDescription
querystringrequired · Your free-text question about the topic (max 400 characters).
geostringoptional · Narrow the read to a place, e.g. "North America" or "Western Europe". Omit for a global read.
thinking"standard"default standard · Model tier. One tier — standard — costing 3 units. The retired "lite" and "pro" ids are still accepted and resolve to standard at the same 3 units.
contentbooleandefault false · Also return content_read — a readout of the content FORMATS running (hooks, structure, angles, sounds), separate from the subject read.
Example request
curl -X POST https://gist-api.the-alt.co/v1/search/fashion \
  -H "Authorization: Bearer $GIST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "what streetwear silhouettes are gaining right now?",
    "geo": "Europe",
    "thinking": "standard",
    "content": true
  }'
200 · application/json
{
  "topic": "fashion",
  "query": "what streetwear silhouettes are gaining right now?",
  "geo": "Europe",
  "thinking": "standard",
  "knowledgeCutoff": "2026-07-12T23:59:59.999Z",
  "asOf": {
    "week": "2026-07-13-W29",
    "windowStart": "2026-07-06",
    "windowEnd": "2026-07-12"
  },
  "summary": "Relaxed, oversized streetwear with a utilitarian bent ...",
  "read": "Baggy, low-slung silhouettes are pulling ahead — parachute and ...",
  "noSignal": false,
  "notes": "",
  "contentRead": "Reels lead with a 3-second fit-check hook, then a ...",
  "cacheControl": {
    "validUntil": "2026-07-20",
    "nextRefresh": "2026-07-20"
  },
  "usage": {
    "cached": false,
    "unitsRemaining": 89
  }
}

Response fields

FieldTypeDescription
topicstringThe topic you searched.
querystringYour query, echoed back.
geostring | nullThe geo scope applied, or null for a global read.
thinkingstringThe model tier used — always "standard".
knowledgeCutoffstringISO 8601 · The instant the read’s knowledge runs through (inclusive). Same shape as /v1/context.
asOf.weekstringPublishing-week code for the source window.
asOf.windowStartstringdate · First day of the window the read summarizes (inclusive).
asOf.windowEndstringdate · Last day of the window (inclusive).
summarystringShort, prompt-ready synthesis.
readstringThe synthesized read answering your query.
noSignalbooleanTrue when the topic lacks enough cross-creator signal for your query.
notesstringContext, populated when noSignal is true.
contentReadstring | nullReadout of the content formats running — null unless content:true was requested.
cacheControl.validUntilstringdate · The read is current until this date.
cacheControl.nextRefreshstringdate · When the read re-synthesizes — a repeat query is free (cached) until then.
usage.cachedbooleanTrue when served from cache — a cached response does NOT consume a unit.
usage.unitsRemainingnumberYour remaining search units after this call.

Errors

Errors use standard HTTP status codes and a consistent JSON envelope:

4xx · application/json
{
  "error": {
    "code": "not_found",
    "message": "No context published for topic 'fashion'."
  }
}
StatusCodeWhen
400invalid_requestA parameter was malformed.
401Missing, invalid, or revoked API key.
403forbiddenNot subscribed to the topic, or the requested segment isn't active on your plan.
403plan_requiredThe topic isn't available on your plan (e.g. a paid topic on the Free plan).
404not_foundNo context block has been published for that topic/segment yet.
429rate_limitedPer-minute burst limit exceeded — retry shortly.
429quota_exceededSearch usage limit reached for your plan (POST /v1/search).