Skip to main content
Human guide: work with your agent → Inspect one HarvestAPI action before starting provider-backed work. Your first result is a verified input and output contract.

Provider-specific requirements

Choose the action for the LinkedIn resource you need. Use harvestapi_get_* for a known profile, company, job, post, group, ad, or engagement target. Use harvestapi_search_* for discovery. HarvestAPI interaction actions that send messages or manage connections are intentionally unavailable. For employee searches, use harvestapi_search_leads with LinkedIn company URLs or identifiers in currentCompanies. HarvestAPI matches this filter by company name. Discard results whose currentPositions.companyId does not match the intended company. Generate a random sessionId and reuse it on later pages. For other paginated actions, preserve paginationToken when the input supports it. In profile posts, comments, and reactions, pagination.totalPages: 0 means unknown. Totals can be inaccurate even when results exist. Use a returned paginationToken to continue because it guarantees another page. For profile posts, postedLimit may return posts outside the requested duration. Prefer scrapePostedLimit when a date cutoff is required, but its enforcement has not been live-verified. HarvestAPI documents no numeric result-limit parameter for this endpoint. request page 1 and truncate elements client-side when a fixed count is needed. Use harvestapi_get_profile with main: "true" when the smaller main-profile response is sufficient. Set findEmail: "true" only when email discovery is needed because it costs more. Set skipSmtp: "true" only when a non-SMTP email lookup is acceptable. main: "true" abbreviates profile sections. It does not mean current employer only. element.websites and element.companyWebsites are optional, including in full mode. Distinguish absent keys from explicit nulls and empty arrays. A website value does not prove the current employer’s domain. If that domain is required but missing, resolve the company from currentPosition. Check the returned company identity. Retrying full mode does not guarantee a website. HarvestAPI plan limits are concurrent-request limits, not per-minute quotas. Deepline uses its Business subscription’s 40-request concurrency limit and applies shared retry/backoff handling for transient failures. An empty response can still consume managed Deepline credits. Paginated tools are priced per requested page, not per returned record. A successful elements: [] response is charged when HarvestAPI reports billable usage. if that empty list reports no billable usage or omits usage, Deepline charges zero credits. Recognized missing-profile and missing-ad outcomes marked no_result are unbilled. Empty lists can have status completed. A completed status, null record, or body-level error alone does not guarantee a free call. Check the returned Deepline billing details for the actual charge. Treat recentlyChangedJobs: true as the provider’s recent-job-change filter, not proof of a particular current role or role start date. Check the returned current-position dates against your own eligibility window when those dates are present. If dates or timestamps are absent, retain the row as unverified rather than inventing dates or silently counting it as a verified change. A provider error envelope, including numeric status and plural errors, is a failed request even if its transport status is HTTP 200.

Find an applicable action

Confirm your effective workspace, then search the live catalog:
Search returns candidates. Check the returned provider and operation rather than selecting a similar title automatically.

Inspect the selected contract

Replace <returned-tool-id> with the identifier returned by discovery:
These commands do not execute the selected provider action. Read its required inputs, supported access mode, pricing unit, outputs, and limits. A connection does not establish that every action supports BYOK. Follow the provider-specific requirements above and the live action contract.

Prepare one reviewed input

Use one authorized record that matches the inspected schema. Preserve its source identity and define the result you will accept. Open the action reference for its payload and response shape. Provider-backed execution can incur usage or external effects. For reusable logic, follow Write Plays. For direct-call recovery, use Tool execution recovery.
Continue only when the workspace, provider, required fields, acceptance rule, and applicable price are understood. Keep unavailable access separate from no-result evidence.