# Product installs

Retrieve a list of technologies (and corresponding details) which a company has been detected to have used or 'installed'.

It's also possible to specify what fields from the API should be returned. By default, only some fields are returned.

Endpoint: POST /data-api/v1/company/installs
Security: authorization

## Request fields (application/json):

  - `fields` (array)
    List of fields to be selected.

  - `filters` (object, required)
    Filter Product Installs by various criteria. Must provide either company_id OR company_ids, but not both.
    Example: {"company_id":"1698C53EBC888758570396E0334965C1","country_codes":{"ids":["US"],"inclusion_method":"ANY_PRESENT"},"product_attributes":{"ids":[222],"inclusion_method":"ANY_PRESENT"},"product_categories…

  - `filters.company_id` (any)
    A unique hexadecimal identifier for the desired field.
    Example: 1698C53EBC888758570396E0334965C1

  - `filters.company_ids` (array)
    Array of company IDs

  - `filters.country_codes` (object)
    Inclusion filter object (using string names as IDs)
    Example: {"ids":["CA","US"],"inclusion_method":"ANY_PRESENT"}

  - `filters.country_codes.ids` (array, required)
    Country Codes

  - `filters.country_codes.inclusion_method` (string, required)
    Inclusion method for just ANY_PRESENT or NONE_PRESENT
    Enum: "ANY_PRESENT", "NONE_PRESENT"

  - `filters.product_attributes` (object)
    Filter by Product Attribute IDs
    Example: {"ids":[16994],"inclusion_method":"ANY_PRESENT"}

  - `filters.product_attributes.ids` (array, required)
    Numeric IDs

  - `filters.product_categories` (object)
    Filter by Product Category IDs
    Example: {"ids":["1698C53EBC888758570396E0334965C1"],"inclusion_method":"ANY_PRESENT"}

  - `filters.product_categories.ids` (array, required)
    Hex Encoded IDs

  - `filters.products` (object)
    Filter by Product IDs
    Example: {"ids":[16994],"inclusion_method":"ANY_PRESENT"}

  - `filters.vendors` (object)
    Filter by Vendor IDs
    Example: {"ids":[16994],"inclusion_method":"ANY_PRESENT"}

  - `limit` (integer)
    The number of records to return in the request.

  - `offset` (integer)
    Used for paginating records.

  - `sorts` (array)

  - `sorts.direction` (string, required)
    Sort direction
    Enum: "ASC", "DESC"

  - `sorts.field` (string, required)
    Enum: "product_id", "product_first_verified_date", "product_last_verified_date", "product_intensity", "vendor_id"

## Response 200 fields (application/json):

  - `count` (integer)
    The number of installs at the company fitting the criteria.

  - `data` (array)

  - `data.product_id` (integer)

  - `data.product_name` (string)

## Response 401 fields (application/json):

  - `errors` (array)

  - `errors.detail` (string, required)
    Example: The token provided is not valid

  - `errors.source` (string)

  - `errors.title` (string, required)
    Example: Unauthorized

## Response 404 fields (application/json):

  - `errors` (array)

  - `errors.detail` (null, required)

  - `errors.source` (null)

  - `errors.title` (string, required)
    Example: Not Found

## Response 422 fields (application/json):

  - `errors` (array, required)

  - `errors.detail` (string, required)
    Example: null value where string expected

  - `errors.source` (object, required)

  - `errors.source.pointer` (string, required)
    Example: /data/attributes/petName

  - `errors.title` (string, required)
    Example: Invalid value

