st.endorsePersonSkill
This action allows you to endorse a skill on the profile of a person who is your 1st-degree connection.
LinkedIn lets you endorse skills only of your 1st-degree connections. For anyone else, the action endorses nothing and returns
connectionNotFound.
The action never removes an endorsement. If you have already endorsed the skill, the action leaves it as it is and returns success.
To endorse every skill whose name matches one or more patterns, use st.doForSkills under st.retrievePersonSkills.
Constraints
⏺️ Root Start: allowed, when
personUrlandskillNameparameters are provided.
⬆️ Parent Actions: st.openPersonPage, st.doForSkills.
⬇️ Child Actions: N/A.
Parameters
{
"actionType": "st.endorsePersonSkill",
"personUrl": "https://www.linkedin.com/in/person1",
"skillName": "Project Management",
"label": "person1Skill"
}personUrl(required for root start, forbidden for parent start) – public or hashed LinkedIn URL of the person whose skill you want to endorse.skillName(required for root start and under st.openPersonPage, forbidden under st.doForSkills) – name of the skill to endorse, up to 200 characters. It must equal the skill's name on the person's profile; letter case and extra spaces are ignored. It is not a pattern. Skill names are shown as the profile owner entered them, in the owner's language, whatever your own LinkedIn language: a German profile listsProjektmanagement, notProject Management. Under st.doForSkills, the skill comes from the iteration.label(optional) – custom label for tracking this action in workflow completion.
The action searches the person's full skills list, not only the top skills shown on their profile page.
Each successful execution counts toward the stEndorsements limit, including one where the skill was already endorsed.
Result options
- Successful skill endorsement:
{
"actionType": "st.endorsePersonSkill",
"success": true,
"label": "person1Skill"
}label– included only if specified in the action parameters.
- Failed skill endorsement:
{
"actionType": "st.endorsePersonSkill",
"success": false,
"label": "person1Skill",
"error": {
"type": "skillNotFound",
"message": "The person has no skill with this name."
}
}label– included only if specified in the action parameters.error.type– enum with the following possible values:personNotFound– provided URL is not an existing LinkedIn person.connectionNotFound– person is not your 1st-degree connection, so LinkedIn doesn't let you endorse their skills.skillNotFound– person's profile has no skill with this name.endorsementUnavailable– person has the skill, but LinkedIn offers no way to endorse it, for example because they turned endorsements off.