curl -H "X-API-Key: $PARTICLE_API_KEY" \
"https://api.particle.pro/v1/entities/lookup?identifier=in%2Fsatyanadella%2Cmicrosoft.com"{
"results": [
{
"identifier": "<string>",
"match_count": 123,
"matches": [
{
"type": "person",
"company": {
"id": "<string>",
"name": "<string>",
"description": "<string>",
"domain": "<string>",
"image_mode": "AUTOMATIC",
"image_url": "<string>",
"slug": "<string>",
"ticker": "<string>"
},
"person": {
"id": "<string>",
"name": "<string>",
"description": "<string>",
"image_url": "<string>",
"slug": "<string>"
}
}
],
"platforms": [
"<string>"
]
}
]
}{
"detail": "Property foo is required but is missing.",
"error_code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"resolve": {
"message": "<string>",
"action": "<string>",
"endpoint": "<string>",
"method": "<string>",
"url": "<string>"
},
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}{
"detail": "Property foo is required but is missing.",
"error_code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"resolve": {
"message": "<string>",
"action": "<string>",
"endpoint": "<string>",
"method": "<string>",
"url": "<string>"
},
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}Look up people and companies by external identifier
Resolves external identifiers — LinkedIn slugs, social handles, company domains, stock tickers, SEC CIKs, Wikidata QIDs — to the people and companies that carry them. It is the reverse of GET /v1/people//external-links and GET /v1/companies//external-links. Pass a comma-separated identifier list (up to 100 per call); platform is optional, so a handle with no known source still resolves. A full profile URL works in place of a bare identifier and the platform is inferred from it, and the stored form is matched for you — pass satyanadella or the profile URL, not in/satyanadella.
Each result echoes the input identifier and carries a matches array, because an identifier is not unique to an entity: a LinkedIn profile claimed by two duplicate person records resolves to both, and match_count reports the total. Unresolved identifiers come back with an empty matches, so a bulk caller never has to reconcile a shorter response against a longer request. Correlate by the echoed identifier rather than by position, since duplicate identifiers collapse to one result.
Use GET /v1/entities/search instead when you have a name rather than an identifier, and GET /v1/podcasts/lookup or GET /v1/podcasts/episodes/lookup for podcast and episode identifiers.
curl -H "X-API-Key: $PARTICLE_API_KEY" \
"https://api.particle.pro/v1/entities/lookup?identifier=in%2Fsatyanadella%2Cmicrosoft.com"{
"results": [
{
"identifier": "<string>",
"match_count": 123,
"matches": [
{
"type": "person",
"company": {
"id": "<string>",
"name": "<string>",
"description": "<string>",
"domain": "<string>",
"image_mode": "AUTOMATIC",
"image_url": "<string>",
"slug": "<string>",
"ticker": "<string>"
},
"person": {
"id": "<string>",
"name": "<string>",
"description": "<string>",
"image_url": "<string>",
"slug": "<string>"
}
}
],
"platforms": [
"<string>"
]
}
]
}{
"detail": "Property foo is required but is missing.",
"error_code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"resolve": {
"message": "<string>",
"action": "<string>",
"endpoint": "<string>",
"method": "<string>",
"url": "<string>"
},
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}{
"detail": "Property foo is required but is missing.",
"error_code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"resolve": {
"message": "<string>",
"action": "<string>",
"endpoint": "<string>",
"method": "<string>",
"url": "<string>"
},
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}Authorizations
Pass your API key in the X-API-Key header (recommended).
Query Parameters
One or more external identifiers to resolve. Pass a comma-separated list to look up many at once (max 100 per call). A full profile URL works in place of a bare identifier and the platform is inferred from it. The identifier is echoed back exactly as supplied, not normalized.
1 - 100 elements["in/satyanadella", "microsoft.com"]
Restrict the lookup to one platform. Optional — omit it to match the identifier on any platform, which is what you want when you hold a handle but not its source. Accepts any platform reported on the external-links endpoints plus the company identifier namespaces 'domain', 'ticker', 'sec' (CIK) and 'wikidata' (QID).
"linkedin"
Restrict results to one kind of entity. Omit to search people and companies together.
person, company Response
OK
One result per unique input identifier, in request order. Duplicate identifiers in the request collapse to a single result.
Show child attributes
Show child attributes
Was this page helpful?