Bad at API syntax - How to get site name from a computer's UDID?

New Contributor III

Hi all.

I am still struggling so hard with API and bash syntax, due to lack of training. πŸ˜•

As I have a time-sensitive and crucial task to fulfill that does not leave so much time left for trial and error, could someone hint me how to get a site name (and define it as variable $site) via the Mac's UDID through API?

What would the curl call (and the formatting) need to look like?

Thanks a million! πŸ™‚



Contributor II

This work for you?

curl -sku "apiUser:password"<UDID here>/subset/general -X GET -H "Accept: application/xml" | xpath "string(//site/name)"

New Contributor III

Sorry, with that, I get:
Query didn't return a nodeset .

Contributor II

And it didn't return the site? You can silence that message as follows:

curl -sku "apiUser:password"<UDID here>/subset/general -X GET -H "Accept: application/xml" | xpath "string(//site/name)" 2>/dev/null

Legendary Contributor II

Try it this way. If there is a Site assigned to the Mac or not, it should return something. Even if one is not assigned it returns a string of "None"

curl -sku "apiUser:password"<UDID here>/subset/general -X GET -H "Accept: application/xml" | xpath '/computer/general/site/name/text()'

New Contributor II

These require that the device is checking in, correct? If a device has not checked in or updated inventory since this is in place, is it pulling from information currently in the DB or only after it has responded regularly?