> ## 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.

# Sales Navigator Search URLs

> How to generate and validate a LinkedIn Sales Navigator people search URL for the Edges API.

Incorrect encoding is a common cause of failed Sales Navigator people searches. A URL that opens in your browser can still fail when sent to the API. This page covers how to build a valid URL, what LinkedIn encodes, and how to spot common mistakes.

## Start from a real Sales Navigator search

Always generate the search inside LinkedIn Sales Navigator — do not build the URL by hand.

**1. Open Sales Navigator people search**

Go to [Sales Navigator people search](https://www.linkedin.com/sales/search/people).

**2. Apply your filters**

Set company, seniority, function, and any other filters you need.

**3. Copy the URL**

Copy the full URL from the browser address bar. That string is the structure and encoding LinkedIn expects.

Pass that URL as `sales_navigator_profile_search_url` (or the equivalent input field) on [Search Sales Navigator People](https://docs.edges.run/v1/api/actions/salesnavigator-search-people.md).

## Selective double encoding

LinkedIn nests a complex query under the `query=` parameter and applies **selective double encoding** — only text values and URN identifiers are double-encoded. Structural tokens stay single-encoded.

| Part of URL | Encoding | Example | Role |
| - | - | - | - |
| Structural elements (`type`, `filters`, `values`) | Single | `%3A`, `%2C`, `%28`, `%29` | Query structure |
| Text fields (job titles, keywords) | Double | `%2520` for a space | Nested text |
| URN identifiers (`urn:li:organization:…`) | Double | `%253Ali%253Aorganization` | Nested IDs |

## Example of a valid URL

This fictional example shows the expected encoding pattern (no real company, and no `sessionId`):

```txt theme={null}
https://www.linkedin.com/sales/search/people?query=(filters%3AList((type%3AFUNCTION%2Cvalues%3AList((id%3A4%2Ctext%3ABusiness%2520Development%2CselectionType%3AINCLUDED)))%2C(type%3ASENIORITY_LEVEL%2Cvalues%3AList((id%3A220%2Ctext%3ADirector%2CselectionType%3AINCLUDED)))%2C(type%3APAST_COMPANY%2Cvalues%3AList((id%3Aurn%253Ali%253Aorganization%253A12345678%2Ctext%3AAcme%2520Corp%2CselectionType%3AINCLUDED)))))&viewAllFilters=true
```

A valid URL can still return zero results when nothing matches the filters — that means the structure is correct.

## Common encoding failures

| Problem | Example | Fix |
| - | - | - |
| Over-encoded parentheses | `query=%28...%29` | Keep `(` and `)` unencoded after `query=` |
| Missing double encoding in text | `Business%20Development` | Use `Business%2520Development` |
| Missing double encoding in URN | `urn%3Ali%3Aorganization` | Use `urn%253Ali%253Aorganization` |
| Stale session parameter | `&sessionId=...` | Remove `sessionId` or regenerate the URL from Sales Navigator |

> [!TIP]
>
> If the URL opens in a browser but fails via the API, the browser likely normalized encoding for you. Diff your generated string against a URL copied fresh from Sales Navigator.

## How to validate

1. Build the search in Sales Navigator and copy the URL.
2. Compare it to the URL your code produces — look for encoding differences on text and URN segments.
3. Confirm text and URNs are double-encoded and the query structure is not.
4. Re-run the request with the corrected URL.

> [!NOTE]
>
> A malformed Sales Navigator search URL typically fails the run with a LinkedIn dependency error (HTTP `424`). Fix the encoding before retrying.

## Key takeaways

* Generate the URL in Sales Navigator first.
* Double-encode only text and URN values.
* Avoid encoding the entire `query=` value.
* Diff against a browser-copied URL when something fails.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.