Treffer Logo treffer Docs

Integrate any tool

Treffer works in any tool that can send an HTTP request. No SDK, no OAuth, no setup on our side. That covers virtually every waterfall and automation tool in your stack.

Every lookup is the same call

  • POST to the endpoint URL, exactly as documented. No trailing slash.
  • Your API key in the X-API-Key header.
  • Inputs as a JSON body, with Content-Type: application/json.
  • The response is JSON.
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=120,
)
print(response.json())

Endpoints

Endpoint URL
Company profile POST https://api.treffer.io/v1/companies/profile
Email finder POST https://api.treffer.io/v1/email/finder
Credit balance GET https://api.treffer.io/v1/account/credits

Each endpoint page documents its request fields and response fields.

Reading the response

A hit and a miss both return HTTP 200. found is true on a hit and false on a miss, and a miss costs 0 credits. Every response key is always present, so your field mappings never break: a miss fills the data fields with null.

That makes fallback chains in waterfalls simple: run your next provider only when found is false. A miss along the way costs nothing.

Timeouts

Lookups run against live sources and can take up to 90 seconds. Set the timeout in your tool to at least 120 seconds.

Limits and errors

Limits are per API key and endpoint, see rate limits. If your tool can throttle requests, set it from those numbers. Everything that is not a 200 uses one flat error shape, see errors.

Tool guides

Privacy Policy Terms of Service Imprint