# Check Whether an Email Is a Work Email via API

By [Florian Martens](https://pipe0.com/authors/florian-martens) · Published Apr 8, 2025

Source: https://pipe0.com/blog/validate-work-email-addresses-with-pipe0

> Detect free email providers and confirm an address is a real work email with a single pipe0 API call.



In this blog post, we explore how you can validate work email addresses via an API endpoint.
For this, we use [pipe0](https://pipe0.com).

Pipe0 is a framework for data enrichment. To enrich data with pipe0 you use enrichment pipes.
There are several pipes available to validate work email addresses via API. For this blog post, we're
using the pipe [PeopleIsWorkEmail@1](https://www.pipe0.com/docs/pipe-catalog/people-is-work-email-pipe0/version-1).

This pipe simply checks if a given email address is linked to a publicly known free
email provider and therefore not a valid work email address.

If you want to go even further you can use the [PeopleValidateEmailZeroBounce@1 pipe](https://www.pipe0.com/docs/pipe-catalog/people-validate-email-zerobounce/version-1).
This pipe uses [zerobounce](https://www.zerobounce.net/) to validate the existence of the email address to
protect your reputation.

The pipe "PeopleIsWorkEmail\@1" is free to use on pipe0 (if you have a subscription).

## Prerequisites [#prerequisites]

🙆🏼‍♂️ Go to [pipe0](https://pipe0.com) and create an account <br />
🔑 Create an API Key

## Request object [#request-object]

<CodeBlockTabs defaultValue="Typescript">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="Typescript">
      Typescript
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="cURL">
      cURL
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="Typescript">
    ```typescript
    const id = 1;
    const result = await fetch("https://api.pipe0.com/v1/pipes/run", {
      method: "POST",
      headers: {
        "Authorization": `Bearer <API_KEY>`,
        "Content-Type": "application/json"
      },
      body: JSON.stringify({
        pipes: [{ name: "PeopleIsWorkEmail@1" }],
        input: [{id, workEmail: "<EMAIL_ADDRESS>" }]
      })
    });

    const response = await result.json();

    // [NOT SHOWN] Poll the "/check" endpoint until the task status is "completed"
    // Learn more: https://www.pipe0.com/docs/pipeline#async-processing

    // Print email
    console.log(response.records[id].fields["isWorkEmail"].value);
    ```
  </CodeBlockTab>

  <CodeBlockTab value="cURL">
    ```shell
    curl -X POST "https://api.pipe0.com/v1/pipes/run" \
    -H "Authorization: Bearer <API_KEY>" \
    -H "Content-Type: application/json" \
    -d '{
        "pipes": [{ "name": "PeopleIsWorkEmail@1" }],
        "input": [{ id: 1, workEmail: "<EMAIL_ADDRESS>" }]
    }'
    ```
  </CodeBlockTab>
</CodeBlockTabs>

## Using pipe0 [#using-pipe0]

In this example we used [pipe0](https://pipe0.com) instead of querying providers directly. Using pipe0
has many advantages:

* Use 50+ enrichment providers with one subscription
* Combine multiple enrichments in one API call
* Up-to-date API documentation and best-in-class DX
* Combine data enrichment, web scraping, and AI for powerful solutions
