NAV
shell ruby python javascript Go

Introduction

Welcome to Lix's API! You can use this API to access all our API endpoints, such as the Contact API to look up email addresses by LinkedIn profile ID, or the People API to look up professional information for a person.

The API is organized around REST. All requests should be made over SSL. All request and response bodies, including errors, are encoded in JSON.

We also have some specific language code examples to make integration easier. You can switch the programming language of the examples with the tabs in the top right.

Currently we have code examples for the following languages:

Should you have further questions, feel free to contact our tech team via email at [email protected] or by using the web chat in the bottom right of your screen.

API Productivity

We organise our APIs into different collections, each of which we call an 'API', with each API having a number of endpoints.

API Specs & Postman

At Lix, we love Postman, we think it's a great way to share APIs and make them easily accessible for your team. If a Postman collection is available for an API, you will find a 'Run in Postman' link at the top of the API collection. You will need to add your own environment with the api_key variable to use the collection.

If you would like our OpenAPI v3.1 specification we can also send that across, let us know through our live chat.

Authentication

To authorize, use this code:

import requests

url = "https://api.lix-it.com/v1/person?profile_link=https://linkedin.com/in/alfie-lambert"

payload={}
headers = {
  'Authorization': lix_api_key
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())
const axios = require('axios');

const url = "https://api.lix-it.com/v1/person?profile_link=https://linkedin.com/in/alfie-lambert";

const headers = {
  'Authorization': lixApiKey,
}

const response = axios.get(url, headers);

console.log(response.data);
package main

import (
  "fmt"
  "io/ioutil"
  "net/http"
)

func main() {
  req, _ := http.NewRequest("GET", "https://api.lix-it.com/v1/person?profile_link=https://linkedin.com/in/alfie-lambert", nil)

  req.SetHeaders

}
# With shell, you can just pass the correct header with each request
curl "api_endpoint_here" \
  -H "Authorization: lixApiKey"

Make sure to replace lixApiKey with your API key.

Lix uses API keys to allow access to the API. If you do not have an API Token yet, please visit your API dashboard to generate one. You will need to verify your identity first, it's a simple process that takes less than a minute. You can see more information about our verification process here.

Lix expects for the API key to be included in all API requests to the server in a header that looks like the following:

Authorization: lixApiKey

or with a query variable:

https://api.lix-it.com/v1/person?profile_link=https://linkedin.com/in/alfie-lambert&api_key=lixApiKey

Please bear in mind to also specify the Content-Type as application/json format.

Using the API

Passing URLs

When passing URLs to an endpoint ensure that the URL is 'URL Encoded'. You can see the description of what that is here. Most programming languages have standard libraries that deal with encoding values for URLs.

const encoded = encodeURIComponent('https://linkedin.com/in/alfie-lambert');
const url = "https://api.lix-it.com/v1/person?profile_link=" + encoded;
import urllib.parse

linkedin_url = "https://linkedin.com/in/alfie-lambert"

linkedin_url = urllib.parse.quote(linkedin_url, safe='')

url = "https://api.lix-it.com/v1/person?profile_link=" + linkedin_url
import (
  "net/url"
)

linkedin_url := "https://linkedin.com/in/alfie-lambert"

linkedin_url = url.QueryEscape(linkedin_url)

url := "https://api.lix-it.com/v1/person?profile_link=" + linkedin_url

Postman

There is more information on how to URI encode values in Postman here.

Sequence IDs & Pagination

Some endpoints require you to use a sequence_id query parameter, which is a unique identifier for a sequence of requests. This sequence parameter is returned from any endpoint where there are multiple pages, and allows you to use the same settings in the Lix's crawling systems from request to request. If you omit the sequence parameter you will be in danger of producing different duplicate search results.

If you use the viewer_id field you do not need to use the sequence_id parameter.

Rate Limiting

We have a default rate limit of 1 request per 3 seconds. If you exceed this limit you will receive a 429 error. If you need to make more requests please contact our team or upgrade your plan.

Lix Account API

Balances

Retrieve the current balance of your account. Returns the number of email credits and Standard Credits available.

HTTP Request

GET https://api.lix-it.com/v1/account/balances

curl "https://api.lix-it.com/v1/account/balances" \
  -H "Authorization: lixApiKey"
import requests
url = "https://api.lix-it.com/v1/account/balances"
payload={}
headers = {
  'Authorization': lix_api_key
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.json())

The above command returns JSON structured like this:

{
  "emailBalance": 10000,
  "linkedInBalance": 50000
}

Daily Allowance

This endpoint retrieves your remaining daily allowance for your account.

HTTP Request

GET https://api.lix-it.com/v1/account/allowances/daily

Response

Field Description
requestsRemaining The number of requests remaining for the day.
refreshesAt The unix timestamp in seconds of when the daily allowance will refresh.
curl "https://api.lix-it.com/v1/account/allowances/daily \
  -H "Authorization: lixApiKey"
import requests

url = "https://api.lix-it.com/v1/account/allowances/daily"

headers = {
  'Authorization': lix_api_key
}

response = requests.request("GET", url, headers=headers)

print(response.json())

The above command returns JSON structured like this:

{
  "requestsRemaining": 10000,
  "refreshesAt": 1696512494 // represents the unix timestamp in seconds of when the daily allowance will refresh
}

LinkedIn Account API

Connections

This endpoint retrieves the connections for the viewer_id.

HTTP Request

GET https://api.lix-it.com/v1/connections

URL Parameters

Parameter Description
viewer_id The LinkedIn ID of the account you want to get the connections from.
count Set as high a number as you can here - 1,000 works.
start The start offset for the search paging.
curl "https://api.lix-it.com/v1/connections?viewer_id=alfie-lambert&count=1000&start=10" \
  -H "Authorization: lixApiKey"
import requests
url = "https://api.lix-it.com/v1/connections?count=1000&start=0&viewer_id=alfie-lambert"
payload={}
headers = {
  'Authorization': lix_api_key
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.json())

The above command returns JSON structured like this: json { "connections_response": { "elements": [ Connection ], "paging": { "count": 10 } } }

Put LinkedIn Account

This endpoint adds/updates the credentials for the LinkedIn account.

If a LinkedIn account is not currently attached to your team it will attach the account to the team.

If the LinkedIn account is already attached to the team it will update the credentials for the account.

If the tokens provided are not valid it will send a status 400 with a message.

HTTP Request

PUT https://api.lix-it.com/v1/account/linkedin/account

Body Parameters

Parameter Description
cookies The cookies for the LinkedIn account as a JSON array with the key as the cookie name and the value as the value. All cookies under the .www.linkedin.com domain.
curl -X PUT "https://api.lix-it.com/v1/account/linkedin/account" \
  -H "Authorization: lixApiKey
  -d '{
  "cookies": {
    {"key": "li_at", "value": "AQEDAT8AAQD"},
  }'
import requests
import json
url = "https://api.lix-it.com/v1/account/linkedin/account"
payload = json.dumps({
  "cookies": {
    { "key": "li_at", "value": "AQEDAT8AAQD" },
  }
})
headers = {
  'Authorization': lix_api_key
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.json())

The above command returns JSON structured like this: json { "viewer_id": "alfie-lambert" }

Search API

Person IDs

This endpoint retrieves ids for various B2B data products. You query it using an ID and it will fetch the ids.

You can use this endpoint to convert LinkedIn Sales Navigator profile URLs to LinkedIn profile URLs and vice versa.

The PersonIDs Object

Attribute Description
personIds.li_flagship_id The ID of the 'Flagship' LinkedIn profile. You can create a profile URL by passing in https://www.linkedin.com/in/[liFlagshipID].
personIds.sales_nav_id The Sales Navigator ID. You can create a profile URL by passing in https://www.linkedin.com/sales/people/[salesNavID],NAME,undefined.
personIds.uuid The unique Lix UUID for this person.

links.liProfileURL | The LinkedIn profile URL. links.salesNavURL | The Sales Navigator profile URL. links.recruiterURL | The Recruiter profile URL.

{
    "personIds": {
        "liID": "alfie-lambert",
        "salesNavID": "ACoAAAXQSFkBYBAvJOtLzKQz7X0qXjByqI9m7Tg",
        "uuid": "cGVyc29uOjk3MDgyNQ=="
    },
    "links": {
        "liProfileURL": "https://www.linkedin.com/in/alfie-lambert",
        "salesNavURL": "https://www.linkedin.com/sales/people/ACoAAAXQSFkBYBAvJOtLzKQz7X0qXjByqI9m7Tg,NAME",
        "recruiterURL": "https://www.linkedin.com/talent/profile/ACoAAAXQSFkBYBAvJOtLzKQz7X0qXjByqI9m7Tg"
    }
}

Get PersonIDs

Retrieve the Person IDs. Pass in any ID you would like to cross-reference, but only pass one in.

GET https://api.lix-it.com/v1/person/ids

Parameter Description
sales_nav_id The Sales Nav ID of the person. You can find this from a profile link: https://www.linkedin.com/sales/person/[sales_nav_id],NAME,XXXX
li_flagship_id The Linkedin profile public identifier. You can find this from a profile link: https://www.linkedin.com/in/[li_flagship_id]
lix_id The Lix unique ID.
curl "https://api.lix-it.com/v1/person/ids?li_flagship_id=alfie-lambert" \
  -H "Authorization: [lixApiKey]"

Returns:

{
 "person_ids": {
  "liID": "alfie-lambert",
  "salesNavID": "ACoAAAXQSFkBYBAvJOtLzKQz7X0qXjByqI9m7Tg",
  "lixID": "cGVyc29uOjk3MDgyNQ=="
 }
}

Organisation IDs

This endpoint retrieves ids for various B2B data products. You query it using an ID and it will fetch the ids.

You can use this endpoint to convert LinkedIn Sales Navigator profile URLs to LinkedIn profile URLs and vice versa.

The OrganisationIDs Object

Attribute Description
li_flagship_id The ID of the 'Flagship' LinkedIn profile. You can create a profile URL by passing in https://www.linkedin.com/company/[liFlagshipID].
sales_nav_id The Sales Navigator ID. You can create a profile URL by passing in https://www.linkedin.com/sales/people/[salesNavID],NAME,undefined.
lix_id The unique Lix ID for this organisation.
{
    "id": "59688920",
    "name": "Lix",
    "liID": "lix",
    "salesNavID": "1670390",
    "uuid": "b3JnYW5pc2F0aW9uOjA="
}

Get OrganisationIDs

Retrieve the Organisation IDs. Pass in any ID you would like to cross-reference, but only pass one in.

GET https://api.lix-it.com/v1/organisation/ids

Parameter Description
sales_nav_id The Sales Nav ID of the organisation. You can find this from a profile link: https://www.linkedin.com/sales/company/[sales_nav_id]
li_flagship_id The Linkedin profile public identifier. You can find this from a profile link: https://www.linkedin.com/company/[li_flagship_id]
lix_id The Lix unique ID.
curl "https://api.lix-it.com/v1/organisation/ids?li_flagship_id=lix" \
  -H "Authorization: [lixApiKey]"

Returns:

{
  "organisationIds": {
      "id": "59688920",
      "name": "Lix",
      "liID": "lix",
      "salesNavID": "1670390",
      "uuid": "b3JnYW5pc2F0aW9uOjA="
  }
}

Enrichment API

This section describes the data you can expect from each returned profile. The same profile data structure will be returned from multiple profile collection endpoints as described below. Credit usage is dependent on the endpoint used.

Run in Postman

Job Posting

This endpoint retrieves a single publicly available LinkedIn Job Posting.

HTTP Request

GET https://api.lix-it.com/v1/enrich/job

URL Parameters

Required parameters

Parameter Description
job_id The LinkedIn ID of the job posting

Optional parameters

Parameter Description
viewer_id The LinkedIn ID of the account you would like to view this profile as
import requests

url = "https://api.lix-it.com/v1/enrich/job?job_id=3556453411"

payload={}
headers = {
  'Authorization': [lixApiKey]
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())
curl "https://api.lix-it.com/v1/enrich/job?job_id=3556453411" \
  -H "Authorization: lixApiKey"

Post

This endpoint retrieves a single publicly available LinkedIn Feed Update (Post).

HTTP Request

GET https://api.lix-it.com/v1/enrich/post

URL Parameters

Required parameters

Parameter Description
post_urn The LinkedIn URN of the post, URI encoded. For example urn%3Ali%3Aactivity%3A7019605025920286720, which is the URI-encoded form of urn:li:activity:7019605025920286720. You can find these post URNs in the response to the Posts Search API.

Optional parameters

Parameter Description
viewer_id The LinkedIn ID of the account you would like to view this post as.
import requests

url = "https://api.lix-it.com/v1/enrich/post?post_urn=urn%3Ali%3Aactivity%3A7019605025920286720"

payload={}
headers = {
  'Authorization': [lixApiKey]
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())
curl "https://api.lix-it.com/v1/enrich/post?post_urn=urn%3Ali%3Aactivity%3A7019605025920286720" \
  -H "Authorization: lixApiKey"

Person

import requests

url = "https://api.lix-it.com/v1/person?profile_link=https://linkedin.com/in/alfie-lambert"

payload={}
headers = {
  'Authorization': [lixApiKey]
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())
curl "https://api.lix-it.com/v1/person?profile_link=https://linkedin.com/in/alfie-lambert" \
  -H "Authorization: lixApiKey"

The above command returns JSON structured like this:

{
    "description": "Co-founder | Product & Growth Lead",
    "location": "London, England, United Kingdom",
    "name": "Alfie Lambert",
    "twitter": "AlfieLambert",
    "aboutSummaryText": "In my early 20s, I realised I was going nowhere fast. I applied to an access course, received a 100% distinction rate and got into Cambridge University (#1 in the world rankings that year). While there, I fell into marketing startups and fell in love. \n\nSince University I've worked with startups and scale-ups, primarily in B2B data, AI & Data Science. I've trained and retrained in a few different disciplines, cofounded two startups and successfully raised funds. I'm at my happiest when I'm solving problems and making things happen.",
    "salesNavLink": "https://linkedin.com/sales/lead/ACoAAAXQSFkBYBAvJOtLzKQz7X0qXjByqI9m7Tg,NAME_SEARCH,undefined",
    "link": "https://www.linkedin.com/in/alfie-lambert",
    "experience": [
        {
            "description": "Eliminate hours spent combing through disconnected data. BizCrunch provides insights like debt-to-asset ratios, estimated turnover and ownerships structures, right from the start. Freeing up your time to make contact, forge relationships and close deals.",
            "title": "Co-founder & Head of Growth",
            "dateStarted": "April 2023",
            "dateEnded": "Present",
            "location": "London, England, United Kingdom",
            "organisation": {
                "name": "BizCrunch",
                "salesNavLink": "https://linkedin.com/sales/company/96199986"
            },
            "timePeriod": {
                "startedOn": {
                    "month": 4,
                    "year": 2023
                },
                "endedOn": {}
            }
        },
        {
            "description": "Lix provides industry-leading contact intelligence technology to sales teams, marketers and business intelligence professionals around the world. Our primary goal is simple: bring Contact Intelligence into the business mainstream. \n\nSales teams, especially those in fast-growing b2b SaaS businesses, need an alternative to broad-brush leads lists. They need more information about the people they are selling to. They need to spend less time hunting for leads and inputting contact information. They need to spend more time doing what they do best: selling.",
            "title": "Director",
            "dateStarted": "November 2020",
            "dateEnded": "Present",
            "location": "London, England, United Kingdom",
            "organisation": {
                "name": "Lix",
                "salesNavLink": "https://linkedin.com/sales/company/1670390"
            },
            "timePeriod": {
                "startedOn": {
                    "month": 11,
                    "year": 2020
                },
                "endedOn": {}
            }
        },
        {
            "description": "Our speciality lies at the intersection of performance marketing and immaculate presentation. We understand what powers real growth: marrying our expertise with an intimate knowledge of your business to create tailored solutions to your most pressing problems. \n\nWith shared backgrounds in growth hacking, automation, graphic design, video editing and startup & scale-up marketing we can provide a full solution for your business - or we can dip in and solve individual problems as needed.",
            "title": "Growth Consultant",
            "dateStarted": "March 2018",
            "dateEnded": "November 2020",
            "location": "London, England, United Kingdom",
            "organisation": {
                "name": "Lambert & Bizzle",
                "salesNavLink": "https://linkedin.com/sales/company/27220374"
            },
            "timePeriod": {
                "startedOn": {
                    "month": 3,
                    "year": 2018
                },
                "endedOn": {
                    "month": 11,
                    "year": 2020
                }
            }
        },
        {
            "description": "Last year saw 10,000 revellers at S&C - a 10 fold increase from when I started less than 4 years ago. We have struck 6-figure partnerships with household names, been featured in every national newspaper and radio station worth mentioning and become a mainstay of the festival scene. ",
            "title": "Director of Marketing and Communications",
            "dateStarted": "July 2014",
            "dateEnded": "March 2018",
            "location": "Cambridge, United Kingdom",
            "organisation": {
                "name": "Strawberries & Creem Festival",
                "salesNavLink": "https://linkedin.com/sales/company/"
            },
            "timePeriod": {
                "startedOn": {
                    "month": 7,
                    "year": 2014
                },
                "endedOn": {
                    "month": 3,
                    "year": 2018
                }
            }
        },
        {
            "description": "Pivigo is passionate about what the data revolution will bring to the commercial and public sectors. Data science can, and will, impact every industry. It is only a matter of time before every company will employ data science in their business, and those that start earlier will have a strategic advantage.\n\nAs the data science hub, Pivigo is at the cutting edge of a flourishing industry. We provide all the tools for those looking to a career in data science, from leading training (S2DS) to resources and challenges. For business, we can help you identify what data could do for you and connect you with the skilled practitioners to deliver on that goal.",
            "title": "Growth Hacker",
            "dateStarted": "February 2017",
            "dateEnded": "December 2017",
            "location": "London, United Kingdom",
            "organisation": {
                "name": "Pivigo",
                "salesNavLink": "https://linkedin.com/sales/company/3336261"
            },
            "timePeriod": {
                "startedOn": {
                    "month": 2,
                    "year": 2017
                },
                "endedOn": {
                    "month": 12,
                    "year": 2017
                }
            }
        },
        {
            "description": "CityMunch is a two-sided marketplace looking to connect savvy consumers with eager restaurateurs. We are putting the power into their hands, helping restaurants fill their seats and customers fill their stomachs. \n\nFor consumers, the mobile app allows anyone with time on their hands to explore London's food scene without breaking the bank. CityMunch offers free real-time discount vouchers across 250+ restaurants in London. \n\nFor restaurants, a simple web-based platform helps fill spare tables during quiet periods.\n\nAs CMO of a new and fledgling company, all processes had to be started from scratch; immediately designing and implementing a full media and communications strategy that has continued to be the foundation of all their b2c communication. \n\nDuring my tenure, the user base increased by +48% and the daily covers (our key metric) rocketed 10x: from 5 on the day that I started to 52 on the day that I left. The average daily validations grew from 6 to 40. \n\nDAU (Daily Average Users) increased by +315.6%, Daily Engagement rose by +532%, Sessions Per User +18%, Daily Engagement Per User +52% \n\nMy communications work led to CityMunch receiving a prominent specialist feature in the Daily Telegraph, as well as coverage in other major news outlets and online channels",
            "title": "Chief Marketing Officer",
            "dateStarted": "October 2016",
            "dateEnded": "January 2017",
            "location": "London, United Kingdom",
            "organisation": {
                "name": "CityMunch",
                "salesNavLink": "https://linkedin.com/sales/company/10404364"
            },
            "timePeriod": {
                "startedOn": {
                    "month": 10,
                    "year": 2016
                },
                "endedOn": {
                    "month": 1,
                    "year": 2017
                }
            }
        },
        {
            "description": "In addition to reading for my degree, I currently write articles and submit them on a freelance basis to a number of publications including: BRIC - A high-end glossy political publication focusing on the emerging BRIC nations. Croco - An arts and lifestyle magazine originally based in Spain; I was approached by the editor to assist in targeting UK music artists and scenes in order to help them bridge the gap into a new market. DV8 - A sneaker-based fashion magazine based in London.",
            "title": "Freelance Journalist",
            "dateStarted": "October 2013",
            "dateEnded": "July 2016",
            "location": "London, United Kingdom",
            "organisation": {
                "name": "Freelance Journalism",
                "salesNavLink": "https://linkedin.com/sales/company/851430"
            },
            "timePeriod": {
                "startedOn": {
                    "month": 10,
                    "year": 2013
                },
                "endedOn": {
                    "month": 7,
                    "year": 2016
                }
            }
        },
        {
            "description": "As editor of the music section for the Cambridge Tab I chase leads, find stories and commission writers to cover all aspects of the music scene in and around the University.\n\nDuring my time as editor over the busy May Ball period I successfully negotiated exclusive coverage with the vast majority of Cambridge colleges for their headline act announcements - putting The Tab music way ahead of the pack of student papers in terms of hits, readership and content sharing. I am consistently within the Top 100 journalists Nationwide and often in the Top 20 / Top 10.",
            "title": "Music Editor",
            "dateStarted": "May 2015",
            "dateEnded": "January 2016",
            "location": "Cambridge, United Kingdom",
            "organisation": {
                "name": "The Tab",
                "salesNavLink": "https://linkedin.com/sales/company/2845456"
            },
            "timePeriod": {
                "startedOn": {
                    "month": 5,
                    "year": 2015
                },
                "endedOn": {
                    "month": 1,
                    "year": 2016
                }
            }
        },
        {
            "description": "As a new start-up, Future Coins needed a fast and powerful media strategy. I arranged for Joel Moss to be interviewed, along with our product, by: CNN, Al-Jazeera, The Telegraph, Time Out, Vice and a number of industry publications. Our social media presence grew in both quality and quantity, with targeted marketing through Facebook a great success when looking to reach out to tech savvy 20-somethings in the London area. As well as building awareness for our initial installation in London, I also put together a marketing plan based on bitcoin usage data against population and sought out other areas of the UK to install our units. I successful brokered the deal with the host of our unit in Brighton, which was the first in the city attracting attention from the BBC and local press.",
            "title": "CMO",
            "dateStarted": "April 2013",
            "dateEnded": "January 2015",
            "location": "London, United Kingdom",
            "organisation": {
                "name": "Futurecoins",
                "salesNavLink": "https://linkedin.com/sales/company/3800942"
            },
            "timePeriod": {
                "startedOn": {
                    "month": 4,
                    "year": 2013
                },
                "endedOn": {
                    "month": 1,
                    "year": 2015
                }
            }
        },
        {
            "description": "Producing articles for both online & a print run of 50k. I also interview artists (both written and on camera), as well as contributing to comedy sketch writing.",
            "title": "Journalist & Section editor",
            "dateStarted": "2013",
            "dateEnded": "2013",
            "location": "London, United Kingdom",
            "organisation": {
                "name": "The Guestlist Network",
                "salesNavLink": "https://linkedin.com/sales/company/1296823"
            },
            "timePeriod": {
                "startedOn": {
                    "year": 2013
                },
                "endedOn": {
                    "year": 2013
                }
            }
        }
    ],
    "education": [
        {
            "institutionName": "University of Cambridge",
            "degree": "Bachelor's degree",
            "fieldOfStudy": "Human, Social & Political Sciences",
            "dateStarted": "2013",
            "dateEnded": "2016",
            "timePeriod": {
                "startedOn": {
                    "year": 2013
                },
                "endedOn": {
                    "year": 2016
                }
            }
        },
        {
            "institutionName": "City and Islington College",
            "degree": "Access Diploma",
            "fieldOfStudy": "Mixed Media",
            "dateStarted": "2012",
            "dateEnded": "2013",
            "timePeriod": {
                "startedOn": {
                    "year": 2012
                },
                "endedOn": {
                    "year": 2013
                }
            }
        }
    ],
    "skills": [
        {
            "name": "Social Media",
            "numOfEndorsement": "57"
        },
        {
            "name": "Email Marketing",
            "numOfEndorsement": "40"
        },
        {
            "name": "New Business Development",
            "numOfEndorsement": "20"
        },
        {
            "name": "Social Media Marketing",
            "numOfEndorsement": "47"
        },
        {
            "name": "Blogging",
            "numOfEndorsement": "21"
        },
        {
            "name": "Account Management",
            "numOfEndorsement": "12"
        },
        {
            "name": "Customer Service",
            "numOfEndorsement": "16"
        },
        {
            "name": "Marketing Communications",
            "numOfEndorsement": "16"
        },
        {
            "name": "Customer Relations",
            "numOfEndorsement": "10"
        },
        {
            "name": "Digital Media",
            "numOfEndorsement": "15"
        },
        {
            "name": "Press Releases",
            "numOfEndorsement": "10"
        },
        {
            "name": "Advertising Sales",
            "numOfEndorsement": "7"
        },
        {
            "name": "Copywriting",
            "numOfEndorsement": "10"
        },
        {
            "name": "Publishing",
            "numOfEndorsement": "9"
        },
        {
            "name": "Content Management",
            "numOfEndorsement": "6"
        },
        {
            "name": "Graduate Recruitment",
            "numOfEndorsement": "10"
        },
        {
            "name": "Management",
            "numOfEndorsement": "20"
        },
        {
            "name": "Microsoft Office",
            "numOfEndorsement": "9"
        },
        {
            "name": "Event Management",
            "numOfEndorsement": "13"
        },
        {
            "name": "Sales",
            "numOfEndorsement": "10"
        },
        {
            "name": "Digital Marketing",
            "numOfEndorsement": "7"
        },
        {
            "name": "Marketing Strategy",
            "numOfEndorsement": "7"
        },
        {
            "name": "Writing",
            "numOfEndorsement": "13"
        },
        {
            "name": "Editing",
            "numOfEndorsement": "6"
        },
        {
            "name": "Media Relations",
            "numOfEndorsement": "9"
        },
        {
            "name": "Time Management",
            "numOfEndorsement": "4"
        },
        {
            "name": "Interviewing",
            "numOfEndorsement": "4"
        },
        {
            "name": "Leadership",
            "numOfEndorsement": "4"
        },
        {
            "name": "Teamwork",
            "numOfEndorsement": "4"
        },
        {
            "name": "Facebook",
            "numOfEndorsement": "6"
        },
        {
            "name": "Journalism",
            "numOfEndorsement": "5"
        },
        {
            "name": "Advertising",
            "numOfEndorsement": "6"
        },
        {
            "name": "Online Marketing",
            "numOfEndorsement": "5"
        },
        {
            "name": "Online Advertising",
            "numOfEndorsement": "5"
        },
        {
            "name": "Public Relations",
            "numOfEndorsement": "5"
        },
        {
            "name": "Team Leadership",
            "numOfEndorsement": "5"
        },
        {
            "name": "Business Strategy",
            "numOfEndorsement": "5"
        },
        {
            "name": "Training",
            "numOfEndorsement": "4"
        },
        {
            "name": "Microsoft Excel",
            "numOfEndorsement": "4"
        },
        {
            "name": "Strategy",
            "numOfEndorsement": "5"
        },
        {
            "name": "Public Speaking",
            "numOfEndorsement": "4"
        },
        {
            "name": "Digital Strategy",
            "numOfEndorsement": "5"
        },
        {
            "name": "Negotiation",
            "numOfEndorsement": "4"
        },
        {
            "name": "Microsoft Word",
            "numOfEndorsement": "4"
        },
        {
            "name": "Market Research",
            "numOfEndorsement": "5"
        },
        {
            "name": "Publications",
            "numOfEndorsement": "5"
        },
        {
            "name": "Research",
            "numOfEndorsement": "5"
        },
        {
            "name": "Networking",
            "numOfEndorsement": "4"
        },
        {
            "name": "Storytelling",
            "numOfEndorsement": "10"
        },
        {
            "name": "Team Management",
            "numOfEndorsement": "4"
        }
    ]
}

This endpoint retrieves a specific profile.

HTTP Request

GET https://api.lix-it.com/v1/person

URL Parameters

Parameter Description
profile_link The link to the profile of the person.

Organisation

import requests

url = "https://api.lix-it.com/v1/organisations/by-linkedin?linkedin_url=https://linkedin.com/company/linkedin"

payload={}
headers = {
  'Authorization': [lixApiKey]
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())
curl "https://api.lix-it.com/v1/organisations/by-linkedin?linkedin_url=https://linkedin.com/company/linkedin" \
  -H "Authorization: lixApiKey"

The above command returns JSON structured like this:

{
    "liOrganisation": {
        "name": "LinkedIn",
        "link": "https://www.linkedin.com/company/linkedin",
        "industry": "Computer Software",
        "website": "https://careers.linkedin.com",
        "description": "Founded in 2003, LinkedIn connects the world's professionals to make them more productive and successful. With more than 850 million members worldwide, including executives from every Fortune 500 company, LinkedIn is the world's largest professional network. The company has a diversified business model with revenue coming from Talent Solutions, Marketing Solutions, Sales Solutions and Premium Subscriptions products. Headquartered in Silicon Valley, LinkedIn has offices across the globe.",
        "headquarters": "Sunnyvale, US",
        "companyType": "Public Company",
        "liEmployeeCount": "26383",
        "size": "10001+",
        "specialities": "Online Professional Network, Jobs, People Search, Company Search, Address Book, Advertising, Professional Identity, Group Collaboration, Recruiting",
        "numberOfInvestmentRounds": "7",
        "followers": "25072627",
        "crunchbaseId": "linkedin",
        "salesNavLink": "https://www.linkedin.com/sales/accounts/insights?companyId=1337&trk=li_comp_page",
        "logoUrl": "https://media.licdn.com/dms/image/C560BAQHaVYd13rRz3A/company-logo_",
    }
}

This endpoint retrieves a specific profile.

HTTP Request

GET https://api.lix-it.com/v1/organisations/by-linkedin

URL Parameters

Parameter Description
linkedin_url The link to the profile of the company
sales_nav_url The link to the Sales Navigator profile for the company

Activity API

Get the full activity of a LinkedIn user.

Get Posts

Get the posts history of a LinkedIn user.

Retrieves up to 50 results per page.

HTTP Request

GET https://api.lix-it.com/v1/person/li/activity/posts

URL Parameters

Required Parameters

Parameter Description
profile_id The profile ID of a user. You can get the profile ID from the URL of the user's LinkedIn profile. For example, the profile ID of the user with the URL https://www.linkedin.com/in/username is username.

Optional Parameters

Parameter Description
start The start index of the posts to return. The default value is 0.
viewer_id The LinkedIn ID of the account you would like to view this search as
curl "https://api.lix-it.com/v1/person/li/activity/posts?profile_id=alfie-lambert&start=0" \
  -H "Authorization: lixApiKey"
import requests


url = "https://api.lix-it.com/v1/person/li/activity/posts?profile_id=alfie-lambert&start=0"

payload={}
headers = {
  'Authorization': lix_api_key
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())

The above command returns JSON structured like this:

{
    "posts": [ Post ],
    "paging": { "count": 25, "start": 0, "total": 2500 },
}

Get Comments

Get the comment history of a LinkedIn user.

Retrieves up to 50 comments per page.

HTTP Request

GET https://api.lix-it.com/v1/person/li/activity/comments

URL Parameters

Required Parameters

Parameter Description
profile_id The profile ID of a user. You can get the profile ID from the URL of the user's LinkedIn profile. For example, the profile ID of the user with the URL https://www.linkedin.com/in/username is username.

Optional Parameters

Parameter Description
start The start index of the comments to return. The default value is 0.
viewer_id The LinkedIn ID of the account you would like to view this search as
curl "https://api.lix-it.com/v1/person/li/activity/comments?profile_id=alfie-lambert&start=0" \
  -H "Authorization: lixApiKey"
import requests


url = "https://api.lix-it.com/v1/person/li/activity/comments?profile_id=alfie-lambert&start=0"

payload={}
headers = {
    'Authorization': lix_api_key
    }

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())

The above command returns JSON structured like this:

{
    "comments": [ Comment ],
    "paging": { "count": 25, "start": 0, "total": 2500 },
}

LinkedIn Search API

Run in Postman

This endpoint retrieves a single page for a LinkedIn People search.

HTTP Request

GET https://api.lix-it.com/v1/li/linkedin/search/people

URL Parameters

Required Parameters

Parameter Description
url The url-encoded LinkedIn search URL

Optional Parameters

Parameter Description
viewer_id The LinkedIn ID of the account you would like to view this search as
sequence_id A randomly generated string by you that is used to maintain collection settings between requests. See the section on Sequence IDs for more information
curl "https://api.lix-it.com/v1/li/linkedin/search/people?url=https://www.linkedin.com/search/results/people/?keywords=lix&origin=SWITCH_SEARCH_VERTICAL&sid=%40%2Co" \
  -H "Authorization: lixApiKey"
import requests
import urllib.parse

linkedin_url = "https://www.linkedin.com/search/results/people/?keywords=lix&origin=SWITCH_SEARCH_VERTICAL&sid=%40%2Co"

# encode the URL
linkedin_url = urllib.parse.quote(linkedin_url, safe='')

url = "https://api.lix-it.com/v1/li/linkedin/search/people?url=" + linkedin_url


payload={}
headers = {
  'Authorization': lix_api_key
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())

The above command returns JSON structured like this:

{
  "searchResponse": {
    "people": [ Person ],
    "paging": { "count": 25, "start": 0, "total": 1000 },
  },
}

This endpoint retrieves a single page for a LinkedIn Job search.

HTTP Request

GET https://api.lix-it.com/v1/li/linkedin/search/jobs

URL Parameters

Required Parameters

Parameter Description
url The url-encoded LinkedIn search URL

Optional Parameters

Parameter Description
viewer_id The LinkedIn ID of the account you would like to view this search as
sequence_id A randomly generated string by you that is used to maintain collection settings between requests. See the section on Sequence IDs for more information
curl "https://api.lix-it.com/v1/li/linkedin/search/jobs?url=https://www.linkedin.com/jobs/search/?currentJobId=3436671233&keywords=lix" \
  -H "Authorization: lixApiKey"
import requests
import urllib.parse

linkedin_url = "https://www.linkedin.com/jobs/search/?currentJobId=3436671233&keywords=lix"

# encode the URL
linkedin_url = urllib.parse.quote(linkedin_url, safe='')

url = "https://api.lix-it.com/v1/li/linkedin/search/jobs?url=" + linkedin_url

payload={}
headers = {
  'Authorization': lix_api_key
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())

The above command returns JSON structured like this:

{
  "searchResponse": {
    "people": [ JobPosting ],
    "paging": { "count": 10, "start": 0, "total": 1000 },
  },
}

Job Posting Hirers

This endpoint retrieves the hirers for a job posting.

HTTP Request

GET https://api.lix-it.com/v1/li/linkedin/jobs/hirers

URL Parameters

Required parameters

Parameter Description
job_id The LinkedIn ID of the job posting.

Optional parameters

Parameter Description
viewer_id The LinkedIn ID of the account you would like to view this post as.
import requests

url = "https://api.lix-it.com/v1/li/linkedin/jobs/hirers?job_id=3556453411"

payload={}
headers = {
  'Authorization': [lixApiKey]
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())
curl "https://api.lix-it.com/v1/enrich/job?job_id=3556453411" \
  -H "Authorization: lixApiKey"

The above command returns JSON structured like this:

{
    "people": [
        {
            "name": "Emma Cardona",
            "img": "https://media.licdn.com/dms/image/D4E03AQG2XnuMe5Vyuw/profile-displayphoto-shrink_800_800/0/1702565423871?e=1713398400&v=beta&t=nwVI6lqyqVfplASGUbzgAmMJTiVW09ptn3zWQggMqNc",
            "headline": "Associate Director, People & Operations",
            "link": "https://www.linkedin.com/in/emmalowery"
        },
        {
            "name": "Philister Lukacevic",
            "img": "https://media.licdn.com/dms/image/C5603AQH-SpqGVLr9CQ/profile-displayphoto-shrink_800_800/0/1516870841685?e=1713398400&v=beta&t=v62FdwHH9VuAnxMLDlDa0H7lpt3tWMYrZBbK1umWios",
            "headline": "Nonprofit Marketing and Communications | Social Justice & Mental Health Advocate",
            "link": "https://www.linkedin.com/in/philistersidigu"
        }
    ]
}

This endpoint retrieves a single page for a LinkedIn Posts search.

This endpoint uses a start parameter.

HTTP Request

GET https://api.lix-it.com/v1/li/linkedin/search/posts

URL Parameters

Required Parameters

Parameter Description
url The url-encoded LinkedIn search URL
start The start offset of the page.

Optional Parameters

Parameter Description
viewer_id The LinkedIn ID of the account you would like to view this search as
sequence_id A randomly generated string by you that is used to maintain collection settings between requests. See the section on Sequence IDs for more information
curl "https://api.lix-it.com/v1/li/linkedin/search/posts?url=https%3A%2F%2Fwww.linkedin.com%2Fsearch%2Fresults%2Fcontent%2F%3Fkeywords%3Dlix%26origin%3DSWITCH_SEARCH_VERTICAL%26sid%3DV2J" \
  -H "Authorization: lixApiKey"
import requests
import urllib.parse

linkedin_url = "https://www.linkedin.com/search/results/content/?keywords=lix&origin=SWITCH_SEARCH_VERTICAL&sid=V2J"

# encode the URL
linkedin_url = urllib.parse.quote(linkedin_url, safe='')

url = "https://api.lix-it.com/v1/li/linkedin/search/posts?url=" + linkedin_url

payload={}
headers = {
  'Authorization': lix_api_key
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())

The above command returns JSON structured like this:

{
  "searchResponse": {
    "posts": [ Post ],
    "paging": { "count": 10, "start": 0, "total": 1000 },
  },
}

This endpoint retrieves a single page for a LinkedIn Org search.

HTTP Request

GET https://api.lix-it.com/v1/li/linkedin/search/orgs

URL Parameters

Required Parameters

Parameter Description
url The url-encoded LinkedIn search URL

Optional Parameters

Parameter Description
viewer_id The LinkedIn ID of the account you would like to view this search as
sequence_id A randomly generated string by you that is used to maintain collection settings between requests. See the section on Sequence IDs for more information
curl "https://api.lix-it.com/v1/li/linkedin/search/orgs?url=https%3A%2F%2Fwww.linkedin.com%2Fsearch%2Fresults%2Fcompanies%2F%3Fkeywords%3Dlondon%26origin%3DSWITCH_SEARCH_VERTICAL%26sid%3Do(E" \
  -H "Authorization: lixApiKey"
import requests
import urllib.parse

linkedin_url = "https://www.linkedin.com/search/results/companies/?keywords=london&origin=SWITCH_SEARCH_VERTICAL&sid=o(E"

# encode the URL
linkedin_url = urllib.parse.quote(linkedin_url, safe='')

url = "https://api.lix-it.com/v1/li/linkedin/search/orgs?url=" + linkedin_url

payload={}
headers = {
  'Authorization': lix_api_key
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())

The above command returns JSON structured like this:

{
  "searchResponse": {
    "posts": [ Org ],
    "paging": { "count": 10, "start": 0, "total": 1000 },
  },
}

This endpoint retrieves a single search page for a LinkedIn Sales Navigator lead search.

HTTP Request

GET https://api.lix-it.com/v1/li/sales/search/people

URL Parameters

Required Parameters

Parameter Description
url The url-encoded LinkedIn search URL

Optional Parameters

Parameter Description
viewer_id The LinkedIn ID of the account you would like to view this search as
sequence_id A randomly generated string by you that is used to maintain collection settings between requests. See the section on Sequence IDs for more information
curl "https://api.lix-it.com/v1/li/sales/search/people?url=https://www.linkedin.com/sales/search/people?query=(spellCorrectionEnabled%3Atrue%2CrecentSearchParam%3A(id%3A2154062338%2CdoLogHistory%3Atrue)%2Ckeywords%3Alix)&sessionId=GumqcP8vR0aPVWr3cNR74A%3D%3D" \
  -H "Authorization: lixApiKey"
import requests
import urllib.parse

linkedin_url = "https://www.linkedin.com/sales/search/people?query=(spellCorrectionEnabled%3Atrue%2CrecentSearchParam%3A(id%3A2154062338%2CdoLogHistory%3Atrue)%2Ckeywords%3Alix)&sessionId=GumqcP8vR0aPVWr3cNR74A%3D%3D"

# encode the URL
linkedin_url = urllib.parse.quote(linkedin_url, safe='')

url = "https://api.lix-it.com/v1/li/sales/search/people?url=" + linkedin_url

payload={}
headers = {
  'Authorization': lix_api_key
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())

The above command returns JSON structured like this:

{
  "searchResponse": {
    "people": [ Person ],
    "paging": { "count": 25, "start": 0, "total": 2500 },
  },
  "meta": {
    "sequenceId": "jAkFkdjfi19kFdf"
  }
}

Sales Navigator Leads Search (Parameterized)

This endpoint retrieves a single search page for a LinkedIn Sales Navigator lead search.

HTTP Request

GET https://api.lix-it.com/v1/people/search

URL Parameters

Filters

Filters require filter IDs, which can be retrieved using the Search Facet Typeahead endpoint.

Parameter Description
person_titles The job titles for the people you would like to search for, encoded as a JSON array of an id, text pair. For example, person_titles=[39,Senior Software Engineer].
locations The locations for the people you would like to search for, encoded as a JSON array of an id, text pair. For example, locations=[105763813,Colorado\\, United States].
organisations The current organistaion of the person, encoded as a JSON array of an id, text pair. For example, organisations=[1337,LinkedIn].

Optional Parameters

Parameter Description
viewer_id The LinkedIn ID of the account you would like to view this search as
sequence_id A randomly generated string by you that is used to maintain collection settings between requests. See the section on Sequence IDs for more information
curl --location --globoff 'https://api.lix-it.com/v1/people/search?person_titles=[39%2CSenior%20Software%20Engineer]&location=[105763813%2CColorado%5C%2C%20United%20States]' \
--header 'Authorization: $API_KEY'
import requests

url = "https://api.lix-it.com/v1/people/search?person_titles=[39,Senior Software Engineer]&location=[105763813,Colorado\\, United States]"

payload = {}
headers = {
  'Authorization': lix_api_key
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

The above command returns JSON structured like this:

{
  "people": [ Person ],
  "paging": { "count": 25, "start": 0, "total": 2500 },
  "meta": {
    "sequenceId": "jAkFkdjfi19kFdf"
  }
}

Search Facet Typeahead

This endpoint retrieves typeaheads for a LinkedIn search facet.

If you are trying to build a search URL, you can use this endpoint to get the typeahead for a search facet. For example, if you want to search for people who work at Google, you can use this endpoint to get the typeahead for the company facet. Then you can use the typeahead to build your search URL.

HTTP Request

GET https://api.lix-it.com/v1/search/sales/facet

URL Parameters

Required Parameters

Parameter Description
query The search query. For instance 'Goog' with a type of 'COMPANY_TITLE' will return 'Google' as a typeahead.
type The type of search you would like to perform. Available options are BING_GEO (geography);COMPANY_WITH_LIST (company name); SENIORITY_V2 (seniority); TITLE (Job Title); INDUSTRY (industry); GROUP (LinkedIn groups); SCHOOL (Education); COMPANY_TYPE (company type); FUNCTION (job function); COMPANY_SIZE (company size); TENURE (years of experience); PROFILE_LANGUAGE (profile language)

Optional Parameters

Parameter Description
count The number of typeaheads you would like to return. The default is 100.
start The index of the first typeahead you would like to return. The default is 0.
viewer_id The LinkedIn ID of the account you would like to view this search as
curl "https://api.lix-it.com/v1/search/sales/facet?query=E&type=SENIORITY&count=100&start=0" \
  -H "Authorization: lixApiKey"
import requests

url = "https://api.lix-it.com/v1/search/sales/facet?query=E&type=SENIORITY&count=100&start=0"


payload={}
headers = {
  'Authorization': lix_api_key
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())

The above command returns JSON structured like this:

{
    "data": {
        "elements": [
            {
                "displayValue": "Entry",
                "id": "3"
            },
            {
                "displayValue": "Owner",
                "id": "10"
            },
            {
                "displayValue": "Partner",
                "id": "9"
            },
            {
                "displayValue": "Director",
                "id": "6"
            },
            {
                "displayValue": "Manager",
                "id": "5"
            },
            {
                "displayValue": "Senior",
                "id": "4"
            }
        ],
        "paging": {
            "count": 100
        }
    }
}

This endpoint retrieves a single search page for a LinkedIn Recruiter candidate search.

HTTP Request

GET https://api.lix-it.com/v1/li/recruiter/search/people

URL Parameters

Required JSON Body Parameters

Parameter Description
skills The skills of the candidates you would like to search for. This is an array of objects. Each object has the following attributes: text (the skill name); entity (the LinkedIn skill entity ID); negated (whether the skill should be negated); required (whether the skill is required); selected (whether the skill is selected).

Optional URL Query Parameters

Parameter Description
viewer_id The LinkedIn ID of the account you would like to view this search as
sequence_id A randomly generated string by you that is used to maintain collection settings between requests. See the section on Sequence IDs for more information

Optional JSON Body Parameters

Parameter Description
start The index of the first candidate you would like to return. The default is 0.
curl "https://api.lix-it.com/v1/li/recruiter/search/people" \
  -H "Authorization: lixApiKey"
import json
import requests
import urllib.parse

linkedin_url = "https://api.lix-it.com/v1/li/recruiter/search/people"

payload=json.dumps({
    "start": 0,
    "skills": [{
        "text": "Machine Learning",
        "entity": "urn:li:ts_skill:3289",
        "negated": false,
        "required": false,
        "selected": true
    }]
})
headers = {
  'Content-type': 'application/json',
  'Authorization': lix_api_key
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())

The above command returns JSON structured like this:

{
  "people": [ Person ],
  "paging": { "count": 25, "start": 0, "total": 2500 },
  "meta": {
    "sequenceId": "jAkFkdjfi19kFdf"
  }
}

Recruiter Search Facet Typeahead

This endpoint retrieves typeaheads for a LinkedIn Recruiter search facet.

If you are trying to build a search URL, you can use this endpoint to get the typeahead for a search facet. For example, if you want to search for people who have skills in Javascript, you can use this endpoint to get the typeahead for the skills. Then you can use the typeahead to build your search URL.

HTTP Request

GET http://api.lix-it.com/v1/li/recruiter/search/facet

URL Parameters

Required Parameters

Parameter Description
query The search query. For instance 'Javascr' with a type of 'skill' will return 'Javasript' as a typeahead.
q The type of search you would like to perform. Available options are: skill (Skills)
start The index of the first typeahead you would like to return. The default is 0.
count The number of typeaheads you would like to return. The default is 100.

Optional Parameters

Parameter Description
count The number of typeaheads you would like to return. The default is 100.
start The index of the first typeahead you would like to return. The default is 0.
viewer_id The LinkedIn ID of the account you would like to view this search as
curl "http://api.lix-it.com/v1/li/recruiter/search/facet?query=Javascrip&type=skill&count=100&start=0" \
  -H "Authorization: lixApiKey"
import requests

url = "http://api.lix-it.com/v1/li/recruiter/search/facet?query=Javascrip&type=skill&count=100&start=0"


payload={}
headers = {
  'Authorization': lix_api_key
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.json())

The above command returns JSON structured like this:

{
    "meta": {
        "sequenceId": "01HNJHSE0E4RBSV5KBV50V523X"
    },
    "paging": {
        "count": 10,
        "start": 10,
        "total": 10
    },
    "results": [
        {
            "entity": "urn:li:ts_skill:218",
            "text": "JavaScript"
        },
        {
            "entity": "urn:li:ts_skill:280",
            "text": "HTML"
        },
        {
            "entity": "urn:li:ts_skill:12383",
            "text": "JavaScript Libraries"
        },
        {
            "entity": "urn:li:ts_skill:26965",
            "text": "Mocha (JavaScript Framework)"
        },
        {
            "entity": "urn:li:ts_skill:687",
            "text": "AJAX"
        },
        {
            "entity": "urn:li:ts_skill:4956",
            "text": "JSON"
        },
        {
            "entity": "urn:li:ts_skill:37357",
            "text": "JavaScriptMVC"
        },
        {
            "entity": "urn:li:ts_skill:55736",
            "text": "JavaScript eXtension (JSX)"
        },
        {
            "entity": "urn:li:ts_skill:55595",
            "text": "Embedded JavaScript (EJS)"
        },
        {
            "entity": "urn:li:ts_skill:13655",
            "text": "Unobtrusive Javascript"
        }
    ]
}```

LookC API

Asynchronous Requests

Our LookC endpoints may take some time to fetch data, so we have added concept of an 'asynchronous request' to this API. This is a request that will complete in the background and you will receive a call to a webhook when this query is complete, or you can check on the progress of this request using the request_id query parameter.

If an endpoint is asynchronous it will be designated as async enabled in the documentation.

Checking the Status of an Asynchronous Request

You can check the status of an asynchronous request by passing the request_id into the request_id query parameter.

HTTP Request

GET https://api.lookc.io/v1/search/person/by-email

Parameter Description
request_id The request ID of the asynchronous request you are checking.
curl "https://api.lookc.io/v1/request?request_id=1234-f197-1fsd8-fs987"

Returns:

{
  "status": "complete",
  "data": {
    "hits": [
      {
        "name": "Alfie Lambert",
        "liProfileUrl": "alfie-lambert",
        "salesNavUrl": "https://linkedin.com/sales/ACwAAAXQSFkBI1hIhlJLnr04EL-0FSqe1SIXTEM,NAME,undefined",
      },
    ],
    "org": {
      "name": "Lix",
      "liProfileUrl": "https://linkedin.com/company/lix",
      "salesNavUrl": "https://linkedin.com/sales/company/1670390",
    },
    "domainInfo": {
      "isFreeEmailDomain": false
    }
  }
}

Webhooks

If you have set up a webhook in your dashboard the webhook will be notified when the request is complete. The type field will be the name of the endpoint and the data field will be the response.

{
    "type": "search.person.by-email",
    "data": {
        "hits": [
        {
            "name": "Alfie Lambert",
            "liProfileUrl": "alfie-lambert",
            "salesNavUrl": "https://linkedin.com/sales/ACwAAAXQSFkBI1hIhlJLnr04EL-0FSqe1SIXTEM,NAME,undefined",
        },
        ],
        "org": {
            "name": "Lix",
            "liProfileUrl": "https://linkedin.com/company/lix",
            "salesNavUrl": "https://linkedin.com/sales/company/1670390",
        },
        "domainInfo": {
            "isFreeEmailDomain": false
        }
    }
}

Lookup Person by Email Address async enabled

Search a person's LinkedIn profile URL from their email address.

Results are given as an array of hits objects which represent individuals at the company.

HTTP Request

GET https://api.lookc.io/v1/search/person/by-email

Parameter Description
email The email address of the person you are searching for.
curl "https://api.lookc.io/v1/search/person/[email protected] \
    -H "Authorization: [lixApiKey]"

Returns:

{
  "hits": [
    {
      "name": "Alfie Lambert",
      "liProfileUrl": "alfie-lambert",
      "salesNavUrl": "https://linkedin.com/sales/ACwAAAXQSFkBI1hIhlJLnr04EL-0FSqe1SIXTEM,NAME,undefined",
    },
  ],
  "org": {
    "name": "Lix",
    "liProfileUrl": "https://linkedin.com/company/lix",
    "salesNavUrl": "https://linkedin.com/sales/company/1670390",
  },
  "domainInfo": {
    "isFreeEmailDomain": false
  }
}

Async Requests

Type: search.person.by-email

Lix AI API

Org Chart

Generate an org chart for any company.

Contact sales for more information

Nearest Decision maker

Send the API a LinkedIn or Crunchbase profile and this API will return the nearest Decision Maker.

Contact sales for more information

Seniority Classification

Pass the profile of a LinkedIn user and we will return the seniority of that person within their organisation.

Contact sales for more information

Job Function Classification

Pass the profile of a LinkedIn user and we will return the job function of that person within their organisation.

Contact sales for more information

Contact Information API

Run in Postman

Email from LinkedIn profile

Retrieve a Validated Email address for any LinkedIn user.

The contact API runs one validation check on the email address and returns the result. If the email address is valid, it will be returned in the response. If the email address is Probable, the response will contain a list of alternative email addresses.

A credit is only deducted if the email address is Valid. You can re-run the validation check on the email address multiple times until you receive a Valid response. We recommend doing this 5-10 times if the email is Probable.

HTTP Request

GET https://api.lix-it.com/v1/contact/email/by-linkedin

URL Parameters

Required parameters

Parameter Description
url The url-encoded URL of the LinkedIn profile you would like to get an email address for.
curl "https://api.lix-it.com/v1/contact/email/by-linkedin?url=https://www.linkedin.com/in/alfie-lambert" \
  -H "Authorization: lixApiKey"
import requests
url = "https://api.lix-it.com/v1/contact/email/by-linkedin?url=https://www.linkedin.com/in/alfie-lambert"
payload={}
headers = {
  'Authorization': lix_api_key
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.json())

The above command returns JSON structured like this: json { "email": "*****@lix-it.com", "status": "VALID", "alternatives": ["*****@lix-it.com"] }

Response Codes

HTTP Status Codes

Our API returns standard HTTP success or error status codes as listed below. For errors, we will also include extra information about what went wrong encoded in the response as JSON. The various HTTP status codes we might return are listed below.

CODE TITLE DESCRIPTION
200 Success The request was successful
400 Bad Request The request data has not been provided correctly
401 Unauthorized Your API key is not authorised to access this endpoint
402 Over quota Over plan quota on this endpoint. Please top-up your account or speak to sales to increase your quota.
400 Bad Request The request data has not been provided correctly. Please see error message for more information.
407 Proxy Authentication Required The 'viewer_id' parameter was not correctly set. Either it has not been connected to Lix, or the 'viewer_id' is incorrect.
404 Not found The endpoint does not exist
429 Too Many Requests The rate limit was exceeded
500 Internal Server Error An error occurred on the server. Should this error persist, please contact our technical team.
503 Service Unavailable The API is temporarily unavailable

Error types

All errors are returned in the form of JSON with a type and optional message.

Example error response:

   {
     "error": {
       "type": "params_invalid",
       "message": "profile_id is required"
     }
   }
Type Description
params_invalid Your parameters were not valid
unknown_record Record was not found
unknown_route URL was not valid
queued Lookup queued. Try this request again in a few minutes
rate_limit The request has been rate limited
api_error Internal API error
viewer_invalid the 'Viewer' was not found or does not have the correct permissions
daily_limit The daily limit for this endpoint has been reached