> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.one.mtxsci.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.one.mtxsci.com/_mcp/server.

# results-v1

GET https://%7Bresults%7D

## List test results

Retrieve a page of laboratory test results with sample context, test codes, reported values, units, and specification text. A sample can have multiple result records; preserve the test context alongside the sample identifier.

**Request:** `GET {{baseUrl}}/{{results}}`\
**Success:** `200 OK` with a JSON body. The recorded response media type is `text/plain;charset=utf-8`. No request body is used.

### Query parameters

| Parameter              | Format                      | Usage                                                                                       |
| ---------------------- | --------------------------- | ------------------------------------------------------------------------------------------- |
| `api_token`            | String                      | Credential for the selected environment, supplied through `{{api_token}}`.                  |
| `page`                 | Integer in the query string | Page to retrieve. The saved request starts at `1`.                                          |
| `sample_id`            | String                      | Sample identifier filter. The saved request sends an empty value.                           |
| `sample_submission_id` | String                      | Sample-submission row identifier filter. The saved request sends an empty value.            |
| `start_date`           | `YYYY-MM-DD`                | Start of the requested date range. Replace the saved example date with your intended range. |
| `end_date`             | `YYYY-MM-DD`                | End of the requested date range. Replace the saved example date with your intended range.   |

Filter requiredness, empty-versus-omitted behavior, matching rules, and filter combinations are unconfirmed. The filtered date field, timezone, and inclusive/exclusive boundaries are also unspecified. Do not assume this range selects collection, submission, or validation dates without confirmation.

### Response envelope

| Field         | Observed type    | Description                                  |
| ------------- | ---------------- | -------------------------------------------- |
| `page`        | String           | Returned page number, for example `"1"`.     |
| `hasNextPage` | Boolean          | Indicates whether another page is available. |
| `results`     | Array of objects | Test result records in this page.            |

Keep filters unchanged while paging. Increment `page` when `hasNextPage` is `true` and stop when it is `false`.

### Result fields

Types below reflect the saved response.

| Field                 | Observed type | Description                                                                                                |
| --------------------- | ------------- | ---------------------------------------------------------------------------------------------------------- |
| `sample_id`           | String        | Downstream sample identifier. Multiple tests can reference the same sample.                                |
| `test_name`           | String        | Human-readable test name.                                                                                  |
| `analyte_group`       | String        | Analyte grouping associated with the test.                                                                 |
| `test_code`           | String        | Test catalog code, such as `LSP-VID-ENV`.                                                                  |
| `result`              | String        | Reported value. Examples include numeric text such as `"78"` and qualitative text such as `"Presumptive"`. |
| `unit`                | String        | Reported unit or basis of measurement, such as `CFU/exposure` or `per area swabbed`.                       |
| `specification`       | String        | Specification text reported by the service, such as `in spec`; the complete vocabulary is unspecified.     |
| `submitted_at`        | String        | Submission date and time as display text.                                                                  |
| `collected_at`        | String        | Collection date and time as display text.                                                                  |
| `description`         | String        | Sample description; may be empty.                                                                          |
| `product_id`          | String        | Product identifier returned by the service.                                                                |
| `product_description` | String        | Product description; may be empty.                                                                         |
| `lot`                 | String        | Lot reference. Preserve as text.                                                                           |
| `request_number`      | String        | Request reference; may be empty.                                                                           |
| `status`              | String        | Status returned with the result. `completed` appears in the saved response; the full set is unspecified.   |
| `due_date`            | String        | Due date and time as display text.                                                                         |

### Working with results

* Preserve `result` as a string. Converting every result to a number loses qualitative values.

* Store the reported `unit` and `specification` with each value; neither is inferred from the result text.

* Date strings have no timezone offset and are in Central Time (UTC-5).

### Saved example

The attached `200` example uses synthetic records to illustrate numeric and qualitative results and `hasNextPage: false`.

Reference: https://docs.one.mtxsci.com/ms-cp-customer-api/results-v-1

## Request

### Query parameters

- `api_token` (string, optional)
- `page` (integer, optional)
- `sample_id` (string, optional)
- `sample_submission_id` (string, optional)
- `start_date` (string, optional)
- `end_date` (string, optional)

## Response

### 200

OK

## Examples

**Response**

```json
{
  "hasNextPage": false,
  "page": "1",
  "results": [
    {
      "analyte_group": "Aerobic Plate Count",
      "collected_at": "Aug 19, 2026 3:00 am",
      "description": "Illustrative environmental sample 1",
      "due_date": "Aug 19, 2026 3:00 am",
      "lot": "EXAMPLE-LOT-001",
      "product_description": "",
      "product_id": "ENVIRONMENTAL",
      "request_number": "",
      "result": "78",
      "sample_id": "EXAMPLE-SAMPLE-001",
      "specification": "in spec",
      "status": "completed",
      "submitted_at": "Aug 19, 2026 6:30 pm",
      "test_code": "APC-AIR-ENV",
      "test_name": "Aerobic Plate Count (Airplate), Environmental",
      "unit": "CFU/exposure"
    },
    {
      "analyte_group": "Listeria",
      "collected_at": "Aug 19, 2026 3:00 am",
      "description": "Illustrative environmental sample 2",
      "due_date": "Aug 19, 2026 3:00 am",
      "lot": "EXAMPLE-LOT-002",
      "product_description": "",
      "product_id": "ENVIRONMENTAL",
      "request_number": "",
      "result": "Presumptive",
      "sample_id": "EXAMPLE-SAMPLE-002",
      "specification": "in spec",
      "status": "completed",
      "submitted_at": "Aug 19, 2026 6:30 pm",
      "test_code": "LSP-VID-ENV",
      "test_name": "Listeria genus (Vidas), Environmental",
      "unit": "per area swabbed"
    }
  ]
}
```

**SDK Code**

```python results-v1_example
import requests

url = "https://https/%7Bresults%7D"

querystring = {"api_token":"{{api_token}}","end_date":"2026-08-20","page":"1","sample_id":"","sample_submission_id":"","start_date":"2026-08-19"}

response = requests.get(url, params=querystring)

print(response.json())
```

```javascript results-v1_example
const url = 'https://https/%7Bresults%7D?api_token=%7B%7Bapi_token%7D%7D&end_date=2026-08-20&page=1&sample_id=&sample_submission_id=&start_date=2026-08-19';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go results-v1_example
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://https/%7Bresults%7D?api_token=%7B%7Bapi_token%7D%7D&end_date=2026-08-20&page=1&sample_id=&sample_submission_id=&start_date=2026-08-19"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby results-v1_example
require 'uri'
require 'net/http'

url = URI("https://https/%7Bresults%7D?api_token=%7B%7Bapi_token%7D%7D&end_date=2026-08-20&page=1&sample_id=&sample_submission_id=&start_date=2026-08-19")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java results-v1_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://https/%7Bresults%7D?api_token=%7B%7Bapi_token%7D%7D&end_date=2026-08-20&page=1&sample_id=&sample_submission_id=&start_date=2026-08-19")
  .asString();
```

```php results-v1_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://https/%7Bresults%7D?api_token=%7B%7Bapi_token%7D%7D&end_date=2026-08-20&page=1&sample_id=&sample_submission_id=&start_date=2026-08-19');

echo $response->getBody();
```

```csharp results-v1_example
using RestSharp;

var client = new RestClient("https://https/%7Bresults%7D?api_token=%7B%7Bapi_token%7D%7D&end_date=2026-08-20&page=1&sample_id=&sample_submission_id=&start_date=2026-08-19");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift results-v1_example
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://https/%7Bresults%7D?api_token=%7B%7Bapi_token%7D%7D&end_date=2026-08-20&page=1&sample_id=&sample_submission_id=&start_date=2026-08-19")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```