Read SafetyChain food safety records, CAPAs, forms, suppliers, items, locations and equipment.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get one CAPA's details: status, severity, event and due dates, summary, creator, resource, source, category, owner workgroup, template and steps. The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}.
CAPA id (GUID)
Get one CAPA's details: status, severity, event and due dates, summary, creator, resource, source, category, owner workgroup, template and steps. The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | CAPA id (GUID) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "CAPA id (GUID)"
}
}
}List a CAPA's activity (comments and events). The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}/activity.
| Argument | Type | Description |
|---|---|---|
| id* | string | CAPA id (GUID) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "CAPA id (GUID)"
}
}
}List a CAPA's attachments (name, extension, link, creator, date). The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}/attachments.
| Argument | Type | Description |
|---|---|---|
| id* | string | CAPA id (GUID) |
| page | integer | Page number, from 1 (default 1). |
| page_size | integer | Rows per page (default 50, max 200). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "CAPA id (GUID)"
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1).",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Rows per page (default 50, max 200)."
}
}
}List a CAPA's history entries. The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}/history.
| Argument | Type | Description |
|---|---|---|
| id* | string | CAPA id (GUID) |
| page | integer | Page number, from 1 (default 1). |
| page_size | integer | Rows per page (default 50, max 200). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "CAPA id (GUID)"
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1).",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Rows per page (default 50, max 200)."
}
}
}List a CAPA's linked CAPAs. The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}/linkedcapas.
| Argument | Type | Description |
|---|---|---|
| id* | string | CAPA id (GUID) |
| page | integer | Page number, from 1 (default 1). |
| page_size | integer | Rows per page (default 50, max 200). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "CAPA id (GUID)"
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1).",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Rows per page (default 50, max 200)."
}
}
}List a CAPA's linked records. The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}/linkedrecords.
| Argument | Type | Description |
|---|---|---|
| id* | string | CAPA id (GUID) |
| page | integer | Page number, from 1 (default 1). |
| page_size | integer | Rows per page (default 50, max 200). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "CAPA id (GUID)"
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1).",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Rows per page (default 50, max 200)."
}
}
}List a CAPA's tasks (step, form, location, resource, workgroup, assignee, due date, status). The id is the GUID `Id` from safetychain_search_capas. GET /clientapis/capamanagement/v1.0/capa/{id}/tasks.
| Argument | Type | Description |
|---|---|---|
| id* | string | CAPA id (GUID) |
| page | integer | Page number, from 1 (default 1). |
| page_size | integer | Rows per page (default 50, max 200). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "CAPA id (GUID)"
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1).",
"exclusiveMinimum": 0
},
"page_size": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Rows per page (default 50, max 200)."
}
}
}Get one category by id (an id from safetychain_list_categories). GET /clientapis/resourcemanagement/v1.0/category/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | category id |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "category id"
}
}
}Get one customer by id (an id from safetychain_list_customers). GET /clientapis/resourcemanagement/v1.0/customer/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | customer id |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "customer id"
}
}
}Get one equipment by id (an id from safetychain_list_equipment). GET /clientapis/resourcemanagement/v1.0/equipment/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | equipment id |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "equipment id"
}
}
}Get one form by id (an id from safetychain_list_forms). GET /clientapis/resourcemanagement/v1.0/form/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | form id |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "form id"
}
}
}Get one item by id (an id from safetychain_list_items). GET /clientapis/resourcemanagement/v1.0/item/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | item id |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "item id"
}
}
}Get one location by id (an id from safetychain_list_locations). GET /clientapis/resourcemanagement/v1.0/location/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | location id |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "location id"
}
}
}Get one submitted record in full by its record id (the GUID `recordId` from safetychain_search_records): form, who submitted it and when, location, resource, field values, verifications. GET /clientapis/recordmanagement/v1.0/record/{recordId}.
| Argument | Type | Description |
|---|---|---|
| record_id* | string | Record id (GUID) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"record_id"
],
"properties": {
"record_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Record id (GUID)"
}
}
}Get the field-level values of records (one entry per record with its fields: name, short name, type, value, unit, compliance, min, max, target, comments, section). Same filters as safetychain_search_records; narrow strongly (a record number or one form and a short date range), each record carries many fields. POST /clientapis/v2.0/getRecordsWithFields (a read).
| Argument | Type | Description |
|---|---|---|
| end | string | End of the date range (default: now). |
| page | integer | Page number, from 1 (default 1). |
| start | string | Start of the date range, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss. Not together with min_ago. |
| min_ago | integer | Sliding window: records from the last N minutes (1440 = a day). Not together with start. |
| date_type | string | Which date the range applies to (default submitted). processed = when SafetyChain saved it; modified = last change (includes submitted when never modified); modifiedOnly = only records actually modified. |
| form_like | string | Form name contains this text (slower than form_name). |
| form_name | string | Exact form name. |
Fast summary of the records matching the filters: first and last date, and how many forms, resources, locations and users are involved. Use it to size a request before safetychain_search_records. POST /clientapis/v2.0/getRecordSummary (a read).
| Argument | Type | Description |
|---|---|---|
| end | string | End of the date range (default: now). |
| start | string | Start of the date range, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss. Not together with min_ago. |
| min_ago | integer | Sliding window: records from the last N minutes (1440 = a day). Not together with start. |
| date_type | string | Which date the range applies to (default submitted). processed = when SafetyChain saved it; modified = last change (includes submitted when never modified); modifiedOnly = only records actually modified. |
| form_like | string | Form name contains this text (slower than form_name). |
| form_name | string | Exact form name. |
| is_signed | boolean | Only records with a sign-off or validation. |
| is_verified |
Get one resource by id (an id from safetychain_list_resources). GET /clientapis/resourcemanagement/v1.0/resource/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | resource id |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "resource id"
}
}
}Get one supplier by id (an id from safetychain_list_suppliers). GET /clientapis/resourcemanagement/v1.0/supplier/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | supplier id |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "supplier id"
}
}
}List categories used to group resources of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/categories.
| Argument | Type | Description |
|---|---|---|
| name | string | Filter by category name. |
| limit | integer | Return at most this many rows (default 200, max 1000); the reply says how many were cut. |
| is_deleted | boolean | Only deleted (true) or not deleted (false) rows. |
| is_enabled | boolean | Only enabled (true) or disabled (false) rows. |
| parent_category_id | string | Only children of this category id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Filter by category name."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Return at most this many rows (default 200, max 1000); the reply says how many were cut."
},
"is_deleted": {
"type": "boolean",
"description": "Only deleted (true) or not deleted (false) rows."
},
"is_enabled": {
"type": "boolean",
"description": "Only enabled (true) or disabled (false) rows."
},
"parent_category_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Only children of this category id."
}
}
}List customers of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/customers.
| Argument | Type | Description |
|---|---|---|
| name | string | Filter by customer name. |
| limit | integer | Return at most this many rows (default 200, max 1000); the reply says how many were cut. |
| is_deleted | boolean | Only deleted (true) or not deleted (false) rows. |
| is_enabled | boolean | Only enabled (true) or disabled (false) rows. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Filter by customer name."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Return at most this many rows (default 200, max 1000); the reply says how many were cut."
},
"is_deleted": {
"type": "boolean",
"description": "Only deleted (true) or not deleted (false) rows."
},
"is_enabled": {
"type": "boolean",
"description": "Only enabled (true) or disabled (false) rows."
}
}
}List equipment of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/equipment.
| Argument | Type | Description |
|---|---|---|
| name | string | Filter by equipment name. |
| limit | integer | Return at most this many rows (default 200, max 1000); the reply says how many were cut. |
| is_deleted | boolean | Only deleted (true) or not deleted (false) rows. |
| is_enabled | boolean | Only enabled (true) or disabled (false) rows. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Filter by equipment name."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Return at most this many rows (default 200, max 1000); the reply says how many were cut."
},
"is_deleted": {
"type": "boolean",
"description": "Only deleted (true) or not deleted (false) rows."
},
"is_enabled": {
"type": "boolean",
"description": "Only enabled (true) or disabled (false) rows."
}
}
}List forms (the checklists and data-entry forms operators fill in) of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/forms.
| Argument | Type | Description |
|---|---|---|
| name | string | Filter by form name. |
| limit | integer | Return at most this many rows (default 200, max 1000); the reply says how many were cut. |
| is_current | boolean | Only the current version of each form (true). |
| is_released | boolean | Only released (true) or unreleased (false) forms. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Filter by form name."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Return at most this many rows (default 200, max 1000); the reply says how many were cut."
},
"is_current": {
"type": "boolean",
"description": "Only the current version of each form (true)."
},
"is_released": {
"type": "boolean",
"description": "Only released (true) or unreleased (false) forms."
}
}
}List items (products, ingredients, materials) of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/items.
| Argument | Type | Description |
|---|---|---|
| name | string | Filter by item name. |
| limit | integer | Return at most this many rows (default 200, max 1000); the reply says how many were cut. |
| is_deleted | boolean | Only deleted (true) or not deleted (false) rows. |
| is_enabled | boolean | Only enabled (true) or disabled (false) rows. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Filter by item name."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Return at most this many rows (default 200, max 1000); the reply says how many were cut."
},
"is_deleted": {
"type": "boolean",
"description": "Only deleted (true) or not deleted (false) rows."
},
"is_enabled": {
"type": "boolean",
"description": "Only enabled (true) or disabled (false) rows."
}
}
}List locations (plants, sites, areas) of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/locations.
| Argument | Type | Description |
|---|---|---|
| name | string | Filter by location name. |
| limit | integer | Return at most this many rows (default 200, max 1000); the reply says how many were cut. |
| is_deleted | boolean | Only deleted (true) or not deleted (false) rows. |
| is_enabled | boolean | Only enabled (true) or disabled (false) rows. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Filter by location name."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Return at most this many rows (default 200, max 1000); the reply says how many were cut."
},
"is_deleted": {
"type": "boolean",
"description": "Only deleted (true) or not deleted (false) rows."
},
"is_enabled": {
"type": "boolean",
"description": "Only enabled (true) or disabled (false) rows."
}
}
}List resources of every type (customers, equipment, items, suppliers, lists) of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/resources.
| Argument | Type | Description |
|---|---|---|
| name | string | Filter by resource name. |
| limit | integer | Return at most this many rows (default 200, max 1000); the reply says how many were cut. |
| is_enabled | boolean | Only enabled (true) or disabled (false) rows. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Filter by resource name."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Return at most this many rows (default 200, max 1000); the reply says how many were cut."
},
"is_enabled": {
"type": "boolean",
"description": "Only enabled (true) or disabled (false) rows."
}
}
}List suppliers of the SafetyChain tenant, with ids, names, enabled flags and created/modified dates. Filter by name. The API does not page: all matches come back (cut at limit). GET /clientapis/resourcemanagement/v1.0/suppliers.
| Argument | Type | Description |
|---|---|---|
| name | string | Filter by supplier name. |
| limit | integer | Return at most this many rows (default 200, max 1000); the reply says how many were cut. |
| is_deleted | boolean | Only deleted (true) or not deleted (false) rows. |
| is_enabled | boolean | Only enabled (true) or disabled (false) rows. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Filter by supplier name."
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Return at most this many rows (default 200, max 1000); the reply says how many were cut."
},
"is_deleted": {
"type": "boolean",
"description": "Only deleted (true) or not deleted (false) rows."
},
"is_enabled": {
"type": "boolean",
"description": "Only enabled (true) or disabled (false) rows."
}
}
}Check whether a record exists for a record id (GUID). GET /clientapis/recordmanagement/v1.0/record/{recordId}/Exists.
| Argument | Type | Description |
|---|---|---|
| record_id* | string | Record id (GUID) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"record_id"
],
"properties": {
"record_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Record id (GUID)"
}
}
}Search corrective and preventive actions (CAPA, SCAR, CCAR). Filters combine with AND. Returns id, name, severity, owner workgroup, status, event and due dates, task counts, location and template type, 50 per page. Use the Id (a GUID) with safetychain_get_capa and the other CAPA tools. POST /clientapis/capamanagement/v1.0/capas (a read: it only searches).
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). |
| capa_id | integer | The numeric CAPA number (CapaId). |
| statuses | array | CAPA statuses, for example Draft, Open, Closed, Voided (up to 10). |
| locations | array | Location names or ids (up to 10). |
| page_size | integer | Rows per page (default 50, max 200). |
| descending | boolean | Sort descending. |
| severities | array | Severity names (up to 10). |
| search_term | string | Free-text search term. |
| name_contains |
Search submitted records (the headers: record number, compliance, submitted date, location, form and version, resource, who submitted, signed, verifications, ids). Filter by date range, form, location, resource, identifier and compliance. Always narrow by a date range or a name: the tenant can hold millions of records. Pages are not snapshotted: for a stable multi-page read use a closed date range (start and end in the past). Use safetychain_get_record_fields for the field values. POST /clientapis/v2.0/getRecords (a read: it only searches).
| Argument | Type | Description |
|---|---|---|
| end | string | End of the date range (default: now). |
| page | integer | Page number, from 1 (default 1). |
| start | string | Start of the date range, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss. Not together with min_ago. |
| min_ago | integer | Sliding window: records from the last N minutes (1440 = a day). Not together with start. |
| date_type | string | Which date the range applies to (default submitted). processed = when SafetyChain saved it; modified = last change (includes submitted when never modified); modifiedOnly = only records actually modified. |
| form_like | string | Form name contains this text (slower than form_name). |
| is_signed |
| boolean |
| Only records with a sign-off or validation. |
| page_rows | integer | Records per page (default 20, max 100). |
| field_names | array | Only these fields, by full field name. |
| is_verified | boolean | Only verified (true) records. |
| location_like | string | Location name contains this text (slower). |
| location_name | string | Exact location name. |
| record_number | integer | One record number. |
| resource_like | string | Resource name contains this text (slower). |
| resource_name | string | Exact resource name (customer, equipment, item or supplier). |
| identifier_name | string | Identifier field name, for example Lot. Use together with identifier_value. |
| identifier_value | string | Identifier value that goes with identifier_name. |
| time_zone_offset | integer | Hours from UTC applied to the date filters and the dates returned (default 0). |
| field_short_names | array | Only these fields, by short name. |
| record_compliance | boolean | Only compliant (true) or non-compliant (false) records. Records without compliance rules count as compliant. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}:\\d{2})?$",
"description": "End of the date range (default: now)."
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1).",
"exclusiveMinimum": 0
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}:\\d{2})?$",
"description": "Start of the date range, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss. Not together with min_ago."
},
"min_ago": {
"type": "integer",
"maximum": 5256000,
"minimum": 1,
"description": "Sliding window: records from the last N minutes (1440 = a day). Not together with start."
},
"date_type": {
"enum": [
"submitted",
"modified",
"modifiedOnly",
"processed"
],
"type": "string",
"description": "Which date the range applies to (default submitted). processed = when SafetyChain saved it; modified = last change (includes submitted when never modified); modifiedOnly = only records actually modified."
},
"form_like": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Form name contains this text (slower than form_name)."
},
"form_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Exact form name."
},
"is_signed": {
"type": "boolean",
"description": "Only records with a sign-off or validation."
},
"page_rows": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Records per page (default 20, max 100)."
},
"field_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Only these fields, by full field name."
},
"is_verified": {
"type": "boolean",
"description": "Only verified (true) records."
},
"location_like": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Location name contains this text (slower)."
},
"location_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Exact location name."
},
"record_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "One record number.",
"exclusiveMinimum": 0
},
"resource_like": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Resource name contains this text (slower)."
},
"resource_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Exact resource name (customer, equipment, item or supplier)."
},
"identifier_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Identifier field name, for example Lot. Use together with identifier_value."
},
"identifier_value": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Identifier value that goes with identifier_name."
},
"time_zone_offset": {
"type": "integer",
"maximum": 14,
"minimum": -12,
"description": "Hours from UTC applied to the date filters and the dates returned (default 0)."
},
"field_short_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Only these fields, by short name."
},
"record_compliance": {
"type": "boolean",
"description": "Only compliant (true) or non-compliant (false) records. Records without compliance rules count as compliant."
}
}
}| boolean |
| Only verified (true) records. |
| location_like | string | Location name contains this text (slower). |
| location_name | string | Exact location name. |
| record_number | integer | One record number. |
| resource_like | string | Resource name contains this text (slower). |
| resource_name | string | Exact resource name (customer, equipment, item or supplier). |
| identifier_name | string | Identifier field name, for example Lot. Use together with identifier_value. |
| identifier_value | string | Identifier value that goes with identifier_name. |
| time_zone_offset | integer | Hours from UTC applied to the date filters and the dates returned (default 0). |
| record_compliance | boolean | Only compliant (true) or non-compliant (false) records. Records without compliance rules count as compliant. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}:\\d{2})?$",
"description": "End of the date range (default: now)."
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}:\\d{2})?$",
"description": "Start of the date range, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss. Not together with min_ago."
},
"min_ago": {
"type": "integer",
"maximum": 5256000,
"minimum": 1,
"description": "Sliding window: records from the last N minutes (1440 = a day). Not together with start."
},
"date_type": {
"enum": [
"submitted",
"modified",
"modifiedOnly",
"processed"
],
"type": "string",
"description": "Which date the range applies to (default submitted). processed = when SafetyChain saved it; modified = last change (includes submitted when never modified); modifiedOnly = only records actually modified."
},
"form_like": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Form name contains this text (slower than form_name)."
},
"form_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Exact form name."
},
"is_signed": {
"type": "boolean",
"description": "Only records with a sign-off or validation."
},
"is_verified": {
"type": "boolean",
"description": "Only verified (true) records."
},
"location_like": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Location name contains this text (slower)."
},
"location_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Exact location name."
},
"record_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "One record number.",
"exclusiveMinimum": 0
},
"resource_like": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Resource name contains this text (slower)."
},
"resource_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Exact resource name (customer, equipment, item or supplier)."
},
"identifier_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Identifier field name, for example Lot. Use together with identifier_value."
},
"identifier_value": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Identifier value that goes with identifier_name."
},
"time_zone_offset": {
"type": "integer",
"maximum": 14,
"minimum": -12,
"description": "Hours from UTC applied to the date filters and the dates returned (default 0)."
},
"record_compliance": {
"type": "boolean",
"description": "Only compliant (true) or non-compliant (false) records. Records without compliance rules count as compliant."
}
}
}| string |
| CAPA name contains this text. |
| template_types | array | Template types. |
| owner_workgroup_contains | string | Owner workgroup contains this text. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1).",
"exclusiveMinimum": 0
},
"capa_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The numeric CAPA number (CapaId).",
"exclusiveMinimum": 0
},
"statuses": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 10,
"minItems": 1,
"description": "CAPA statuses, for example Draft, Open, Closed, Voided (up to 10)."
},
"locations": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 10,
"minItems": 1,
"description": "Location names or ids (up to 10)."
},
"page_size": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Rows per page (default 50, max 200)."
},
"descending": {
"type": "boolean",
"description": "Sort descending."
},
"severities": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 10,
"minItems": 1,
"description": "Severity names (up to 10)."
},
"search_term": {
"type": "string",
"maxLength": 200,
"description": "Free-text search term."
},
"name_contains": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "CAPA name contains this text."
},
"template_types": {
"type": "array",
"items": {
"enum": [
"CAPA",
"SCAR",
"CCAR"
],
"type": "string"
},
"maxItems": 3,
"minItems": 1,
"description": "Template types."
},
"owner_workgroup_contains": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Owner workgroup contains this text."
}
}
}| form_name |
| string |
| Exact form name. |
| is_signed | boolean | Only records with a sign-off or validation. |
| page_rows | integer | Rows per page (default 50, max 500). |
| is_verified | boolean | Only verified (true) records. |
| location_like | string | Location name contains this text (slower). |
| location_name | string | Exact location name. |
| record_number | integer | One record number. |
| resource_like | string | Resource name contains this text (slower). |
| resource_name | string | Exact resource name (customer, equipment, item or supplier). |
| identifier_name | string | Identifier field name, for example Lot. Use together with identifier_value. |
| identifier_value | string | Identifier value that goes with identifier_name. |
| time_zone_offset | integer | Hours from UTC applied to the date filters and the dates returned (default 0). |
| record_compliance | boolean | Only compliant (true) or non-compliant (false) records. Records without compliance rules count as compliant. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}:\\d{2})?$",
"description": "End of the date range (default: now)."
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1).",
"exclusiveMinimum": 0
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}:\\d{2})?$",
"description": "Start of the date range, yyyy-mm-dd or yyyy-mm-dd hh:mm:ss. Not together with min_ago."
},
"min_ago": {
"type": "integer",
"maximum": 5256000,
"minimum": 1,
"description": "Sliding window: records from the last N minutes (1440 = a day). Not together with start."
},
"date_type": {
"enum": [
"submitted",
"modified",
"modifiedOnly",
"processed"
],
"type": "string",
"description": "Which date the range applies to (default submitted). processed = when SafetyChain saved it; modified = last change (includes submitted when never modified); modifiedOnly = only records actually modified."
},
"form_like": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Form name contains this text (slower than form_name)."
},
"form_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Exact form name."
},
"is_signed": {
"type": "boolean",
"description": "Only records with a sign-off or validation."
},
"page_rows": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Rows per page (default 50, max 500)."
},
"is_verified": {
"type": "boolean",
"description": "Only verified (true) records."
},
"location_like": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Location name contains this text (slower)."
},
"location_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Exact location name."
},
"record_number": {
"type": "integer",
"maximum": 9007199254740991,
"description": "One record number.",
"exclusiveMinimum": 0
},
"resource_like": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Resource name contains this text (slower)."
},
"resource_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Exact resource name (customer, equipment, item or supplier)."
},
"identifier_name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Identifier field name, for example Lot. Use together with identifier_value."
},
"identifier_value": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Identifier value that goes with identifier_name."
},
"time_zone_offset": {
"type": "integer",
"maximum": 14,
"minimum": -12,
"description": "Hours from UTC applied to the date filters and the dates returned (default 0)."
},
"record_compliance": {
"type": "boolean",
"description": "Only compliant (true) or non-compliant (false) records. Records without compliance rules count as compliant."
}
}
}