Get profile interests
Get what a profile follows: top voices, companies, groups, newsletters, and schools.
POST
https://api.up2data.ai/v1/profiles/interestsWorks like profile recommendations with a category parameter in place of direction. Identify the profile with url or urn; provide exactly one. Each requested category comes back as its own block with its own pagination. A block with no interests has an empty list and no pagination.
Info
Send many as batch operation items (operation profiles.interests); billed per non-empty category, same as the sync call. See the batch endpoint.
#Request
| Field | Type | Notes |
|---|---|---|
url | string | Profile URL or public identifier. Provide url or urn. |
urn | string | LinkedIn member URN. Provide url or urn. |
category | string | Default all. Enum: all, influencers, companies, groups, newsletters, schools. |
page | integer | Default 1. Applies to each category. |
per_page | integer | Default 10. 1 to 25, per category. |
#Call it
curl -X POST "https://api.up2data.ai/v1/profiles/interests" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.linkedin.com/in/janedoe",
"category": "companies"
}'import requests
url = "https://api.up2data.ai/v1/profiles/interests"
headers = {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
}
payload = {
"url": "https://www.linkedin.com/in/janedoe",
"category": "companies"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())const url = "https://api.up2data.ai/v1/profiles/interests";
const headers = {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
};
const body = {
"url": "https://www.linkedin.com/in/janedoe",
"category": "companies"
};
const response = await fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
});
const data = await response.json();
console.log(data);package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.up2data.ai/v1/profiles/interests"
body := bytes.NewBufferString(`{
"url": "https://www.linkedin.com/in/janedoe",
"category": "companies"
}`)
req, err := http.NewRequest("POST", url, body)
if err != nil {
panic(err)
}
req.Header.Set("X-API-Key", "YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
respBody, _ := io.ReadAll(resp.Body)
fmt.Println(string(respBody))
}#Response
{
"data": {
"url": "https://www.linkedin.com/in/janedoe", "public_identifier": "janedoe", "linkedin_id": "123456789", "urn": "ACoAABOPHB8BM6example", "category": "companies", "scraped_at": "2026-07-08T12:00:00Z",
"companies": {
"interests": [{ "name": "Example Corp", "url": "https://www.linkedin.com/company/example/", "urn": "1035", "headline": "B2B software for revenue teams", "followers_count": 141007, "caption": "141,007 followers", "logo_url": "https://media.licdn.com/dms/image/v2/C560BAQExample/company-logo_200_200/0/example" }],
"pagination": { "page": 1, "per_page": 10, "has_more": true }
}
},
"meta": { "creditsUsed": 1, "creditsRemaining": 98419, "billed": true, "reason": "success", "requestId": "req_example", "latencyMs": 2000 }
}{
"data": {
"url": "https://www.linkedin.com/in/janedoe", "public_identifier": "janedoe", "linkedin_id": "123456789", "urn": "ACoAABOPHB8BM6example", "category": "all", "scraped_at": "2026-07-08T12:00:00Z",
"influencers": { "interests": [{ "name": "Alex Example", "url": "https://www.linkedin.com/in/example", "urn": "ACoAABOPHB8BM6alexex", "headline": "VP Sales at Example Corp", "followers_count": 52310, "caption": "52,310 followers" }], "pagination": { "page": 1, "per_page": 10, "has_more": false } },
"companies": { "interests": [] },
"groups": { "interests": [{ "name": "Revenue Operations", "url": "https://www.linkedin.com/groups/12345/", "urn": "12345", "members_count": 14182, "caption": "14,182 members" }], "pagination": { "page": 1, "per_page": 10, "has_more": false } },
"newsletters": { "interests": [{ "name": "The Outbound Weekly", "url": "https://www.linkedin.com/newsletters/the-outbound-weekly-6900000000000000000/", "caption": "Published weekly" }], "pagination": { "page": 1, "per_page": 10, "has_more": false } },
"schools": { "interests": [] }
},
"meta": { "creditsUsed": 3, "creditsRemaining": 98417, "billed": true, "reason": "success", "requestId": "req_example", "latencyMs": 2300 }
}#Errors
| Status | Type | When | Billed |
|---|---|---|---|
| 400 | invalid_request | Malformed body, unknown field, bad URL format, or a category outside the enum. | No |
| 401 | invalid_api_key | Missing, malformed, or revoked key. | No |
| 402 | insufficient_credits | Balance can't cover every requested category. | No |
| 422 | unprocessable_target | Profile not found, private, deleted, or unreachable. Billed as 1 credit. | Yes |
| 429 | rate_limited | Over the 300 requests/min per-key limit. Honor Retry-After. | No |
| 500 | internal_error | Something broke on the server side. | No |
| 504 | upstream_timeout | The live scrape didn't complete in time. | No |
See the Errors guide for every error type this version can return.