Documentation

Commands

Complete reference for all Enrich Layer CLI commands.

The CLI exposes every major Enrich Layer API surface as a command. This page lists each command with its flags, a short description, and a copy-pasteable example. Run el <command> --help at any time for the same information in your terminal.

Global options

These options work with every command.

OptionDescription
-v, --versionPrint the CLI version
-h, --helpShow help for any command
-q, --quietSuppress informational output (only data is printed)
--no-colorDisable colored output
-t, --token <key>Override stored credentials for a single call
--api-key <key>Alias for --token

Output-format flags (--json, --full, --format, --fields, --output, --copy) are documented in Output formats below.

Authentication

el login

Authenticate with your Enrich Layer account.

el login                    # Interactive (browser by default)
el login --browser          # Force browser flow
el login --device           # Device code flow for SSH / CI
el login --token <key>      # Paste an API key directly
el login --json             # Machine-readable output for scripts
bash

Credentials are stored at ~/.config/enrichlayer/credentials.json.

el logout

Remove stored credentials.

el logout
el logout --json
bash

el whoami

Show the currently authenticated account.

el whoami
el whoami --json
bash

el auth <subcommand>

Alias group kept for backwards compatibility. el auth login, el auth status, and el auth logout behave like their top-level counterparts.

Profile

el profile <url>

Enrich a person profile from a LinkedIn URL.

el profile https://linkedin.com/in/satyanadella
el profile https://linkedin.com/in/satyanadella --full
el profile https://linkedin.com/in/satyanadella --json
el profile https://linkedin.com/in/satyanadella --copy
el profile https://linkedin.com/in/satyanadella --use-cache if-present
el profile --file urls.txt --jsonl > profiles.jsonl
cat urls.txt | el profile --stdin --jsonl
bash

Accepts a single URL, a --file <path> of URLs (one per line), or --stdin. See Batch processing for details. Add --use-cache if-present to save credits on repeat lookups — see Cost-saving below.

el profile lookup

Find a profile by name and company domain.

el profile lookup --name "Satya Nadella" --company microsoft.com
el profile lookup --first-name Satya --last-name Nadella --company microsoft.com
el profile lookup --name "Bill Gates" --company microsoft.com --enrich
bash
OptionDescription
--name <name>Full name (split into first/last automatically)
--first-name <name>First name
--last-name <name>Last name
--company <domain>Company domain (e.g. microsoft.com)
--enrichReturn the full profile (costs more credits)

el profile role

Find a person by role at a named company.

el profile role --company Microsoft --role CEO
el profile role --company Google --role CTO --enrich
bash

el profile picture <url>

Get the profile picture URL for a LinkedIn profile.

el profile picture https://linkedin.com/in/satyanadella
el profile picture https://linkedin.com/in/satyanadella --json
bash

Company

el company <url>

Enrich a company profile from a LinkedIn URL.

el company https://linkedin.com/company/microsoft
el company https://linkedin.com/company/microsoft --full
el company https://linkedin.com/company/microsoft --json
el company https://linkedin.com/company/microsoft --use-cache if-recent
el company --file company-urls.txt --jsonl > companies.jsonl
bash

Add --use-cache if-present or --use-cache if-recent to lower credit cost on repeated lookups. See Cost-saving below.

el company lookup

Find a company by name or domain.

el company lookup --name Microsoft
el company lookup --domain microsoft.com
el company lookup --name Microsoft --enrich
bash

el company employees <url>

List employees at a company.

el company employees https://linkedin.com/company/microsoft
el company employees https://linkedin.com/company/microsoft --limit 20
el company employees https://linkedin.com/company/microsoft --next-page <token>
bash

el company employee-count <url>

Get the total employee count.

el company employee-count https://linkedin.com/company/microsoft
bash

el company employee-search <url>

Search employees at a specific company with filters.

el company employee-search https://linkedin.com/company/microsoft --title Engineer
el company employee-search https://linkedin.com/company/google --first-name John --last-name Doe
el company employee-search https://linkedin.com/company/stripe --school Stanford --limit 50
bash
OptionDescription
--first-name <name>Filter by first name
--last-name <name>Filter by last name
--title <title>Filter by job title keyword
--school <school>Filter by school keyword
--limit <n>Maximum results (default 10)

el company picture <url>

Get the company logo URL.

el company picture https://linkedin.com/company/microsoft
bash

Unlike the HTTP API, the CLI exposes each search filter as its own flag. There is no -q query parameter.

el search person

Search for people across LinkedIn by name, company, title, or location.

el search person --first-name John --last-name Doe
el search person --company Google --title Engineer
el search person --title "Product Manager" --country US --limit 20
el search person --past-company Apple --title "VP Marketing"
bash
OptionDescription
--first-name <name>First name
--last-name <name>Last name
--company <name>Current company name
--past-company <name>Past company name
--title <title>Current role title
--past-title <title>Past role title
--country <code>Country (2-letter code)
--city <city>City
--region <region>Region / state
-l, --limit <n>Max results (default 10)
-p, --page <token>Pagination token from a previous search

el search company

Search for companies.

el search company --name Microsoft
el search company --industry Technology --country US
el search company --city "San Francisco" --limit 20
bash
OptionDescription
--name <name>Company name
--industry <industry>Industry
--country <code>Country (2-letter code)
--city <city>City
--region <region>Region / state
-l, --limit <n>Max results (default 10)
-p, --page <token>Pagination token

Contact

el contact email

Find a personal email by name and company domain.

el contact email --name "Satya Nadella" --domain microsoft.com
el contact email --first-name Satya --last-name Nadella --domain microsoft.com
bash

--domain is required. Provide either --name (full) or --first-name + --last-name.

el contact work-email <url>

Get the work email associated with a LinkedIn profile.

el contact work-email https://linkedin.com/in/satyanadella
el contact work-email https://linkedin.com/in/satyanadella --json
bash

el contact reverse-email <email>

Find a LinkedIn profile from an email address.

el contact reverse-email [email protected]
el contact reverse-email [email protected] --enrich
bash

el contact reverse-phone <phone>

Find a LinkedIn profile from a phone number.

el contact reverse-phone +14155551234
el contact reverse-phone +14155551234 --enrich
bash

Jobs and schools

el job <url>

Get details for a LinkedIn job posting.

el job https://linkedin.com/jobs/view/123456789
el job https://linkedin.com/jobs/view/123456789 --json
bash

el school <url>

Get details for a LinkedIn school profile.

el school https://linkedin.com/school/stanford-university
el school https://linkedin.com/school/stanford-university --json
bash

Account management

el credits

Check your current credit balance.

el credits
el credits --table
bash

el api-keys

Manage your API keys.

el api-keys list                                   # Show all keys (current key is marked)
el api-keys list --format json                     # Machine-readable

el api-keys create --label production              # Create with a single label
el api-keys create --labels "prod,team-alpha"      # Joined into one label
el api-keys create                                 # Create without a label

el api-keys revoke <token>                         # With confirmation prompt
el api-keys revoke <token> --force                 # Skip confirmation
bash

Labels are limited to 32 characters. Both --label and --labels are validated locally against this limit before the network call so errors are actionable. --labels accepts a comma-separated list and joins it with , into a single label; --label takes precedence when both are provided. You cannot revoke the key you are currently authenticated with.

Recipes and guidance

el how-to [topic]

Show a copy-pasteable recipe for a common workflow. Perfect for AI agents discovering the CLI at runtime — run el how-to --list to enumerate every recipe, or el how-to --list --json to get a machine-readable catalog.

el how-to --list                    # Show every available recipe
el how-to lead-gen                  # Print a specific recipe
el how-to --list --json             # Machine-readable catalog (for agents)
el how-to cost-saving --json        # A single recipe as JSON
bash

Available recipes:

TopicWhat it shows
lead-genFrom a company domain to a list of executives with emails
crm-enrichmentBulk-enrich a file of LinkedIn URLs
email-to-profileReverse-lookup a LinkedIn profile from an email
talent-sourcingFilter candidates by title / company / location
cost-savingUse --use-cache to lower credit spend
batch-with-jqStream JSONL through a transform
agent-outputStructured, quiet, field-projected output

Cost-saving

Pass --use-cache <mode> to el profile <url> or el company <url> to reduce credit cost on repeated lookups.

ModeBehavior
if-presentReturn any cached copy (cheapest, fastest)
if-recentReturn a cached copy only when it is fresh enough per the API policy
el profile https://linkedin.com/in/satyanadella --use-cache if-present
el company https://linkedin.com/company/microsoft --use-cache if-recent
el profile --file urls.txt --jsonl --use-cache if-present > cached.jsonl
bash

The flag is forwarded to the API as use_cache. If a server does not support the parameter it is simply ignored, so enabling the flag is always safe. Live-data queries still default to the uncached path, preserving existing behavior.

Configuration

el config

Manage CLI-local settings stored in the config directory.

el config list                    # Show all settings
el config get <key>               # Read a setting
el config set <key> <value>       # Write a setting
el config unset <key>             # Remove a setting
el config path                    # Print the config directory path
bash

el completion <shell>

Generate a shell completion script.

eval "$(el completion bash)"              # Bash
eval "$(el completion zsh)"               # Zsh
el completion fish > ~/.config/fish/completions/el.fish
bash

Output formats

Every data command supports the following output modes.

FlagOutput
(default, interactive TTY)Formatted summary card
(default, non-TTY / piped)Full JSON (auto-detected)
--jsonFull JSON response
--fullHuman-readable extended view with all fields
--copyCopy the JSON result to the clipboard
-f, --format <fmt>json, table, csv, yaml
--fields <list>Comma-separated list of fields to include
-o, --output <file>Write the result to a file
--jsonlJSON Lines output (for batch mode, one object per line)

Examples:

el profile https://linkedin.com/in/satyanadella --fields full_name,headline,city
el profile https://linkedin.com/in/satyanadella --format yaml
el search person --company Google --title Engineer --format csv -o engineers.csv
bash

When the CLI detects that output is being piped to another command or file, it automatically switches to JSON so downstream tools like jq work out of the box.

Batch processing

All lookup commands (profile, company) accept batch input:

el profile --file urls.txt --jsonl > profiles.jsonl
cat urls.txt | el profile --stdin --jsonl
el company --file companies.txt --jsonl --output companies.jsonl
bash
FlagDescription
--file <path>Read one URL per line from a file (lines starting with # are ignored)
--stdinRead URLs from standard input
--jsonlOutput one JSON object per line (streaming-friendly)

Errors in batch mode are emitted as JSON Lines with "error": true, so a failed row never breaks the stream.