---
title: "Send an email-ownership verification code"
method: POST
path: "/dir/{dir_id}/verify_email"
tags: ["Email Verification"]
---

# Send an email-ownership verification code

`POST /dir/{dir_id}/verify_email`

## Request

- Base URL: `https://api.telnyx.com/v2`
- URL: `https://api.telnyx.com/v2/dir/{dir_id}/verify_email`
- Auth: HTTP bearer

Email a 6-digit code to the DIR's authorizer email to confirm ownership of that address. The code goes to the authorizer, not to the caller. If the authorizer is someone else (for example a client's executive), that person has to share the code with whoever is completing setup.

How long the code lasts: 15 minutes by default. 8 hours when the DIR has a call center (BPO) linked through `bpo_authorizations` whose authorization is pending review or approved (a rejected authorization does not count). Link the call center before you send the code: a code sent before the link keeps the 15-minute window, and a code sent after the link lasts 8 hours. The email states the window, and `expires_at` in the response always shows the exact expiry.

To resend, call this endpoint again. Each send issues a fresh code and invalidates the previous one. Sends are limited to one every 60 seconds and 10 per DIR per UTC day. A throttled send returns `429` with `retry_after_secs` and `sends_remaining_today` in the error `meta`.

Submit the code to `POST /dir/{dir_id}/verify_email/confirm`.

## Path parameters

- `dir_id` string, uuid, required

## Response `200`

A code was emailed; the current verification state is returned.

- EmailVerificationStatusWrapped
  - `data` EmailVerificationStatus, required: Verification state for a DIR's authorizer email.
    - `record_type` 'email_verification', required: Always `email_verification`.
    - `email_verified` boolean, required: Whether the DIR's authorizer email has been confirmed.
    - `status` 'sent' | 'verified' | 'unverified', required: `sent` after a code is emailed; `verified` after a successful confirm; `unverified` when no verification is in progress.
    - `expires_at` string, date-time, nullable: When the outstanding code stops being accepted. Null when no verification is in progress.
    - `sends_remaining_today` integer, nullable: How many more codes may be requested for this DIR today. Null when the daily cap does not apply.

## Other responses

- `400`: An error occurred. The response carries the standard Telnyx error envelope.
- `404`: An error occurred. The response carries the standard Telnyx error envelope.
- `429`: An error occurred. The response carries the standard Telnyx error envelope.
- `503`: An error occurred. The response carries the standard Telnyx error envelope.

## Changes

- **2026-10-15** `a72569d69430`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/team-telnyx/apis/telnyx-api/changes/dir/:dir_id/verify_email/post.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api.md) - [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api/llms.txt) - [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api/revisions/0f17b8167873?raw)
