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:
- Node
- Python 3
- Go
- Javascript
- Java
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" }
Get LinkedIn Account
This endpoint retrieves LinkedIn accounts attached to your team.
HTTP Request
PUT https://api.lix-it.com/v1/account/linkedin/account
Query Parameters
Parameter | Description |
---|---|
viewer_id | The LinkedIn account ID to retrieve. |
curl -X GET "https://api.lix-it.com/v1/account/linkedin/account?viewer_id=alfie-lambert" \
-H "Authorization: lixApiKey
import requests
import json
url = "https://api.lix-it.com/v1/account/linkedin/account"
headers = {
'Authorization': lix_api_key
}
response = requests.request("GET", url, headers=headers)
print(response.json())
The above command returns JSON structured like this:
json { "viewer_id": "alfie-lambert", "numAvailableTokens": 10 }
Disambiguation 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.
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
LinkedIn People Search
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 },
},
}
LinkedIn Job Search
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"
}
]
}
LinkedIn Posts Search
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 },
},
}
LinkedIn Org Search
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 },
},
}
Sales Navigator Leads Search
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.
These filters support free text options. To use free text filters you need to leave id entry blank. For instance, person_titles=[,engineer]
.
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] . |
keywords | Search profile keywords. |
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"
}
}
Sales Navigator Accounts Search
This endpoint retrieves a single search page for a LinkedIn Sales Navigator account search.
HTTP Request
GET https://api.lix-it.com/v1/li/sales/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/sales/search/orgs?url=https%3A%2F%2Fwww.linkedin.com%2Fsales%2Fsearch%2Fcompany%3Fquery%3D(filters%253AList((type%253AREGION%252Cvalues%253AList((id%253A91000007%252Ctext%253AEMEA%252CselectionType%253AINCLUDED)))))%26sessionId%3DLmh342BVQAexs4xvMPn29g%253D%253D" \
-H "Authorization: lixApiKey"
import requests
import urllib.parse
linkedin_url = "https://www.linkedin.com/sales/search/company?query=(filters%3AList((type%3AREGION%2Cvalues%3AList((id%3A91000007%2Ctext%3AEMEA%2CselectionType%3AINCLUDED)))))&sessionId=Lmh342BVQAexs4xvMPn29g%3D%3D"
# encode the URL
linkedin_url = urllib.parse.quote(linkedin_url, safe='')
url = "https://api.lix-it.com/v1/li/sales/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": {
"people": [ Organisation ],
"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 (region); BING_GEO_POSTAL_CODE (postal code); 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
}
}
}
LinkedIn Recruiter Candidate Search
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 |
---|---|
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
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 |