Retrieving raw package data

Available from 9.2.2. This API retrieves raw package data, which contains information about all packages discovered on your computers. This information is retrieved from the Windows registry. Unlike in the UI, through this API you can retrieve all historical data that is stored in the database.

To obtain information about detected software use api/sam/v2/software_instances API.

Before you begin
  • An icon representing a user. You must have the View Raw Data permission to perform this task.
To improve performance, retrieve raw package data in chunks of 10 000 records.
  1. Retrieve the total number of available records.
    https://hostname:port/api/sam/raw_package_facts?token=token&countSwitch=2
    {"total":49999,"rows":[]}
  2. Retrieve only the first 10 000 records by using the limit parameter.
    https://hostname:port/api/sam/raw_package_facts?token=token&countSwitch=1&limit=10000&offset=0
  3. Retrieve the next 10 000 records. You omit the already retrieved records by using the offset parameter.
    https://hostname:port/api/sam/raw_package_facts?token=token&countSwitch=1&limit=10000&offset=10000
Note: Each API request must be authenticated with the token parameter. You can retrieve it by using REST API for retrieving authentication token. You can also log in to BigFix Inventory, hover over the User icon , and click Profile. Then, click Show token.
Table 1. Operation descriptions

The table consists of two columns and 15 rows. For the eleventh row there are two levels.

Operation details Description
Operation GET /api/sam/raw_package_facts
Purpose Returns raw package data.
HTTP method GET
Resource URI https://server_host_name:port_number/api/sam/raw_package_facts
URL link relation n/a
URI query parameters n/a
Request headers
Header
Accept-Language (optional)
Values
en-US (only English is supported)

Used to negotiate the language of the response. If this header is not specified, the content is returned in the server language.

Request payload n/a
Request Content-Type
  • application/json
Response headers
Header
Content-Type
Values
application/json

Specifies the content type of the response.

Header
Content-Language
Values
en-US, …

Specifies the language of the response content. If this header is not specified, the content is returned in the server language.

Response payload Package Fact element
Response Content-Type
  • application/json
Normal HTTP response codes
  • 200 – OK
Error HTTP response codes
  • 500 – “Bad Request” if a query parameter contains errors or is missing

Message body includes an error message with details.

Available columns

Table 2. Available columns
Column Description Displayed by default Type
computer_id Identifier of the computer as defined in BigFix Inventory. Numeric
description Description of the package. String
name Name of the package. String
version Version of the package. String
vendor Vendor of the package. String
valid_from Date and time when the package was reported for the first time. The time is specified in the GMT time zone. String
valid_to Date and time when the package was reported for the last time. The time is specified in the GMT time zone. String

Query parameters

You can use query parameters to narrow down the results of your search.
Table 3. Query parameters

The table consists of four columns and nine rows.

Parameter Description Required Value
columns[] Specify which columns to retrieve. If you do not specify this parameter, a set of default columns is retrieved. Example:
Retrieve the name and computer_id columns:
URL?columns[]=name&columns[]=computer_id
No String
order Specify how to sort the returned data. The default direction for sorting columns is ascending. If you want to specify a descending sort, append desc to the column name. Example:
Order by name descending:
URL?order[]=name desc
No String
limit Specify the number of rows to retrieve. If you omit this parameter, the limit is set according to the value of the raw_data_api_default_limit server setting, which by default is 100 000. No Numeric
offset Specify the number of rows to skip for retrieving results. You can use it together with the limit parameter to paginate results. Example:
Retrieve 50 records starting after record 150:
URL?limit=50&offset=150
No Numeric
token A unique user authentication identifier. You can view your token in the Profile preferences of BigFix InventoryLicense Metric Tool. Yes Alphanumeric
criteria Retrieve records which match specific conditions. The parameter should have the following structure, written on one line:
<criteria> ::= <left-brace> <boolean-operator><colon> <left-bracket> 
<criterion> [{ <comma> <criterion> }...] <right-bracket> <right-brace>
<boolean-operator> ::= "and" | "or"
<criterion> ::= <criteria> | <left-bracket> <column> <comma> <operator> <comma> <value> <right-bracket>
<column> ::= <json-string>
<operator> ::= <json-string>
<value> 	::= <json-array> | <json-string> | <json-numver> | <json-null>

For more information about operators, see Common connectors and operators.

Example: Retrieve package data from computer systems with ID greater than 10:
URL?criteria={ "and": [ ["computer_id", ">", "10"]]}
For columns that use the date and time values, such as Last Seen, you can retrieve data also for a instead of a specific date. To do so, use last or next as <operator>, and then specify the time value in the following convention: PxD/PxW/PxM/PxY, where x is a number in the 1-999 range, and D, W, M, or Y is a designator that represents days, weeks, months, or years respectively. For example, to retrieve computer systems that reported within last 7 days, use the following API request:
URL?criteria={"and":[["last_seen","last","P7D"]]}
criteria
Retrieve records which match specific conditions. The parameter should have the following structure, written on one line:
<criteria> ::= <left-brace> <boolean-operator><colon> <left-bracket> 
<criterion> [{ <comma> <criterion> }...] <right-bracket> <right-brace>
<boolean-operator> ::= "and" | "or"
<criterion> ::= <criteria> | <left-bracket> <column> <comma> <operator> <comma> <value> <right-bracket>
<column> ::= <json-string>
<operator> ::= <json-string>
<value> 	::= <json-array> | <json-string> | <json-numver> | <json-null>
Example: Retrieve package data from computer systems with ID greater than 10:
URL?criteria={ "and": [ ["computer_id", ">", "10"]]}
For columns that use the date and time values, such as Last Seen, you can retrieve data also for a period instead of a specific date. To do so, use last or next as <operator>, and then specify the time value in the following convention: PxD/PxW/PxM/PxY, where x is a number in the 1-999 range, and D, W, M, or Y is a designator that represents days, weeks, months, or years respectively. For example, to retrieve computer systems that reported within last 7 days, use the following API request:
URL?criteria={"and":[["last_seen","last","P7D"]]}

Example HTTP conversation

Request
GET api/sam/raw_package_facts
?token=7adc3efb175e2bc0f4484bdd2efca54a8fa04623
Host: localhost:9081 
Accept: application/json 
Accept-Language: en-US
Response header
HTTP/1.1 200 OK
Content-Type: application/json
Content-Language: en-US
Response body (JSON)
 {
  "package_property_id": 1,
  "computer_id": 3,
  "description": "{FA7394B8-CE65-4F9E-AC99-F372AD365424}",  
  "name": "SQL Server 2008 R2 Database Engine Services",
  "version": "10.50.1600.1",
  "vendor": "Microsoft Corporation",
  "valid_from": "2015-08-05T14:41:19Z",
  "valid_to": "9999-12-31T23:59:59Z" 
 }
 {
  "package_property_id": 1,
  "computer_id": 3,
  "description": "{0AECF03B-E9FC-4A17-999D-6641A2851B26}",
  "name": "BigFix Client",
  "version": "9.2.3.68",
  "vendor": "IBM Corp.",
  "valid_from": "2015-08-05T14:41:19Z",
  "valid_to": "9999-12-31T23:59:59Z"  
 }