Data structure of the XING User Profile resource

XING aims to be a platform for business professionals, offering a platform through which supply meets demand. They seem to be quite good at it. Take a moment to review the services they’re offering and judge for yourself. I think of them mainly as an European competitor to LinkedIn® and they have an API too, which is in beta testing right now. Just request a beta account and you may get an invitation.

I’ve developed LiPS, a WordPress™ plugin which downloads your LinkedIn® profile data and I’m adding XING as an alternative professional network. The detail of the API documentation is not at the level of LinkedIn yet, but they have a working API and I got my profile data out of it using the oauth-php module.

This API, like the LinkedIn® API, has different resources, each of which can be accessed through an URI. Some of these appear to accept a filter, but both the URI and the filters are not fully documented yet. You’ll learn there’s an filter option when you review the Quick Start Guide. I was unable to find a description of the User Profile resource, so I decided to post my results in this blog.

The API call https://api.xing.com/v1/users/me will return a structure like the one below, represented in JSON format. This resource is protected and you’ll need an OAuth Access Token.

{
   "users":[
      {
         "instant_messaging_accounts":[
         ],
         "haves":"<Offering>",
         "professional_experience":{
            "awards":[
 
            ],
            "primary_company":{
               "url":"<company url>",
               "company_size":"1",
               "title":"Software Engineer",
               "end_date":null,
               "name":"ten Berge ICT",
               "career_level":"PROFESSIONAL_EXPERIENCED",
               "industry":"INFORMATION_TECHNOLOGY_AND_SERVICES",
               "description":"",
               "tag":"TENBERGEICT",
               "begin_date":"2012-01"
            },
            "non_primary_companies":[
               {
                  "url":null,
                  "company_size":null,
                  "title":"System Engineer",
                  "end_date":null,
                  "name":"<Company Name>",
                  "career_level":"PROFESSIONAL_EXPERIENCED",
                  "industry":"CIVIL_SERVICE",
                  "description":"<Job description>",
                  "tag":"<Company Tag>",
                  "begin_date":"2010-08"
               }
            ]
         },
         "badges":[
 
         ],
         "last_name":"ten Berge",
         "wants":<keywords>,
         "educational_background":{
            "qualifications":[
               "Red Hat Certified System Administrator (RHCSA)",
               "Prince II Foundation",
               "nCipher Certified System Engineer",
               "Foundation Certificate in IT Service Management"
            ],
            "schools":[
               {
                  "subject":"Hogere Informatica",
                  "end_date":"2009-05",
                  "name":"Christelijke Hogeschool Windesheim",
                  "degree":"B\/ICT",
                  "notes":null,
                  "begin_date":"2005-08"
               }
            ]
         },
         "time_zone":{
            "name":"Europe\/Amsterdam",
            "utc_offset":2
         },
         "active_email":"<email address>",
         "organisation_member":null,
         "first_name":"Bas",
         "photo_urls":{
            "large":"https:\/\/m1.xing.com\/img\/n\/nobody_m.140x185.jpg",
            "medium_thumb":"https:\/\/m1.xing.com\/img\/n\/nobody_m.57x75.jpg",
            "thumb":"https:\/\/m1.xing.com\/img\/n\/nobody_m.30x40.jpg",
            "mini_thumb":"https:\/\/m1.xing.com\/img\/n\/nobody_m.18x24.jpg",
            "maxi_thumb":"https:\/\/m1.xing.com\/img\/n\/nobody_m.70x93.jpg"
         },
         "gender":"m",
         "id":"<user id>",
         "page_name":"Bas_tenBerge",
         "languages":{
            "en":"GOOD",
            "nl":null,
            "de":"BASIC"
         },
         "birth_date":{
            "year":null,
            "month":null,
            "day":null
         },
         "interests":null,
         "display_name":"Bas ten Berge",
         "premium_services":[
 
         ],
         "permalink":"https:\/\/www.xing.com\/profile\/Bas_tenBerge",
         "business_address":{
            "province":null,
            "country":"NL",
            "zip_code":null,
            "mobile_phone":null,
            "email":null,
            "street":null,
            "fax":null,
            "city":"Zwolle",
            "phone":null
         },
         "web_profiles":{
            "other":[
               "http:\/\/nl.linkedin.com\/in\/bastb"
            ],
            "blog":[
               "http:\/\/www.tenberge-ict.nl\/blog"
            ]
         },
         "private_address":{
            "province":null,
            "country":null,
            "zip_code":null,
            "mobile_phone":null,
            "email":"<email address>",
            "street":null,
            "fax":null,
            "city":null,
            "phone":null
         }
      }
   ]
}

First things first, I think requesting account details using me instead of an userid is a developer friendly choice.

Obviously I’ve modified the value of some fields. Don’t depend on the structure documented here as I can expect this structure is subject to change.

As usual, feedback is very likely to be appreciated.

Update I got feedback in the XING developers forum on xing.com. The API documentation is fairly complete, it has an overview page which shows the methods and a detailed page per method. That detailed page has an OAuth test console, showing the full structure of the data returned in XML or JSON format.

2 thoughts on “Data structure of the XING User Profile resource”

  1. This section outlines the fields in the normalized profile structure. The Availability column shows whether or not all providers include the field in their profile data responses.

Leave a Reply

Your email address will not be published. Required fields are marked *