HP PageWide Web Press Endpoints

The PrintBeat API contains a series of endpoints that apply only to the HP PageWide Web Presses.

These endpoints begin with /externalApi/pwp/  and allow you to collect report data for the PageWide presses in your organizations.

Many of these endpoints require parameters such as {reportId}, {filterSetId} and {downloadId}

To find {reportId} values you can query the GET /externalApi/pwp/v1/report/reportsMenu  endpoint which will return an array of reports as shown below:

[
    {
        "reportId": 1,
        "themeDisplayName": "Jobs",
        "reportDisplayName": "Job Summary",
        "menuThemeSortOrder": 1,
        "reportSortOrder": 1
    },
    {
        "reportId": 2,
        "themeDisplayName": "Jobs",
        "reportDisplayName": "Job KPIs",
        "menuThemeSortOrder": 1,
        "reportSortOrder": 2
    }
]

Each report in the array contains a reportId field which can be used for the {reportId} parameter field in other queries.

Additional information about a specific report can now be obtained through the Get Report Metadata call POST /externalApi/pwp/v1/report/{reportID}/metadata where {reportId} is replaced with the reportId property value from the report you wish to query (i.e. 1)

The request body must be a JSON array of filter objects. See the filters section below for full details on all supported filter types. At minimum, a PRESS_GUID filter must be included, other columns may optionally be specified if desired. If {filterSetId} is already known, the alternative endpoint may be used instead:
GET /externalApi/pwp/v1/report/{reportID}/data/{filterSetId}

Filter body example:

[
    {
       "columnName": "PRESS_GUID",
       "filterType": "dropdown",
       "inclusive": true,
       "filterValues": [
          "aaaaaaaa-7623-4ea5-80a1-aaaaaaaaaaaa",
          "bbbbbbbb-2a68-44a1-b00a-bbbbbbbbbbbb",
          "cccccccc-f3af-430d-9c1c-cccccccccccc"
       ]
  }
]

The response from the metadata call is shown below:

{
    "reportId": 1,
    "reportName": "Job Summary",
    "columnInfo": [
        {
            "columnName": "SUBMISSION_KEY",
            "columnDisplayName": "Submission Key",
            "filterType": "numeric",
            "filterValues": null
        },
        {
            "columnName": "JOB_COMPLETE_DATE",
            "columnDisplayName": "Job Complete Date",
            "filterType": "daily",
            "filterValues": [
                "Last 7 Days",
                "Last 14 Days",
                "Last 30 Days",
                "Month to Date",
                "Last Month",
                "Last 6 Months"
            ]
        },
        {
            "columnName": "JOB_TYPE_NAME",
            "columnDisplayName": "Job Type Name",
            "filterType": "dropdown",
            "filterValues": [
                "customer",
                "diagnostic"
            ]
        },
        {
            "columnName": "EXTERNAL_JOB_ID",
            "columnDisplayName": "External Job ID",
            "filterType": "wildcard",
            "filterValues": null
        },
        {
            "columnName": "DISPLAY_JOB_NAME",
            "columnDisplayName": "Display Job Name",
            "filterType": "wildcard",
            "filterValues": null
        },
        {
            "columnName": "JOB_SUBMISSION_ID",
            "columnDisplayName": "Job Submission ID",
            "filterType": "wildcard",
            "filterValues": null
        },
        {
            "columnName": "PAPER_TYPE_NAME",
            "columnDisplayName": "Paper Type Name",
            "filterType": "wildcard",
            "filterValues": null
        },
        {
            "columnName": "PAPER_PROFILE",
            "columnDisplayName": "Paper Profile",
            "filterType": "wildcard",
            "filterValues": null
        },
        {
            "columnName": "PRESS_PROFILE",
            "columnDisplayName": "Press Profile",
            "filterType": "wildcard",
            "filterValues": null
        },
        {
            "columnName": "JOB_COMPLETE_STATUS",
            "columnDisplayName": "Job Complete Status",
            "filterType": "dropdown",
            "filterValues": [
                "100% Completed",
                "Canceled",
                "Partially Completed"
            ]
        },
        {
            "columnName": "EXCESS_STARTS_FLAG",
            "columnDisplayName": "Excess Starts Flag",
            "filterType": "dropdown",
            "filterValues": [
                "true",
                "false"
            ]
        }
    ],
    "filterSetId": 38713,
    "filters": [
        {
            "columnName": "PRESS_GUID",
            "filterType": "dropdown",
            "inclusive": true,
            "filterValues": [
                "aaaaaaaa-7623-4ea5-80a1-aaaaaaaaaaaa",
                "bbbbbbbb-2a68-44a1-b00a-bbbbbbbbbbbb",
                "cccccccc-f3af-430d-9c1c-cccccccccccc"
            ]
        }
    ],
    "downloadOptions": [
        {
            "downloadId": "1",
            "downloadType": "Excel"
        }
    ]
}

This response contains {filterSetId} values that have been defined for the report as well as {downloadId} values which can be used in additional queries for this report.

In the example above you can download JSON data for this report using the endpoint GET /externalApi/pwp/v1/report/{reportID}/data/{filterSetId} using the following parameter values:

  • {reportId} = 1
  • {filterSetId} = 38713

File downloads (CSV, Excel, etc.) can be acquired using endpoint:
GET /externalApi/pwp/v1/report/{reportID}/download/{downloadId}/{filterSetId}

  • {downloadId} = 1

Filters

Filters are specified as a JSON array of filter objects in the request body of the metadata and report data endpoints.
Each unique combination of filters will generate a {filterSetId} which may be reused in subsequent calls in place of the full filter body.

There are four basic filter types: dropdown, numeric, wildcard, and date. Every filter object requires the following fields:

AttributeTypeDescription
columnNameStringThe name of the column this filter will be applied to.
filterTypeStringThe type of filter for the column.
inclusiveBooleanWhether or not the filter is inclusive or exclusive of the specified values.
filterValuesArrayThe list of values to be applied to the filter.

Dropdown type filters are used to filter columns by specific values described by the metadata {columnInfo} response. Example:

{
    "columnName": "JOB_TYPE_NAME",
    "filterType": "dropdown",
    "inclusive": true,
    "filterValues": [
        "customer"
    ]
}

Numeric type filters are used to filter on numeric columns. The filter values may be any integer. Example:

{
    "columnName": "SUBMISSION_KEY",
    "filterType": "numeric",
    "inclusive": true,
    "filterValues": [
        12344,
        12345,
    ]
}

Wildcard type filters are used to filter column values to a specific pattern. Provide a single pattern string; use % as a wildcard character. Pattern matching is case-insensitive. Example:

{
    "columnName": "EXTERNAL_JOB_ID",
    "filterType": "wildcard",
    "inclusive": true,
    "filterValues": [
        "Job_2026_01_%"
    ]
}

Date type filters may be used with relative and absolute date ranges. Allowed values for relative date ranges are described by the metadata {columnInfo} response. Example:

{
    "columnName": "JOB_COMPLETE_DATE",
    "filterType": "daily",
    "inclusive": true,
    "filterValues": [
        "Last 7 Days"
    ]
}

Absolute date ranges may be specified using two strings in YYYYMMDD format representing the start and end of the range (both inclusive). Pass null for the start date to indicate no lower bound, or null for the end date to indicate no upper bound. Example:

{
    "columnName": "JOB_COMPLETE_DATE",
    "filterType": "daily",
    "inclusive": true,
    "filterValues": [
        "20260401",
        "20260428",
    ]
}