openapi: 3.0.0
info:
  title: Namecheckly Name & Domain Checker API
  description: Real-time API to check brand name availability across top domain extensions (.com, .ai, .io) and social media handles. CORS-enabled with process-level IP rate-limiting.
  version: 1.0.0
servers:
  - url: https://namecheckly.com
    description: Production Server
paths:
  /api/check:
    get:
      summary: Check availability of a brand name
      description: Query real-time availability of a name across domains and social networks. Unauthenticated requests are limited to 5 requests/minute. Authenticated requests are allowed up to 100 requests/minute.
      operationId: checkNameAvailability
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      parameters:
        - name: name
          in: query
          description: The brand name to check (e.g., "mybrand")
          required: true
          schema:
            type: string
        - name: tlds
          in: query
          description: Comma-separated list of TLD extensions to check (e.g., "com,ai,io"). Defaults to com,ai,io,net,co,shop,store.
          required: false
          schema:
            type: string
        - name: platforms
          in: query
          description: Comma-separated list of social media platforms to check (e.g., "instagram,tiktok,youtube,x,facebook,linkedin,github"). Defaults to all.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  query:
                    type: string
                  name:
                    type: string
                  domains:
                    type: array
                    items:
                      type: object
                      properties:
                        domain:
                          type: string
                        available:
                          type: boolean
                        registerUrl:
                          type: string
                          nullable: true
                  socials:
                    type: array
                    items:
                      type: object
                      properties:
                        platform:
                          type: string
                        status:
                          type: string
                          enum: [available, taken]
                        profileUrl:
                          type: string
                          nullable: true
                  partners:
                    type: object
                    properties:
                      lovable:
                        type: string
                      shopify:
                        type: string
                      wpengine:
                        type: string
        '400':
          description: Invalid request parameters
        '429':
          description: Rate limit exceeded (5 req/min for anonymous, 100 req/min for key holders)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
        '500':
          description: Internal server checking error
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Pass developer key to bypass standard rate limits.
    BearerAuth:
      type: http
      scheme: bearer
      description: Bearer token auth alternative.
