Base URL and authentication
Authorization: Bearer YOUR_API_KEY. X-Api-Key is also accepted; send only one authentication method. Organization-owned resources are scoped to the key’s organization. Most data endpoints also require active organization access; Get account reports access and quotas.
Content-Type: application/json for JSON request bodies. Keep keys out of browser bundles, URLs, logs, and source control. See Authentication.
Requests and responses
Endpoint pages define their exact request and response shapes. Most successful reads returndata; collection endpoints may add meta. A successful delete returns 204 with no body, so do not call response.json() on it.
People search also returns the effective structured query. For example, an empty result can look like this:
app_query nor its provider-oriented query accepts the echoed graph-search object unchanged.
- Full versus compact: people search defaults to
view=full.view=compactchanges field names and structure, not just payload size. See Person response shapes. - Null versus omitted:
nullmeans a field has no value; optional fields can be absent. Neither impliesfalse, zero, or an empty string. Tolerate additional response fields. - Identifiers: person routes use a LinkedIn slug. Lists resolve by UUID or case-insensitive name; use the returned UUID after resolution. Targets use UUIDs. URL-encode path values.
- Pagination: follow the contract on each endpoint. People search uses offsets; events use older-page cursors. Not every collection is paginated, and counts are not interchangeable with totals.
- Examples: cURL, JavaScript, and Python snippets are direct HTTP calls, not SDKs. Set
FRESHTALENT_API_KEY; replace sample identifiers with values returned by your account. JavaScript examples use Node.js 22+; Python examples use the standard library.
Errors, limits, and safe retries
Branch on HTTP status first. Application errors usually return{ "error": { "type": "…", "message": "…" } }, while framework validation and rate limiting can return { "statusCode": 429, "error": "Too Many Requests", "message": "…" }.
- The Gateway currently allows 300 requests per minute per client IP as it sees it, not per key. See Rate limits and quotas.
- Retry transient read failures with bounded backoff and jitter. Honor
Retry-Afteron429. - A timed-out mutation may already have succeeded. Reconcile the resource before replaying it; repeated List-member writes can overwrite stage and notes.
- Event polling needs overlap windows and event-ID deduplication. A page cursor is not the checkpoint for the next poll.
Endpoint map
Account and discovery
Lists and saved queries
Targets, events, and notifications
This map covers the operations documented in this reference, not every dashboard route. In particular, the dashboard’s
/monitoring and filtered /signals feeds are not interchangeable with the integration event stream.
Other integration surfaces
- MCP: connect compatible assistants at
https://api.freshtalent.ai/mcp. - ATS and CRM architecture: turn events into idempotent downstream updates.
- Machine-readable product guidance:
https://freshtalent.ai/llms.txt.