---
title: "List the token owner's knowledge hubs"
method: GET
path: "/business/knowledge-hubs"
tags: ["Knowledge hubs"]
---

# List the token owner's knowledge hubs

`GET /business/knowledge-hubs`

## Request

- Base URL: `https://api.tryfuse.ai/api/v1`
- URL: `https://api.tryfuse.ai/api/v1/business/knowledge-hubs`
- Auth: HTTP basic

Knowledge hubs ground AI campaign generation in your company's content. Pass a hub's `id` as `knowledgeHubId` when creating an AI campaign, or mark one hub as the default. Returns every hub you own (deleted hubs excluded), default hub first and then newest first; there is no pagination. `status` is `processing` while the crawl and page synthesis run, `complete` once the hub is usable, `draft` when the hub is not built (it was saved as a draft in the web app and never built, or its last build exhausted its retries), and null for hubs the platform created automatically for a campaign. A `draft` hub is not usable for grounding, and one that never produced a knowledge store is refused by the endpoints that need one. Grounding a campaign on a `processing` hub yields thinner content than waiting for `complete`. Hub builds and reads do not debit credits. Shares the campaigns rate bucket (30 requests per minute, 1000 per day).

Errors:
- `429` `RATE_LIMITED` — More than 30 knowledge-hub/campaign requests in a minute (or 1000 in a day). Knowledge hubs share the campaigns bucket.

Requires one of the following token scopes: campaigns.

## Response `200`

Success

- object
  - `knowledgeHubs` object[], required
    - `id` string, required: 24-character hex id of the hub.
    - `name` string, nullable, required: Hub name; the placeholder "Processing..." while a hub created without a name is still building.
    - `companyName` string, nullable, required: Company name derived from the crawled content; null until the build finishes.
    - `status` 'processing' | 'complete' | 'draft' | 'null', nullable, required: processing = the crawl and page synthesis are running, complete = the hub is usable, draft = the hub is not built — either it was saved as a draft in the web app and never built, or its last build exhausted its retries, null = a hub the platform created automatically for a campaign.
    - `isDefault` boolean, required: Whether this is the default hub used when a campaign names none.
    - `createdAt` string, date-time, nullable, required

## Other responses

- `400`: Error
- `401`: Error
- `402`: Error
- `403`: Error
- `404`: Error
- `409`: Error
- `422`: Error
- `429`: Error
- `500`: Error

---

[API](https://skmtc.dev/fuseai/apis/fuse-business-api.md) · [All operations](https://skmtc.dev/fuseai/apis/fuse-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fuseai/apis/fuse-business-api/revisions/50d95e0536f4?raw)
