You have a spreadsheet of profile URLs and you want names, titles and companies. The obvious loop — one lookup per row, as fast as the loop runs — is the single most reliable way to have an account restricted, and it is also slower than the alternative.
There is no batch call, and that is the honest answer
It is worth saying plainly, because every API in this space is asked for one: there is no endpoint here that takes fifty profile URLs and returns fifty profiles. One lookup is one request. Anybody promising otherwise over a real LinkedIn session is either queueing it for you and not saying so, or getting accounts restricted on your behalf.
So the loop is the right shape. What makes it safe is not avoiding it; it is the rate it runs at, and the fact that a restricted account costs you weeks while a slower run costs you an afternoon.
curl -X GET "https://makehybrid.com/linkedin/v2/$ACCOUNT_ID/users/$USER_ID" \ -H "X-API-KEY: $MAKEHYBRID_KEY"
Run that one first, against a profile you know exists. If it answers, the key and the account are really wired up, and every failure afterwards is about the request rather than the setup. It is the cheapest sanity check in the API.
Handle the misses as data
- Deleted and renamed profiles are normal in any list over a few months old.
- A private profile returns less, not nothing. Store what came back rather than discarding the row.
- Keep the failures in the same table as the successes, with the reason. A separate error log is a log nobody reads.
Spread a large list over hours rather than minutes, and spread it where the work is created. Queueing a thousand rows at nine o'clock and draining the queue as fast as it drains is the same burst, one layer down.
Questions people ask
Can I paste the list into a project room and ask an AI agent?
An AI agent of yours with MakeHybrid ticked can look the profiles up a handful at a time. Keep the list to tens rather than thousands: each reply has a limited number of tool steps, and the account's limits apply as they always do.
Where should the results go?
For a few rows, the room is fine. For a spreadsheet's worth, write the loop in code as above; a chat is the wrong shape for a table of a thousand rows.