Create a URL redirect rule for a site
Creates a new redirect rule mapping a source path to a destination URL or content reference. Creating a live redirect also resolves open broken-link findings for the same source path. Use the bulk upsert endpoint instead when creating many redirects at once.
A unique entity identifier
^[a-zA-Z0-9_-]+$The unique id of the site
The broken-link finding that prompted this redirect. Must belong to this site. Used to attribute redirect creation, including drafts, to the finding.
The source path to redirect from.
^\/(?!\*)(?!.*\*.+)(?:[A-Za-z0-9\-._~+]|%[0-9A-Fa-f]{2})+(?:\/(?:[A-Za-z0-9\-._~+]|%[0-9A-Fa-f]{2})+)*(?:\/\*|\*)?$Capture and append the wildcard-matched suffix to the destination URL.
falseWhether the redirect is draft and not live.
falseWhether the redirect is permanent for public live traffic.
falseThe redirect was created successfully.
The unique identifier for the redirect.
The source path to redirect from.
^\/(?!\*)(?!.*\*.+)(?:[A-Za-z0-9\-._~+]|%[0-9A-Fa-f]{2})+(?:\/(?:[A-Za-z0-9\-._~+]|%[0-9A-Fa-f]{2})+)*(?:\/\*|\*)?$Whether the redirect is draft and not live.
Capture and append the wildcard-matched suffix to the destination URL.
Whether the redirect is configured as permanent. Permanent redirects are served as HTTP 308 for public live traffic and HTTP 307 in non-public contexts.
When the redirect was created.
When the redirect was last updated. Absent if never updated since creation.
POST /v1/orgs/{organizationId}/sites/{siteId}/redirects HTTP/1.1
Host: api.gitbook.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 157
{
"siteFindingId": "text",
"source": "text",
"captureWildcard": false,
"draft": false,
"permanent": false,
"destination": {
"kind": "site-section",
"siteSectionId": "text"
}
}The redirect was created successfully.
{
"object": "site-redirect",
"id": "text",
"source": "text",
"draft": true,
"captureWildcard": true,
"permanent": true,
"destination": {
"kind": "site-section",
"siteSectionId": "text"
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}Last updated
Was this helpful?