Skip to main content
Human guide: work with your agent → Inspect one BetterContact action before starting provider-backed work. Your first result is a verified input and output contract.

Provider-specific requirements

bettercontact_get_result returns each contact’s custom_fields as an array of {name, value, position} records. Preserve that list shape. do not treat it as an object keyed by custom field name.

Key patterns

  • Enrichment is upstream-async. By default, bettercontact_enrich and bettercontact_bulk_enrich wait briefly for terminal results. If the job is still running, they return a pollable request id. set wait_for_completion: false for launch-only behavior. Use bettercontact_get_result to fetch terminal results.
  • Email status hierarchy: deliverable > catch_all_safe > catch_all_not_safe > undeliverable. Only trust deliverable and catch_all_safe for outreach.
  • Batch up to 100 contacts per enrichment request using bettercontact_bulk_enrich.
  • Use the launcher response id as the request_id for bettercontact_get_result.
  • Rate limit: 600 requests per minute per API key, shared across all endpoints. This is BetterContact’s confirmed going-forward limit. its public rate-limit page still shows the previous 60 RPM value.

Pricing

  • Deepline bills from the terminal enrichment result, and charges only for successful lookups.
  • Phone enrichment costs significantly more than email — only enable enrich_phone_number: true when explicitly needed

When to use

  • Use BetterContact when you need waterfall email enrichment with multi-provider verification.
  • Good fallback when single-provider finders (LeadMagic, Prospeo) miss.
  • Includes triple email verification, phone verification, contact & company enrichment.

When NOT to use

  • Don’t use for email validation only — use a dedicated validator.
  • Don’t use for company/org enrichment — BetterContact is contact-focused.

Find an applicable action

Confirm your effective workspace, then search the live catalog:
Search returns candidates. Check the returned provider and operation rather than selecting a similar title automatically.

Inspect the selected contract

Replace <returned-tool-id> with the identifier returned by discovery:
These commands do not execute the selected provider action. Read its required inputs, supported access mode, pricing unit, outputs, and limits. A connection does not establish that every action supports BYOK. Follow the provider-specific requirements above and the live action contract.

Prepare one reviewed input

Use one authorized record that matches the inspected schema. Preserve its source identity and define the result you will accept. Open the action reference for its payload and response shape. Provider-backed execution can incur usage or external effects. For reusable logic, follow Write Plays. For direct-call recovery, use Tool execution recovery.
Continue only when the workspace, provider, required fields, acceptance rule, and applicable price are understood. Keep unavailable access separate from no-result evidence.