Credits
The rate for every endpoint, and why a not-found target (422) is billed everywhere.
#How billing works
Up2Data charges by credit, one currency for every operation. Every successful response carries a meta block reporting exactly what that call cost; an error response skips meta and returns just {"error": {"type", "message", "requestId"}} instead, but a requestId is there either way:
"meta": {
"creditsUsed": 1,
"creditsRemaining": 98420,
"billed": true,
"reason": "profile_found",
"requestId": "req_8f2ka91x"
}#Rates
| Endpoint | Rate |
|---|---|
POST /v1/profiles/enrich |
1 credit, or 4 credits with with_followers_and_connections, with_full_skills_and_endorsements, or by listing followers_count, connections_count, or skill_endorsements in fields (none of these stack) |
POST /v1/companies/enrich |
1 credit |
POST /v1/companies/jobs-count |
1 credit |
POST /v1/companies/posts |
1 credit per returned post; empty pages are free |
POST /v1/companies/headcount |
1 credit |
POST /v1/posts/enrich |
1 credit |
POST /v1/jobs/enrich |
1 credit |
POST /v1/posts/engagement/comments |
1 credit per returned comment; empty pages are free |
POST /v1/posts/engagement/reactions |
1 credit per returned reaction; empty pages are free |
POST /v1/posts/engagement/reposts |
1 credit per returned repost; empty pages are free |
POST /v1/profiles/activity |
2 credits per call (one kind per call) |
POST /v1/profiles/recommendations |
1 credit per non-empty direction (both is up to 2); empty results are free |
POST /v1/profiles/interests |
1 credit per non-empty category (all is up to 5); empty results are free |
POST /v1/search/people, POST /v1/search/people/sales-nav, POST /v1/search/people/standard |
1 credit per page of up to 25 results; empty pages are free |
POST /v1/search/companies, POST /v1/search/companies/sales-nav, POST /v1/search/companies/standard |
1 credit per page of up to 25 results; empty pages are free |
POST /v1/search/jobs |
1 credit per job returned; zero results are free |
POST /v1/search/posts |
1 credit per page of up to 25 posts; empty pages are free |
POST /v1/batch items |
profile, company, post, and Sales Navigator search items: 1 credit each (search items reserve max_results credits, refunded for any shortfall) - never refunded for a failed item. Every other operation item reserves the worst case at submission, matching its own sync rate above, and refunds down to what it actually billed once its queue settles - see the full table for exact numbers |
GET /v1/batch/{job_id}, GET /v1/batch/{job_id}/results |
Free |
GET /v1/account |
Free |
#The billing rule
A not-found target is billed everywhere. Whenever Up2Data scrapes a target and finds it missing, private, deleted, or unreachable (422 unprocessable_target), that counts as billable work - on synchronous enrich (profiles/enrich, companies/enrich, posts/enrich, jobs/enrich), on profiles/activity, on companies/jobs-count, companies/posts and companies/headcount (1 credit), on the post engagement endpoints and on profiles/recommendations and profiles/interests (1 credit), on search/posts when the author_url or author_urn profile is unreachable (1 credit), and on every batch item. Outside a batch job, only 400, 401, 402, 429, 500, and 504 are never billed.
This is deliberately stricter than a pure pay-on-success model: the scrape ran and returned an answer, so it's billed like a hit. Only requests that return no data because of our failure (500, 504) or were rejected before any work started (400, 401, 402, 429) are free.
A POST /v1/batch job reserves the worst case for every item at submission. A profile, company, post, or Sales Navigator search item never refunds for a failed item: a 422 unprocessable_target item bills at its type's rate just like a successful one, and so does an item that fails with a retryable error like 500 or 504. A Sales Navigator search item's unused max_results reservation is the only thing on those items that refunds, once that search runs. Every other operation item settles differently: it reserves the same worst case at submission, but refunds down to what it actually billed once its queue finishes, so a failed or empty item on those operations costs 0. See Batch jobs.
See Errors for the complete status table and Rate limits for what happens when you're throttled.