Get a Topic measurement series
The same measurement-series contract used by Projects, for one known
Topic id. trend keeps the newest real completed score boundary in
each hourly bucket. rank is the committed boundary series reduced
to change points; value is null when a complete leaderboard
publishes the Topic as unranked. Point timestamps preserve the actual
completed measurement boundary. Topic history requires an API key.
Authorization
ApiKeyAuth API key. The Authorization header is accepted as an equivalent
carrier. Responses echo the credential class in X-API-Key-Type.
In: header
Path Parameters
^topic_[a-f0-9]{20}$"trend" | "rank"Query Parameters
date-timedate-timeResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v3/topics/string/series/trend"{
"data": {
"topic": {
"id": "topic_a1b2c3d4e5f601234567",
"name": "Restaking yield compression"
},
"points": [
{
"at": "2026-08-05T03:45:00Z",
"value": 91.8
},
{
"at": "2026-08-05T04:45:00Z",
"value": 93.2
}
]
},
"meta": {
"measure": "trend",
"basis": "hourly",
"window": {
"from": "2026-08-04T05:00:00Z",
"to": "2026-08-05T05:00:00Z"
},
"versions": {
"trendModel": "trend-nb-predictive-v2",
"topicAlgorithm": "trend-nb-predictive-v2.topic-relevance-v3"
},
"history": {
"archiveAccess": false,
"enforced": true,
"lookbackDays": 90,
"earliestAvailableAt": "2026-05-07T00:00:00Z",
"enforcementAt": "2026-08-17T00:00:00Z"
}
}
}{
"code": "invalid_request",
"message": "minTrend must be numeric",
"details": {
"fields": [
"minTrend"
]
}
}{
"code": "credential_required",
"message": "Provide an API key via the x-api-key header."
}{
"code": "entitlement_required",
"message": "This resource requires the topic-reports entitlement.",
"details": {
"entitlement": "topic-reports"
}
}{
"code": "not_found",
"message": "No Project matches that locator.",
"details": {
"subject": {
"type": "project",
"locator": "examplechain"
}
}
}{
"code": "rate_limited",
"message": "Minute limit reached.",
"details": {
"limit": 30,
"window": "minute"
}
}{
"code": "internal_error",
"message": "Unexpected error."
}{
"code": "service_unavailable",
"message": "Measurement history is temporarily unavailable."
}List Projects associated with a Topic GET
The authoritative Topic→Project association collection. An association is observational: canonical Project-attributed posts that are members of the Topic at the shared cutoff. It never implies partnership, endorsement, taxonomy, causality, or a primary Project. Coverage is a statement about source completeness, separate from association eligibility.
List Intel GET
Discrete evidence-graded developments. `grades` filters on the evidence ladder from `chipped` to `flawless`. Project filters combine with AND across kinds and OR within one comma-separated value. `search` is free-text search: the query parses into meaningful terms that must all match, against project identity (names, tickers, handles, addresses, chains) and intel text. Matched items carry a `searchMatches` array explaining each match. Search results page through `meta.nextCursor`. Every non-empty query shape is accepted. When responsive candidate or recent-result bounds may omit matches, `meta.searchCoverage` names the bound and `meta.executedSearch` discloses any normalized scope that differs from the request.