{
  "openapi": "3.0.1",
  "info": {
    "title": "Email Enrichment API - Saad",
    "description": "Turn a name + company domain, a LinkedIn profile URL, or a company domain + job title into a verified work email. Every result carries a deliverability verdict.",
    "version": "0.1",
    "x-build-id": "AsRkiDkY6pUZhhJ65"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/amr-mando~email-enrichment-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-amr-mando-email-enrichment-api",
        "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/amr-mando~email-enrichment-api/runs": {
      "post": {
        "operationId": "runs-sync-amr-mando-email-enrichment-api",
        "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/amr-mando~email-enrichment-api/run-sync": {
      "post": {
        "operationId": "run-sync-amr-mando-email-enrichment-api",
        "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",
        "required": [
          "leads"
        ],
        "properties": {
          "leads": {
            "title": "Leads",
            "type": "array",
            "description": "An array of leads. Each object may use any ONE of the three supported shapes — they can be mixed freely in a single call, each row is routed on its own:\n\n1) NAME + COMPANY DOMAIN — {\"first_name\": \"Aaron\", \"last_name\": \"Levie\", \"domain\": \"box.com\"}\n2) LINKEDIN URL — {\"linkedin_url\": \"https://www.linkedin.com/in/dylanfield\"}\n3) COMPANY DOMAIN + JOB TITLE — {\"domain\": \"datadoghq.com\", \"job_title\": \"VP of Engineering\"}\n\nAliases are accepted for every field (firstName/first, companyDomain/website, linkedinUrl/profile_url, title/role). Send \"company\" instead of \"domain\" and the domain is resolved for you. Anything you send back is echoed in the result under \"input\"."
          },
          "defaultJobTitle": {
            "title": "Default job title",
            "type": "string",
            "description": "Used only for shape 3 rows that give a domain but no job_title. The engine returns the person on that domain whose real title is closest to this one.",
            "default": "Head of Operations"
          },
          "seniority": {
            "title": "Seniority band",
            "enum": [
              "auto",
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "Which band to search inside. \"auto\" reads it off the job title you asked for, which is almost always right — set it explicitly only to force a band.",
            "default": "auto"
          },
          "maxLeadsPerCompany": {
            "title": "Candidates to consider per company",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many people to pull per domain before keeping the closest title match. Higher = better title fit, slower run.",
            "default": 3
          },
          "findLinkedInUrl": {
            "title": "Look up a missing LinkedIn URL",
            "type": "boolean",
            "description": "For shape 1 rows. When the profile URL is not supplied, find it from the name + company first. Materially raises the hit rate. Turn off for the fastest possible run.",
            "default": true
          },
          "resolveDomains": {
            "title": "Resolve a missing domain from the company name",
            "type": "boolean",
            "description": "When a lead gives a company name but no domain, find the domain first. Applies to all three shapes.",
            "default": true
          },
          "includeSiteScrape": {
            "title": "Fall back to a published company address",
            "type": "boolean",
            "description": "ON by default, for maximum coverage. When no personal mailbox is confirmed, return a real email published on the company's own website. IMPORTANT: what a company publishes is usually a shared inbox (info@, support@, billing@) rather than the individual you asked for - on a hard test list this accounted for about a quarter of the results. TURN THIS OFF if you need the exact person and an accurate per-person hit rate. Always tagged email_source=\"scraped\" so you can filter or score it separately.",
            "default": true
          },
          "recoverUnverified": {
            "title": "Second route for rows that never verified",
            "type": "boolean",
            "description": "After the main pass, take every row that came back risky, invalid or empty and return a DIFFERENT decision maker at the same company instead. This replaces the person: new name, new title, new profile. Use it when you want a reachable contact at the account and do not mind who it is. Do not use it when you need the specific person you asked for. Every replaced row comes back with recovered=true. Off by default.",
            "default": false
          },
          "includePersonalFallback": {
            "title": "Fall back to a personal mailbox",
            "type": "boolean",
            "description": "ON by default. Last resort for people the company domain could not confirm: tests common personal providers (Gmail, Outlook, Yahoo, iCloud). A hit confirms the mailbox exists, not that it belongs to this specific person, so it is tagged email_source=\"personal-guess\". Turn it off if you only want addresses on the company's own domain.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}