> This page is for version 2025-09-18 (default).
> For other versions, use one of these documentation indexes:
> - 2025-09-18 (default): https://apidocs.polytomic.com/2025-09-18/llms.txt
> - 2024-02-08: https://apidocs.polytomic.com/2024-02-08/llms.txt
> - 2023-04-25: https://apidocs.polytomic.com/2023-04-25/llms.txt
> - 2022-12-12: https://apidocs.polytomic.com/2022-12-12/llms.txt
> - 2021-05-23: https://apidocs.polytomic.com/2021-05-23/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://apidocs.polytomic.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://apidocs.polytomic.com/_mcp/server.

The [connection proxy](/api-reference/connections/proxy/execute-proxy) lets you call LinkedIn's API directly through a Polytomic LinkedIn Ads Connection. Polytomic authenticates the request and injects the required LinkedIn headers automatically — you only need to supply the method, path, and body.

Set your Polytomic API key as an environment variable:

```bash
export POLYTOMIC_API_KEY=YOUR-API-TOKEN
```

> **Proxy info**
>
> Call [`GET /api/connections/{id}/proxy/info`](/api-reference/connections/get-proxy-info) to inspect the inherited base URL, locked headers, allowed methods, and rate limits before building requests dynamically.

## 1. Get a DMP segment

Retrieve a single DMP segment by ID.

#### cURL

```bash
curl --request POST \
     --url "https://app.polytomic.com/api/connections/${LINKEDIN_CONNECTION_ID}/proxy" \
     --header "accept: application/json" \
     --header "content-type: application/json" \
     --header "X-Polytomic-Version: 2025-09-18" \
     --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \
     -d '{
       "request": {
         "method": "GET",
         "path": "/dmpSegments/11204"
       }
     }'
```

#### Python

```python
import os
import requests

LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

resp = requests.post(
    f"https://app.polytomic.com/api/connections/{LINKEDIN_ADS_CONNECTION_ID}/proxy",
    headers={
        "Authorization": f"Bearer {os.environ['POLYTOMIC_API_KEY']}",
        "X-Polytomic-Version": "2025-09-18",
        "Content-Type": "application/json",
    },
    json={
        "request": {
            "method": "GET",
            "path": "/dmpSegments/11204",
        }
    },
)
print(resp.json())
```

#### Typescript

```typescript
const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID";

const resp = await fetch(
  `https://app.polytomic.com/api/connections/${LINKEDIN_ADS_CONNECTION_ID}/proxy`,
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.POLYTOMIC_API_KEY}`,
      "X-Polytomic-Version": "2025-09-18",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      request: {
        method: "GET",
        path: "/dmpSegments/11204",
      },
    }),
  }
);
console.log(await resp.json());
```

#### Go

```golang
import (
    "bytes"
    "context"
    "encoding/json"
    "fmt"
    "net/http"
    "os"
)

const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

body, _ := json.Marshal(map[string]any{
    "request": map[string]any{
        "method": "GET",
        "path":   "/dmpSegments/11204",
    },
})

req, _ := http.NewRequestWithContext(
    context.TODO(), "POST",
    fmt.Sprintf("https://app.polytomic.com/api/connections/%s/proxy", LINKEDIN_ADS_CONNECTION_ID),
    bytes.NewReader(body),
)
req.Header.Set("Authorization", "Bearer "+os.Getenv("POLYTOMIC_API_KEY"))
req.Header.Set("X-Polytomic-Version", "2025-09-18")
req.Header.Set("Content-Type", "application/json")

resp, err := http.DefaultClient.Do(req)
if err != nil {
    panic(err)
}
defer resp.Body.Close()
```

## 2. Get multiple DMP segments

Retrieve several segments in one call using LinkedIn's `ids=List(...)` query syntax. Use `rawQuery` instead of `query` for non-standard query strings like this one.

#### cURL

```bash
curl --request POST \
     --url "https://app.polytomic.com/api/connections/${LINKEDIN_CONNECTION_ID}/proxy" \
     --header "accept: application/json" \
     --header "content-type: application/json" \
     --header "X-Polytomic-Version: 2025-09-18" \
     --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \
     -d '{
       "request": {
         "method": "GET",
         "path": "/dmpSegments",
         "rawQuery": "ids=List(10804,10814)"
       }
     }'
```

#### Python

```python
import os
import requests

LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

resp = requests.post(
    f"https://app.polytomic.com/api/connections/{LINKEDIN_ADS_CONNECTION_ID}/proxy",
    headers={
        "Authorization": f"Bearer {os.environ['POLYTOMIC_API_KEY']}",
        "X-Polytomic-Version": "2025-09-18",
        "Content-Type": "application/json",
    },
    json={
        "request": {
            "method": "GET",
            "path": "/dmpSegments",
            "rawQuery": "ids=List(10804,10814)",
        }
    },
)
print(resp.json())
```

#### Typescript

```typescript
const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID";

const resp = await fetch(
  `https://app.polytomic.com/api/connections/${LINKEDIN_ADS_CONNECTION_ID}/proxy`,
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.POLYTOMIC_API_KEY}`,
      "X-Polytomic-Version": "2025-09-18",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      request: {
        method: "GET",
        path: "/dmpSegments",
        rawQuery: "ids=List(10804,10814)",
      },
    }),
  }
);
console.log(await resp.json());
```

#### Go

```golang
import (
    "bytes"
    "context"
    "encoding/json"
    "fmt"
    "net/http"
    "os"
)

const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

body, _ := json.Marshal(map[string]any{
    "request": map[string]any{
        "method":   "GET",
        "path":     "/dmpSegments",
        "rawQuery": "ids=List(10804,10814)",
    },
})

req, _ := http.NewRequestWithContext(
    context.TODO(), "POST",
    fmt.Sprintf("https://app.polytomic.com/api/connections/%s/proxy", LINKEDIN_ADS_CONNECTION_ID),
    bytes.NewReader(body),
)
req.Header.Set("Authorization", "Bearer "+os.Getenv("POLYTOMIC_API_KEY"))
req.Header.Set("X-Polytomic-Version", "2025-09-18")
req.Header.Set("Content-Type", "application/json")

resp, err := http.DefaultClient.Do(req)
if err != nil {
    panic(err)
}
defer resp.Body.Close()
```

## 3. Add or remove a company audience member

Add or remove a single company from a DMP segment.

#### cURL

```bash
curl --request POST \
     --url "https://app.polytomic.com/api/connections/${LINKEDIN_CONNECTION_ID}/proxy" \
     --header "accept: application/json" \
     --header "content-type: application/json" \
     --header "X-Polytomic-Version: 2025-09-18" \
     --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \
     -d '{
       "request": {
         "method": "POST",
         "path": "/dmpSegments/10804/companies",
         "body": {
           "action": "ADD",
           "companyName": "LinkedIn",
           "companyWebsiteDomain": "linkedin.com",
           "companyPageUrl": "www.linkedin.com/company/linkedin",
           "stockSymbol": "MSFT",
           "industries": ["information technology", "software"],
           "city": "Seattle",
           "state": "WA",
           "country": "US"
         }
       }
     }'
```

#### Python

```python
import os
import requests

LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

resp = requests.post(
    f"https://app.polytomic.com/api/connections/{LINKEDIN_ADS_CONNECTION_ID}/proxy",
    headers={
        "Authorization": f"Bearer {os.environ['POLYTOMIC_API_KEY']}",
        "X-Polytomic-Version": "2025-09-18",
        "Content-Type": "application/json",
    },
    json={
        "request": {
            "method": "POST",
            "path": "/dmpSegments/10804/companies",
            "body": {
                "action": "ADD",
                "companyName": "LinkedIn",
                "companyWebsiteDomain": "linkedin.com",
                "companyPageUrl": "www.linkedin.com/company/linkedin",
                "stockSymbol": "MSFT",
                "industries": ["information technology", "software"],
                "city": "Seattle",
                "state": "WA",
                "country": "US",
            },
        }
    },
)
print(resp.json())
```

#### Typescript

```typescript
const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID";

const resp = await fetch(
  `https://app.polytomic.com/api/connections/${LINKEDIN_ADS_CONNECTION_ID}/proxy`,
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.POLYTOMIC_API_KEY}`,
      "X-Polytomic-Version": "2025-09-18",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      request: {
        method: "POST",
        path: "/dmpSegments/10804/companies",
        body: {
          action: "ADD",
          companyName: "LinkedIn",
          companyWebsiteDomain: "linkedin.com",
          companyPageUrl: "www.linkedin.com/company/linkedin",
          stockSymbol: "MSFT",
          industries: ["information technology", "software"],
          city: "Seattle",
          state: "WA",
          country: "US",
        },
      },
    }),
  }
);
console.log(await resp.json());
```

#### Go

```golang
import (
    "bytes"
    "context"
    "encoding/json"
    "fmt"
    "net/http"
    "os"
)

const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

body, _ := json.Marshal(map[string]any{
    "request": map[string]any{
        "method": "POST",
        "path":   "/dmpSegments/10804/companies",
        "body": map[string]any{
            "action":               "ADD",
            "companyName":          "LinkedIn",
            "companyWebsiteDomain": "linkedin.com",
            "companyPageUrl":       "www.linkedin.com/company/linkedin",
            "stockSymbol":          "MSFT",
            "industries":           []string{"information technology", "software"},
            "city":                 "Seattle",
            "state":                "WA",
            "country":              "US",
        },
    },
})

req, _ := http.NewRequestWithContext(
    context.TODO(), "POST",
    fmt.Sprintf("https://app.polytomic.com/api/connections/%s/proxy", LINKEDIN_ADS_CONNECTION_ID),
    bytes.NewReader(body),
)
req.Header.Set("Authorization", "Bearer "+os.Getenv("POLYTOMIC_API_KEY"))
req.Header.Set("X-Polytomic-Version", "2025-09-18")
req.Header.Set("Content-Type", "application/json")

resp, err := http.DefaultClient.Do(req)
if err != nil {
    panic(err)
}
defer resp.Body.Close()
```

## 4. Batch add or remove companies

Add or remove multiple companies in a single request. Pass `X-RestLi-Method: BATCH_CREATE` as a per-request header via `request.headers`.

#### cURL

```bash
curl --request POST \
     --url "https://app.polytomic.com/api/connections/${LINKEDIN_CONNECTION_ID}/proxy" \
     --header "accept: application/json" \
     --header "content-type: application/json" \
     --header "X-Polytomic-Version: 2025-09-18" \
     --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \
     -d '{
       "request": {
         "method": "POST",
         "path": "/dmpSegments/10804/companies",
         "headers": {
           "X-RestLi-Method": "BATCH_CREATE"
         },
         "body": {
           "elements": [
             {"action": "ADD", "companyName": "LinkedIn"},
             {"action": "ADD", "companyName": "Microsoft"}
           ]
         }
       }
     }'
```

#### Python

```python
import os
import requests

LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

resp = requests.post(
    f"https://app.polytomic.com/api/connections/{LINKEDIN_ADS_CONNECTION_ID}/proxy",
    headers={
        "Authorization": f"Bearer {os.environ['POLYTOMIC_API_KEY']}",
        "X-Polytomic-Version": "2025-09-18",
        "Content-Type": "application/json",
    },
    json={
        "request": {
            "method": "POST",
            "path": "/dmpSegments/10804/companies",
            "headers": {
                "X-RestLi-Method": "BATCH_CREATE",
            },
            "body": {
                "elements": [
                    {"action": "ADD", "companyName": "LinkedIn"},
                    {"action": "ADD", "companyName": "Microsoft"},
                ],
            },
        }
    },
)
print(resp.json())
```

#### Typescript

```typescript
const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID";

const resp = await fetch(
  `https://app.polytomic.com/api/connections/${LINKEDIN_ADS_CONNECTION_ID}/proxy`,
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.POLYTOMIC_API_KEY}`,
      "X-Polytomic-Version": "2025-09-18",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      request: {
        method: "POST",
        path: "/dmpSegments/10804/companies",
        headers: {
          "X-RestLi-Method": "BATCH_CREATE",
        },
        body: {
          elements: [
            { action: "ADD", companyName: "LinkedIn" },
            { action: "ADD", companyName: "Microsoft" },
          ],
        },
      },
    }),
  }
);
console.log(await resp.json());
```

#### Go

```golang
import (
    "bytes"
    "context"
    "encoding/json"
    "fmt"
    "net/http"
    "os"
)

const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

body, _ := json.Marshal(map[string]any{
    "request": map[string]any{
        "method": "POST",
        "path":   "/dmpSegments/10804/companies",
        "headers": map[string]string{
            "X-RestLi-Method": "BATCH_CREATE",
        },
        "body": map[string]any{
            "elements": []map[string]string{
                {"action": "ADD", "companyName": "LinkedIn"},
                {"action": "ADD", "companyName": "Microsoft"},
            },
        },
    },
})

req, _ := http.NewRequestWithContext(
    context.TODO(), "POST",
    fmt.Sprintf("https://app.polytomic.com/api/connections/%s/proxy", LINKEDIN_ADS_CONNECTION_ID),
    bytes.NewReader(body),
)
req.Header.Set("Authorization", "Bearer "+os.Getenv("POLYTOMIC_API_KEY"))
req.Header.Set("X-Polytomic-Version", "2025-09-18")
req.Header.Set("Content-Type", "application/json")

resp, err := http.DefaultClient.Do(req)
if err != nil {
    panic(err)
}
defer resp.Body.Close()
```

## 5. Batch add or remove users

Add multiple users to a segment in one request. Each element can carry one or more identity types (`SHA256_EMAIL`, `GOOGLE_AID`, etc.) and optional profile attributes.

#### cURL

```bash
curl --request POST \
     --url "https://app.polytomic.com/api/connections/${LINKEDIN_CONNECTION_ID}/proxy" \
     --header "accept: application/json" \
     --header "content-type: application/json" \
     --header "X-Polytomic-Version: 2025-09-18" \
     --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \
     -d '{
       "request": {
         "method": "POST",
         "path": "/dmpSegments/10804/users",
         "body": {
           "elements": [
             {
               "action": "ADD",
               "userIds": [
                 {"idType": "SHA256_EMAIL", "idValue": "692682111bc191d915ac7009d118a78bc496cf7a2ba8c2d0134ade012ac1234"},
                 {"idType": "GOOGLE_AID",   "idValue": "cffg876e-gm9v-98de-0013d927s873"}
               ]
             },
             {
               "action": "ADD",
               "userIds": [
                 {"idType": "SHA256_EMAIL", "idValue": "09d118a78b69261bc191d915ac70c496cf7a9e0502ba8c2d016f2f134ade"},
                 {"idType": "GOOGLE_AID",   "idValue": "cdda802e-12cd-fb9c-47ad-0794d394c912"}
               ],
               "firstname": "mike",
               "lastname": "smith"
             }
           ]
         }
       }
     }'
```

#### Python

```python
import os
import requests

LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

resp = requests.post(
    f"https://app.polytomic.com/api/connections/{LINKEDIN_ADS_CONNECTION_ID}/proxy",
    headers={
        "Authorization": f"Bearer {os.environ['POLYTOMIC_API_KEY']}",
        "X-Polytomic-Version": "2025-09-18",
        "Content-Type": "application/json",
    },
    json={
        "request": {
            "method": "POST",
            "path": "/dmpSegments/10804/users",
            "body": {
                "elements": [
                    {
                        "action": "ADD",
                        "userIds": [
                            {"idType": "SHA256_EMAIL", "idValue": "692682111bc191d915ac7009d118a78bc496cf7a2ba8c2d0134ade012ac1234"},
                            {"idType": "GOOGLE_AID",   "idValue": "cffg876e-gm9v-98de-0013d927s873"},
                        ],
                    },
                    {
                        "action": "ADD",
                        "userIds": [
                            {"idType": "SHA256_EMAIL", "idValue": "09d118a78b69261bc191d915ac70c496cf7a9e0502ba8c2d016f2f134ade"},
                            {"idType": "GOOGLE_AID",   "idValue": "cdda802e-12cd-fb9c-47ad-0794d394c912"},
                        ],
                        "firstname": "mike",
                        "lastname": "smith",
                    },
                ],
            },
        }
    },
)
print(resp.json())
```

#### Typescript

```typescript
const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID";

const resp = await fetch(
  `https://app.polytomic.com/api/connections/${LINKEDIN_ADS_CONNECTION_ID}/proxy`,
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.POLYTOMIC_API_KEY}`,
      "X-Polytomic-Version": "2025-09-18",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      request: {
        method: "POST",
        path: "/dmpSegments/10804/users",
        body: {
          elements: [
            {
              action: "ADD",
              userIds: [
                { idType: "SHA256_EMAIL", idValue: "692682111bc191d915ac7009d118a78bc496cf7a2ba8c2d0134ade012ac1234" },
                { idType: "GOOGLE_AID",   idValue: "cffg876e-gm9v-98de-0013d927s873" },
              ],
            },
            {
              action: "ADD",
              userIds: [
                { idType: "SHA256_EMAIL", idValue: "09d118a78b69261bc191d915ac70c496cf7a9e0502ba8c2d016f2f134ade" },
                { idType: "GOOGLE_AID",   idValue: "cdda802e-12cd-fb9c-47ad-0794d394c912" },
              ],
              firstname: "mike",
              lastname: "smith",
            },
          ],
        },
      },
    }),
  }
);
console.log(await resp.json());
```

#### Go

```golang
import (
    "bytes"
    "context"
    "encoding/json"
    "fmt"
    "net/http"
    "os"
)

const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

body, _ := json.Marshal(map[string]any{
    "request": map[string]any{
        "method": "POST",
        "path":   "/dmpSegments/10804/users",
        "body": map[string]any{
            "elements": []map[string]any{
                {
                    "action": "ADD",
                    "userIds": []map[string]string{
                        {"idType": "SHA256_EMAIL", "idValue": "692682111bc191d915ac7009d118a78bc496cf7a2ba8c2d0134ade012ac1234"},
                        {"idType": "GOOGLE_AID",   "idValue": "cffg876e-gm9v-98de-0013d927s873"},
                    },
                },
                {
                    "action": "ADD",
                    "userIds": []map[string]string{
                        {"idType": "SHA256_EMAIL", "idValue": "09d118a78b69261bc191d915ac70c496cf7a9e0502ba8c2d016f2f134ade"},
                        {"idType": "GOOGLE_AID",   "idValue": "cdda802e-12cd-fb9c-47ad-0794d394c912"},
                    },
                    "firstname": "mike",
                    "lastname":  "smith",
                },
            },
        },
    },
})

req, _ := http.NewRequestWithContext(
    context.TODO(), "POST",
    fmt.Sprintf("https://app.polytomic.com/api/connections/%s/proxy", LINKEDIN_ADS_CONNECTION_ID),
    bytes.NewReader(body),
)
req.Header.Set("Authorization", "Bearer "+os.Getenv("POLYTOMIC_API_KEY"))
req.Header.Set("X-Polytomic-Version", "2025-09-18")
req.Header.Set("Content-Type", "application/json")

resp, err := http.DefaultClient.Do(req)
if err != nil {
    panic(err)
}
defer resp.Body.Close()
```

## 6. Add or remove a single user

Add or remove one user from a segment, optionally including profile attributes to improve match rates.

#### cURL

```bash
curl --request POST \
     --url "https://app.polytomic.com/api/connections/${LINKEDIN_CONNECTION_ID}/proxy" \
     --header "accept: application/json" \
     --header "content-type: application/json" \
     --header "X-Polytomic-Version: 2025-09-18" \
     --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \
     -d '{
       "request": {
         "method": "POST",
         "path": "/dmpSegments/10804/users",
         "body": {
           "action": "ADD",
           "userIds": [
             {"idType": "SHA256_EMAIL", "idValue": "09d118a78b69261bc191d915ac70c496cf7a9e0502ba8c2d016f2f134ade"},
             {"idType": "GOOGLE_AID",   "idValue": "cdda802e-fb9c-47ad-0794d394c912"}
           ],
           "firstname": "mike",
           "lastname": "smith",
           "titleName": "software engineer",
           "companyName": "microsoft",
           "countryName": "us"
         }
       }
     }'
```

#### Python

```python
import os
import requests

LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

resp = requests.post(
    f"https://app.polytomic.com/api/connections/{LINKEDIN_ADS_CONNECTION_ID}/proxy",
    headers={
        "Authorization": f"Bearer {os.environ['POLYTOMIC_API_KEY']}",
        "X-Polytomic-Version": "2025-09-18",
        "Content-Type": "application/json",
    },
    json={
        "request": {
            "method": "POST",
            "path": "/dmpSegments/10804/users",
            "body": {
                "action": "ADD",
                "userIds": [
                    {"idType": "SHA256_EMAIL", "idValue": "09d118a78b69261bc191d915ac70c496cf7a9e0502ba8c2d016f2f134ade"},
                    {"idType": "GOOGLE_AID",   "idValue": "cdda802e-fb9c-47ad-0794d394c912"},
                ],
                "firstname":    "mike",
                "lastname":     "smith",
                "titleName":    "software engineer",
                "companyName":  "microsoft",
                "countryName":  "us",
            },
        }
    },
)
print(resp.json())
```

#### Typescript

```typescript
const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID";

const resp = await fetch(
  `https://app.polytomic.com/api/connections/${LINKEDIN_ADS_CONNECTION_ID}/proxy`,
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.POLYTOMIC_API_KEY}`,
      "X-Polytomic-Version": "2025-09-18",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      request: {
        method: "POST",
        path: "/dmpSegments/10804/users",
        body: {
          action: "ADD",
          userIds: [
            { idType: "SHA256_EMAIL", idValue: "09d118a78b69261bc191d915ac70c496cf7a9e0502ba8c2d016f2f134ade" },
            { idType: "GOOGLE_AID",   idValue: "cdda802e-fb9c-47ad-0794d394c912" },
          ],
          firstname:   "mike",
          lastname:    "smith",
          titleName:   "software engineer",
          companyName: "microsoft",
          countryName: "us",
        },
      },
    }),
  }
);
console.log(await resp.json());
```

#### Go

```golang
import (
    "bytes"
    "context"
    "encoding/json"
    "fmt"
    "net/http"
    "os"
)

const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

body, _ := json.Marshal(map[string]any{
    "request": map[string]any{
        "method": "POST",
        "path":   "/dmpSegments/10804/users",
        "body": map[string]any{
            "action": "ADD",
            "userIds": []map[string]string{
                {"idType": "SHA256_EMAIL", "idValue": "09d118a78b69261bc191d915ac70c496cf7a9e0502ba8c2d016f2f134ade"},
                {"idType": "GOOGLE_AID",   "idValue": "cdda802e-fb9c-47ad-0794d394c912"},
            },
            "firstname":   "mike",
            "lastname":    "smith",
            "titleName":   "software engineer",
            "companyName": "microsoft",
            "countryName": "us",
        },
    },
})

req, _ := http.NewRequestWithContext(
    context.TODO(), "POST",
    fmt.Sprintf("https://app.polytomic.com/api/connections/%s/proxy", LINKEDIN_ADS_CONNECTION_ID),
    bytes.NewReader(body),
)
req.Header.Set("Authorization", "Bearer "+os.Getenv("POLYTOMIC_API_KEY"))
req.Header.Set("X-Polytomic-Version", "2025-09-18")
req.Header.Set("Content-Type", "application/json")

resp, err := http.DefaultClient.Do(req)
if err != nil {
    panic(err)
}
defer resp.Body.Close()
```

## 7. Create a DMP segment

Create a new DMP segment and associate it with a LinkedIn Ads account.

#### cURL

```bash
curl --request POST \
     --url "https://app.polytomic.com/api/connections/${LINKEDIN_CONNECTION_ID}/proxy" \
     --header "accept: application/json" \
     --header "content-type: application/json" \
     --header "X-Polytomic-Version: 2025-09-18" \
     --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \
     -d '{
       "request": {
         "method": "POST",
         "path": "/dmpSegments",
         "body": {
           "name": "DMP Segment 1",
           "sourcePlatform": "DMP_PARTNER_PLATFORM",
           "account": "urn:li:sponsoredAccount:516848833",
           "type": "USER",
           "destinations": [
             {"destination": "LINKEDIN"}
           ]
         }
       }
     }'
```

#### Python

```python
import os
import requests

LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

resp = requests.post(
    f"https://app.polytomic.com/api/connections/{LINKEDIN_ADS_CONNECTION_ID}/proxy",
    headers={
        "Authorization": f"Bearer {os.environ['POLYTOMIC_API_KEY']}",
        "X-Polytomic-Version": "2025-09-18",
        "Content-Type": "application/json",
    },
    json={
        "request": {
            "method": "POST",
            "path": "/dmpSegments",
            "body": {
                "name":           "DMP Segment 1",
                "sourcePlatform": "DMP_PARTNER_PLATFORM",
                "account":        "urn:li:sponsoredAccount:516848833",
                "type":           "USER",
                "destinations":   [{"destination": "LINKEDIN"}],
            },
        }
    },
)
print(resp.json())
```

#### Typescript

```typescript
const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID";

const resp = await fetch(
  `https://app.polytomic.com/api/connections/${LINKEDIN_ADS_CONNECTION_ID}/proxy`,
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.POLYTOMIC_API_KEY}`,
      "X-Polytomic-Version": "2025-09-18",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      request: {
        method: "POST",
        path: "/dmpSegments",
        body: {
          name:           "DMP Segment 1",
          sourcePlatform: "DMP_PARTNER_PLATFORM",
          account:        "urn:li:sponsoredAccount:516848833",
          type:           "USER",
          destinations:   [{ destination: "LINKEDIN" }],
        },
      },
    }),
  }
);
console.log(await resp.json());
```

#### Go

```golang
import (
    "bytes"
    "context"
    "encoding/json"
    "fmt"
    "net/http"
    "os"
)

const LINKEDIN_ADS_CONNECTION_ID = "YOUR-LINKEDIN-CONNECTION-ID"

body, _ := json.Marshal(map[string]any{
    "request": map[string]any{
        "method": "POST",
        "path":   "/dmpSegments",
        "body": map[string]any{
            "name":           "DMP Segment 1",
            "sourcePlatform": "DMP_PARTNER_PLATFORM",
            "account":        "urn:li:sponsoredAccount:516848833",
            "type":           "USER",
            "destinations":   []map[string]string{{"destination": "LINKEDIN"}},
        },
    },
})

req, _ := http.NewRequestWithContext(
    context.TODO(), "POST",
    fmt.Sprintf("https://app.polytomic.com/api/connections/%s/proxy", LINKEDIN_ADS_CONNECTION_ID),
    bytes.NewReader(body),
)
req.Header.Set("Authorization", "Bearer "+os.Getenv("POLYTOMIC_API_KEY"))
req.Header.Set("X-Polytomic-Version", "2025-09-18")
req.Header.Set("Content-Type", "application/json")

resp, err := http.DefaultClient.Do(req)
if err != nil {
    panic(err)
}
defer resp.Body.Close()
```