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

# Create alias

> Create an alias: a hostname you own that is served with the settings of one of your CDN resources and
with its own SSL certificate.

By default, a Let's Encrypt certificate is issued for the alias automatically. Until the certificate
is issued the alias stays in the `pending` status.

To use your own certificate instead, pass its ID in `ssl_id`. The certificate must cover the alias
hostname; a Let's Encrypt certificate issued for one of your CDN resources cannot be used. Such an alias
becomes `active` immediately.

The hostname must be unique across all CDN resources, additional CNAMEs and aliases.



## OpenAPI

````yaml /api-reference/services_docs_mintlify_enriched/cdn_api.yaml post /cdn/aliases
openapi: 3.1.0
info:
  title: Gcore OpenAPI – CDN API
  description: >-
    This OpenAPI is an aggregated OpenAPI specification that unifies all Gcore
    products into a single file. It covers Cloud, CDN, DNS, WAAP, DDoS
    Protection, Object Storage, Streaming, and FastEdge services.
  version: e232bb9ff2d2
servers:
  - url: https://api.gcore.com
security:
  - APIKey: []
tags:
  - name: CDN service
    description: Information about the current state of the CDN service in your account.
  - name: CDN resources
  - name: Origins
  - name: Rules
    description: >-
      Rules allow to set up custom settings for certain file types or paths.

      By default, the rule inherits all options values from the related CDN
      resource.


      Each option in rule settings can be in one of the following states:

      - **Inherit** - Option is not added to the rule. Option inherits its value
      from the CDN resource settings. In this case, the option value is
      **null**.

      - **ON** - Option is added to the rule and enabled. Option values
      configured in the rule will override values from the CDN resource
      settings.

      - **OFF** - Option is added to the rule and disabled. Option will be
      turned off.
  - name: Rule templates
  - name: Presets
    description: >-
      A preset is a predefined set of CDN resource or rule settings that can be
      applied to an object in a single request.


      Once a preset is applied to an object, the options included in the preset
      cannot be edited on that object until the preset is unapplied.
  - name: SSL certificates
  - name: Let's Encrypt certificates
  - name: CA certificates
  - name: Aliases
    description: >-
      An alias is a hostname you own that is served with the settings of one of
      your CDN resources and with

      its own SSL certificate. Aliases must be enabled for your account.
  - name: CDN activity logs
    description: |-
      Get the history of users requests to CDN.
      It contains requests made both via the API and via the control panel.

      The following methods are not tracked in the activity logs:
      - HEAD
      - OPTIONS
  - name: Log viewer
    description: >-
      Log viewer provides you with general information about CDN operation. This
      information does not contain all possible

      sets of fields and restricted by time. To receive full data, use Logs
      Uploader.
  - name: Logs uploader
    description: >-
      Logs uploader allows you to upload logs with desired format to desired
      storages.


      Consists of three main parts:

      - **Policies** - rules that define which logs are uploaded and how they
      are uploaded.

      - **Targets** - destinations where logs are uploaded.

      - **Configs** - combinations of logs uploader policies, targets and
      resources to which they are applied.
  - name: Tools
  - name: Statistics
    description: >-
      Consumption statistics is updated in near real-time as a standard
      practice.

      However, the frequency of updates can vary, but they are typically
      available within a 24-hour period.

      Exceptions, such as maintenance periods, may delay data beyond 24 hours
      until servers resume and fill in the missing statistics.
  - name: Advanced analytics
    description: >-
      Advanced analytics allows to get statistics about unique visitors,
      traffic, and requests for countries, directories, browsers, devices, and
      operation systems for up to 90 days starting from today.


      Advanced analytics API is based on the [GraphQL
      framework](https://graphql.org/).


      Advanced analytics API has one single endpoint:

       https://api.gcore.com/cdn/advanced/v2/query

      You can pass the query parameters as a JSON object in the payload of a
      POST request to this endpoint.

      You can use curl to make requests to the Advanced analytics API.
      Alternatively, you can use a GraphQL client

      to construct queries and pass requests to the Advanced analytics API.


      You can write queries in GraphQL much like in SQL: specify the data set
      (CDN resource), the metrics

      to retrieve (such as unique visitors and traffic), and filter or group by
      dimensions (for example, a country).
  - name: Origin shielding
  - name: IP addresses list
  - name: Purge history
paths:
  /cdn/aliases:
    post:
      tags:
        - Aliases
      summary: Create alias
      description: >-
        Create an alias: a hostname you own that is served with the settings of
        one of your CDN resources and

        with its own SSL certificate.


        By default, a Let's Encrypt certificate is issued for the alias
        automatically. Until the certificate

        is issued the alias stays in the `pending` status.


        To use your own certificate instead, pass its ID in `ssl_id`. The
        certificate must cover the alias

        hostname; a Let's Encrypt certificate issued for one of your CDN
        resources cannot be used. Such an alias

        becomes `active` immediately.


        The hostname must be unique across all CDN resources, additional CNAMEs
        and aliases.
      operationId: create-alias
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAlias'
      responses:
        '201':
          description: Successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alias'
        '400':
          description: Validation failed, or the aliases limit of your account is reached.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/CommonValidationError'
                  - $ref: '#/components/schemas/AliasesLimitError'
        '403':
          description: Aliases are not enabled for your account.
components:
  schemas:
    CreateAlias:
      type: object
      required:
        - cname
        - resource_id
      properties:
        cname:
          type: string
          description: Alias hostname. Wildcard hostnames are not supported.
          example: shop.customer.com
        resource_id:
          type: integer
          description: ID of the CDN resource whose settings the alias is served with.
          example: 4567
        ssl_id:
          type: integer
          nullable: true
          description: >-
            ID of your own SSL certificate to serve for the alias. The
            certificate must cover the alias hostname.

            A Let's Encrypt certificate issued for one of your CDN resources
            cannot be used.


            Omit it to have a Let's Encrypt certificate issued automatically.
          example: 890
        automated:
          type: boolean
          description: >-
            How the alias certificate is managed. Defaults to **true** when
            `ssl_id` is omitted and to **false**

            when `ssl_id` is passed.


            Possible values:

            - **true** – A Let's Encrypt certificate is issued and renewed
            automatically. `ssl_id` must be omitted.

            - **false** – Your own certificate is served. `ssl_id` is required.
          example: true
        active:
          type: boolean
          description: >-
            Whether the alias is enabled. Defaults to **true**. The alias is
            served once its certificate is ready.
          example: true
    Alias:
      type: object
      properties:
        id:
          type: integer
          description: Alias ID.
          example: 123
        cname:
          type: string
          description: Alias hostname. Cannot be changed after creation.
          example: shop.customer.com
        resource_id:
          type: integer
          description: >-
            ID of the CDN resource whose settings the alias is served with.
            Cannot be changed after creation.
          example: 4567
        automated:
          type: boolean
          description: >-
            How the alias certificate is managed.


            Possible values:

            - **true** – A Let's Encrypt certificate is issued and renewed
            automatically.

            - **false** – The certificate referenced by `ssl_id` was added by
            you.
          example: true
        ssl_id:
          type: integer
          description: ID of the SSL certificate served for the alias.
          example: 890
        active:
          type: boolean
          description: >-
            Whether you have enabled the alias. Enabling it does not by itself
            make it live: the alias is served only

            while `status` is **active**, **`ssl_issuing`** or **`ssl_error`**.


            Possible values:

            - **true** – The alias is enabled and is served once its certificate
            is ready.

            - **false** – The alias is paused and is not served.
          example: true
        enabled:
          type: boolean
          description: >-
            Whether the alias is enabled by the system. Follows the state of the
            CDN resource.


            Possible values:

            - **true** – The alias can be served.

            - **false** – The alias is not served because its CDN resource is
            not active.
          example: true
        status:
          $ref: '#/components/schemas/AliasStatus'
        created:
          type: string
          description: >-
            Date and time when the alias was created (ISO 8601/RFC 3339 format,
            UTC.)
          example: '2026-09-01T10:00:00Z'
        updated:
          type: string
          description: >-
            Date and time when the alias was last changed (ISO 8601/RFC 3339
            format, UTC.)
          example: '2026-09-01T10:05:00Z'
    CommonValidationError:
      title: Other Errors
      type: object
      properties:
        errors:
          type: object
          description: This object contains error descriptions per field from your request.
          properties:
            field_name:
              type: array
              description: Error list for specific field.
              items:
                type: string
                description: Error description
              example:
                - Error description.
    AliasesLimitError:
      title: Aliases limit exceeded
      type: object
      properties:
        errors:
          type: array
          description: >-
            The aliases limit of your account does not allow the requested
            number of new aliases.
          items:
            type: string
          example:
            - 'Aliases limit exceeded: limit=100, current=98, requested_new=3.'
    AliasStatus:
      type: string
      description: >-
        Alias status.


        Possible values:

        - **pending** – The certificate has not been issued yet; the alias is
        not served.

        - **active** – The alias is served with its certificate.

        - **`ssl_issuing`** – A new certificate is being issued; the current one
        keeps being served.

        - **`ssl_error`** – Certificate issuance failed; a previously issued
        certificate keeps being served.

        - **inactive** – The alias or its CDN resource is disabled; the alias is
        not served.
      enum:
        - pending
        - active
        - ssl_issuing
        - ssl_error
        - inactive
      example: active
  securitySchemes:
    APIKey:
      description: >-
        API key for authentication. Make sure to include the word `apikey`,
        followed by a single space and then your token.

        Example: `apikey 1234_abcdef`
      type: apiKey
      in: header
      name: Authorization

````