AIXBT Docs
API v3Reference

List Projects associated with a Topic

GET
/v3/topics/{topicId}/projects

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.

Path Parameters

topicId*string
Match^topic_[a-f0-9]{20}$

Query Parameters

cursor?string

Opaque cursor from meta.nextCursor.

limit?integer
Default50
Range1 <= value <= 50

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v3/topics/string/projects"

{
  "data": [
    {
      "project": {
        "id": "665f0a2b1c9d440000a1b2c3",
        "slug": "examplechain",
        "name": "ExampleChain"
      },
      "observedPosts": 96,
      "distinctAuthors": 44,
      "shareOfTopicPosts": 0.23,
      "firstObservedAt": "2026-08-04T06:10:00Z",
      "lastObservedAt": "2026-08-05T04:41:00Z",
      "sentiment": {
        "populated": 61,
        "coverage": 0.64
      }
    }
  ],
  "meta": {
    "nextCursor": null,
    "window": {
      "from": "2026-08-04T04:55:00Z",
      "to": "2026-08-05T04:55:00Z"
    },
    "versions": {
      "resolver": "project-resolver-v4",
      "membership": "topic-membership-v2"
    }
  }
}

{
  "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."
}