WhoisFreaks Account API

Account, API key, and usage utilities

OpenAPI Specification

whoisfreaks-account-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: WhoisFreaks Account API
  description: 'Complete WhoisFreaks API — WHOIS, DNS, SSL, Geolocation, Typosquatting,

    IP Intelligence, Domain Reputation, and bulk database downloads.


    ## Authentication

    All requests require an `apiKey` query parameter.


    ## Resources

    - Docs: https://whoisfreaks.com/documentation

    - Billing: https://billing.whoisfreaks.com

    - Support: support@whoisfreaks.com

    '
  version: 1.0.0
  contact:
    name: WhoisFreaks Support
    email: support@whoisfreaks.com
    url: https://whoisfreaks.com
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
- url: https://api.whoisfreaks.com
  description: API Solutions (live lookups)
- url: https://files.whoisfreaks.com
  description: Database file downloads
security:
- ApiKeyAuth: []
tags:
- name: Account
  description: Account, API key, and usage utilities
paths:
  /v1.0/api-key/rotate:
    get:
      tags:
      - Account
      summary: Rotate API Key
      operationId: rotateApiKey
      parameters: []
      responses:
        '200':
          description: Key rotated
          content:
            text/plain:
              schema:
                type: string
        '401':
          description: Not allowed
          content:
            text/plain:
              schema:
                type: string
      description: Rotate API Key. Returns the file/snapshot described by this operation.
  /v1.0/whoisapi/usage:
    get:
      tags:
      - Account
      summary: Account Usage
      operationId: accountUsage
      parameters: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountUsageResponse'
        4XX:
          $ref: '#/components/responses/ErrorResponse'
      description: Account Usage. Returns the file/snapshot described by this operation.
  /v3.4/status:
    servers:
    - url: https://files.whoisfreaks.com
    get:
      tags:
      - Account
      summary: Database File Status (Public)
      description: No API key required. Returns freshness of all downloadable files.
      operationId: databaseFileStatus
      security: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabaseFileStatus'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    ApiSubscription:
      type: object
      properties:
        requestLimit:
          type: integer
        servedRequests:
          type: integer
        subscriptionStatus:
          type: string
        surchargeRequestLimit:
          type: integer
        servedSurchargeRequests:
          type: integer
      additionalProperties: true
    DateRangeStatus:
      type: object
      properties:
        available_from:
          type: string
        last_update:
          type: string
      additionalProperties: true
    NewlyStatus:
      type: object
      properties:
        gtld:
          $ref: '#/components/schemas/DateRangeStatus'
        cctld:
          $ref: '#/components/schemas/DateRangeStatus'
        dns:
          $ref: '#/components/schemas/DateRangeStatus'
        cleaned_gtld:
          $ref: '#/components/schemas/DateRangeStatus'
        cleaned_cctld:
          $ref: '#/components/schemas/DateRangeStatus'
      additionalProperties: true
    DatabaseFileStatus:
      type: object
      properties:
        newly:
          $ref: '#/components/schemas/NewlyStatus'
        expired:
          $ref: '#/components/schemas/DateRangeStatus'
        cleaned_expired:
          $ref: '#/components/schemas/DateRangeStatus'
        dropped:
          $ref: '#/components/schemas/DateRangeStatus'
        dropped_with_backlinks:
          $ref: '#/components/schemas/DateRangeStatus'
        threat_feed:
          $ref: '#/components/schemas/ThreatFeedStatus'
        database_updates:
          $ref: '#/components/schemas/DatabaseUpdates'
      additionalProperties: true
    ThreatFeedStatus:
      type: object
      properties:
        phishing:
          $ref: '#/components/schemas/DateRangeStatus'
        malware:
          $ref: '#/components/schemas/DateRangeStatus'
        spam:
          $ref: '#/components/schemas/DateRangeStatus'
      additionalProperties: true
    AccountUsageResponse:
      type: object
      properties:
        apiKey:
          type: string
        apiCredits:
          $ref: '#/components/schemas/ApiCredits'
        apiSubscription:
          $ref: '#/components/schemas/ApiSubscription'
      additionalProperties: true
    ErrorResponse:
      type: object
      properties:
        timestamp:
          type: string
        path:
          type: string
        status: {}
        error:
          type: string
        message:
          type: string
        code:
          type: integer
      additionalProperties: true
      description: Error response. `status` may be an integer (e.g. 401), boolean, or string depending on the endpoint, so it is intentionally untyped to avoid deserialization failures.
    ApiCredits:
      type: object
      properties:
        totalCredits:
          type: integer
        servedRequest:
          type: integer
      additionalProperties: true
    UpdateFrequencies:
      type: object
      properties:
        daily:
          $ref: '#/components/schemas/DateRangeStatus'
        weekly:
          $ref: '#/components/schemas/DateRangeStatus'
        monthly:
          $ref: '#/components/schemas/DateRangeStatus'
      additionalProperties: true
    DatabaseUpdates:
      type: object
      properties:
        domain_whois:
          $ref: '#/components/schemas/UpdateFrequencies'
        dns:
          $ref: '#/components/schemas/UpdateFrequencies'
        subdomains:
          $ref: '#/components/schemas/UpdateFrequencies'
        ip_whois:
          $ref: '#/components/schemas/UpdateFrequencies'
      additionalProperties: true
  responses:
    RateLimited:
      description: Too many requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ErrorResponse:
      description: Error response (4XX)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: apiKey