People

Look up an email and/or phone

Required permissions: body.fields includes email: people:enrich_email; body.fields includes phone: people:enrich_phone. All scopes for the selected fields are required. Omitting body.fields uses ["email","phone"] and requires people:enrich_email and people:enrich_phone. Malformed values: no additional scopes; unknown fields add no scopes. Request validation still applies.

Find this person's email and/or phone the same way the Trayo app's own "Find email" does. Omit fields for both.

It returns 202 at once with what it started and what it skipped. Over the plan limit, or on a plan with no such lookups, the call is 402 lookup_limit_reached: nothing was started and nothing was charged.

A lookup is explicit, asynchronous, idempotent, and governed by your plan. Nothing is looked up on create or on read; this call is the only trigger, and it reports what it started and what it SKIPPED — a field already in progress, already found, blocked by a written email, or inside its retry cooldown is skipped with the reason, never an error — so sending it twice never double-runs or is charged twice. Poll GET /v1/people/{id}/enrich (or read the person) for the result; a lookup takes seconds to a minute.

Provenance is kept. A found value carries source, status and foundAt; a value you wrote is source: "manual" and is never overwritten by a found one — the email lookup is not even attempted while one is present.

Plan limits are checked BEFORE anything runs. Each lookup that starts counts once against a lifetime plan limit. Every response carries quota — limit, used and remaining per field, as they stand after the call, the same numbers GET /v1/whoami reports — so size each request by quota.<field>.remaining rather than learning the limit from a refusal.

post/v1/people/{id}/enrich

Request

  • Base URL: https://api.trayo.ai
  • URL: https://api.trayo.ai/v1/people/{id}/enrich
  • Auth: HTTP bearer

Path parameters

idstring uuid required

Request body

fieldsstring[]

Which values to look up. Omit for both. A field that cannot or need not run is reported in skipped, never an error.

Response

Accepted. started lists the lookups this call started; skipped lists the ones it did not and why; contact is the state right now; quota is the lookup allowance left after this call.

personIdstring uuid required
startedstring[] required

The lookups that were started by THIS call. Poll GET /v1/people/{id}/enrich for them, or trayo_get_contacts on the MCP server.

Changes

No recorded changes to this operation across all 1 revision of this API.