openapi: 3.0.2
servers:
  - url: https://apispot.io/api/v2
info:
  description: Domain API (WHOIS, Check, Batch)
  title: Bulk WHOIS API
  version: "2.0"
  x-apisguru-categories:
    - developer_tools
  x-logo:
    url: https://s3.amazonaws.com/rapidapi-prod-user/e7a9c6f8-f01f-4dca-8fda-68f7424ad817
  x-origin:
    - format: openapi
      url: https://apispot.io/static/whois.yml
      version: "3.0"
  x-providerName: apispot.io
  x-serviceName: whois
security:
  - ApiKeyAuth: []
paths:
  /batch:
    get:
      description: Get your batches
      operationId: getBatches
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArrayOfBatch"
          description: OK
    post:
      description: Create batch. Batch is then being processed until all provided items have been completed. At any time it can be `get` to provide current status with results optionally.
      operationId: createBatch
      requestBody:
        content:
          application/json:
            schema:
              properties:
                domains:
                  example:
                    - foo.com
                    - foo.net
                    - foo.io
                  items:
                    type: string
                  type: array
                operation:
                  enum:
                    - whois
                    - check
                  type: string
                options:
                  properties:
                    format:
                      enum:
                        - raw
                        - formatted
                        - json
                      type: string
                  type: object
              required:
                - operation
                - domains
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Batch"
          description: OK
  "/batch/{id}":
    delete:
      description: Delete batch
      operationId: deleteBatch
      parameters:
        - description: Batch ID
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
    get:
      description: Get batch
      operationId: getBatch
      parameters:
        - description: Batch ID
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Batch"
          description: OK
  /db:
    get:
      description: Query domain database
      operationId: queryDb
      parameters:
        - description: Query (contact name, dns, domain etc)
          in: query
          name: query
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: OK
  "/domains/{domain}/check":
    get:
      description: Check domain availability
      operationId: checkDomain
      parameters:
        - description: Domain
          in: path
          name: domain
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  isAvailable:
                    type: boolean
                type: object
          description: OK
  "/domains/{domain}/rank":
    get:
      description: Check domain rank (authority).
      operationId: domainRank
      parameters:
        - description: Domain
          in: path
          name: domain
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  rank:
                    type: number
                type: object
          description: OK
  "/domains/{domain}/whois":
    get:
      description: WHOIS query for a domain
      operationId: whois
      parameters:
        - description: Domain
          in: path
          name: domain
          required: true
          schema:
            type: string
        - in: query
          name: format
          schema:
            enum:
              - raw
              - formatted
              - json
            type: string
      responses:
        "200":
          description: OK
components:
  schemas:
    ArrayOfBatch:
      properties:
        batches:
          items:
            $ref: "#/components/schemas/Batch"
          type: array
    Batch:
      properties:
        completed:
          type: boolean
        count:
          type: integer
        created_at:
          type: string
        id:
          type: string
        operation:
          type: string
        results:
          items: {}
          type: array
        status:
          type: string
  securitySchemes:
    ApiKeyAuth:
      description: API Key can be found on your 'Account' page upon login.
      in: header
      name: X-API-KEY
      type: apiKey
