{
  "openapi": "3.0.1",
  "info": {
    "title": "Phone Number Normalization E.164",
    "description": "Phone lists from forms, scrapers, CRM exports and spreadsheets are messy: mixed formats, 00/011 prefixes, '(0)' trunk digits, Excel scientific-notation damage, several numbers in one cell, and duplicates. Automation users (n8n, Make, Zapier, Clay, CRM) need every row returned with a validated...",
    "version": "0.0",
    "x-build-id": "LYQms5AxtxqAJnWyN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/first_watch~phone-number-normalization-e-164/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-first_watch-phone-number-normalization-e-164",
        "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/first_watch~phone-number-normalization-e-164/runs": {
      "post": {
        "operationId": "runs-sync-first_watch-phone-number-normalization-e-164",
        "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/first_watch~phone-number-normalization-e-164/run-sync": {
      "post": {
        "operationId": "run-sync-first_watch-phone-number-normalization-e-164",
        "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": {
          "records": {
            "title": "Contact records",
            "minItems": 1,
            "maxItems": 1000,
            "type": "array",
            "description": "Up to 1,000 JSON objects with at most 100 keys each. Remove this source before supplying CSV text, JSON text or a base64 file. Original keys and values are preserved in every output row.",
            "items": {
              "type": "object"
            }
          },
          "csvText": {
            "title": "CSV text",
            "minLength": 1,
            "maxLength": 1000000,
            "type": "string",
            "description": "UTF-8 CSV with a header row of unique, nonempty column names. Maximum 1 MB and 1,000 data rows. Quoted fields containing commas or line breaks are supported."
          },
          "jsonText": {
            "title": "JSON text",
            "minLength": 1,
            "maxLength": 1000000,
            "type": "string",
            "description": "A JSON array of 1 to 1,000 objects, up to 1 MB."
          },
          "fileBase64": {
            "title": "Base64 CSV, JSON or XLSX file",
            "minLength": 4,
            "maxLength": 2666668,
            "type": "string",
            "description": "The original file bytes as canonical base64, without a data-URL prefix. Maximum decoded size 2 MB. XLSX workbooks are parsed with ExcelJS; archive expansion is bounded to 8 MB."
          },
          "fileFormat": {
            "title": "Base64 file format",
            "enum": [
              "auto",
              "csv",
              "json",
              "xlsx"
            ],
            "type": "string",
            "description": "Applies only to the base64 file. Auto recognizes XLSX (ZIP) and JSON arrays; anything else is parsed as CSV.",
            "default": "auto"
          },
          "phoneColumns": {
            "title": "Phone columns",
            "minItems": 1,
            "maxItems": 10,
            "uniqueItems": true,
            "type": "array",
            "description": "Exact column names (1 to 100 characters each) in priority order. If omitted, columns whose names contain phone, mobile, tel, cell or whatsapp are used in sorted order. Maximum 10 columns.",
            "items": {
              "type": "string"
            }
          },
          "countryColumn": {
            "title": "Country column",
            "minLength": 1,
            "maxLength": 100,
            "type": "string",
            "description": "Exact column name holding each row's country: a supported ISO code, English country name or calling code. Blank or missing values use the default country; unrecognized values are rejected for national-format numbers.",
            "default": "country"
          },
          "defaultCountry": {
            "title": "Default country",
            "enum": [
              "US",
              "CA",
              "GB",
              "DE",
              "FR",
              "ES",
              "IT",
              "NL",
              "AU",
              "IN"
            ],
            "type": "string",
            "description": "Used for national-format numbers when the row has no country. An explicit international prefix always takes precedence. A +1 number alone cannot tell the US from Canada.",
            "default": "US"
          },
          "dedupe": {
            "title": "Duplicate handling",
            "enum": [
              "flag",
              "keepFirst"
            ],
            "type": "string",
            "description": "Compares primary E.164 numbers and ignores extensions. Flag keeps every row and marks duplicates; keepFirst removes later matching rows, including their additional numbers.",
            "default": "flag"
          },
          "maxRows": {
            "title": "Maximum processed rows",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Process at most this many rows from the start of the source and report the rest as skipped. Every source also has a hard limit of 1,000 rows.",
            "default": 1000
          },
          "saveCleanedFile": {
            "title": "Save cleaned CSV",
            "type": "boolean",
            "description": "Also write CLEANED.csv to the run's key-value store with the delivered rows and their original columns. Spreadsheet formula characters are escaped in this export only.",
            "default": true
          },
          "inputMode": {
            "title": "Input mode",
            "enum": [
              "inline"
            ],
            "type": "string",
            "description": "This build processes customer-supplied content locally without any network request. URL downloads are unavailable because no customer-document host is approved.",
            "default": "inline"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}