---
title: "GitHub Pages"
url: "https://kiwi.arashsheyda.me/apis/git-hub-v3-rest-api-1/versions/4cb06d26-20a0-409c-8492-8406889b7eb4/schemas/page"
---

> Full API specification: https://kiwi.arashsheyda.me/apis/git-hub-v3-rest-api-1/versions/4cb06d26-20a0-409c-8492-8406889b7eb4.md

# GitHub Pages

The configuration for GitHub Pages for a repository.

## OpenAPI definition

```yaml
openapi: 3.0.3
info:
  title: GitHub v3 REST API
  version: 1.1.4
servers:
  - url: "{protocol}://{hostname}/api/v3"
    variables:
      hostname:
        description: Self-hosted Enterprise Server or Enterprise Cloud hostname
        default: HOSTNAME
      protocol:
        description: Self-hosted Enterprise Server or Enterprise Cloud protocol
        default: http
components:
  schemas:
    pages-source-hash:
      title: Pages Source Hash
      type: object
      properties:
        branch:
          type: string
        path:
          type: string
      required:
        - branch
        - path
    pages-https-certificate:
      title: Pages Https Certificate
      type: object
      properties:
        state:
          type: string
          enum:
            - new
            - authorization_created
            - authorization_pending
            - authorized
            - authorization_revoked
            - issued
            - uploaded
            - approved
            - errored
            - bad_authz
            - destroy_pending
            - dns_changed
          example: approved
        description:
          type: string
          example: Certificate is approved
        domains:
          type: array
          items:
            type: string
          description: Array of the domain set and its alternate name (if it is configured)
          example:
            - example.com
            - www.example.com
        expires_at:
          type: string
          format: date
      required:
        - state
        - description
        - domains
    page:
      title: GitHub Pages
      description: The configuration for GitHub Pages for a repository.
      type: object
      properties:
        url:
          type: string
          description: The API address for accessing this Page resource.
          format: uri
          example: https://api.github.com/repos/github/hello-world/pages
        status:
          type: string
          description: The status of the most recent build of the Page.
          example: built
          enum:
            - built
            - building
            - errored
          nullable: true
        cname:
          description: The Pages site's custom domain
          example: example.com
          type: string
          nullable: true
        protected_domain_state:
          type: string
          description: The state if the domain is verified
          example: pending
          nullable: true
          enum:
            - pending
            - verified
            - unverified
        pending_domain_unverified_at:
          type: string
          description: The timestamp when a pending domain becomes unverified.
          nullable: true
          format: date-time
        custom_404:
          type: boolean
          description: Whether the Page has a custom 404 page.
          example: false
          default: false
        html_url:
          type: string
          description: The web address the Page can be accessed from.
          format: uri
          example: https://example.com
        source:
          $ref: "#/components/schemas/pages-source-hash"
        public:
          type: boolean
          description: 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.
          example: true
        https_certificate:
          $ref: "#/components/schemas/pages-https-certificate"
        https_enforced:
          type: boolean
          description: Whether https is enabled on the domain
          example: true
      required:
        - url
        - status
        - cname
        - custom_404
        - public
```
