cubeshell.email.findFind Work Email
Finds the work email address of one named person at one known company. Give it the person's name and their employer, and it returns one work email with employment and deliverability evidence, or a not_found result when no email exists for that person. It does not verify an email you already have, search for people by role, or return personal email addresses. To check whether an address you already have is deliverable, use cubeshell.email.verify instead.
first_name plus last_name, or full_name. The employer is either domain, which is preferred, or company_name. Sending a name with no employer, or an employer with no name, is rejected as INVALID_INPUT before anything is charged.Request
Workspace identity comes from the authenticated MCP connection, not from the call arguments. There is no workspace field to set.
| Parameter | Type | Description |
|---|---|---|
request_idrequired | string | Stable idempotency key, 1 to 200 characters. Replaying the same request_id with the same input returns the original result without a second charge. |
quote_onlyrequired | false | Must be false. Quote-only preview is not available in this version. |
input.first_name | string | Given name, up to 200 characters. Send it together with last_name, or send full_name instead. |
input.last_name | string | Family name, up to 200 characters. Send it together with first_name, or send full_name instead. |
input.full_name | string | Whole name in one field, up to 200 characters. Use this in place of first_name and last_name. |
input.domain | string | Bare company domain such as example.com, up to 253 characters. Not a URL. This is the preferred way to name the employer. |
input.company_name | string | Company name, up to 200 characters. Use it to name the employer when you do not have the domain. |
max_microcredits | integer | Optional ceiling. If the authoritative price is higher, the call is rejected before anything is charged. |
{
"name": "cubeshell.email.find",
"arguments": {
"request_id": "find-work-email-001",
"quote_only": false,
"input": {
"full_name": "Ada Lovelace",
"domain": "example.com"
}
}
}Result
On status: "succeeded", the result field holds the match.
| Parameter | Type | Description |
|---|---|---|
result.email | string | The work email address found for that person. |
result.employment_verified | boolean | Whether the person was confirmed as employed at that company. |
result.domain_has_mx | boolean | Whether the email domain has a mail-exchange record, so it can receive mail. |
result.company | object | Company context for the match, such as name, industry, size and profile URL. |
When no email exists
When no work email exists for that person, the response comes back with status: "not_found" and no result.email. This is a real terminal status, not an error. The input was valid and the lookup ran to completion. It simply found no email for that person, and a not_found result is not charged.
Agents should treat not_found as the answer and move on. Retrying the same person and employer will not produce a different result.