{
  "openapi": "3.0.1",
  "info": {
    "title": "Domain Availability Checker: Bulk, RDAP, Name Ideas",
    "description": "Check which domain names are free to register, in bulk, with no API key. Paste names or generate ideas from keywords × TLDs (.com, .io, .ai, .app…) with prefixes and suffixes. Official registry RDAP with WHOIS fallback, plus registrar and expiry for taken names.",
    "version": "0.0",
    "x-build-id": "Asl98Wfec5ZsxNja5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/charlesmarkette~domain-availability-checker-bulk-name-ideas/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-charlesmarkette-domain-availability-checker-bulk-name-ideas",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/charlesmarkette~domain-availability-checker-bulk-name-ideas/runs": {
      "post": {
        "operationId": "runs-sync-charlesmarkette-domain-availability-checker-bulk-name-ideas",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/charlesmarkette~domain-availability-checker-bulk-name-ideas/run-sync": {
      "post": {
        "operationId": "run-sync-charlesmarkette-domain-availability-checker-bulk-name-ideas",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "domains": {
            "title": "Domains to check",
            "type": "array",
            "description": "One per line. Domains (bluefox.com), website URLs (https://www.bluefox.com/page) or email addresses (hi@bluefox.com) all work: the registrable domain is taken from each. Bare words without a TLD go in Keywords below.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Words or brand ideas to turn into domain names, one per line (\"blue fox\", \"Café Luna\"). Each keyword is combined with every TLD below. Spaces and punctuation are removed (\"blue fox\" becomes bluefox); accented names become punycode (xn--…).",
            "items": {
              "type": "string"
            }
          },
          "tlds": {
            "title": "TLDs",
            "type": "array",
            "description": "Endings to try for each keyword, without the dot. Multi-part endings such as co.uk work.",
            "default": [
              "com",
              "net",
              "org",
              "io",
              "co",
              "app",
              "dev",
              "ai"
            ],
            "items": {
              "type": "string"
            }
          },
          "prefixes": {
            "title": "Prefixes",
            "type": "array",
            "description": "Optional words to put before each keyword, for example get, try, my (gives getbluefox.com).",
            "items": {
              "type": "string"
            }
          },
          "suffixes": {
            "title": "Suffixes",
            "type": "array",
            "description": "Optional words to put after each keyword, for example app, hq, labs (gives bluefoxhq.com).",
            "items": {
              "type": "string"
            }
          },
          "hyphenVariants": {
            "title": "Hyphenated variants",
            "type": "boolean",
            "description": "For keywords with several words, also try the hyphenated form (\"blue fox\" gives both bluefox and blue-fox).",
            "default": false
          },
          "maxGenerated": {
            "title": "Max generated names",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Cap on the names generated from Keywords (and from each dataset item's name). Names are generated keyword by keyword, so later keywords are cut first.",
            "default": 500
          },
          "datasetId": {
            "title": "Dataset to enrich",
            "type": "string",
            "description": "Optional. A dataset of domains, websites or company names (for example from a scraper run). Each item is checked and the result columns are added next to its fields. Use {{resource.defaultDatasetId}} in an integration."
          },
          "domainFields": {
            "title": "Domain fields",
            "type": "array",
            "description": "Item fields to take a domain from, in order of preference. Dotted paths work (company.website). Default: domain, website, url, email.",
            "items": {
              "type": "string"
            }
          },
          "nameFields": {
            "title": "Name fields",
            "type": "array",
            "description": "Optional. Item fields holding a company or brand name (for example title, companyName). Used when an item has no domain: the name is turned into domain ideas with the TLDs, prefixes and suffixes above. Legal forms at the end (Ltd, Inc, GmbH…) are dropped.",
            "items": {
              "type": "string"
            }
          },
          "keepItemFields": {
            "title": "Keep the item's original fields",
            "type": "boolean",
            "description": "On: each output row is the original item plus the availability columns. Off: only the availability columns.",
            "default": true
          },
          "includeRegistrationDetails": {
            "title": "Registrar and dates for taken names",
            "type": "boolean",
            "description": "Off (faster): names found in DNS are reported as taken without asking the registry. On: also fetch the registrar, creation and expiry dates of taken names from RDAP (WHOIS fallback).",
            "default": false
          },
          "onlyAvailable": {
            "title": "Output only available names",
            "type": "boolean",
            "description": "Leave out names that are taken or couldn't be checked. Left-out names are free.",
            "default": false
          },
          "dedupe": {
            "title": "Check each domain once",
            "type": "boolean",
            "description": "Skip repeats of a domain already checked in this run. Skipped repeats are free.",
            "default": true
          },
          "concurrency": {
            "title": "Parallel checks",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "How many names to check at the same time (1–25). Each registry server still gets at most 3 requests at a time.",
            "default": 10
          },
          "maxResults": {
            "title": "Max output rows",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cap on output rows (each row is one domain)."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}