Apify actor · whoareyouanas/linkedin-profile-actor

LinkedIn Profile Scraper - No Login, JSON & CSV

Convert public LinkedIn profile URLs or usernames into structured profile records. Review available basic information, work history, education, and other exposed fields without account cookies.

Documentation checked 2026-10-29 · deployed build 0.2.1 · run through your Apify account

01 / Overview

Match the actor to the job.

URLs or usernames

Supply a bounded profile list and deduplicate repeated targets.

Structured profile context

Keep basic information, experience, education, certifications, and languages in a consistent record.

Explicit partial results

Distinguish usable partial profiles from failed requests before enrichment or reporting.

02 / Input

Start with a clear, bounded input.

Use profiles or the documented username/legacy URL inputs. Start with maxProfiles and keep useUpstreamFallback false unless you explicitly want separately billed fallback requests.

input.json · example based on the deployed schema
{
  "profiles": [
    "https://www.linkedin.com/in/whoareyouanas/",
    "neal-mohan"
  ],
  "maxProfiles": 5,
  "includeEmail": false,
  "useUpstreamFallback": false
}

Replace example targets and credential placeholders before running. These are documentation examples, not a promise of currently available source results.

Deployed actor input fields, types, defaults, and descriptions
FieldType / requiredDefaultPurpose
profilesarrayNot specifiedLinkedIn profile URLs or public identifiers. Example: https://www.linkedin.com/in/whoareyouanas/ or whoareyouanas.
usernamestringNot specifiedLegacy single-profile input. Used when profiles is empty.
includeEmailbooleantrueInclude email when it is returned from visible LinkedIn contact/profile data. No independent email discovery is performed.
maxConcurrencyinteger5Maximum number of profiles processed in parallel.

Minimum: 1 · Maximum: 25

maxProfilesinteger1000Process the first N unique profiles. Start with 5 to evaluate coverage.

Minimum: 1 · Maximum: 5000

useUpstreamFallbackbooleantrueTry a third-party Apify actor when direct access fails. Requires APIFY_TOKEN. Child runs have their own charges, separate from this actor result fee. No email search is requested.
All other input controls (5)
Deployed actor input fields, types, defaults, and descriptions
FieldType / requiredDefaultPurpose
requestTimeoutSecsinteger20Timeout for each profile HTTP request.

Minimum: 5 · Maximum: 120

proxyConfigurationobjectNot specifiedOptional proxy settings. Residential proxies can improve public LinkedIn profile access.
profileUrlsarrayNot specifiedCompatibility alias. Used only when profiles and username are empty.
maxRequestRetriesinteger1Retry temporary network, rate-limit and server failures with backoff.

Minimum: 0 · Maximum: 3

maxFallbackProfilesinteger10Per-run cap on provider calls, each capped at $0.01. Default worst-case child-run charge cap: $0.10. Set 0 to disable.

Minimum: 0 · Maximum: 1000

03 / Output

Know what each returned row represents.

Illustrative output shape · not a live run
{
  "input": "example-person",
  "basic_info": {
    "fullname": "Example Person",
    "headline": "Software Engineer",
    "profile_url": "https://linkedin.com/in/example-person",
    "public_identifier": "example-person",
    "current_company": "Example Company",
    "location": {
      "country": "",
      "city": "",
      "full": "",
      "postal_code": "",
      "country_code": ""
    },
    "top_skills": [
      "TypeScript"
    ],
    "email": null
  },
  "experience": [],
  "education": [],
  "certifications": [],
  "languages": [],
  "status": "partial",
  "error": null,
  "scraped_at": "2026-09-12T00:00:00.000Z"
}

Example values illustrate the published contract. Available fields and populated values depend on the source, mode, and result status.

Fields in the documented output view

input

input

basic_info

basic_info

experience

experience

education

education

certifications

certifications

languages

languages

status

status

error

error

scraped_at

scraped_at

Output views select columns. They do not necessarily filter record types or exhaust the full JSON payload. Use structured JSON when you need nested arrays or objects.

Dataset links and run artifacts (4)
Profiles
Usable profile rows in JSON. Partial profiles are included and billed.
CRM CSV export
Available through the actor's Output tab for your run.
Run summary
Available through the actor's Output tab for your run.
Failed profiles (no result fee)
Available through the actor's Output tab for your run.

04 / Pricing

Understand the billable unit.

These are the active public event prices checked on 2026-10-29, in USD. They describe each event, not a universal flat price for a run. Confirm your current Apify plan and run budget before starting.

Actor event prices and billing units
Billable eventRate (USD)When it applies

Actor Start

apify-actor-start

$0.00005 / event

Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).

Start units depend on allocated memory: one event per GB, with at least one event.

result

apify-default-dataset-item

$0.004 / event

Single result in the default dataset.

$4.00 per 1,000 of this event. Other events and separate services are additional.

  • Both success and partial profile records are billed at the result-event rate.
  • Optional paid upstream fallback incurs separate child-run charges. maxFallbackProfiles bounds attempts, not just successful fallback profiles.

A result limit and a spending cap are different controls. Account charges, applicable taxes, and separately billed providers or proxies must be considered where relevant. A cap setting is not a minimum invoice charge.

05 / API & automation

Use the same input from your workflow.

Test a small run in Apify Console, inspect its records and charges, then save a task or call the actor from your own application. Keep your Apify token in an environment variable. Source-specific credentials, if required, are separate from the Apify API token.

cURL · start an asynchronous actor run
# Save the input example as input.json and set APIFY_TOKEN.
# This request starts an asynchronous, potentially billable run.
curl --request POST \
  'https://api.apify.com/v2/acts/whoareyouanas~linkedin-profile-actor/runs' \
  --header "Authorization: Bearer $APIFY_TOKEN" \
  --header 'Content-Type: application/json' \
  --data @input.json

The response identifies the run. Wait for it to finish, inspect its status, and use its default dataset and key-value store to retrieve results. A successful run can still contain partial or failed records; check the output contract above before continuing downstream.

Coverage & interpretation

Check the result before relying on it.

Questions

Before you build an integration.

What do I need to provide?

Use profiles or the documented username/legacy URL inputs. Start with maxProfiles and keep useUpstreamFallback false unless you explicitly want separately billed fallback requests.

What should I check in the output?
  • Success and partial records are usable dataset items; partial can mean only a name and headline are available.
  • Failed targets are documented in DIAGNOSTICS outside the billed dataset. Preserve status, error, and scraped_at in downstream workflows.
How do I budget the run?
  • Both success and partial profile records are billed at the result-event rate.
  • Optional paid upstream fallback incurs separate child-run charges. maxFallbackProfiles bounds attempts, not just successful fallback profiles.

Keep exploring

Practical guides for the next step.