Profile Edit API

People

Profile Edit API modifies the member's LinkedIn profile. You can use it to edit members' profile data by modifying the existing fields as well as adding and deleting data from the profile sections.

How to Perform a Profile Edit

You must use an access token to make an authenticated call on behalf of that specific user. Only existing profiles can be edited using this API, a new profile can be created by a user using https://www.linkedin.com/. The Profile Edit API uses the response headers documented in the Request and Response Headers section. A successful profile edit will return the response code 200 OK.

All basic profile fields will follow the sample request below. Keep in mind when you update a field, the entire value will update. For example if you are adding a firstName in another language, you will need to include the original values or else it will be deleted. If you want to delete the entire field, then you will pass in a empty string or array depending on the specified object type. Alternatively, you can also use the delete field method described below.

The complex fields will require calling the corresponding sub-resources. For more information, please click on the complex field you want to perform an action on.

POST
https://api.linkedin.com/v2/people/id={person ID}

Sample JSON request body to change all the values in the field:

{
  "patch": {
    "$set": {
      "FIELD": {
        "VALUE1": "value1",
        "VALUE2": "value2",
        "VALUE3": "value3"
      }
    }
  }
}

Sample Json to delete one or more profile Basic Fields. To delete entries within Complex Fields, please refer the specific Field page for more information. If you attempt to delete a field that is mandatory, the API will return a 422 Error Response.

{
  "patch": {
    "$delete": ["field1", "field2"]
  }
}

Usage Control

To access the Profile Edit APIs, you will need one of the following member permissions:

Access Control

Member Permission Description
w_fullprofile Edit your profile information
w_compliance Manage and delete your data including your profile, posts, invitations, and messages

Requirements

You must adhere to the following requirements when editing LinkedIn member profiles:

  • The user must request the change to their profile
  • The users change must be posted unaltered to the profile

MultiLocaleString Fields

The following fields are the object type MultiLocaleString, which represents a textual fields with values for multiple locales. See here for more description on this object type.

Field Name Description
address Localizable address that a member wants to display on the profile.
associations Localizable description of organizations and associations. Deprecated on favor of "organizations" and only used for DELETE.
contactInstructions DEPRECATED. Use "phoneNumbers" and "websites" instead. Localizable notes on how to contact the member.
firstName Localizable first name of a member.
headline Localizable headline of choosing to be put on the profile.
interests DEPRECATED. Use "selectedContactInterests" instead. Localizable write-up of interests that a member wants to display on the profile.
lastName Localizable last name of a member.
maidenName Localizable maiden name of a member.
phoneticFirstName Localizable phonetic representation of firstName. Only applicable for Japanese profiles.
phoneticLastName Localizable phonetic representation of lastName. Only applicable for Japanese profiles.
specialties Localizable description of specialties. Deprecated in favor of "skills" and only used for DELETE.

Sample JSON request body to edit address:

{
  "patch": {
    "$set": {
      "address": {
        "preferredLocale": {
          "country": "US",
          "language": "en"
        },
        "localized": {
          "en_US": "2029 Stierlin Ct, Mountain View, CA 94043"
        }
      }
    }
  }
}

MultiLocaleRichText Fields

The following fields are the object type MultiLocaleRichText, which represents a textual fields with values for multiple locales. See here for more description on this object type.

Field Name Description
legacyHonors Localizable description of honors and awards. Deprecated in favor of "honors" and only used for DELETE.
summary
Localizable summary of the profile.

Sample JSON request body to edit summary:

{
  "patch": {
    "$set": {
      "summary": {
        "preferredLocale": {
          "country": "US",
          "language": "en"
        },
        "localized": {
          "en_US": {
            "rawText": "Awesome summary of me."
          }
        }
      }
    }
  }
}

Complex Objects Order

The following fields are long arrays that determine the intra-section order of complex fields. Each long value represents an id of the complex object. If an id is placed before another id, the former will show up before the latter on linkedin.com. If you input an id that does not map to a complex object in its field, then the API will return an error.

Field Name Description
certificationsOrder
Certifications intra-section order.
coursesOrder
Courses intra-section order.
educationsOrder Educations intra-section order.
honorsOrder
Honors intra-section order.
imsOrder
IMs intra-section order.
languagesOrder.
Languages intra-section order.
organizationsOrder Organizations intra-section order.
patentsOrder
Patents intra-section order.
positionsOrder
Positions intra-section order.
projectsOrder
Projects intra-section order.
publicationsOrder
Publications intra-section order.
testScoresOrder
TestScores intra-section order.
volunteeringExperiencesOrder
Volunteering experiences intra-section order.

Sample JSON request body to edit educationOrder:

{
  "patch": {
    "$set": {
      "educationsOrder": [
          2601123,
          2663456
      ]
    }
  }
}

NOTE: The education ids listed above should be retrieved from the educations field of the Profile API.

Background Image

Edit the background image for a member. The member is required to have a Premium Profile. See Background Image Fields for a description of the fields available within this object.

Sample JSON request body to edit backgroundImage:

{
  "patch": {
    "backgroundImage": {
      "$set": {
        "cropInfo": {
          "x": 0,
          "width": 0,
          "y": 396,
          "height": 0
        },
        "pictureId": "urn:li:media:/AAEAAQAAAAAAA.jpg",
        "croppedPictureId": "urn:li:media:/AAEAAQAAAAAAA.jpg",
        "customUpload": true
      }
    }
  }
}

Note: Currently backgroundImage update does not work as you will need to provide a mediaUrn. We do not allow upload of media yet and are working on this for API usage. 

Please note $set is under backgroundImage. This is required for pictureInfo and backgroundImage. If you only update the cropInfo, you do not need to include the other fields under backgroundImage

If you update the pictureId to another media Urn, the previous media Urn will be autodeleted after a week. Best practice is to upload a new media urn and then do an upload instead of using previously uploaded ones.

The width and height field under cropInfo are required to be 0.

Birth Date

Edit the member's birth date: day, month and year. See here for more description on this object type.

Sample JSON request body to edit birthDate:

{
  "patch": {
    "$set": {
      "birthDate": {
        "day": 1,
        "month": 1,
        "year": 1974
      }
    }
  }
}

IMs

Edit the member's ims. See Im Fields for a description of the fields available within this object.

Sample request body to create an im:

{
  "patch": {
    "$set": {
      "ims": {
        "bobsmith-linkedin": {
          "provider": "GTalk",
          "id": "bobsmith-linkedin"
        }
      }
    }
  }
}

To create, update or delete an im, you will need to include all the other ims as this API edits the whole ims field instead of individual im.

You will need to make sure the value of the top value on an im object matches the id value in the same object. In addition, the provider needs to be one of the following enums in the Im Fields above. Lastly, you can have up to 3 ims at one time.

Industry ID

Edit the member's industry. Requires a standardized referenced industry URN.

Sample JSON request body to edit industryId:

{
  "patch": {
    "$set": {
      "industryId": "urn:li:industry:47"
    }
  }
}

Location

Edit the member's current location. See Location Fields for a description of the fields available within this object.

Sample JSON request body to edit location:

{
  "patch": {
    "$set": {
      "location": {
        "countryCode": "us",
        "postalCode": "94101",
        "standardizedLocationUrn": "urn:li:standardizedLocationKey:(us,94101)"
      }
    }
  }
}

Marital Status

Edit the member's marital status. It can be either:

  • SINGLE
  • MARRIED

Sample JSON request body to edit maritalStatus:

{
  "patch": {
    "$set": {
      "maritalStatus": "MARRIED"
    }
  }
}

Phone Numbers

Edit the member's phone numbers. See Phone Number Fields for a description of the fields available within this object.

Sample JSON request body to edit phoneNumbers:

{
  "patch": {
    "$set": {
      "phoneNumbers": [
        {
          "number": "123-444-5555",
          "type": "WORK"
        },
        {
          "number": "(222) 333-4444",
          "type": "HOME"
        }
      ]
    }
  }
}

Picture Info

Edit the member's profile photo.

Note: Currently pictureInfo update does not work using V2 APIs. You will need to use V1 Profile Photo update API till this functionality is available via V2 API

PictureInfo Object Fields

Field Name Sub-Field Name Type
cropInfo   The metadata of the cropped image.
  height Height represented in int.
  width Width represented in int.
  x X coordinate of upper-left corner of the cropped area (upper-left corner of image is 0). Represented in int.
  y Y coordinate of upper-left corner of the cropped area (upper-left corner of image is 0). Represented in int.
croppedImage  

Profile image cropped for display. Refer to the media gateway for more information.

masterImage   The original raw image uploaded by the member. This will not be used for display and will only be used for re-cropping purposes. Refer to the media gateway for more information.

Sample JSON request body to edit pictureInfo:

{
  "patch": {
    "pictureInfo": {
      "$set": {
        "croppedImage": "urn:li:media:/AAEAAQAAAAAAAABSAAAAJDI3Z.jpg",
        "masterImage": "urn:li:media:/AAEAAQAAAAAAAAA0AAAAJGRkY.jpg",
        "cropInfo": {
          "x": 0,
          "width": 200,
          "y": 0,
          "height": 200
        }
      }
    }
  }
}

Please note $set is under pictureInfo. This is required for pictureInfo and backgroundImage. If you only update the cropInfo, you do not need to include the other fields under pictureInfo

If you update the masterImage or croppedImage to another media Urn, the previous media Urn will be autodeleted after a week. Best practice is to upload a new media urn and then do an upload instead of using previously uploaded ones.

Selected Contact Interests

Edit the member's rich media summary. This field is an array of ContactInterests.

Sample JSON request body to edit selectedContactInterests:

{
  "patch": {
    "$set": {
      "selectedContactInterests": [
        {
          "predefinedInterest": "GRABBING_COFFEE"
        },
        {
          "predefinedInterest": "INVESTING"
        }
      ]
    }
  }
}

Summary Rich Media Associations

Edit the member's rich media summary. This field is an array of RichMediaAssociation.

Sample JSON request body to edit summaryRichMediaAssociations:

{
  "patch": {
    "$set": {
      "summaryRichMediaAssociations": [
        {
          "richMedia": "urn:li:richMedia:(urn:li:person:ABC123,88888)"
        },
        {
          "richMedia": "urn:li:richMedia:(urn:li:person:ABC123,9999)"
        }
      ]
    }
  }
}

Supported Locales

Edit the member's supported locales. These locales determine the translations of the profile the member chose to create. This field is an array of Locale.

Sample JSON request body to edit supportedLocales:

{
  "patch": {
    "$set": {
      "supportedLocales": [
        {
          "country": "US",
          "language": "en"
        }
      ]
    }
  }
}

Vanity Name

Edit the member's vanity name.  Vanity name is represented as a string and is used for the public profile URL (www.linkedin.com/in/{vanityName}).

Note: Your custom URL must contain 3-100 letters or numbers. Please do not use spaces, symbols, or special characters.

Sample JSON request body to edit vanityName:

{
  "patch": {
    "$set": {
      "vanityName": "bobsmith"
    }
  }
}

Volunteering Interests

Edit the member's volunteering interests. See Volunteering Interest Fields for a description of the fields available within this object.

Sample JSON request body to edit volunteeringInterests:

{
  "patch": {
    "$set": {
      "volunteeringInterests": {
        "supportedPredefinedCauses": [
          "humanitarianRelief",
          "politics",
          "socialServices"
        ]
      }
    }
  }
}

Websites

Edit the member's websites. This field is an array of Website.

Sample JSON request body to edit websites:

{
  "patch": {
    "$set": {
      "websites": [
        {
          "label": {
            "localized": {
              "en_US": "MY OTHER WEBSITE"
            },
            "preferredLocale": {
              "country": "US",
              "language": "en"
            }
          },
          "category": "OTHER",
          "url": {
            "localized": {
              "en_US": "http://www.linkedin-other.com"
            },
            "preferredLocale": {
              "country": "US",
              "language": "en"
            }
          }
        },
        {
          "category": "PERSONAL",
          "url": {
            "localized": {
              "en_US": "http://www.linkedin-personal.com"
            },
            "preferredLocale": {
              "country": "US",
              "language": "en"
            }
          }
        }
      ]
    }
  }
}