Developer reference

The PersistData API

One key, one call, clean JSON. Every endpoint is server-side, metered per success, and rate-limited per plan. A not-found never costs a credit.

Authentication

Pass your secret key in the X-API-Key header on every request. Keys are issued from your dashboard once access is granted.

# every request carries your key
curl https://api.persistdata.com/v1/account \
  -H "X-API-Key: sk_live_..."

Base URL

https://api.persistdata.com/v1

Credits & billing

Credits are deducted only when a record is found. Not-founds, errors, and cache misses cost zero. Identical lookups within five minutes are served from cache and never re-charged.

OperationEndpointCredits
Profile enrich/v1/person/enrich2
Company enrich/v1/company/enrich1
Email finder/v1/email/find5
People search/v1/people/search10
Cached lookup/v1/cached/person1

Enrich a person

POST/v1/person/enrich2 credits / found

Resolve a LinkedIn URL or identifier into a structured profile: name, title, current company, role history, location, and reach. Sales Navigator URLs are normalized automatically.

curl https://api.persistdata.com/v1/person/enrich \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url":"linkedin.com/in/janedoe"}'

# 200 OK
{
  "found": true,
  "credits_charged": 2,
  "person": {
    "name": "Jane Doe",
    "title": "VP Sales",
    "company": "Northwind",
    "location": "Austin, TX"
  },
  "balance": 4998
}

Find an email

POST/v1/email/find5 credits / found

Return one deliverable, verified business email for a person. You are charged only when we return a confident match.

curl https://api.persistdata.com/v1/email/find \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url":"linkedin.com/in/janedoe"}'

# 200 OK (not found -> {"found":false,"credits_charged":0})
{ "found": true, "email": "jane@northwind.com", "credits_charged": 5 }

Enrich a company coming soon

POST/v1/company/enrich1 credit / found

Headcount, industry, location, and firmographics for a company by domain or name. The cached firmographic tier serves repeat lookups at the lowest cost.

Account

GET/v1/accountfree

Check your plan and remaining credit balance.

{ "account": "acme", "plan": "growth", "balance": 4998 }

Errors

StatusCodeMeaning
401invalid_api_keyMissing or unrecognized key
402insufficient_creditsBalance below the cost of the call
429rate_limitedToo many requests this minute
400missing_urlNo target URL or identifier provided

Rate limits

Requests are limited per key, by plan. A 429 includes a retry_after_seconds field. Burst beyond your limit is rejected rather than queued, so your spend stays predictable.

Request an API key