Docs / Profile
update_my_profile
Read, preview a change to, or change your own profile.
This action can change or spend something, and when it does it happens right away. Read “Good to know” first.
What you give it
| Input | What it is | Where to get it |
|---|---|---|
connectionIdoptional | A connection id. Whose profile to edit: the LinkedIn account id from list_linkedin_accounts. May be omitted only when the setup has exactly one live sender. | Run list_linkedin_accounts and use accounts[].id from its answer.15 more places to get it
|
headlineoptional | Text, up to 220 characters. New headline — the line under the name (max 220 characters). | You write it. |
aboutoptional | Text, up to 2600 characters. New About section (max 2600 characters). Replaces the whole section. | You write it. |
locationoptional | Text, up to 120 characters. New profile location as a place name, e.g. "Austin, Texas". Matched to a LinkedIn place — the preview shows the match. | You write it. |
locationIdoptional | A search filter id. An exact LinkedIn place id, taken from locationOptions in a preview. Overrides location. | run lookup_search_ids with type LOCATION, and use matches[].id from its answer. |
postalCodeoptional | Text. 5-digit postal code to go with the location (optional). | You write it. |
websiteLinkoptional | A group of fields. The link shown near the top of the profile.What goes inside
| You write it. |
experienceoptional | A group of fields. Add or edit ONE experience entry.What goes inside
| You write it. |
educationoptional | A group of fields. Add or edit ONE education entry.What goes inside
| You write it. |
addSkillsoptional | A list (text, up to 80 characters), up to 20. Skills to ADD to the profile, by name (up to 20 per call). Skills already on the profile are kept; removing a skill is not possible here. | You write it. |
pictureUrloptional | A link. New PROFILE picture: a public https:// link straight to a JPEG or PNG file (max 8MB). LinkedIn applies its default crop. | You write it. |
coverPictureUrloptional | A link. New COVER (banner) picture: a public https:// link straight to a JPEG or PNG file (max 8MB). LinkedIn's banner is 1584×396. | You write it. |
openToWorkoptional | A group of fields. Set the "open to work" job preferences. It cannot be turned off from here.What goes inside
| You write it. |
confirmoptional | True or false. false (default) = preview only, nothing changes. true = change the profile now (only after the user said yes). | You write it. |
Call it
curl -X POST https://api.heyreagent.com/v1/actions/update_my_profile \
-H "Authorization: Bearer YOUR_KEY" \
-H "content-type: application/json" \
-d '{}'The same call in JavaScript
const response = await fetch("https://api.heyreagent.com/v1/actions/update_my_profile", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_KEY",
"content-type": "application/json",
},
body: JSON.stringify({}),
});
const answer = await response.json();
console.log(answer);The same call in Python
import requests
response = requests.post(
"https://api.heyreagent.com/v1/actions/update_my_profile",
headers={"Authorization": "Bearer YOUR_KEY"},
json={},
)
print(response.json())The same call in n8n
Add an HTTP Request node and fill it in like this:
| Method | POST |
| URL | https://api.heyreagent.com/v1/actions/update_my_profile |
| Send Headers | On. Name Authorization, Value Bearer YOUR_KEY |
| Send Body | On. Body Content Type JSON, Specify Body Using JSON, then paste the body below |
{}Put your own key where it says YOUR_KEY. New here? Start with your first call.
What you get back
When it worked, the answer is { "ok": true, "result": { … } }. Inside result:
action | |
account | |
message | |
profileUrl | |
experience | |
education | |
locationOptions | |
changes |
A field that does not apply to an answer is left out, or is null.
When it did not work, the answer is { "ok": false, "error": "…", "message": "…" }. What each error means.
Good to know
- What comes back depends on action. Called with no field: "current_profile", with profileUrl, experience[].id and education[].id. With a field and confirm false: "preview", with changes, and locationOptions when the place name matched more than one place. With confirm true: "updated".
- To edit an existing experience or education entry pass its id; without one a new entry is added.
- location is a place name the action looks up itself; locationId overrides it.
In Claude or ChatGPT
Once connected, ask in your own words. The assistant sees this action as a tool with the same name, update_my_profile, and the same inputs.