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

# Create Emoji URLs

> Spoo.me provides the ability to shorten URLs with custom emojis, creating fun and memorable shortened links.



## OpenAPI

````yaml /openapi-v0.json post /emoji
openapi: 3.0.3
info:
  title: Spoo.me API
  description: >-
    Spoo.me is a free and open-source URL shortening service that provides
    powerful features for creating and managing shortened URLs with
    comprehensive analytics.
  version: 0.0.1
  contact:
    name: Spoo.me Support
    url: https://spoo.me/contact
    email: support@spoo.me
  license:
    name: Apache 2.0
    url: https://github.com/spoo-me/spoo/blob/main/LICENSE
servers:
  - url: https://spoo.me
    description: Production server
security: []
tags:
  - name: URL Shortening
    description: Operations for creating shortened URLs
  - name: Analytics
    description: Operations for retrieving URL analytics and statistics
  - name: Data Export
    description: Operations for exporting URL data in various formats
paths:
  /emoji:
    post:
      tags:
        - URL Shortening
      summary: Create Emoji URLs
      description: >-
        Spoo.me provides the ability to shorten URLs with custom emojis,
        creating fun and memorable shortened links.
      operationId: createEmojiUrl
      parameters:
        - name: Accept
          in: header
          required: true
          description: Must be set to application/json to receive JSON responses
          schema:
            type: string
            enum:
              - application/json
            default: application/json
          example: application/json
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
                - url
              properties:
                url:
                  type: string
                  format: uri
                  description: >-
                    The long URL to be shortened. Must include a valid protocol
                    (http/https) and follow RFC-1034 & RFC-2727 standards.
                  example: https://example.com
                emojies:
                  type: string
                  maxLength: 15
                  description: >-
                    Custom emoji sequence for the shortened URL. Must contain
                    only emojis, no other character is allowed. Anything beyond
                    15 emojis will be **stripped by the API**.
                  example: 🐍🐍
                password:
                  type: string
                  minLength: 8
                  description: >-
                    Password to access the shortened URL. Must be at least 8
                    characters long, contain at least one letter, one number,
                    and one special character ('@' or '.').
                  example: Python.Snake63
                max-clicks:
                  type: integer
                  minimum: 1
                  description: >-
                    Maximum number of clicks allowed for the shortened URL. Must
                    be a positive integer.
                  example: 1000
                block-bots:
                  type: boolean
                  description: Whether to block bots from accessing the shortened URL.
                  example: false
      responses:
        '200':
          description: Emoji URL successfully created
          content:
            application/json:
              schema:
                type: object
                properties:
                  short_url:
                    type: string
                    format: uri
                    description: The shortened URL with emojis
                    example: https://spoo.me/🐍🐍
                  domain:
                    type: string
                    format: host
                    description: The domain of the shortened URL
                    example: spoo.me
                  original_url:
                    type: string
                    format: uri
                    description: The original URL
                    example: https://example.com
        '400':
          description: Bad Request - Various validation errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                UrlError:
                  summary: Invalid or missing URL
                  value:
                    error: UrlError
                    message: Invalid or missing URL
                EmojiError:
                  summary: Invalid or taken emoji sequence
                  value:
                    error: EmojiError
                    message: Emoji sequence is invalid or already taken
                PasswordError:
                  summary: Password requirements not met
                  value:
                    error: PasswordError
                    message: Password does not meet requirements
                MaxClicksError:
                  summary: Invalid max-clicks value
                  value:
                    error: MaxClicksError
                    message: Max clicks must be a positive integer
        '429':
          description: Too Many Requests - Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: RateLimitError
                message: Rate limit exceeded. Please try again later.
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error type identifier
        message:
          type: string
          description: Human-readable error message
      required:
        - error
        - message

````