Invenitor

Contact information API

POST a name and an optional profile URL to api.invenitor.com. Get contacts when we have them. We do not invent addresses. One credit per completed find. MCP on monthly plans.

Endpoints

Customer endpoints. POST to look up contacts. GET for usage, key info, health, and pricing.

POST/api/v1/find
GET/api/v1/usage
GET/api/v1/key/info
GET/api/v1/health
GET/api/pricing

Quick start

POST /api/v1/find with a name and an optional profile URL. You get emails, phones, and links when we have them.

curl -X POST https://api.invenitor.com/api/v1/find \
  -H "Authorization: Bearer pf_live_..." \
  -H "Content-Type: application/json" \
  -d '{"full_name":"Jordan Lee","github_url":"https://github.com/example"}'

Authentication

Pass your API key as a Bearer token in the Authorization header, or use the x-api-key header. Keys start with pf_live_ (production) or pf_test_ (test).

# Bearer token
Authorization: Bearer pf_live_xxxxxxxxxxxxxxxx

# Or x-api-key header
x-api-key: pf_live_xxxxxxxxxxxxxxxx

Request parameters

All parameters are optional except full_name. A profile URL usually improves results.

{
  "full_name": "Jordan Lee",
  "github_url": "https://github.com/example",
  "linkedin_url": "https://linkedin.com/in/example",
  "company": "Example Co",
  "location": "Mumbai, India"
}

Response shape

JSON with the primary email, other addresses we found, phones, links, and credit usage.

{
  "primary_email": "jordan@example.com",
  "secondary_email": null,
  "emails": [
    { "email": "jordan@example.com", "confidence": "high" }
  ],
  "phones": [],
  "social_links": {
    "github": "https://github.com/example"
  },
  "credits_used": 1,
  "credits_remaining": 19
}

Rate limiting

Rate limits are per-key, per-minute. Starter 20, Growth 60, Scale 120, Enterprise 300. Going over returns 429. Repeated violations auto-ban the key.

# Response headers
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1690000000

# When exceeded
HTTP/1.1 429 Too Many Requests
{"detail": "Rate limit exceeded"}

Error codes

Standard HTTP status codes. Error responses include a detail field explaining what went wrong.

400  Invalid request body
401  Missing or invalid API key
402  Insufficient credits
403  Key banned or IP not allowed
429  Rate limit exceeded
500  Internal server error

SDK Examples

Copy-paste examples in Python, JavaScript, and cURL. Swap the Bearer token for your own key.

Python
import httpx

resp = httpx.post(
    "https://api.invenitor.com/api/v1/find",
    headers={"Authorization": "Bearer pf_live_..."},
    json={
        "full_name": "Jordan Lee",
        "github_url": "https://github.com/example",
    }
)
data = resp.json()
print(data["primary_email"])
JavaScript
const res = await fetch("https://api.invenitor.com/api/v1/find", {
  method: "POST",
  headers: {
    "Authorization": "Bearer pf_live_...",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    full_name: "Jordan Lee",
    github_url: "https://github.com/example"
  })
});
const data = await res.json();
console.log(data.primary_email);
cURL
curl -X POST https://api.invenitor.com/api/v1/find \
  -H "Authorization: Bearer pf_live_..." \
  -H "Content-Type: application/json" \
  -d '{"full_name":"Jordan Lee","github_url":"https://github.com/example"}'

Credit costs

One completed find costs 1 credit. Social links and company email search are included. Viewing Usage or Billing does not spend credits.

Contact lookup1 credit
Usage, Billing, and key-info GETsFree

Ready to start?

Sign in with Google to get your API key from the dashboard.