The Quality webhook allows your internal systems to be notified when a plate has been processed by the device and analysis results are available.
This is intended for integrations with systems such as LIMS, where plate result data and device output location should be consumed automatically as soon as they are available.
Webhook Event
The webhook is sent when a plate has completed processing and analysis.
Request method: POST
Content type: application/json
Payload
The webhook body contains a single plate object:
{
"plate": {
"id": "2f5f9c1a-8e7a-4f11-9b7b-8b4b9c7f1a12",
"run_id": 1234,
"plate_code": "ABC123456",
"registered_at": "2026-06-29T10:15:30Z",
"end_location": "A1",
"analysis_details": {
"model_type": "htid",
"model_version": "1.0.0",
"category": "Pass",
"result": {
"example_property": {
"original_value": "example value",
"corrected_value": null,
"correction_reason": null
}
}
},
"label_details": {
"label": "Sample label",
"batch": "Batch-001",
"assay": "Example assay",
"sample_id": "Sample-001",
"replica_number": 1,
"dilution_base": null,
"dilution_exponent": null,
"custom_properties": null
},
"url": "https://quality.reshapebiotech.com/..."
}
}
The plate object follows the same schema as the plate response in the HTID API:
Plate Fields
Field | Description |
| Unique plate identifier. |
| Customer-facing run identifier for the run the plate belongs to. |
| Barcode or QR code content for the plate, if available. |
| Timestamp for when the plate was registered. |
| Final output location on the device, if known. |
| Analysis result details, if analysis has been performed. |
| Parsed label metadata, if a label was scanned. |
| Link to the plate analysis view in Quality, if available. |
Analysis Details
The analysis_details object contains the model information, predicted category, and analysis result values:
{
"model_type": "htid",
"model_version": "1.0.0",
"category": "Pass",
"result": {
"example_property": {
"original_value": "example value",
"corrected_value": null,
"correction_reason": null
}
}
}
The result object is keyed by analysis property. Each property contains:
Field | Description |
| The value returned by the analysis model. |
| The corrected value, if the result has been corrected. Otherwise |
| The reason for the correction, if applicable. Otherwise |
Each analysis model may have its own set of possible categories and result fields. Use the HTID API to check the available model versions and the expected schema for a specific model_type and model_version.
The expected result schema for a given analysis model can be retrieved from the HTID API:
Webhook Signature
To verify the origin of the webhook, each request includes an X-Reshape-Signature header.
The signature is an HMAC-SHA256 signature of the exact request body, using the webhook secret as the signing key.
Header format:
X-Reshape-Signature: sha256=<hex_digest>
To verify a webhook:
Read the raw request body exactly as received.
Compute
HMAC-SHA256(secret, raw_request_body).Hex encode the digest.
Compare it with the value in
X-Reshape-Signature.
The signature should be verified against the raw request body, not a parsed and re-serialized JSON object, since changes in whitespace or key ordering will produce a different signature.
Recommended Integration
We recommend integrating the Quality webhook with your LIMS or downstream data system so plate results and output locations are available automatically once processing is complete.
For additional information about runs, analyses, and available schemas, use the HTID API:
