---
title: "Re-crawl one of the hub's websites"
method: POST
path: "/business/knowledge-hubs/{hubId}/refresh"
tags: ["Knowledge hubs"]
---

# Re-crawl one of the hub's websites

`POST /business/knowledge-hubs/{hubId}/refresh`

## Request

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

Re-crawls one of the hub's websites and regenerates the knowledge pages built from it (202). Pass a URL that is already one of the hub's websites — from `websites[].url` in the hub detail; the match ignores scheme and `www.`, and a URL the hub does not have answers 404 `KNOWLEDGE_HUB_WEBSITE_NOT_FOUND`. Only the URL you pass is re-crawled: subpages the crawler already discovered from it are NOT re-crawled, and the pages built from them keep their existing text. When the website was added with `includeSubPages`, a refresh still picks up subpages that are new since the last crawl. To refresh a subpage, pass that subpage's own URL — every discovered subpage is itself one of the hub's `websites`. The hub flips to `status` `processing` at once; poll `GET /business/knowledge-hubs/{hubId}` until it is `complete`. The hub's owner can refresh, and so can anyone on the team when it is the team's shared hub, at most 3 times per minute and 25 per day on top of the shared rate bucket. Hubs built before knowledge pages cannot be refreshed (409 `KNOWLEDGE_HUB_PAGES_UNAVAILABLE`).

Errors:
- `404` `KNOWLEDGE_HUB_NOT_FOUND` — No hub with that id, it was deleted, or it belongs to another team.
- `404` `KNOWLEDGE_HUB_WEBSITE_NOT_FOUND` — `url` is not one of the hub's websites.
- `409` `KNOWLEDGE_HUB_NOT_READY` — The hub is still building, or is already processing another change.
- `409` `KNOWLEDGE_HUB_PAGES_UNAVAILABLE` — The hub predates knowledge pages and cannot be refreshed.
- `403` `KNOWLEDGE_HUB_OWNER_ONLY` — You can read this teammate's hub, but it is not your team's shared hub, so only its owner can refresh it.
- `422` `VALIDATION_FAILED` — url missing or outside 4-2048 characters.
- `500` `UNEXPECTED_ERROR` — The refresh workflow could not be enqueued; the hub is left complete — retry.
- `429` `RATE_LIMITED` — The shared campaigns bucket was exceeded, or more than 3 refreshes in a minute / 25 in a day.

Requires one of the following token scopes: campaigns.

## Path parameters

- `hubId` string, required: 24-character hex id of the knowledge hub (from GET /business/knowledge-hubs).

## Request body

- object
  - `url` string, required: One of the hub's website URLs, as listed in the hub detail (matched ignoring scheme and www); a URL that is not part of the hub answers 404.

## Response `202`

Success

- object
  - `knowledgeHub` object, required
    - `id` string, required
    - `status` 'processing', required: The hub is processing the refresh; poll the hub detail until it is complete.

## 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)
