Job Results History

This service allows onboarded customers to Poll our API for historical test results. 

By default, result data is provided in a standard format. 

Maximum permitted polling is 20 minutes, we recommend you only poll in 30-60 minutes intervals.

A UTC date/time is specified in the endpoint call. 


This will return a paginated list of Result Summaries.

Testing: GET https://cat-api.hill-laboratories.com/client/api/v4/results

Production: GET https://api.hill-laboratories.com/client/api/v4/results

Header NameValue
Content-Typeapplication/json
Acceptapplication/json
AuthorizationBearer <Bearer Token>
Accept-Encodinggzip, deflate, br
  • Date Range Filtering: GET https://api.hill-laboratories.com/client/api/v4/results?dateFrom=2023-07-03T12:44:25Z&dateTo=2023-07-04T12:44:25Z&limit=5
  • Filter by Order ID: GET https://api.hill-aboratories.com/client/api/v4/results?orderId=123456
NameDescription
dateFrom & dateToFilter the results returned using a date range of the result’s reported date.Both must be supplied to enable date range filtering.Dates are in ISO-8601 format, expected in UCT time (e.g. 2023-07-03T12:44:25Z).The following valifation rules apply:dateFrom must be less than dateTodateFrom must be less than the request timedateTo must be less than or equal to the request timedateTo cannot be more than 1 year greater than dateFrom
orderIdFilters the results returned by a specific orderId.
finalOnlyFilters to only return final results.
clientReferenceFilters the results returned by the Order’s Client Reference.
clientOrderNumberFilters the results returned by the Order’s Client Order Number.
additionalClientReferenceFilters the results returned by the Order’s Additional Client Reference.
quoteNumberFilters the results by the Order’s Quote Number.
limitUsed for pagination, the maximum number of result summary to return per page.Default is 100. Maximum is 200.
offsetUsed for pagination, the number of items to skip.Default is 0.
Field NameDescription
paginationObject containing pagination details for the results
resultsArray of result objects containing information about each result

Each “pagination” object has the following fields:

Field NameDescription
limitNumber of results returned per page
offsetOffset for pagination
totalTotal number of results available (before applying pagination, i.e. can be > 200)
nextLink to the next page of results (null if there is no next page)
prevLink to the previous page of results (null if there is no prev page)

Each “results” object has the following fields:

Field NameDescription
resultIdUnique identifier for the result
orderIdUnique identifier for the order
labJobNumberUnique identifier for the lab job
numberOfSamplesNumber of samples associated with the result
isFinalBoolean indicating if the result is final
clientReferenceReference string for the client
additionalClientReferenceAdditional reference string for the client
quoteNumberQuote number associated with the order
clientOrderNumberClient’s order number
primaryPrimary contact name associated with the order
submitterSubmitter contact name associated with the order
chargeToCharge to information associated with the order
clientClient information associated with the order
resultCreatedAtDate and time when the result was created
jobRegisteredAtDate and time when the job was registered
Example Job Polling Result
{
  "pagination": {
    "limit": 5,
    "offset": 0,
    "total": 500,
    "next": "https://api.hill-laboratories.com/client/api/v4/results?dateFrom=2023-07-03T12:44:25Z&dateTo=2023-07-04T12:44:25Z&offset=1&limit=5",
    "prev": null
  },
  "results": [
    {
      "resultId": "6c8b519b-7b00-470b-86b8-06543",
      "orderId": 123456,
      "labJobNumber": 123456,
      "numberOfSamples": 1,
      "isFinal": true,
      "clientReference": "Client Reference",
      "additionalClientReference": "Additional Client Reference",
      "quoteNumber": 123455,
      "clientOrderNumber": "Client Order Number",
      "primary": "Primary Contact",
      "submitter": "Submitter",
      "chargeTo": "Charge to",
      "client": "Client",
      "resultCreatedAt": "2023-07-03T13:36:44Z",
      "jobRegisteredAt": "2023-07-01T13:36:44Z"
    },
    {
      "resultId": "2e3d29b3-1c5c-4147-aa76-e59ccddd4572",
      "orderId": 123456,
      "labJobNumber": 123456,
      "numberOfSamples": 5,
      "isFinal": true,
      "clientReference": "Client Reference",
      "additionalClientReference": "Additional Client Reference",
      "quoteNumber": 123455,
      "clientOrderNumber": "Client Order Number",
      "primary": "Primary Contact",
      "submitter": "Submitter",
      "chargeTo": "Charge to",
      "client": "Client",
      "resultCreatedAt": "2023-07-03T13:11:44Z",
      "jobRegisteredAt": "2023-07-01T13:36:44Z"
    },
    {
      "resultId": "7bf91e39-45ca-46ec-9f91-b016e30dd265",
      "orderId": 123456,
      "labJobNumber": 123456,
      "numberOfSamples": 8,
      "isFinal": false,
      "clientReference": "Client Reference",
      "additionalClientReference": "Additional Client Reference",
      "quoteNumber": 123455,
      "clientOrderNumber": "Client Order Number",
      "primary": "Primary Contact",
      "submitter": "Submitter",
      "chargeTo": "Charge to",
      "client": "Client",
      "resultCreatedAt": "2023-07-03T13:09:44Z",
      "jobRegisteredAt": "2023-07-01T13:36:44Z"
    },
    {
      "resultId": "4bfb9abf-7516-434e-bbaa-9cce637d6ed7",
      "orderId": 123456,
      "labJobNumber": 123456,
      "numberOfSamples": 1,
      "isFinal": true,
      "clientReference": "Client Reference",
      "additionalClientReference": "Additional Client Reference",
      "quoteNumber": 123455,
      "clientOrderNumber": "Client Order Number",
      "primary": "Primary Contact",
      "submitter": "Submitter",
      "chargeTo": "Charge to",
      "client": "Client",
      "resultCreatedAt": "2023-07-03T13:02:44Z",
      "jobRegisteredAt": "2023-07-01T13:36:44Z"
    },
    {
      "resultId": "93c92aaa-5906-43b5-8488-47896274312f",
      "orderId": 123456,
      "labJobNumber": 123456,
      "numberOfSamples": 9,
      "isFinal": true,
      "clientReference": "Client Reference",
      "additionalClientReference": "Additional Client Reference",
      "quoteNumber": 123455,
      "clientOrderNumber": "Client Order Number",
      "primary": "Primary Contact",
      "submitter": "Submitter",
      "chargeTo": "Charge to",
      "client": "Client",
      "resultCreatedAt": "2023-07-03T12:50:44Z",
      "jobRegisteredAt": "2023-07-01T13:36:44Z"
    }
  ]
}

This will return the latest detailed results for a job.

Testing:  GET https://cat-api.hill-laboratories.com/client/api/v4/jobs/{labJobNumber}/latest-result

Production: GET https://api.hill-laboratories.com/client/api/v4/jobs/{labJobNumber}/latest-result

Header NameValue
Content-Typeapplication/json
Acceptapplication/json
AuthorizationBearer <Bearer Token>
Accept-Encodinggzip, deflate, br
  • Get the latest result for Job 123456: GET https://api.hill-laboratories.com/client/api/v4/jobs/123456/latest-result
Field NameDescription
resultIdUnique identifier for the result
orderIdUnique identifier for the order
labJobNumberUnique identifier for the lab job
isFinalBoolean indicating if the result is final
jobReceivedAtDate and time when the job was received
jobRegisteredAtDate and time when the job was registered
jobFinishedAtDate and time when the job was finished
resultCreatedAtDate and time when the result was created
clientReferenceReference string for the client
additionalClientReferenceAdditional reference string for the client
quoteNumberQuote number associated with the order
clientOrderNumberClient’s order number
orderReferencesArray of custom order reference objects
contactsArray of contact objects related to the order
addressesArray of address objects related to the order
notesNotes associated with the job/order
samplesArray of sample objects related to the order
analyticalTestDefinitionsArray of analytical test definition objects

Each “orderReferences” object has the following fields:

Field NameDescription
nameName of the custom reference
valueValue of the custom reference

Each “contacts” object has the following fields:

Field NameDescription
hillLabsContactIdThe unique ID for the contact
nameName of the contact
emailEmail address of the contact
orderRolesArray of order roles associated with the contact

Each “addresses” object has the following fields:

Field NameDescription
recipientRecipient name (nullable)
address1Address line 1
address2Address line 2
cityCity
regionRegion or state (nullable)
countryCountry
postCodePostal code
orderRolesArray of order roles associated with the address (roles are “INVOICE” or “DELIVERY”)

Each “samples” object has the following fields:

Field NameDescription
nameSample name
sequenceSequence number of the sample
sampleTypeObject containing sample type information
locationObject containing location information
containersArray of container objects related to the sample
analyticalTestsArray of analytical test objects related to sample
testResultsArray of test result objects related to sample

Each “sampleType” object has the following fields:

Field NameDescription
sampleTypeCodeSample type code
sampleTypeNameSample type name

Each “location” object has the following fields:

Field NameDescription
intersectArray of objects containing latitude and longitude coordinates
nameName of the location (nullable)

Each “containers” object has the following fields:

Field NameDescription
barcodeObject containing container barcode details

Each “barcode” object has the following fields:

Field NameDescription
valueValue of the container barcode
typeType of the container barcode (e.g. LINEAR)

Each “analyticalTests” object has the following fields:

Field NameDescription
codeCode of the analytical test
nameName of the analytical test

Each “testResults” object has the following fields:

Field NameDescription
statusStatus of the test result (e.g. IN_PROGRESS, COMPLETE)
completedAtDate and time when the test was completed
measurandCodeCode of the measurand (analyte)
measurandNameName of the measurand (analyte)
resultObject containing test result details

Each “result” object has the following fields:

Field NameDescription
unitOfMeasureUnit of measurement for the result
detectionLimitDetection limit of the result
formattedDetectionLimitFormatted detection limit of the result
upperLimitUpper limit of the result
rangeIndicatorIndicator if the result is above or below the limit
numericResultNumeric value of the result
formattedResultFormatted representation of the result
Example Job Polling Result
{
  "resultId": "6c8b519b-7b00-470b-86b8-06543",
  "orderId": 123456,
  "labJobNumber": 123456,
  "isFinal": true,
  "jobReceivedAt": "2023-07-20T03:04:05.412000+00:00",
  "jobRegisteredAt": "2023-07-20T03:05:36.787000+00:00",
  "jobFinishedAt": "2023-07-20T04:00:01.454000+00:00",
  "resultCreatedAt": "2023-07-20T20:05:43.873+00:00",
  "clientReference": "Example Client Reference",
  "additionalClientReference": "Example  Client Reference",
  "quoteNumber": 123455,
  "clientOrderNumber": "Example Client Order Number",
  "orderReferences": [
    {
      "name": "Example Custom Reference 1",
      "value": "Reference Value"
    },
    {
      "name": "Example Custom Reference 2",
      "value": "Reference Value"
    }
  ],
  "contacts": [
    {
      "hillLabsContactId": "0e529040-52d4-4878-85d1-4d503b4f9f24",
      "name": "Test",
      "orderRoles": [
        "CHARGE_TO",
        "CLIENT"
      ]
    },
    {
      "hillLabsContactId": "e3cb05ec-a088-4f9b-b50f-510c5426cf47",
      "name": "Test",
      "email": "testemail@hill-labs.co.nz",
      "orderRoles": [
        "PRIMARY",
        "SUBMITTER"
      ]
    }
  ],
  "addresses": [
    {
      "recipient": null,
      "address1": "28 Duke Street",
      "address2": "Frankton",
      "city": "Hamilton",
      "region": "",
      "country": "New Zealand",
      "postCode": "3204",
      "orderRoles": [
        "INVOICE"
      ]
    }
  ],
  "notes": "Some notes for the job/order",
  "samples": [
    {
      "name": "Sample 1",
      "sequence": 1,
      "sampleType": {
        "sampleTypeCode": "HoneyD",
        "sampleTypeName": "Honey"
      },
      "location": {
        "intersect": [
          {
            "longitude": 168.407300001865,
            "latitude": -46.0494999997713
          }
        ],
        "name": "Location name"
      },
      "containers": [
        {
          "barcode": {
            "value": "331001455044",
            "type": "LINEAR"
          }
        }
      ],
      "analyticalTests": [
        {
          "code": "Honey3in1"
        },
        {
          "code": "Honey_Forecast_withNPA"
        }
      ],
      "testResults": [
        {
          "status": "COMPLETE",
          "completedAt": "2023-07-20T03:56:53.194Z",
          "measurandCode": "Fmgo_20_max_weeks",
          "measurandName": "Forecasted Weeks to Maximum Methylglyoxal at 20°C",
          "result": {
            "unitOfMeasure": "weeks",
            "detectionLimit": 1,
            "formattedDetectionLimit": "1",
            "upperLimit": 104,
            "rangeIndicator": "ABOVE_UPPER_LIMIT",
            "numericResult": 214.428571428571,
            "formattedResult": "> 104"
          }
        },
        {
          "status": "COMPLETE",
          "completedAt": "2023-07-20T03:56:53.236Z",
          "measurandCode": "Fmgo_27_max_weeks",
          "measurandName": "Forecasted Weeks to Maximum Methylglyoxal at 27°C",
          "result": {
            "unitOfMeasure": "weeks",
            "detectionLimit": 1,
            "formattedDetectionLimit": "1",
            "upperLimit": 104,
            "rangeIndicator": "BETWEEN_LIMITS",
            "numericResult": 82.7142857142857,
            "formattedResult": "83"
          }
        },
        {
          "status": "COMPLETE",
          "completedAt": "2023-07-20T03:09:50.926Z",
          "measurandCode": "mgo_mgkg_ar_calc",
          "measurandName": "Methylglyoxal (MGO)",
          "result": {
            "unitOfMeasure": "mg/kg",
            "detectionLimit": 5,
            "formattedDetectionLimit": "5",
            "rangeIndicator": "BETWEEN_LIMITS",
            "numericResult": 658.22033149,
            "formattedResult": "658"
          }
        }
      ]
    }
  ],
  "analyticalTestDefinitions": [
    {
      "code": "Honey3in1",
      "name": "3 in 1 Honey Suite"
    },
    {
      "code": "Honey_Forecast_withNPA",
      "name": "Honey Forecast with NPA"
    }
  ]
}

This will return a result by its Result ID. This is useful for retrieving previous results that have been superseded.

Testing: GET https://cat-api.hill-laboratories.com/client/api/v4/result/{resultId}

Production: GET https://api.hill-laboratories.com/client/api/v4/result/{resultId}

Header NameValue
Content-Typeapplication/json
Acceptapplication/json
AuthorizationBearer <Bearer Token>
Accept-Encodinggzip, deflate, br
  • Get the latest result for Job 123456: GET https://api.hill-laboratories.com/client/api/v4/results/6c8b519b-7b00-470b-86b8-06543

Same as the above

Example Job Polling Result
{
  "resultId": "6c8b519b-7b00-470b-86b8-06543",
  "orderId": 123456,
  "labJobNumber": 123456,
  "isFinal": true,
  "jobReceivedAt": "2023-07-20T03:04:05.412000+00:00",
  "jobRegisteredAt": "2023-07-20T03:05:36.787000+00:00",
  "jobFinishedAt": "2023-07-20T04:00:01.454000+00:00",
  "resultCreatedAt": "2023-07-20T20:05:43.873+00:00",
  "clientReference": "Client Reference",
  "additionalClientReference": "Client Reference",
  "quoteNumber": 123455,
  "clientOrderNumber": "Client Order Number",
  "orderReferences": [
    {
      "name": "Example Custom Reference 1",
      "value": "Reference Value"
    },
    {
      "name": "Example Custom Reference 2",
      "value": "Reference Value"
    }
  ],
  "contacts": [
    {
      "hillLabsContactId": "0e529040-52d4-4878-85d1-4d503b4f9f24",
      "name": "Test",
      "orderRoles": [
        "CHARGE_TO",
        "CLIENT"
      ]
    },
    {
      "hillLabsContactId": "e3cb05ec-a088-4f9b-b50f-510c5426cf47",
      "name": "Test",
      "email": "jon.harris@hill-labs.co.nz",
      "orderRoles": [
        "PRIMARY",
        "SUBMITTER"
      ]
    }
  ],
  "addresses": [
    {
      "recipient": null,
      "address1": "28 Duke Street",
      "address2": "Frankton",
      "city": "Hamilton",
      "region": "",
      "country": "New Zealand",
      "postCode": "3204",
      "orderRoles": [
        "INVOICE"
      ]
    }
  ],
  "notes": "Some notes for the job/order",
  "samples": [
    {
      "name": "Sample 1",
      "sequence": 1,
      "sampleType": {
        "sampleTypeCode": "HoneyD",
        "sampleTypeName": "Honey"
      },
      "location": {
        "intersect": [
          {
            "longitude":,
            "latitude":
          }
        ],
        "name": "Location name"
      },
      "containers": [
        {
          "barcode": {
            "value": "331001455044",
            "type": "LINEAR"
          }
        }
      ],
      "analyticalTests": [
        {
          "code": "Honey3in1"
        },
        {
          "code": "Honey_Forecast_withNPA"
        }
      ],
      "testResults": [
        {
          "status": "COMPLETE",
          "completedAt": "2023-07-20T03:56:53.194Z",
          "measurandCode": "Fmgo_20_max_weeks",
          "measurandName": "Forecasted Weeks to Maximum Methylglyoxal at 20°C",
          "result": {
            "unitOfMeasure": "weeks",
            "detectionLimit": 1,
            "formattedDetectionLimit": "1",
            "upperLimit": 104,
            "rangeIndicator": "ABOVE_UPPER_LIMIT",
            "numericResult": 214.428571428571,
            "formattedResult": "> 104"
          }
        },
        {
          "status": "COMPLETE",
          "completedAt": "2023-07-20T03:56:53.236Z",
          "measurandCode": "Fmgo_27_max_weeks",
          "measurandName": "Forecasted Weeks to Maximum Methylglyoxal at 27°C",
          "result": {
            "unitOfMeasure": "weeks",
            "detectionLimit": 1,
            "formattedDetectionLimit": "1",
            "upperLimit": 104,
            "rangeIndicator": "BETWEEN_LIMITS",
            "numericResult": 82.7142857142857,
            "formattedResult": "83"
          }
        },
        {
          "status": "COMPLETE",
          "completedAt": "2023-07-20T03:09:50.926Z",
          "measurandCode": "mgo_mgkg_ar_calc",
          "measurandName": "Methylglyoxal (MGO)",
          "result": {
            "unitOfMeasure": "mg/kg",
            "detectionLimit": 5,
            "formattedDetectionLimit": "5",
            "rangeIndicator": "BETWEEN_LIMITS",
            "numericResult": 658.22033149,
            "formattedResult": "658"
          }
        }
      ]
    }
  ],
  "analyticalTestDefinitions": [
    {
      "code": "Honey3in1",
      "name": "3 in 1 Honey Suite"
    },
    {
      "code": "Honey_Forecast_withNPA",
      "name": "Honey Forecast with NPA"
    }
  ]
}