> ## Documentation Index
> Fetch the complete documentation index at: https://developers.aptranet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a custom page set

> Project-scoped operation. Successful JSON and status-only responses vary by operation. The service does not declare a stable response schema for this operation; do not assume a collection envelope or undocumented fields.



## OpenAPI

````yaml /openapi-shield.json post /shield/custom-page-sets
openapi: 3.1.0
info:
  title: Aptranet Cloud Shield API
  version: 1.0.0
  description: >-
    Public project-scoped API. Use the access key and secret together.
    Browser-only organization administration is documented separately. Request
    schemas and query parameters follow the service operation allowlist. Plan
    entitlements apply in addition to API permissions. Some analytics and action
    responses have operation-specific JSON shapes; where the implementation
    provides no stable response contract, the reference deliberately does not
    invent one.
servers:
  - url: https://api.aptranet.com
security:
  - bearerAuth: []
    apiSecret: []
paths:
  /shield/custom-page-sets:
    post:
      tags:
        - Cloud Shield Custom Page Sets
      summary: Create a custom page set
      description: >-
        Project-scoped operation. Successful JSON and status-only responses vary
        by operation. The service does not declare a stable response schema for
        this operation; do not assume a collection envelope or undocumented
        fields.
      operationId: POST_shield_custom_page_sets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              additionalProperties: false
              title: CustomPageSetCreate
              properties:
                domains:
                  title: Domains
                  anyOf:
                    - type: array
                      items:
                        type: integer
                    - type: 'null'
                block:
                  anyOf:
                    - type: object
                      required:
                        - enabled
                      title: BlockPageData
                      properties:
                        logo:
                          type: string
                          title: A base64 encoded image of the logo to present
                        header:
                          type: string
                          minLength: 3
                          maxLength: 62
                          title: Header
                        title:
                          type: string
                          minLength: 3
                          maxLength: 50
                          title: Title
                        text:
                          type: string
                          minLength: 20
                          maxLength: 400
                          title: Text
                        enabled:
                          type: boolean
                          title: Enabled
                    - type: 'null'
                block_csrf:
                  anyOf:
                    - type: object
                      required:
                        - enabled
                      title: BlockCsrfPageData
                      properties:
                        logo:
                          type: string
                          title: A base64 encoded image of the logo to present
                        header:
                          type: string
                          minLength: 3
                          maxLength: 62
                          title: Header
                        title:
                          type: string
                          minLength: 3
                          maxLength: 50
                          title: Title
                        text:
                          type: string
                          minLength: 20
                          maxLength: 400
                          title: Text
                        enabled:
                          type: boolean
                          title: Enabled
                    - type: 'null'
                captcha:
                  anyOf:
                    - type: object
                      required:
                        - enabled
                      title: CaptchaPageData
                      properties:
                        logo:
                          type: string
                          title: A base64 encoded image of the logo to present
                        header:
                          type: string
                          minLength: 3
                          maxLength: 62
                          title: Header
                        title:
                          type: string
                          minLength: 3
                          maxLength: 50
                          title: Title
                        text:
                          type: string
                          minLength: 20
                          maxLength: 400
                          title: Text
                        error:
                          type: string
                          minLength: 10
                          maxLength: 400
                          title: Error
                        enabled:
                          type: boolean
                          title: Enabled
                    - type: 'null'
                cookie_disabled:
                  anyOf:
                    - type: object
                      required:
                        - enabled
                      title: CookieDisabledPageData
                      properties:
                        header:
                          type: string
                          minLength: 3
                          maxLength: 62
                          title: Header
                        text:
                          type: string
                          minLength: 20
                          maxLength: 400
                          title: Text
                        enabled:
                          type: boolean
                          title: Enabled
                    - type: 'null'
                handshake:
                  anyOf:
                    - type: object
                      required:
                        - enabled
                      title: HandshakePageData
                      properties:
                        logo:
                          type: string
                          title: A base64 encoded image of the logo to present
                        header:
                          type: string
                          minLength: 3
                          maxLength: 62
                          title: Header
                        title:
                          type: string
                          minLength: 3
                          maxLength: 50
                          title: Title
                        enabled:
                          type: boolean
                          title: Enabled
                    - type: 'null'
                javascript_disabled:
                  anyOf:
                    - type: object
                      required:
                        - enabled
                      title: JavascriptDisabledPageData
                      properties:
                        header:
                          type: string
                          minLength: 3
                          maxLength: 62
                          title: Header
                        text:
                          type: string
                          minLength: 20
                          maxLength: 400
                          title: Text
                        enabled:
                          type: boolean
                          title: Enabled
                    - type: 'null'
                name:
                  type: string
                  minLength: 1
                  maxLength: 50
                  title: Name
      responses:
        2XX:
          description: Successful response.
        default:
          description: >-
            Request rejected or service unavailable. See the error code and
            description; refresh before retrying a mutation whose result is
            uncertain.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
        error_description:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Project API access key.
    apiSecret:
      type: apiKey
      in: header
      name: Aptranet-Secret
      description: Current secret for the access key.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.