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

# Create style

> Create a style and receive its ID.



## OpenAPI

````yaml /openapi.json POST /v2/pikzonality/style
openapi: 3.0.3
info:
  title: Pikzels Public API
  version: v2
  description: >-
    Public REST API for external developers (v2). Synchronous processing for
    thumbnails/titles (waits for result). Async for persona/style creation.
    Thumbnail/title URLs expire in 24 hours. Personas and styles are persisted.
    V2 assigns a request_id at request start, returns it on error responses, and
    also sends it as the X-Request-Id header. V2 error messages are safe public
    summaries; use error.code and request_id for programmatic handling and
    support. Requests that cannot be processed return GENERATION_REJECTED. Smart
    Balance recovery only charges when the configured top-up can cover the
    failed request. When Smart Balance recovery is blocked by a failed or unpaid
    auto top-up invoice, V2 returns SMART_BALANCE_PAYMENT_FAILED.
servers:
  - url: https://api.pikzels.com
security: []
paths:
  /v2/pikzonality/style:
    post:
      tags:
        - pikzonality
      summary: Create style
      operationId: post_v2_pikzonality_style
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Letters, numbers, spaces, hyphens, and underscores only
                  minLength: 1
                  maxLength: 25
                  pattern: ^[a-zA-Z0-9\s\-_]+$
                image_urls:
                  type: array
                  items:
                    type: string
                    pattern: ^https://\S+$
                  description: >-
                    3 reference image HTTPS URLs -- provide this or
                    image_base64s
                  minItems: 3
                  maxItems: 3
                image_base64s:
                  type: array
                  items:
                    type: string
                    pattern: ^data:image/[a-zA-Z0-9.+-]+;base64,
                  description: >-
                    3 reference images as base64 data URLs -- provide this or
                    image_urls
                  minItems: 3
                  maxItems: 3
              additionalProperties: false
              required:
                - name
              allOf:
                - oneOf:
                    - required:
                        - image_urls
                      properties:
                        image_urls: {}
                      not:
                        required:
                          - image_base64s
                        properties:
                          image_base64s: {}
                    - required:
                        - image_base64s
                      properties:
                        image_base64s: {}
                      not:
                        required:
                          - image_urls
                        properties:
                          image_urls: {}
            example:
              name: Creator Studio
              image_urls:
                - https://cdn.pikzels.com/example.png
                - https://cdn.pikzels.com/example.png
                - https://cdn.pikzels.com/example.png
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Style ID for polling status
                  request_id:
                    type: string
                additionalProperties: false
                required:
                  - id
                  - request_id
              example:
                id: 18b2ad5e-2a9e-4d3f-b9a8-9f2a1e0b1234
                request_id: 18b2ad5e-2a9e-4d3f-b9a8-9f2a1e0b1234
        '400':
          description: Error
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ErrorResponse'
                  - $ref: '#/components/schemas/ValidationErrorResponse'
        '401':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '413':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '499':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '504':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: bash
          label: cURL
          source: |-
            curl -X POST "https://api.pikzels.com/v2/pikzonality/style" \
              -H "X-Api-Key: pkz_yourapikey" \
              -H "Content-Type: application/json" \
              --data-raw '{
              "name": "Creator Studio",
              "image_urls": [
                "https://cdn.pikzels.com/example.png",
                "https://cdn.pikzels.com/example.png",
                "https://cdn.pikzels.com/example.png"
              ]
            }'
        - lang: python
          label: Python
          source: |-
            import requests

            url = "https://api.pikzels.com/v2/pikzonality/style"
            headers = {
                "X-Api-Key": "pkz_yourapikey",
                "Content-Type": "application/json",
            }
            payload = {
                "name": "Creator Studio",
                "image_urls": [
                    "https://cdn.pikzels.com/example.png",
                    "https://cdn.pikzels.com/example.png",
                    "https://cdn.pikzels.com/example.png"
                ]
            }
            response = requests.post(url, headers=headers, json=payload)
            print(response.json())
        - lang: javascript
          label: JavaScript
          source: |-
            const url = "https://api.pikzels.com/v2/pikzonality/style";

            const body = {
              "name": "Creator Studio",
              "image_urls": [
                "https://cdn.pikzels.com/example.png",
                "https://cdn.pikzels.com/example.png",
                "https://cdn.pikzels.com/example.png"
              ]
            };

            const options = {
              method: "POST",
              headers: {
                "X-Api-Key": "pkz_yourapikey",
                "Content-Type": "application/json",
              },
              body: JSON.stringify(body),
            };

            const response = await fetch(url, options);
            const data = await response.json();
            console.log(data);
components:
  schemas:
    ErrorResponse:
      type: object
      additionalProperties: false
      required:
        - error
        - request_id
      properties:
        error:
          type: object
          additionalProperties: false
          required:
            - code
            - message
          properties:
            code:
              type: string
              enum:
                - VALIDATION_ERROR
                - INVALID_PERSONA
                - INVALID_STYLE
                - INVALID_AMOUNT
                - CONTENT_POLICY
                - CANNOT_DELETE_PROCESSING
                - SUPPORT_IMAGE_NOT_SUPPORTED
                - IMAGE_TOO_LARGE
                - MISSING_API_KEY
                - INVALID_API_KEY_FORMAT
                - INVALID_API_KEY
                - API_KEY_INACTIVE
                - API_KEY_DELETED
                - INSUFFICIENT_CREDITS
                - SMART_BALANCE_PAYMENT_FAILED
                - API_ACCESS_NOT_ENABLED
                - ACCOUNT_SUSPENDED
                - NOT_FOUND
                - NAME_RESERVED
                - NAME_ALREADY_EXISTS
                - CONFLICT
                - GENERATION_REJECTED
                - CANCELLED
                - GENERATION_FAILED
                - INVALID_IMAGE
                - INTERNAL_ERROR
                - SERVICE_UNDER_MAINTENANCE
                - GENERATION_TIMEOUT
                - SCORING_TIMEOUT
                - TITLE_TIMEOUT
                - TOO_MANY_REQUESTS
            message:
              type: string
        request_id:
          type: string
    ValidationErrorResponse:
      type: object
      additionalProperties: false
      required:
        - error
        - request_id
      properties:
        error:
          type: object
          additionalProperties: false
          required:
            - code
            - message
          properties:
            code:
              type: string
              enum:
                - VALIDATION_ERROR
            message:
              type: string
            details:
              type: array
              items:
                type: object
                additionalProperties: false
                required:
                  - message
                properties:
                  field:
                    type: string
                  message:
                    type: string
        request_id:
          type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: 'Your Pikzels API key (prefix: pkz_)'

````