# Email Validation — Ideal Postcodes

> Validate email addresses using Ideal Postcodes. See the documentation.

- Key: `ideal_postcodes-email-validation`
- Type: Action (Read-only)
- Version: 0.0.2
- App: Ideal Postcodes (`ideal_postcodes`) — https://pipedream.com/apps/ideal-postcodes.md
- This page (HTML): https://pipedream.com/apps/ideal-postcodes/actions/email-validation
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/ideal_postcodes/actions/email-validation/email-validation.mjs

## Description

Validate email addresses using Ideal Postcodes. [See the documentation](https://docs.ideal-postcodes.co.uk/docs/api/email-validation).

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `query` | `string` | Yes | The email address to validate. |
| `tags` | `string` | No | A comma separated list of tags to query over. Useful if you want to specify the circumstances in which the request was made. If multiple tags are specified, the response will only comprise of requests for which all the tags are satisfied - i.e. searching foo,bar will only query requests which tagged both foo and bar. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "ideal_postcodes",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "ideal_postcodes-email-validation",
  arguments: {
    query: "Email Address",
    tags: "Tags",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "ideal_postcodes-email-validation",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    ideal_postcodes: { authProvisionId: "apn_xxxxxxx" },
    query: "Email Address",
    tags: "Tags",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "ideal_postcodes-email-validation",
    "configured_props": {
      "ideal_postcodes": { "authProvisionId": "apn_xxxxxxx" },
      "query": "Email Address",
      "tags": "Tags"
    }
  }'
```

---

- App: https://pipedream.com/apps/ideal-postcodes.md · All apps: https://pipedream.com/apps
