Sample - GitHub REST API
POST/repos/{owner}/{repo}/pages

Create a GitHub Pages site

Configures a GitHub Pages site. For more information, see "About GitHub Pages."

The authenticated user must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission.

OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.

  • RetriesRetries up to 2×, 500ms backoff, 30s timeout.

2 parameters · 2 body fields
ownerstringrequired
The account owner of the repository. The name is not case sensitive.
repostringrequired
The name of the repository without the `.git` extension. The name is not case sensitive.
build_typestringoptional
The process in which the Page will be built. Possible values are `"legacy"` and `"workflow"`.
Allowed:legacyworkflow
sourceobjectrequired
The source branch and directory used to publish your Pages site.

3 status codes
201Response
urlstringrequired
The API address for accessing this Page resource.
statusstringrequired
The status of the most recent build of the Page.
Allowed:builtbuildingerrored
cnamestringrequired
The Pages site's custom domain
protected_domain_statestringoptional
The state if the domain is verified
Allowed:pendingverifiedunverified
pending_domain_unverified_atstringoptional
The timestamp when a pending domain becomes unverified.
custom_404booleanrequired
Whether the Page has a custom 404 page.
Default:false
html_urlstringoptional
The web address the Page can be accessed from.
build_typestringoptional
The process in which the Page will be built.
Allowed:legacyworkflow
sourceobjectoptional
publicbooleanrequired
Whether the GitHub Pages site is publicly visible. If set to `true`, the site is accessible to anyone on the internet. If set to `false`, the site will only be accessible to users who have at least `read` access to the repository that published the site.
https_certificateobjectoptional
https_enforcedbooleanoptional
Whether https is enabled on the domain
409Conflict
messagestringoptional
documentation_urlstringoptional
urlstringoptional
statusstringoptional
422Validation failed, or the endpoint has been spammed.
messagestringrequired
documentation_urlstringrequired
errorsarray<object>optional

Error handling

A 409 is returned: Conflict. A 422 is returned: Validation failed, or the endpoint has been spammed.