> ## Documentation Index
> Fetch the complete documentation index at: https://docs.edges.run/llms.txt
> Use this file to discover all available pages before exploring further.

# Connecting a LinkedIn Identity

> Learn to manage LinkedIn authentication and identity integrations in Edges.

## **Managing LinkedIn Integration**

### **Create a New Identity First**

As a reminder, to automate LinkedIn actions, you must first create an identity in Edges using the
[Create an Identity](/v1/api/identities/create) endpoint. Example request:

```bash theme={null}
curl --request POST \
  --url https://api.edges.run/v1/identities \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <your_api_key>' \
  --data '{
  "name": "John Doe or a reference for your identity",
  "timezone": "Europe/Paris",
  "type": "standard"
}'
```

<ParamField body="name" type="string">
  A name that allows you to identify the Identity: it can be the full name of the Identity or an internal reference (or both!) at your convenience.
</ParamField>

<ParamField body="timezone" type="string">
  The Identity's timezone.

  <Warning>
    The `timezone` field provisions a proxy IP matching that timezone/country.
    This needs to match the location where you log into your LinkedIn account to
    avoid restrictions.
  </Warning>

  <Info>
    Edges supports the [canonical IANA time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), as defined by the tz database. Only canonical names are accepted. Deprecated or alias entries are currently not supported.

    Example: "Europe/Kiev" is deprecated and has been replaced by "Europe/Kyiv", which is the valid canonical identifier. Deprecated names are maintained in the IANA backward zone file for legacy compatibility but should not be used.
  </Info>

  <Tip>
    When using a VPN, either

    1. Log out of your VPN before accessing social media, or
    2. Ensure the "timezone" you send matches the country of the VPN IP address.
  </Tip>
</ParamField>

<ParamField body="type" type="string">
  Specifies the type of identity. Determines billing and credit consumption behavior.

  * **`standard`** (default): Standard identity included in your plan. All actions consume credits at the normal rate.

  * **`engagement`**: Engagement identity that allows running a broad set of LinkedIn outreach actions (connect, message, follow, like, comment, etc.) **without consuming credits**. Ideal for building SaaS products or AI agents that enable users to engage on LinkedIn or create outreach sequences.

  <Warning>
    Engagement Identities must be **enabled first** from the [Developer Settings](https://app.edges.run/settings/developers) page and require billing details to be filled. They are **billed monthly** based on the peak number of active Engagement Identities during your billing cycle (starting at \$7.99/identity/month).
  </Warning>

  <Tip>
    Use Engagement Identities for high-volume, repetitive outreach actions (connect, message, follow) and keep standard identities for more occasional or data extraction workflows. See [Engagement Identities](/v1/identities/engagement) for more details.
  </Tip>
</ParamField>

### **Connect LinkedIn to Identities**

After adding an Identity, you will [Connect an Identity's Integration](/v1/api/integrations/connect) in order to link the LinkedIn account to the identity.

You can connect LinkedIn accounts in two ways:

1. **Synchronize cookies**: Send LinkedIn authentication cookies (`li_at` and optionally `li_a` for Sales Navigator) to connect an account. This is useful when:

   * You already have the cookies from your own Chrome extension
   * You want to handle authentication yourself
   * You need precise control over cookie management

```bash theme={null}
curl --request POST \
  --url https://api.edges.run/v1/identities/{identity_uid}/integrations/linkedin \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <your_api_key>' \
  --data '{
  "account_name": "LinkedIn Account #1",
  "auth_data": {
    "cookies": {
      "li_at": "<li_at_token>",
      "li_a": "<li_a_token>"
    }
  }
}'
```

<ParamField body="account_name" type="string">
  Name of the LinkedIn account, e.g. "LinkedIn Account #1". It's generally the
  User's `full_name` or `email`.
</ParamField>

<ParamField body="auth_data.cookies" type="object">
  For **COOKIES** integration types, provide authentication cookies here.

  <Note>
    **Important note**: If you're connecting an account for **LinkedIn Sales
    Navigator**, you need to send both cookies. If you don't include the `li_a`
    token, the connection may not work properly with LinkedIn Sales Navigator.
    Including the `li_a` token will also speed up account synchronization.
  </Note>
</ParamField>

2. **Connect natively**: Provide the LinkedIn email and password to let Edges handle the authentication flow. This is recommended when:
   * You want a simpler integration
   * You don't want to manage cookies
   * You need automatic cookie refresh

```bash theme={null}
curl --request POST \
  --url https://api.edges.run/v1/identities/{identity_uid}/integrations/linkedin \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '{
  "auth_data": {
    "basic": {
      "username": "elon@musk.com",
      "password": "********"
    }
  }
}'
```

## Monitor LinkedIn Integration Status with Webhooks

LinkedIn integrations have a lifecycle that you can monitor in real-time using webhooks. Whether the integration was created through user interaction, frontend operations, or API calls, webhooks provide instant notifications about status changes.

Webhooks send HTTP requests to your platform when integration events occur, allowing you to:

* **React immediately** to authentication issues
* **Notify users** about account status changes
* **Trigger automated responses** (e.g., resync flows)
* **Monitor integration health** proactively

### Setup Process

<Steps>
  <Step title="Configure Your Webhook URL">
    Configure a webhook URL in the [developer section of your Edges workspace](https://app.edges.run/settings/developers).

    <Tip>
      **Webhook URL Requirements:**

      * Must be HTTPS (e.g., `https://your-domain.com/webhooks`)
      * Supports extended URLs with basic auth, ports, and query parameters (up to 1024 characters)
      * Example: `https://user:pass@your-website.com:8080/webhooks/edges/linkedin-integration?foo=bar`

      You can also add up to 10 custom headers (e.g., API keys) that will be included with each webhook call.
    </Tip>
  </Step>

  <Step title="Implement Your Webhook Handler">
    Each LinkedIn integration event triggers a POST request to your configured URL with this JSON payload:

    ```json theme={null}
    {
      "event_uid": "<string>",
      "event_type": "integration",
      "event": "AUTH_SUCCESS" | "AUTH_PENDING" | "AUTH_FAILED" | "AUTH_EXPIRED" | "AUTH_UPDATED" | "DELETED",
      "timestamp": <POSIX timastamp as float>,
      "data": {
        "identity_uid": "<string>",
        "integration_permalink": "linkedin",
        "workspace_uid": "<string>",
        "name": null | "<string>",
        "level": null | "Classic" | "Sales Navigator" | "Premium" | "Recruiter Lite",
        "setup_source": null | "MANUAL" | "EXTENSION" | "SHARED" | "API",
        "reason": null | "<string>",
        "action_to_be_taken": null | "CONTACT_SUPPORT" | "RETRY_LOGIN" | "RETRY_CHECKPOINT"
      }
    }
    ```
  </Step>
</Steps>

##### Field Explanations

| Field                 | Description                                                                      |
| --------------------- | -------------------------------------------------------------------------------- |
| `event_type`, `event` | The type and nature of the integration event                                     |
| `data`                | Standard integration information (see [API reference](/v1/api/integrations/get)) |
| `reason`              | Cause of the event (especially relevant for `AUTH_EXPIRED`)                      |
| `action_to_be_taken`  | Recommended next step for handling the event                                     |

### Event Types

| Event          | Description                                                                                               | Typical Action                                              |
| -------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| `AUTH_SUCCESS` | Integration successfully authenticated                                                                    | Continue normal operations                                  |
| `AUTH_PENDING` | Authentication in progress                                                                                | Wait for completion                                         |
| `AUTH_FAILED`  | Authentication failed                                                                                     | Retry or notify user                                        |
| `AUTH_EXPIRED` | Authentication expired                                                                                    | Trigger resync flow                                         |
| `AUTH_UPDATED` | LinkedIn account level change (Classic, Sales Navigator,...)                                              | Retry or notify user                                        |
| `DELETED`      | Integration was removed (for example via [Delete an Identity’s Integration](/v1/api/integrations/delete)) | Remove cached credentials, stop jobs using this integration |

### Use Cases

#### 1. Handle Expired Sessions

When you receive an `AUTH_EXPIRED` event with `action_to_be_taken: "RETRY_LOGIN"`, you can:

* **Trigger immediate resync** via API call
* **Notify users** to re-authenticate
* **Pause dependent workflows** until resolved

#### 2. Monitor Native Login Workflow

When using the [native login workflow](/v1/identities/add-manage-identities#native-linkedin-login-link), users complete authentication asynchronously. The `AUTH_SUCCESS` event confirms when setup is complete.

<Note>
  **Best Practices:**

  * Ensure your webhook endpoint handles POST requests and JSON payloads
  * Implement proper error handling and logging
  * Consider verifying webhook authenticity (e.g., via headers)
  * Respond quickly to webhook requests (within 5 seconds)
</Note>

## **Best Practices for LinkedIn Automation**

**VPN and Timezone/Country Settings**

* Ensure the `timezone` in Edges matches your login location on LinkedIn.
* Match your VPN's country with Edges, or disconnect the VPN while logging in.

### **Supported Timezones & Country Mappings**

<AccordionGroup>
  <Accordion title="Copy-Paste Array for Developers" icon="code" defaultOpen>
    Use this JSON array directly in your code for timezone validation or dropdown menus:

    ```json theme={null}
    ["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Monrovia", "Africa/Mogadishu", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis"]
    ```
  </Accordion>

  <Accordion title="Timezones by Region" icon="globe">
    Edges supports all standard IANA timezones for LinkedIn authentication. Below is the complete list organized by region.

    ### 🌍 Africa

    `Africa/Abidjan`, `Africa/Accra`, `Africa/Addis_Ababa`, `Africa/Algiers`, `Africa/Asmara`, `Africa/Bamako`, `Africa/Bangui`, `Africa/Banjul`, `Africa/Bissau`, `Africa/Blantyre`, `Africa/Brazzaville`, `Africa/Bujumbura`, `Africa/Cairo`, `Africa/Casablanca`, `Africa/Ceuta`, `Africa/Conakry`, `Africa/Dakar`, `Africa/Dar_es_Salaam`, `Africa/Djibouti`, `Africa/Douala`, `Africa/El_Aaiun`, `Africa/Freetown`, `Africa/Gaborone`, `Africa/Harare`, `Africa/Johannesburg`, `Africa/Juba`, `Africa/Kampala`, `Africa/Khartoum`, `Africa/Kigali`, `Africa/Kinshasa`, `Africa/Lagos`, `Africa/Libreville`, `Africa/Lome`, `Africa/Luanda`, `Africa/Lubumbashi`, `Africa/Lusaka`, `Africa/Malabo`, `Africa/Maputo`, `Africa/Maseru`, `Africa/Monrovia`, `Africa/Mogadishu`, `Africa/Ndjamena`, `Africa/Niamey`, `Africa/Nouakchott`, `Africa/Porto-Novo`, `Africa/Sao_Tome`, `Africa/Tripoli`, `Africa/Tunis`, `Africa/Windhoek`

    ### 🌎 Americas

    `America/Adak`, `America/Anchorage`, `America/Anguilla`, `America/Antigua`, `America/Araguaina`, `America/Argentina/Buenos_Aires`, `America/Argentina/Catamarca`, `America/Argentina/Cordoba`, `America/Argentina/Jujuy`, `America/Argentina/La_Rioja`, `America/Argentina/Mendoza`, `America/Argentina/Rio_Gallegos`, `America/Argentina/Salta`, `America/Argentina/San_Juan`, `America/Argentina/San_Luis`, `America/Argentina/Tucuman`, `America/Argentina/Ushuaia`, `America/Aruba`, `America/Asuncion`, `America/Atikokan`, `America/Bahia`, `America/Bahia_Banderas`, `America/Barbados`, `America/Belem`, `America/Belize`, `America/Boa_Vista`, `America/Bogota`, `America/Boise`, `America/Cambridge_Bay`, `America/Campo_Grande`, `America/Cancun`, `America/Caracas`, `America/Cayenne`, `America/Cayman`, `America/Chicago`, `America/Chihuahua`, `America/Curacao`, `America/Danmarkshavn`, `America/Dawson`, `America/Dawson_Creek`, `America/Denver`, `America/Detroit`, `America/Dominica`, `America/Edmonton`, `America/Eirunepe`, `America/El_Salvador`, `America/Fort_Nelson`, `America/Fortaleza`, `America/Glace_Bay`, `America/Goose_Bay`, `America/Grand_Turk`, `America/Grenada`, `America/Guadeloupe`, `America/Guatemala`, `America/Guayaquil`, `America/Guyana`, `America/Halifax`, `America/Havana`, `America/Hermosillo`, `America/Indiana/Indianapolis`, `America/Indiana/Knox`, `America/Indiana/Marengo`, `America/Indiana/Petersburg`, `America/Indiana/Tell_City`, `America/Indiana/Vevay`, `America/Indiana/Vincennes`, `America/Indiana/Winamac`, `America/Inuvik`, `America/Iqaluit`, `America/Jamaica`, `America/Juneau`, `America/Kentucky/Louisville`, `America/Kentucky/Monticello`, `America/Kralendijk`, `America/La_Paz`, `America/Lima`, `America/Los_Angeles`, `America/Managua`, `America/Manaus`, `America/Marigot`, `America/Martinique`, `America/Matamoros`, `America/Mazatlan`, `America/Menominee`, `America/Merida`, `America/Metlakatla`, `America/Mexico_City`, `America/Miquelon`, `America/Moncton`, `America/Monterrey`, `America/Montevideo`, `America/Montserrat`, `America/Nassau`, `America/New_York`, `America/Nipigon`, `America/Nome`, `America/Noronha`, `America/North_Dakota/Beulah`, `America/North_Dakota/Center`, `America/North_Dakota/New_Salem`, `America/Nuuk`, `America/Ojinaga`, `America/Panama`, `America/Paramaribo`, `America/Phoenix`, `America/Port-au-Prince`, `America/Port_of_Spain`, `America/Porto_Velho`, `America/Puerto_Rico`, `America/Punta_Arenas`, `America/Rainy_River`, `America/Rankin_Inlet`, `America/Recife`, `America/Regina`, `America/Resolute`, `America/Rio_Branco`, `America/Santiago`, `America/Santo_Domingo`, `America/Sao_Paulo`, `America/Scoresbysund`, `America/Sitka`, `America/St_Barthelemy`, `America/St_Johns`, `America/St_Kitts`, `America/St_Lucia`, `America/St_Thomas`, `America/St_Vincent`, `America/Swift_Current`, `America/Tegucigalpa`, `America/Thule`, `America/Thunder_Bay`, `America/Tijuana`, `America/Toronto`, `America/Tortola`, `America/Vancouver`, `America/Whitehorse`, `America/Winnipeg`, `America/Yakutat`, `America/Yellowknife`

    ### 🌏 Antarctica

    `Antarctica/Casey`, `Antarctica/Davis`, `Antarctica/DumontDUrville`, `Antarctica/Macquarie`, `Antarctica/Mawson`, `Antarctica/McMurdo`, `Antarctica/Palmer`, `Antarctica/Rothera`, `Antarctica/Syowa`, `Antarctica/Troll`, `Antarctica/Vostok`

    ### 🌐 Arctic

    `Arctic/Longyearbyen`

    ### 🌏 Asia

    `Asia/Aden`, `Asia/Almaty`, `Asia/Amman`, `Asia/Anadyr`, `Asia/Aqtau`, `Asia/Aqtobe`, `Asia/Ashgabat`, `Asia/Atyrau`, `Asia/Baghdad`, `Asia/Bahrain`, `Asia/Baku`, `Asia/Bangkok`, `Asia/Barnaul`, `Asia/Beirut`, `Asia/Bishkek`, `Asia/Brunei`, `Asia/Chita`, `Asia/Choibalsan`, `Asia/Colombo`, `Asia/Damascus`, `Asia/Dhaka`, `Asia/Dili`, `Asia/Dubai`, `Asia/Dushanbe`, `Asia/Famagusta`, `Asia/Gaza`, `Asia/Hebron`, `Asia/Ho_Chi_Minh`, `Asia/Hong_Kong`, `Asia/Hovd`, `Asia/Irkutsk`, `Asia/Jakarta`, `Asia/Jayapura`, `Asia/Jerusalem`, `Asia/Kabul`, `Asia/Kamchatka`, `Asia/Karachi`, `Asia/Kathmandu`, `Asia/Khandyga`, `Asia/Kolkata`, `Asia/Krasnoyarsk`, `Asia/Kuala_Lumpur`, `Asia/Kuching`, `Asia/Kuwait`, `Asia/Macau`, `Asia/Magadan`, `Asia/Makassar`, `Asia/Manila`, `Asia/Muscat`, `Asia/Nicosia`, `Asia/Novokuznetsk`, `Asia/Novosibirsk`, `Asia/Omsk`, `Asia/Oral`, `Asia/Phnom_Penh`, `Asia/Pontianak`, `Asia/Pyongyang`, `Asia/Qatar`, `Asia/Qostanay`, `Asia/Qyzylorda`, `Asia/Riyadh`, `Asia/Sakhalin`, `Asia/Samarkand`, `Asia/Seoul`, `Asia/Shanghai`, `Asia/Singapore`, `Asia/Srednekolymsk`, `Asia/Taipei`, `Asia/Tashkent`, `Asia/Tbilisi`, `Asia/Tehran`, `Asia/Thimphu`, `Asia/Tokyo`, `Asia/Tomsk`, `Asia/Ulaanbaatar`, `Asia/Urumqi`, `Asia/Ust-Nera`, `Asia/Vientiane`, `Asia/Vladivostok`, `Asia/Yakutsk`, `Asia/Yangon`, `Asia/Yekaterinburg`, `Asia/Yerevan`

    ### 🌊 Atlantic

    `Atlantic/Azores`, `Atlantic/Canary`, `Atlantic/Cape_Verde`, `Atlantic/Faroe`, `Atlantic/Madeira`, `Atlantic/Reykjavik`, `Atlantic/South_Georgia`, `Atlantic/St_Helena`, `Atlantic/Stanley`

    ### 🦘 Australia

    `Australia/Adelaide`, `Australia/Brisbane`, `Australia/Broken_Hill`, `Australia/Currie`, `Australia/Darwin`, `Australia/Eucla`, `Australia/Hobart`, `Australia/Lindeman`, `Australia/Lord_Howe`, `Australia/Melbourne`, `Australia/Perth`, `Australia/Sydney`

    ### 🌍 Europe

    `Europe/Amsterdam`, `Europe/Andorra`, `Europe/Astrakhan`, `Europe/Athens`, `Europe/Belgrade`, `Europe/Berlin`, `Europe/Bratislava`, `Europe/Brussels`, `Europe/Bucharest`, `Europe/Budapest`, `Europe/Busingen`, `Europe/Chisinau`, `Europe/Copenhagen`, `Europe/Dublin`, `Europe/Gibraltar`, `Europe/Guernsey`, `Europe/Helsinki`, `Europe/Istanbul`, `Europe/Jersey`, `Europe/Kaliningrad`, `Europe/Kiev`, `Europe/Kirov`, `Europe/Lisbon`, `Europe/Ljubljana`, `Europe/London`, `Europe/Luxembourg`, `Europe/Madrid`, `Europe/Mariehamn`, `Europe/Minsk`, `Europe/Monaco`, `Europe/Moscow`, `Europe/Oslo`, `Europe/Paris`, `Europe/Podgorica`, `Europe/Prague`, `Europe/Riga`, `Europe/Rome`, `Europe/Samara`, `Europe/San_Marino`, `Europe/Sarajevo`, `Europe/Saratov`, `Europe/Simferopol`, `Europe/Skopje`, `Europe/Sofia`, `Europe/Stockholm`, `Europe/Tallinn`, `Europe/Tirane`, `Europe/Ulyanovsk`, `Europe/Uzhgorod`, `Europe/Vaduz`, `Europe/Vatican`, `Europe/Vienna`, `Europe/Vilnius`, `Europe/Volgograd`, `Europe/Warsaw`, `Europe/Zagreb`, `Europe/Zaporozhye`, `Europe/Zurich`

    ### 🌴 Indian Ocean

    `Indian/Antananarivo`, `Indian/Chagos`, `Indian/Christmas`, `Indian/Cocos`, `Indian/Comoro`, `Indian/Kerguelen`, `Indian/Mahe`, `Indian/Maldives`, `Indian/Mauritius`, `Indian/Mayotte`, `Indian/Reunion`

    ### 🏝️ Pacific

    `Pacific/Apia`, `Pacific/Auckland`, `Pacific/Bougainville`, `Pacific/Chatham`, `Pacific/Chuuk`, `Pacific/Efate`, `Pacific/Enderbury`, `Pacific/Fakaofo`, `Pacific/Fiji`, `Pacific/Funafuti`, `Pacific/Galapagos`, `Pacific/Gambier`, `Pacific/Guadalcanal`, `Pacific/Guam`, `Pacific/Kiritimati`, `Pacific/Kosrae`, `Pacific/Kwajalein`, `Pacific/Majuro`, `Pacific/Marquesas`, `Pacific/Midway`, `Pacific/Nauru`, `Pacific/Niue`, `Pacific/Norfolk`, `Pacific/Noumea`, `Pacific/Palau`, `Pacific/Pitcairn`, `Pacific/Pohnpei`, `Pacific/Port_Moresby`, `Pacific/Rarotonga`, `Pacific/Saipan`, `Pacific/Tahiti`, `Pacific/Tarawa`, `Pacific/Tongatapu`, `Pacific/Wake`, `Pacific/Wallis`
  </Accordion>

  <Accordion title="Country Code Mappings" icon="map">
    The JSON object below shows which countries share IP allocations. This is useful for understanding which neighboring countries can be used as alternatives if your primary timezone is not available.

    <Note>
      **Usage:** If your primary timezone is not available, you can use any of the countries listed in the array for that country code as an alternative.
    </Note>

    ```json theme={null}
    {
        "af": ["pk", "ir", "tm", "cn", "uz", "tj"],
        "al": ["me", "mk", "gr", "xk", "it", "rs"],
        "dz": ["ma", "tn", "ly", "ne", "ml", "mr"],
        "as": ["us", "ki", "fm", "pg", "to", "ws"],
        "ad": ["fr", "es"],
        "ao": ["zm", "na", "cg", "cd", "tz"],
        "ar": ["cl", "py", "bo", "br", "uy"],
        "au": ["fj", "pg", "ws", "ki", "nz"],
        "at": ["de", "cz", "hu", "si", "it", "ch"],
        "az": ["am", "ge", "ru", "tr", "ir"],
        "bs": ["us", "cu", "ht", "do", "jm"],
        "bh": ["sa", "qa", "ae"],
        "bd": ["in", "mm", "np"],
        "bb": ["vc", "tt", "lc", "gd"],
        "by": ["ru", "ua", "pl", "lt", "lv"],
        "be": ["fr", "de", "nl", "lu", "gb"],
        "bz": ["gt", "mx", "hn", "sv"],
        "bj": ["ne", "ng", "tg", "gh", "bf", "ml"],
        "bt": ["in", "cn"],
        "bo": ["ar", "cl", "py", "pe", "br"],
        "ba": ["hr", "me", "rs", "si", "mk"],
        "bw": ["za", "zm", "na"],
        "br": ["ar", "bo", "co", "gy", "pe", "sr", "uy", "ve"],
        "bn": ["my", "id"],
        "bg": ["ro", "rs", "mk", "gr", "tr", "ua"],
        "bf": ["ne", "ml", "ci", "gh", "tg", "bj"],
        "bi": ["rw", "tz", "ug", "cd"],
        "kh": ["vn", "la", "th"],
        "cm": ["ng", "gq", "ga", "cf", "td", "cg"],
        "ca": ["us"],
        "cv": ["sn", "gm", "mr"],
        "ky": ["jm", "cu"],
        "cf": ["cm", "td", "sd", "cg", "cd", "ss"],
        "ch": ["fr", "de", "it", "at", "li"],
        "cl": ["ar", "bo", "pe"],
        "cn": ["mn", "np", "in", "pk", "af", "tj", "kg", "kz", "ru", "la", "vn", "kp"],
        "co": ["pa", "ve", "ec", "pe", "br"],
        "km": ["mg", "tz", "mz"],
        "cd": ["cg", "cf", "ss", "ug", "rw", "bi", "tz", "zm", "ao"],
        "cg": ["cd", "cf", "cm", "ga"],
        "cr": ["ni", "pa"],
        "ci": ["gh", "bf", "ml", "lr", "gn"],
        "hr": ["si", "hu", "rs", "ba", "me"],
        "cu": ["jm", "ht", "do"],
        "cy": ["tr", "gr", "sy", "lb", "il"],
        "cz": ["de", "pl", "sk", "at"],
        "dk": ["de", "se", "no"],
        "dj": ["er", "et", "so"],
        "dm": ["gd", "mq", "lc"],
        "do": ["ht", "cu", "jm"],
        "ec": ["co", "pe"],
        "eg": ["ly", "sd", "il", "ps"],
        "sv": ["gt", "hn"],
        "gq": ["cm", "cg", "ga"],
        "er": ["sd", "et", "dj"],
        "ee": ["fi", "ru", "lv"],
        "et": ["er", "sd", "dj", "so", "ke", "ss"],
        "fo": ["is", "no", "dk"],
        "fj": ["au", "ws", "to", "ki", "sb"],
        "fi": ["se", "no", "ru"],
        "fr": ["be", "ch", "es", "lu", "de", "ad", "it", "mc"],
        "ga": ["cm", "cg", "gq"],
        "gb": ["ie", "fr", "be", "nl"],
        "gh": ["ci", "tg", "bf", "ng"],
        "gn": ["sn", "ci", "ml", "lr", "sl", "gw"],
        "gm": ["sn"],
        "gw": ["gn", "sn"],
        "gt": ["mx", "bz", "hn", "sv"],
        "gy": ["br", "ve", "sr"],
        "hk": ["cn"],
        "hn": ["sv", "gt", "ni"],
        "ht": ["do", "cu"],
        "hu": ["at", "ro", "rs", "sk", "cz", "ua"],
        "id": ["my", "tl", "pg"],
        "in": ["np", "bd", "mm", "cn", "pk", "bt"],
        "ir": ["tr", "az", "tm", "af", "pk", "iq"],
        "iq": ["ir", "sy", "jo", "sa", "tr", "kw"],
        "ie": ["gb"],
        "il": ["ps", "jo", "sy", "lb", "eg"],
        "it": ["ch", "fr", "at", "si", "sm", "va"],
        "jm": ["cu", "ht", "do"],
        "jo": ["sy", "iq", "sa", "il"],
        "jp": ["kr", "ru", "cn"],
        "kz": ["ru", "cn", "kg", "uz", "tj", "tm"],
        "ke": ["et", "so", "ug", "tz", "ss"],
        "kg": ["kz", "cn", "tj", "uz"],
        "kr": ["kp"],
        "kw": ["sa", "iq"],
        "la": ["th", "mm", "vn", "cn"],
        "lb": ["sy", "il"],
        "ls": ["za"],
        "lt": ["lv", "pl", "by", "ru"],
        "lu": ["fr", "be", "de"],
        "lv": ["ee", "lt", "by", "ru"],
        "ly": ["eg", "tn", "dz", "td", "ne", "sd"],
        "ma": ["dz", "es"],
        "mc": ["fr"],
        "md": ["ua", "ro"],
        "mk": ["al", "gr", "bg", "rs", "xk"],
        "mg": ["km", "yt", "mu"],
        "mv": ["in", "lk"],
        "ml": ["dz", "ci", "bf", "ne", "sn", "gn"],
        "mm": ["bd", "th", "la", "cn", "in"],
        "mt": ["it", "tn", "ly"],
        "mh": ["fm", "pw", "ki"],
        "mq": ["gd", "lc", "dm"],
        "mr": ["dz", "sn", "ml"],
        "mu": ["mg", "sc", "re"],
        "mw": ["tz", "zm", "mz"],
        "mx": ["us", "gt", "bz"],
        "my": ["th", "sg", "id", "bn"],
        "mz": ["tz", "mw", "zw", "za", "sz"],
        "na": ["za", "bw", "zm", "ao"],
        "ne": ["dz", "ml", "bf", "bj", "ng", "td", "ly"],
        "ng": ["bj", "ne", "cm", "td"],
        "ni": ["hn", "cr"],
        "nl": ["be", "de"],
        "no": ["se", "fi", "ru"],
        "np": ["in", "cn"],
        "nz": ["au", "fj", "to"],
        "om": ["ae", "sa", "ye"],
        "pk": ["in", "af", "ir", "cn"],
        "pa": ["cr", "co"],
        "pe": ["cl", "bo", "ec", "br", "co"],
        "ph": ["my", "id", "vn"],
        "pl": ["de", "cz", "sk", "lt", "by", "ua"],
        "pt": ["es"],
        "qa": ["sa", "bh", "ae"],
        "ro": ["ua", "hu", "bg", "rs", "md"],
        "ru": ["no", "fi", "ee", "lv", "lt", "pl", "by", "ua", "ge", "az", "kz", "mn", "cn", "kp"],
        "rw": ["tz", "ug", "cd", "bi"],
        "sa": ["jo", "iq", "kw", "ae", "om", "ye"],
        "sb": ["pg", "fj", "vu"],
        "sc": ["mu", "km", "re"],
        "sd": ["eg", "ly", "td", "er", "et", "ss", "cf"],
        "se": ["no", "fi", "dk"],
        "sg": ["my"],
        "si": ["at", "hu", "hr", "it"],
        "sk": ["cz", "pl", "hu", "at", "ua"],
        "sl": ["gn", "lr", "ci"],
        "sn": ["gm", "gn", "gw", "ml", "mr"],
        "so": ["et", "ke", "dj"],
        "sr": ["gy", "br"],
        "ss": ["sd", "et", "ug", "cd", "cf", "ke"],
        "st": ["ga", "cm", "gq"],
        "sy": ["lb", "jo", "iq", "tr", "il"],
        "sz": ["za", "mz"],
        "td": ["ly", "sd", "cf", "cm", "ng", "ne"],
        "tg": ["gh", "ci", "bf", "bj"],
        "th": ["la", "mm", "kh", "my"],
        "tj": ["kg", "uz", "af", "cn"],
        "tl": ["id", "au"],
        "tm": ["af", "ir", "uz", "kz"],
        "tn": ["dz", "ly"],
        "tr": ["gr", "bg", "ge", "am", "az", "sy", "iq", "ir"],
        "tt": ["ve", "gd"],
        "tv": ["fj", "ws", "ki"],
        "tz": ["ug", "ke", "rw", "bi", "zm", "mw", "mz"],
        "ua": ["ru", "pl", "by", "hu", "ro", "md"],
        "ug": ["ke", "tz", "ss", "cd", "rw"],
        "us": ["ca", "mx"],
        "uy": ["ar", "br"],
        "uz": ["kz", "kg", "tj", "af", "tm"],
        "va": ["it"],
        "ve": ["br", "co", "gy"],
        "vn": ["la", "cn", "kh"],
        "vu": ["nc", "sb", "fj"],
        "ws": ["fj", "to", "tv"],
        "ye": ["sa", "om"],
        "za": ["na", "bw", "zw", "mz", "ls", "sz"],
        "zm": ["ao", "cd", "tz", "mw", "bw", "na", "zw"],
        "zw": ["za", "mz", "zm", "bw"]
    }
    ```
  </Accordion>
</AccordionGroup>

### **Managing Chrome Sessions**

* Use Edges's Chrome Extension to automatically sync cookies, useful for testing purposes.
* If you're using multiple LinkedIn accounts on the same browser, you must create separate Chrome profiles:
  * Click your Chrome profile icon > **Add** a new profile.
  * Name it according to the LinkedIn account (e.g., "Account B").
  * Log in to Edges and LinkedIn within this new session.

<Warning>
  Updating cookies for Account A while logged into Account B can lead to
  mismatches and errors.
</Warning>

### **Refreshing Cookies**

Cookies need refreshing if:

* You log out of LinkedIn
* LinkedIn expires or changes cookies
* LinkedIn restricts the account due to excessive activity

Regular activity and following [**Smart Limits**](/v1/linkedin/limits) guidelines help prevent restrictions.

#### How to refresh cookies via API

To refresh accounts via API, use the [Connect an Identity's Integration](/v1/api/integrations/connect) endpoint by
passing the updated `li_at` and/or `li_a` cookie values:

<Tip>
  If you build your own Chrome Extension, you should refresh cookies every 2
  hours or so.
</Tip>

Here's a code example for a Chrome Extension that runs in the background using `alarms`:

```jsx theme={null}
/**
 * Alarm to update cookies every X minutes.
 */
chrome.alarms.onAlarm.addListener(() => {
  // Ensure updateTokensHandle() is defined elsewhere in your code
  return updateTokensHandle();
});

// Set up the alarm when the extension is installed
chrome.runtime.onInstalled.addListener(async ({ reason }) => {
  const periodDurationMinutes = 120; // Every 2 hours

  // Create an alarm that will trigger every `periodDurationMinutes`
  await chrome.alarms.create("updateToken", {
    periodInMinutes: periodDurationMinutes,
  });

  console.log(
    "Alarm created to update token every " + periodDurationMinutes + " minutes"
  );
});
```

<Note>
  Complete source code is available on
  [GitHub](https://github.com/edgesrun/chrome-extension-skeleton).
</Note>

## **Smart Limits to Prevent Restrictions**

<Tip>
  Edges developed a unique **Smart Limits** feature to protect your
  users' LinkedIn accounts. Learn more in this article [LinkedIn Rate
  Limits](/v1/linkedin/limits).
</Tip>

## **LinkedIn Licenses Compatibility**

Edges supports various LinkedIn licenses, each with unique features and limitations. Below is a breakdown of how each license integrates with Edges:

| **License**                   | **Edges Level** | **Edges Compatibility** | **InMails/Month** | **Invitations with Note** | **CRM Integration** |
| ----------------------------- | --------------- | ----------------------- | ----------------- | ------------------------- | ------------------- |
| **LinkedIn Basic**            | Classic         | ✅ Yes                   | 0                 | 5/month                   | No                  |
| **LinkedIn Premium Career**   | Classic         | ❌ No                    | 5                 | N/A                       | No                  |
| **LinkedIn Premium Business** | Premium         | ✅ Yes                   | 15                | 400                       | No                  |
| **Sales Navigator Core**      | Sales Navigator | ✅ Yes                   | 50                | 400                       | No                  |

Today Edges handles LinkedIn Basic, LinkedIn Premium Business, and Sales Navigator Core which are defined as `level` in the LinkedIn integration.

By following this guide, you can safely automate LinkedIn activities with Edges, ensuring stable sessions and avoiding platform restrictions.

For further assistance, feel free to reach out to our support team at [support@edges.run](mailto:support@edges.run)  🙌

## **Troubleshooting LinkedIn Login Errors**

When connecting a LinkedIn account natively (using username and password), you may encounter various errors. Below is a comprehensive guide to the most common error cases, their meanings, and how to resolve them.

### **Common Error Cases**

<Info>When using our native LinkedIn connection module (username and password), you may encounter various errors. Below is a comprehensive guide to the most common error cases, their meanings, and how to resolve them.</Info>

| **Scenario**                       | **Message**                                                                                                                                                | **Status** | **Error**                                                                                                                                                     |
| :--------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Invalid credentials                | Username or password invalid.                                                                                                                              |     400    | `INVALID_CREDENTIALS`  <br /><sub>Double-check your LinkedIn username and password.<br />[See authentication endpoint](/v1/api/linkedin/authentication)</sub> |
| Password reset needed              | The account is locked, you need to request a password reset.                                                                                               |     424    | `REQUEST_PASSWORD_RESET`  <br /><sub>Request a password reset on LinkedIn.</sub>                                                                              |
| Google login not supported         | Username or password invalid.                                                                                                                              |     400    | `INVALID_CREDENTIALS`  <br /><sub>Google login is not supported.<br />Use "Forgot password" on LinkedIn to set a password and use that for login.</sub>       |
| Checkpoint code invalid            | Code invalid.                                                                                                                                              |     400    | `INVALID_CODE`  <br /><sub>The checkpoint (2FA/SMS/email) code is incorrect. Try again.<br />[See checkpoint endpoint](/v1/api/linkedin/checkpoint)</sub>     |
| In-app challenge pending           | Waiting for user to validate in\_app\_challenge                                                                                                            |     500    | `IN_APP_CHALLENGE_PENDING`  <br /><sub>Complete the challenge in your LinkedIn app.</sub>                                                                     |
| In-app challenge expired           | In\_app\_challenge expired. Please retry the whole process by sending credentials again on /authenticate                                                   |     500    | `IN_APP_CHALLENGE_EXPIRED`  <br /><sub>Start the login process again.</sub>                                                                                   |
| 2FA expired                        | 2FA expired. Please retry the whole process by sending credentials again on /authenticate                                                                  |     500    | `2FA_VALIDATION_EXPIRED`  <br /><sub>Start the login process again.</sub>                                                                                     |
| Failed IP attribution              | Could not login the account.                                                                                                                               |     500    | `LOGIN_ACCOUNT_500_ERROR`  <br /><sub>Retry logging in. This is a LinkedIn-side issue.</sub>                                                                  |
| IP allocation error                | IP allocation error. Please retry again in 5 minutes or contact support.                                                                                   |     400    | `IP_ATTRIBUTION_ERROR_400`  <br /><sub>Wait 5 minutes and try again, or contact support.</sub>                                                                |
| IP allocation conflict             | IP allocation error. Please retry again in 5 minutes or contact support.                                                                                   |     409    | `IP_ATTRIBUTION_CONFLICT_409`  <br /><sub>Wait 5 minutes and try again, or contact support.</sub>                                                             |
| IP rate limit exceeded             | Rate limit exceeded IP attribution, please try again in five (5) minutes or contact the support.                                                           |     429    | `IP_ATTRIBUTION_RATE_LIMIT_429`  <br /><sub>Wait 5 minutes and try again, or contact support.</sub>                                                           |
| No IP available in timezone        | No IP available in this timezone. Update your timezone to a neighbouring one or contact support.                                                           |     400    | `IP_TIMEZONE_NOT_SUPPORTED_400`  <br /><sub>Change your timezone in Edges or contact support.</sub>                                                           |
| Captcha challenge                  | Error while resolving the challenge, the Captcha challenge seem to be pending. Re-send username and password to overcome this.                             |     500    | `CAPTCHA_CHALLENGE_ERROR`  <br /><sub>Retry the authentication with your credentials.</sub>                                                                   |
| Unsupported challenge              | Unsupported challenge identified, please contact the support and provide it with the identity\_uid so we can address it.                                   |     500    | `UNSUPPORTED_CHALLENGE`  <br /><sub>Contact support with your identity\_uid.</sub>                                                                            |
| Simple challenge failed            | Error while solving challenge, retry in 5 minutes, if it persists contact support.                                                                         |     500    | `LOGIN_SIMPLE_CHALLENGE`  <br /><sub>Wait and retry, or contact support.</sub>                                                                                |
| Checkpoint missing data            | Error while solving the challenge, retry the whole process by sending credentials to /authenticate again                                                   |     500    | `CHECKPOINT_MISSING_DATA`  <br /><sub>Start the login process again.</sub>                                                                                    |
| User management not permitted      | User management via the API is not permitted for the current workspace, activate the option on [settings](https://app.edges.run/settings/users/parameters) |     403    | `CREATE-ONE-ACCOUNT_403_FORBIDDEN`  <br /><sub>Enable user management in your workspace settings.</sub>                                                       |
| Identity already exists            | An identity with the same Linkedin ID already exists.                                                                                                      |     409    | `CREATE_OR_UPDATE_ACCOUNT_409_CONFLICT`  <br /><sub>Use a different LinkedIn account or identity.</sub>                                                       |
| Account already exists on identity | An account already exist on this identity                                                                                                                  |     409    | `CREATE_OR_UPDATE_ACCOUNT_409_CONFLICT`  <br /><sub>This will be merged in the future.</sub>                                                                  |
| Account link change                | Please note that your LinkedIn integration is different from the one that has already been synchronized on this identity.                                  |     409    | `CREATE_OR_UPDATE_ACCOUNT_409_CONFLICT`  <br /><sub>Use the same LinkedIn account as previously connected.</sub>                                              |
| Other errors                       | Error while synchronizing your account, please retry again or contact the support.                                                                         |     500    | -  <br /><sub>Retry or contact support.</sub>                                                                                                                 |

### **Notes & Recommendations**

* **Google Login:** If your LinkedIn account uses Google login, you must set a password on LinkedIn (via "Forgot password") to use native login.
* **IP/Location Issues:** Many errors are related to IP allocation or location mismatches. Make sure your timezone and country settings in Edges match your actual login location.
* **Challenge/2FA:** If you receive a challenge (SMS, email, in-app), complete it promptly. If it expires, restart the login process.
* **Contact Support:** For persistent or unclear errors, contact support and provide your `identity_uid` for faster resolution.

For more details, see the [LinkedIn authentication](/v1/api/linkedin/authentication) and [checkpoint](/v1/api/linkedin/checkpoint) API documentation.
