# Site auth

Configure the credentials or tokens required to publish documentation externally. This helps ensure your site is consistently kept up to date.

## The SitePublishingAuth object

```json
{"openapi":"3.1.0","info":{"title":"GitBook API","version":"0.0.1-beta"},"components":{"schemas":{"SitePublishingAuth":{"allOf":[{"oneOf":[{"$ref":"#/components/schemas/VisitorAuthCustomBackend"},{"$ref":"#/components/schemas/VisitorAuthIntegrationBackend"}]},{"type":"object","properties":{"object":{"type":"string","description":"Type of Object, always equals to \"publishing-auth\"","enum":["publishing-auth"]},"privateKey":{"type":"string","description":"Private key used to sign JWT tokens."},"fallbackURL":{"type":"string","format":"uri","description":"URL to redirect to when the authenticated access secret is invalid."},"logoutURL":{"type":"string","format":"uri","description":"URL used to log visitors out from the upstream custom auth backend."},"integration":{"type":"string","description":"Name of the authenticated access integration installed on the site (if any).\nIt is also the one being used as VA backend when the published auth settings are configured to use \"integration\" as backend.\n"}},"required":["object","privateKey"]}]},"VisitorAuthCustomBackend":{"type":"object","title":"Custom backend for authenticated access","properties":{"backend":{"type":"string","description":"Custom backend for authenticated access","enum":["custom"]}},"required":["backend"]},"VisitorAuthIntegrationBackend":{"type":"object","title":"Integration backend for authenticated access","properties":{"backend":{"type":"string","description":"Integration as backend for authenticated access","enum":["integration"]}},"required":["backend"]}}}}
```

## GET /orgs/{organizationId}/sites/{siteId}/publishing/auth

> Get a site auth config

```json
{"openapi":"3.1.0","info":{"title":"GitBook API","version":"0.0.1-beta"},"tags":[{"name":"site-publishing-auth","description":"Configure the credentials or tokens required to publish documentation externally. This helps ensure your site is consistently kept up to date.\n\n{% openapi-schemas spec=\"gitbook\" schemas=\"SitePublishingAuth\" grouped=\"false\" %}\n    The SitePublishingAuth object\n{% endopenapi-schemas %}\n"}],"servers":[{"url":"{host}/v1","variables":{"host":{"default":"https://api.gitbook.com"}}}],"security":[{"user":[]}],"components":{"securitySchemes":{"user":{"type":"http","scheme":"bearer"}},"parameters":{"organizationId":{"name":"organizationId","in":"path","required":true,"description":"The unique id of the organization","schema":{"$ref":"#/components/schemas/EntityId"}},"siteId":{"name":"siteId","in":"path","required":true,"description":"The unique id of the site","schema":{"type":"string"}}},"schemas":{"EntityId":{"type":"string","pattern":"^[a-zA-Z0-9_-]+$","description":"A unique entity identifier"},"SitePublishingAuth":{"allOf":[{"oneOf":[{"$ref":"#/components/schemas/VisitorAuthCustomBackend"},{"$ref":"#/components/schemas/VisitorAuthIntegrationBackend"}]},{"type":"object","properties":{"object":{"type":"string","description":"Type of Object, always equals to \"publishing-auth\"","enum":["publishing-auth"]},"privateKey":{"type":"string","description":"Private key used to sign JWT tokens."},"fallbackURL":{"type":"string","format":"uri","description":"URL to redirect to when the authenticated access secret is invalid."},"logoutURL":{"type":"string","format":"uri","description":"URL used to log visitors out from the upstream custom auth backend."},"integration":{"type":"string","description":"Name of the authenticated access integration installed on the site (if any).\nIt is also the one being used as VA backend when the published auth settings are configured to use \"integration\" as backend.\n"}},"required":["object","privateKey"]}]},"VisitorAuthCustomBackend":{"type":"object","title":"Custom backend for authenticated access","properties":{"backend":{"type":"string","description":"Custom backend for authenticated access","enum":["custom"]}},"required":["backend"]},"VisitorAuthIntegrationBackend":{"type":"object","title":"Integration backend for authenticated access","properties":{"backend":{"type":"string","description":"Integration as backend for authenticated access","enum":["integration"]}},"required":["backend"]}},"responses":{"BadRequestError":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","properties":{"code":{"type":"integer","format":"int32","enum":[400]},"message":{"type":"string"}},"required":["code","message"]}}}}}}}},"paths":{"/orgs/{organizationId}/sites/{siteId}/publishing/auth":{"get":{"operationId":"getSitePublishingAuthById","summary":"Get a site auth config","tags":["site-publishing-auth"],"parameters":[{"$ref":"#/components/parameters/organizationId"},{"$ref":"#/components/parameters/siteId"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SitePublishingAuth"}}}},"400":{"$ref":"#/components/responses/BadRequestError"}}}}}}
```

## PATCH /orgs/{organizationId}/sites/{siteId}/publishing/auth

> Update a site auth config

```json
{"openapi":"3.1.0","info":{"title":"GitBook API","version":"0.0.1-beta"},"tags":[{"name":"site-publishing-auth","description":"Configure the credentials or tokens required to publish documentation externally. This helps ensure your site is consistently kept up to date.\n\n{% openapi-schemas spec=\"gitbook\" schemas=\"SitePublishingAuth\" grouped=\"false\" %}\n    The SitePublishingAuth object\n{% endopenapi-schemas %}\n"}],"servers":[{"url":"{host}/v1","variables":{"host":{"default":"https://api.gitbook.com"}}}],"security":[{"user":[]}],"components":{"securitySchemes":{"user":{"type":"http","scheme":"bearer"}},"parameters":{"organizationId":{"name":"organizationId","in":"path","required":true,"description":"The unique id of the organization","schema":{"$ref":"#/components/schemas/EntityId"}},"siteId":{"name":"siteId","in":"path","required":true,"description":"The unique id of the site","schema":{"type":"string"}}},"schemas":{"EntityId":{"type":"string","pattern":"^[a-zA-Z0-9_-]+$","description":"A unique entity identifier"},"SitePublishingAuthUpdate":{"allOf":[{"oneOf":[{"$ref":"#/components/schemas/VisitorAuthCustomBackend"},{"$ref":"#/components/schemas/VisitorAuthIntegrationBackend"}]},{"type":"object","properties":{"fallbackURL":{"type":["string","null"],"format":"uri","description":"A fallback URL that will be used if authentication fails. If not provided, the fallback URL will not be changed. If set to null, the fallback URL will be unset."},"logoutURL":{"type":["string","null"],"format":"uri","description":"A logout URL used to log visitors out from the upstream custom auth backend. If not provided, the logout URL will not be changed. If set to null, the logout URL will be unset."}}}]},"VisitorAuthCustomBackend":{"type":"object","title":"Custom backend for authenticated access","properties":{"backend":{"type":"string","description":"Custom backend for authenticated access","enum":["custom"]}},"required":["backend"]},"VisitorAuthIntegrationBackend":{"type":"object","title":"Integration backend for authenticated access","properties":{"backend":{"type":"string","description":"Integration as backend for authenticated access","enum":["integration"]}},"required":["backend"]},"SitePublishingAuth":{"allOf":[{"oneOf":[{"$ref":"#/components/schemas/VisitorAuthCustomBackend"},{"$ref":"#/components/schemas/VisitorAuthIntegrationBackend"}]},{"type":"object","properties":{"object":{"type":"string","description":"Type of Object, always equals to \"publishing-auth\"","enum":["publishing-auth"]},"privateKey":{"type":"string","description":"Private key used to sign JWT tokens."},"fallbackURL":{"type":"string","format":"uri","description":"URL to redirect to when the authenticated access secret is invalid."},"logoutURL":{"type":"string","format":"uri","description":"URL used to log visitors out from the upstream custom auth backend."},"integration":{"type":"string","description":"Name of the authenticated access integration installed on the site (if any).\nIt is also the one being used as VA backend when the published auth settings are configured to use \"integration\" as backend.\n"}},"required":["object","privateKey"]}]}},"responses":{"BadRequestError":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","properties":{"code":{"type":"integer","format":"int32","enum":[400]},"message":{"type":"string"}},"required":["code","message"]}}}}}}}},"paths":{"/orgs/{organizationId}/sites/{siteId}/publishing/auth":{"patch":{"operationId":"updateSitePublishingAuthById","summary":"Update a site auth config","tags":["site-publishing-auth"],"parameters":[{"$ref":"#/components/parameters/organizationId"},{"$ref":"#/components/parameters/siteId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SitePublishingAuthUpdate"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SitePublishingAuth"}}}},"400":{"$ref":"#/components/responses/BadRequestError"}}}}}}
```

## Regenerate a site auth

> Regenerate the publishing authentication settings for a site. This will re-generate the private key.

```json
{"openapi":"3.1.0","info":{"title":"GitBook API","version":"0.0.1-beta"},"tags":[{"name":"site-publishing-auth","description":"Configure the credentials or tokens required to publish documentation externally. This helps ensure your site is consistently kept up to date.\n\n{% openapi-schemas spec=\"gitbook\" schemas=\"SitePublishingAuth\" grouped=\"false\" %}\n    The SitePublishingAuth object\n{% endopenapi-schemas %}\n"}],"servers":[{"url":"{host}/v1","variables":{"host":{"default":"https://api.gitbook.com"}}}],"security":[{"user":[]}],"components":{"securitySchemes":{"user":{"type":"http","scheme":"bearer"}},"parameters":{"organizationId":{"name":"organizationId","in":"path","required":true,"description":"The unique id of the organization","schema":{"$ref":"#/components/schemas/EntityId"}},"siteId":{"name":"siteId","in":"path","required":true,"description":"The unique id of the site","schema":{"type":"string"}}},"schemas":{"EntityId":{"type":"string","pattern":"^[a-zA-Z0-9_-]+$","description":"A unique entity identifier"},"SitePublishingAuth":{"allOf":[{"oneOf":[{"$ref":"#/components/schemas/VisitorAuthCustomBackend"},{"$ref":"#/components/schemas/VisitorAuthIntegrationBackend"}]},{"type":"object","properties":{"object":{"type":"string","description":"Type of Object, always equals to \"publishing-auth\"","enum":["publishing-auth"]},"privateKey":{"type":"string","description":"Private key used to sign JWT tokens."},"fallbackURL":{"type":"string","format":"uri","description":"URL to redirect to when the authenticated access secret is invalid."},"logoutURL":{"type":"string","format":"uri","description":"URL used to log visitors out from the upstream custom auth backend."},"integration":{"type":"string","description":"Name of the authenticated access integration installed on the site (if any).\nIt is also the one being used as VA backend when the published auth settings are configured to use \"integration\" as backend.\n"}},"required":["object","privateKey"]}]},"VisitorAuthCustomBackend":{"type":"object","title":"Custom backend for authenticated access","properties":{"backend":{"type":"string","description":"Custom backend for authenticated access","enum":["custom"]}},"required":["backend"]},"VisitorAuthIntegrationBackend":{"type":"object","title":"Integration backend for authenticated access","properties":{"backend":{"type":"string","description":"Integration as backend for authenticated access","enum":["integration"]}},"required":["backend"]}},"responses":{"BadRequestError":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","properties":{"code":{"type":"integer","format":"int32","enum":[400]},"message":{"type":"string"}},"required":["code","message"]}}}}}}}},"paths":{"/orgs/{organizationId}/sites/{siteId}/publishing/auth/regenerate":{"post":{"operationId":"regenerateSitePublishingAuthById","summary":"Regenerate a site auth","description":"Regenerate the publishing authentication settings for a site. This will re-generate the private key.","tags":["site-publishing-auth"],"parameters":[{"$ref":"#/components/parameters/organizationId"},{"$ref":"#/components/parameters/siteId"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SitePublishingAuth"}}}},"400":{"$ref":"#/components/responses/BadRequestError"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gitbook.com/docs/developers/gitbook-api/api-reference/docs-sites/site-auth.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
