# Get a Topic

`GET /v3/topics/{topicId}`

Topic detail. Carries the versioned `stance` series: bucketed,
target-scoped stance of the Topic conversation itself
(`supportive`, `skeptical`, `neutral`, `mixed`, `unknown`),
independent from Project-targeted sentiment.

## Authentication

None. This endpoint is public.

## Parameters

```json
[
  {
    "name": "topicId",
    "in": "path",
    "required": true,
    "schema": {
      "type": "string",
      "pattern": "^topic_[a-f0-9]{20}$"
    }
  }
]
```

## Request body

None.

## Responses

```json
{
  "200": {
    "description": "Topic detail.",
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "data",
            "meta"
          ],
          "properties": {
            "data": {
              "$ref": "#/components/schemas/TopicDetail"
            },
            "meta": {
              "$ref": "#/components/schemas/TopicSnapshotMeta"
            }
          }
        },
        "examples": {
          "success": {
            "summary": "Detail with stance series",
            "value": {
              "data": {
                "id": "topic_a1b2c3d4e5f601234567",
                "rank": 1,
                "name": "Restaking yield compression",
                "summary": "Yields across restaking protocols compress as new AVS demand stalls.",
                "trend": 93.2,
                "postCount": 412,
                "authorCount": 118,
                "lastSeenAt": "2026-08-05T04:52:00Z",
                "clusters": [
                  {
                    "cluster": {
                      "id": "cl_defi",
                      "name": "DeFi researchers"
                    },
                    "share": 0.41
                  }
                ],
                "report": {
                  "id": "tr_9f2b6c41d8a35e07b1c4f6a2d5e8091c3b7a4f60d2e5c8b1a4f7092c5d8e3b6a",
                  "title": "Restaking Yield Compression",
                  "publishedAt": "2026-08-04T18:00:00Z"
                },
                "stance": {
                  "buckets": [
                    {
                      "from": "2026-08-05T03:00:00Z",
                      "to": "2026-08-05T04:00:00Z",
                      "dominant": "skeptical",
                      "shares": {
                        "supportive": 0.18,
                        "skeptical": 0.47,
                        "neutral": 0.22,
                        "mixed": 0.08,
                        "unknown": 0.05
                      }
                    }
                  ]
                }
              },
              "meta": {
                "snapshot": {
                  "completedAt": "2026-08-05T04:55:00Z",
                  "latestEvidenceAt": "2026-08-05T04:52:10Z",
                  "windowStartedAt": "2026-08-04T04:55:00Z"
                },
                "versions": {
                  "stanceSchema": "1",
                  "stanceClassifier": "stance-v2"
                }
              }
            }
          }
        }
      }
    }
  },
  "400": {
    "$ref": "#/components/responses/BadRequest"
  },
  "401": {
    "$ref": "#/components/responses/Unauthorized"
  },
  "403": {
    "$ref": "#/components/responses/Forbidden"
  },
  "404": {
    "$ref": "#/components/responses/SubjectMiss"
  },
  "429": {
    "$ref": "#/components/responses/RateLimited"
  },
  "500": {
    "$ref": "#/components/responses/Internal"
  }
}
```

## Referenced schemas

```json
{
  "TopicDetail": {
    "allOf": [
      {
        "$ref": "#/components/schemas/TopicListItem"
      },
      {
        "type": "object",
        "properties": {
          "stance": {
            "$ref": "#/components/schemas/StanceSeries"
          }
        }
      }
    ]
  },
  "TopicListItem": {
    "type": "object",
    "required": [
      "id",
      "rank",
      "name",
      "summary",
      "postCount",
      "authorCount",
      "lastSeenAt"
    ],
    "properties": {
      "id": {
        "type": "string"
      },
      "rank": {
        "type": "integer"
      },
      "name": {
        "type": "string"
      },
      "summary": {
        "type": "string"
      },
      "trend": {
        "type": "number"
      },
      "postCount": {
        "type": "integer"
      },
      "authorCount": {
        "type": "integer"
      },
      "lastSeenAt": {
        "type": "string",
        "format": "date-time"
      },
      "clusters": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "cluster",
            "share"
          ],
          "properties": {
            "cluster": {
              "$ref": "#/components/schemas/ClusterRef"
            },
            "share": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            }
          }
        }
      },
      "report": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ReportRef"
          },
          {
            "type": "null"
          }
        ]
      },
      "association": {
        "$ref": "#/components/schemas/TopicAssociationFacts"
      }
    }
  },
  "ClusterRef": {
    "type": "object",
    "required": [
      "id",
      "name"
    ],
    "properties": {
      "id": {
        "type": "string"
      },
      "name": {
        "type": "string"
      }
    }
  },
  "ReportRef": {
    "type": "object",
    "required": [
      "id",
      "title",
      "publishedAt",
      "revisedAt"
    ],
    "properties": {
      "id": {
        "type": "string"
      },
      "title": {
        "type": "string"
      },
      "publishedAt": {
        "type": "string",
        "format": "date-time"
      },
      "revisedAt": {
        "oneOf": [
          {
            "type": "string",
            "format": "date-time"
          },
          {
            "type": "null"
          }
        ]
      }
    }
  },
  "TopicAssociationFacts": {
    "type": "object",
    "required": [
      "observedPosts",
      "distinctAuthors",
      "shareOfTopicPosts",
      "firstObservedAt",
      "lastObservedAt"
    ],
    "properties": {
      "observedPosts": {
        "type": "integer"
      },
      "distinctAuthors": {
        "type": "integer"
      },
      "shareOfTopicPosts": {
        "type": "number",
        "minimum": 0,
        "maximum": 1
      },
      "firstObservedAt": {
        "type": "string",
        "format": "date-time"
      },
      "lastObservedAt": {
        "type": "string",
        "format": "date-time"
      },
      "sentiment": {
        "type": "object",
        "properties": {
          "populated": {
            "type": "integer"
          },
          "coverage": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        }
      }
    }
  },
  "StanceSeries": {
    "type": "object",
    "required": [
      "buckets"
    ],
    "description": "Bucketed stance of the Topic conversation itself, independent from\nProject-targeted sentiment. Versions travel in `meta.versions`.\n",
    "properties": {
      "buckets": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "from",
            "to",
            "dominant",
            "shares"
          ],
          "properties": {
            "from": {
              "type": "string",
              "format": "date-time"
            },
            "to": {
              "type": "string",
              "format": "date-time"
            },
            "dominant": {
              "$ref": "#/components/schemas/Stance"
            },
            "shares": {
              "type": "object",
              "additionalProperties": {
                "type": "number"
              },
              "description": "Share per stance value, summing to 1."
            }
          }
        }
      }
    }
  },
  "Stance": {
    "type": "string",
    "enum": [
      "supportive",
      "skeptical",
      "neutral",
      "mixed",
      "unknown"
    ]
  },
  "TopicSnapshotMeta": {
    "allOf": [
      {
        "$ref": "#/components/schemas/Meta"
      },
      {
        "type": "object",
        "required": [
          "snapshot"
        ],
        "properties": {
          "snapshot": {
            "type": "object",
            "required": [
              "completedAt",
              "windowStartedAt"
            ],
            "properties": {
              "completedAt": {
                "type": "string",
                "format": "date-time"
              },
              "latestEvidenceAt": {
                "type": "string",
                "format": "date-time"
              },
              "windowStartedAt": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      }
    ]
  },
  "Meta": {
    "type": "object",
    "description": "Response metadata. Empty when nothing applies.",
    "properties": {
      "history": {
        "$ref": "#/components/schemas/HistoryMeta"
      },
      "versions": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        },
        "description": "Named component versions that shaped this response."
      }
    }
  },
  "HistoryMeta": {
    "type": "object",
    "description": "The history window applied to this response. Both fields are null when the account has no history limit.",
    "required": [
      "lookbackDays",
      "earliestAvailableAt"
    ],
    "properties": {
      "lookbackDays": {
        "oneOf": [
          {
            "type": "integer"
          },
          {
            "type": "null"
          }
        ]
      },
      "earliestAvailableAt": {
        "oneOf": [
          {
            "type": "string",
            "format": "date-time"
          },
          {
            "type": "null"
          }
        ]
      }
    }
  }
}
```

Schema references resolve against the [canonical OpenAPI specification](https://api.aixbt.tech/v3/openapi.yaml).