Treffer Logo treffer Docs

n8n

Find work emails in n8n with the Treffer node, or call any endpoint with the HTTP Request node.

Treffer node

Add the email finder to any workflow without building requests. The node is verified by n8n, on n8n Cloud and self-hosted: search for Treffer in the nodes panel, pick it under More from the community and select Install. Instance owners and admins can install it, then everyone on the instance can use it.

Self-hosted, you can also install it under Settings > Community Nodes > Install:

NPM n8n-nodes-treffer

Then add a Treffer API credential in the node and paste a key from your API keys.

Actions

Action Does
Find a work email Email finder. 1 credit per found email, a miss is free.
Get the credit balance Credit balance. Free.

Inputs

Node field API field
First Name and Last Name, or Full Name first_name and last_name, or full_name. Pick with Name Format.
Company Domain domain, the more reliable match
Company Name company_name, when you have no domain

Fill a domain, a company name or both. The node leaves empty fields out, so rows with only one of them work. It returns email, deliverability, found and credits_consumed.

Large lists

  • • The node runs 5 lookups in parallel. On a rate limit or a temporary outage it waits as long as Retry-After says and retries on its own.
  • • Leave n8n's Retry On Fail off. It reruns every item of the node, so emails already found would be charged again.
  • • Set On Error to Continue (using error output) so a row without a name or company does not stop the run.

The node also works as a tool for n8n's AI agents. Ready-made example workflows, including one that fills the email column of a Google Sheet, import with Import from File.

HTTP Request node

For the company profile, which the Treffer node doesn't cover. This covers the values you need for Treffer. For the node itself, follow n8n's HTTP Request docs.

Fastest setup

Copy the cURL example of the endpoint you want into the node's cURL import. It fills in URL, method, headers and body in one go.

Email finder

curl -X POST 'https://api.treffer.io/v1/email/finder' \
  -H 'X-API-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "first_name": "Christian",
    "last_name": "Hecker",
    "domain": "traderepublic.com"
  }'
import requests

response = requests.post(
    "https://api.treffer.io/v1/email/finder",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={
        "first_name": "Christian",
        "last_name": "Hecker",
        "domain": "traderepublic.com",
    },
    timeout=100,
)
print(response.json())

Inputs: full_name, or first_name and last_name. Plus domain or company_name; the domain gives the more reliable match.

Company profile

curl -X POST 'https://api.treffer.io/v1/companies/profile' \
  -H 'X-API-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "domain": "traderepublic.com"
  }'
import requests

response = requests.post(
    "https://api.treffer.io/v1/companies/profile",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={
        "domain": "traderepublic.com",
    },
    timeout=100,
)
print(response.json())

Inputs: domain or name, or both; the domain gives the more reliable match.

All request and response fields: email finder, company profile.

Keep the key in a credential

Store the API key as a Header Auth credential instead of a literal header: name X-API-Key, value your key. The key stays out of the workflow and out of workflow exports.

Configuration

  • • Method POST, URL exactly as documented, no trailing slash.
  • • Send the inputs as a JSON body. Map incoming fields with expressions.
  • • Set the node timeout to at least 100000 ms. Lookups run against live sources and can take up to 90 seconds.

Waterfalls and errors

A miss is not an error: HTTP 200, found false, 0 credits. Branch with an IF node on found and send misses to your fallback provider. No error handling needed for a miss.

The HTTP Request node sends all items at once. For larger lists, turn on Batching in its options to stay under the rate limits. Its Retry On Fail reruns every item, found ones included, so handle failed rows with Continue (using error output) instead. Error responses are listed under errors.

Privacy Policy Terms of Service Imprint