{
  "openapi": "3.0.1",
  "info": {
    "title": "Phone Number Validator",
    "description": "Validate and format phone numbers from any country. Check if numbers are valid, identify carrier and line type, determine geographic location, and normalize to E.164 international format.",
    "version": "1.0",
    "x-build-id": "Djat0Y00Dsg5I2qEO"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/junipr~phone-number-validator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-junipr-phone-number-validator",
        "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/junipr~phone-number-validator/runs": {
      "post": {
        "operationId": "runs-sync-junipr-phone-number-validator",
        "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/junipr~phone-number-validator/run-sync": {
      "post": {
        "operationId": "run-sync-junipr-phone-number-validator",
        "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": {
          "phoneNumbers": {
            "title": "Phone Numbers",
            "type": "array",
            "description": "List of phone numbers to validate. Accepts any format: E.164 (+14155552671), international (+1 415 555 2671), national ((415) 555-2671), with dashes, dots, parentheses, extensions, or vanity letters (1-800-FLOWERS). Min 1, max 100,000 numbers.",
            "items": {
              "type": "string"
            },
            "default": [
              "+14155552671",
              "+442079460958",
              "+81312345678"
            ]
          },
          "defaultCountryCode": {
            "title": "Default Country Code",
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code applied when phone numbers lack a country prefix. Examples: US, GB, JP, DE, AU. Used for numbers like (415) 555-2671 that have no country code.",
            "default": "US"
          },
          "detectCarrier": {
            "title": "Detect Carrier",
            "type": "boolean",
            "description": "Attempt to detect the carrier/operator for the phone number. Note: carrier detection is limited in the underlying library and may return null for most numbers.",
            "default": true
          },
          "detectLineType": {
            "title": "Detect Line Type",
            "type": "boolean",
            "description": "Detect the line type: mobile, landline, VoIP, toll-free, premium-rate, shared-cost, personal, pager, UAN, or short-code. Essential for SMS campaign targeting (mobile only) and fraud prevention (VoIP detection).",
            "default": true
          },
          "includeTimezone": {
            "title": "Include Timezone",
            "type": "boolean",
            "description": "Return timezone(s) associated with the phone number's geographic area based on country.",
            "default": true
          },
          "includeGeocode": {
            "title": "Include Geographic Region",
            "type": "boolean",
            "description": "Return the country/region name associated with the phone number.",
            "default": true
          },
          "strictValidation": {
            "title": "Strict Validation",
            "type": "boolean",
            "description": "When enabled, rejects numbers that parse but are not valid for the detected country's numbering plan (wrong digit count, invalid area code, etc.). When disabled, accepts numbers that parse successfully even if not strictly valid.",
            "default": false
          },
          "outputFormat": {
            "title": "Output Format",
            "enum": [
              "all",
              "e164",
              "national"
            ],
            "type": "string",
            "description": "Which formatted versions to include in output. 'all' includes E.164, national, international, and RFC3966 formats. 'e164' returns E.164 only (+14155552671). 'national' returns national format only ((415) 555-2671).",
            "default": "all"
          },
          "onlyValid": {
            "title": "Output Valid Numbers Only",
            "type": "boolean",
            "description": "When enabled, only numbers that pass validation are written to the dataset. Invalid numbers are skipped.",
            "default": false
          },
          "onlyMobile": {
            "title": "Output Mobile Numbers Only",
            "type": "boolean",
            "description": "When enabled, only numbers detected as mobile line type are written to the dataset. Useful for SMS campaign targeting.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum number of phone numbers to process simultaneously. Higher values process faster but use more memory.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}