> ## 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 proxy profile

> Create a new edge proxy profile with ACL rules. Omit `protected_ip_address` or use null for automatic allocation. For manual selection, supply an IPv4 string from any non-common pool assigned to the target customer, including restricted shared pools. Manual failures never substitute another address or pool.



## OpenAPI

````yaml /api-reference/services_docs_mintlify_enriched/edge_proxy_api.yaml post /security/edgeproxy/v3/profiles
openapi: 3.1.0
info:
  title: Gcore OpenAPI – Edge Proxy 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: 6fbf2663b9b9
servers:
  - url: https://api.gcore.com
security:
  - APIKey: []
tags:
  - name: Proxy profiles
    description: >-
      Create and manage Edge Proxy profiles: origin, protected address and
      port-based ACL rules.
  - name: Proxy templates
    description: Browse proxy templates and the policies they offer for profile ACL rules.
paths:
  /security/edgeproxy/v3/profiles:
    post:
      tags:
        - Proxy profiles
      summary: Create proxy profile
      description: >-
        Create a new edge proxy profile with ACL rules. Omit
        `protected_ip_address` or use null for automatic allocation. For manual
        selection, supply an IPv4 string from any non-common pool assigned to
        the target customer, including restricted shared pools. Manual failures
        never substitute another address or pool.
      operationId: createProxyProfile
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProxyProfileClientCreateRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProxyProfileClientResponse'
        '400':
          description: >-
            Address conflicts with active protection configuration, requested
            protected IP is already allocated, no protected IP is available in
            the client's pools, origin host is already used by another active
            profile, profile limit per client reached, or edge proxy service is
            inactive
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Request'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Request'
        '403':
          description: Requested protected IP is not in your assigned pools.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Request'
        '409':
          description: Requested protected IP is locked by another request; retry later
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Request'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ProxyProfileClientCreateRequest:
      properties:
        name:
          type: string
          maxLength: 60
          minLength: 1
          title: Name
          description: Name of the proxy profile
        origin_host:
          type: string
          title: Origin Host
          description: Origin host (IPv4 address or FQDN) for the proxy profile.
        rules:
          items:
            $ref: '#/components/schemas/PolicyRulesInput'
          type: array
          minItems: 1
          title: Rules
          description: Rules grouped by policy
        template_id:
          type: integer
          title: Template Id
          description: ID of the proxy template to render this profile with
        protected_ip_address:
          anyOf:
            - type: string
              format: ipv4
            - type: 'null'
          title: Protected Ip Address
          description: >-
            Optional manual IPv4 selection from any assigned non-common pool,
            including shared pools. Omit or use null for automatic allocation.
            Creation rechecks availability; no fallback on manual failure.
          examples:
            - 192.0.2.10
            - null
      type: object
      required:
        - name
        - origin_host
        - rules
        - template_id
      title: ProxyProfileClientCreateRequest
      example:
        name: web-server-profile
        origin_host: 8.8.8.8
        rules:
          - mappings:
              - port: 80
                protocol: tcp
                proxy_protocol:
                  accept_proxy: true
                  version: '2'
              - port: 53
                protocol: udp
            policy: allow
        template_id: 3
    ProxyProfileClientResponse:
      properties:
        id:
          type: integer
          title: Id
          description: Unique identifier of the proxy profile
        client_id:
          type: integer
          title: Client Id
          description: Identifier of the client owning this profile
        name:
          type: string
          title: Name
          description: Name of the proxy profile
        origin_host:
          type: string
          title: Origin Host
          description: Origin host (IPv4 address or FQDN) of the proxy profile
        protected_ip_address:
          anyOf:
            - type: string
              format: ipv4
            - type: 'null'
          title: Protected Ip Address
          description: Protected IP address assigned to the profile
        status:
          $ref: '#/components/schemas/ProxyProfileStatus'
          description: Current status of the proxy profile
        mode:
          $ref: '#/components/schemas/ProxyProfileMode'
          description: >-
            Operating mode, set by the template: 'regular' proxies traffic
            through the edge proxy; 'shield' also routes it through the
            template's shield sites
        is_processing:
          type: boolean
          title: Is Processing
          description: Whether the profile is currently being processed
        is_error:
          type: boolean
          title: Is Error
          description: Whether the profile is in an error state
        error_details:
          anyOf:
            - $ref: '#/components/schemas/ErrorDescription'
            - type: 'null'
          description: Details of the error if the profile is in an error state
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Timestamp when the profile was created
        template_id:
          type: integer
          title: Template Id
          description: ID of the proxy template bound to this profile
        rules:
          items:
            $ref: '#/components/schemas/PolicyRulesOutput'
          type: array
          title: Rules
          readOnly: true
      type: object
      required:
        - id
        - client_id
        - name
        - origin_host
        - protected_ip_address
        - status
        - mode
        - is_processing
        - is_error
        - error_details
        - created_at
        - template_id
        - rules
      title: ProxyProfileClientResponse
      example:
        client_id: 7
        created_at: '2025-11-15T10:30:00Z'
        id: 42
        is_error: false
        is_processing: false
        name: web-server-profile
        origin_host: 8.8.8.8
        protected_ip_address: 10.0.0.50
        rules:
          - mappings:
              - port: 80
                protocol: tcp
                proxy_protocol:
                  accept_proxy: true
                  version: '2'
                rule_id: 3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f
              - port: 53
                protocol: udp
                rule_id: 7a9e0d2c-4b1f-4c3a-8e5d-6f7a8b9c0d1e
            policy: allow
        status: ACTIVE
        template_id: 3
    Request:
      properties: {}
      type: object
      title: Request
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    PolicyRulesInput:
      properties:
        policy:
          type: string
          title: Policy
          description: Policy that this group of mappings is associated with
        mappings:
          items:
            $ref: '#/components/schemas/RuleMappingInput'
          type: array
          minItems: 1
          title: Mappings
          description: Protocol/port mappings for this policy
      type: object
      required:
        - policy
        - mappings
      title: PolicyRules
      example:
        mappings:
          - port: 2222
            protocol: tcp
        policy: minecraft
    ProxyProfileStatus:
      type: string
      enum:
        - INACTIVE
        - ACTIVE
        - DELETED
      title: ProxyProfileStatus
    ProxyProfileMode:
      type: string
      enum:
        - regular
        - shield
      title: ProxyProfileMode
    ErrorDescription:
      properties:
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
        details:
          anyOf:
            - items: {}
              type: array
            - additionalProperties: true
              type: object
            - type: string
            - type: 'null'
          title: Details
      type: object
      required:
        - error
        - details
      title: ErrorDescription
    PolicyRulesOutput:
      properties:
        policy:
          type: string
          title: Policy
          description: Policy that this group of mappings is associated with
        mappings:
          items:
            $ref: '#/components/schemas/RuleMappingOutput'
          type: array
          minItems: 1
          title: Mappings
          description: Protocol/port mappings for this policy
      type: object
      required:
        - policy
        - mappings
      title: PolicyRules
      example:
        mappings:
          - port: 2222
            protocol: tcp
        policy: minecraft
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    RuleMappingInput:
      properties:
        protocol:
          $ref: '#/components/schemas/ACLProtocol'
          description: Protocol for the ACL rule
        proxy_protocol:
          anyOf:
            - $ref: '#/components/schemas/ProxyProtocolSettingsInput'
            - type: 'null'
          description: PROXY protocol settings for this rule; omit or null to disable
        outbound_port:
          anyOf:
            - type: integer
              maximum: 65535
              minimum: 1
            - type: 'null'
          title: Outbound Port
          description: >-
            Origin port to connect to for this rule; omit to mirror the inbound
            port (default behavior)
        rule_id:
          type: string
          format: uuid
          title: Rule Id
          description: >-
            Persistent id of this mapping. Echo it on update to keep the
            mapping's identity; a mapping sent without it is a new mapping
        port:
          type: integer
          maximum: 65535
          minimum: 1
          title: Port
          description: Destination port
      type: object
      required:
        - protocol
        - port
      title: RuleMapping
      example:
        port: 2222
        protocol: tcp
    RuleMappingOutput:
      properties:
        protocol:
          $ref: '#/components/schemas/ACLProtocol'
          description: Protocol for the ACL rule
        proxy_protocol:
          anyOf:
            - $ref: '#/components/schemas/ProxyProtocolSettingsOutput'
            - type: 'null'
          description: PROXY protocol settings for this rule; omit or null to disable
        outbound_port:
          anyOf:
            - type: integer
              maximum: 65535
              minimum: 1
            - type: 'null'
          title: Outbound Port
          description: >-
            Origin port to connect to for this rule; omit to mirror the inbound
            port (default behavior)
        rule_id:
          type: string
          format: uuid
          title: Rule Id
          description: >-
            Persistent id of this mapping. Echo it on update to keep the
            mapping's identity; a mapping sent without it is a new mapping
        port:
          type: integer
          maximum: 65535
          minimum: 1
          title: Port
          description: Destination port
      type: object
      required:
        - protocol
        - port
      title: RuleMapping
      example:
        port: 2222
        protocol: tcp
    ACLProtocol:
      type: string
      enum:
        - tcp
        - udp
      title: ACLProtocol
    ProxyProtocolSettingsInput:
      properties:
        version:
          type: string
          enum:
            - '1'
            - '2'
          title: Version
          description: PROXY protocol version (UDP rules must use "2")
          default: '2'
        accept_proxy:
          type: boolean
          title: Accept Proxy
          description: Whether this rule accepts PROXY protocol
          default: false
      type: object
      title: ProxyProtocolSettings
      example:
        accept_proxy: false
        version: '2'
    ProxyProtocolSettingsOutput:
      properties:
        version:
          type: string
          enum:
            - '1'
            - '2'
          title: Version
          description: PROXY protocol version (UDP rules must use "2")
          default: '2'
        accept_proxy:
          type: boolean
          title: Accept Proxy
          description: Whether this rule accepts PROXY protocol
          default: false
      type: object
      required:
        - version
        - accept_proxy
      title: ProxyProtocolSettings
      example:
        accept_proxy: false
        version: '2'
  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

````