Materials Zone Protocols API
Protocols are used to group parameters in tables.
Protocols are used to group parameters in tables.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/materials-zone-protocols-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Materials Zone Protocols API
version: 2.0.0
description: MaterialsZone's RESTful API is designed to facilitate seamless integration with your existing systems, enabling you to automate workflows, connect diverse data sources, and perform domain-specific analysis.
servers:
- url: https://api.materials.zone/v2beta1
security:
- ApiKey: []
tags:
- name: Protocols
description: Protocols are used to group parameters in tables.
paths:
/tables/{tableId}/protocols:
post:
tags:
- Protocols
summary: Create a new protocol in a table
description: Creates a new default protocol in a table.
parameters:
- name: tableId
in: path
required: true
description: The UUID of the table to create the protocol in.
example: eb1aa7b4-0e21-46de-b448-0c4eabdd32b7
schema:
type: string
format: uuid
minLength: 1
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
title:
type: string
description: Title of the protocol.
example: Measured properties
description:
type: string
description: Description of the protocol.
example: This protocol contains parameters representing the measurement conditions.
nullable: true
required:
- title
responses:
'201':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Protocol'
'400':
description: Bad Request
'401':
$ref: '#/components/responses/Unauthorized'
operationId: postTablesByTableIdProtocols
x-operation-id-source: derived
/tables/{tableId}/formulation-protocols:
post:
tags:
- Protocols
summary: Create a new formulation protocol in a table
description: Creates a new formulation protocol in a table.
parameters:
- name: tableId
in: path
required: true
description: The UUID of the table to create the formulation protocol in.
example: eb1aa7b4-0e21-46de-b448-0c4eabdd32b7
schema:
type: string
format: uuid
minLength: 1
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
title:
type: string
description: Title of the protocol.
example: Formulation
description:
type: string
description: Description of the protocol.
example: This protocol describes the composition of materials.
nullable: true
titleTableIds:
type: array
description: Tables from which users can select items for formulation.
items:
type: string
format: uuid
unit:
type: string
description: Unit for all formulation values.
example: '%'
required:
- title
- titleTableIds
responses:
'201':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/FormulationProtocol'
'400':
description: Bad Request
'401':
$ref: '#/components/responses/Unauthorized'
operationId: postTablesByTableIdFormulationProtocols
x-operation-id-source: derived
/protocols/{protocolId}:
patch:
tags:
- Protocols
summary: Update a protocol
description: Updates an existing protocol.
parameters:
- name: protocolId
in: path
required: true
description: The UUID of the protocol to update.
example: eb1aa7b4-0e21-46de-b448-0c4eabdd32b7
schema:
type: string
format: uuid
minLength: 1
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
title:
type: string
description: New title for the protocol.
description:
type: string
description: New description for the protocol.
nullable: true
parameterIds:
type: array
description: UUIDs of the parameters to be rearranged in the protocol.
items:
type: string
format: uuid
hash:
type: string
description: Hash for optimistic concurrency control. Get this from a previous GET request.
required:
- hash
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Protocol'
'400':
description: Bad Request
'401':
$ref: '#/components/responses/Unauthorized'
'409':
description: Conflict - The protocol has been modified since you last retrieved it
operationId: patchProtocolsByProtocolId
x-operation-id-source: derived
delete:
tags:
- Protocols
summary: Delete a protocol
description: Deletes a protocol and all its parameters.
parameters:
- name: protocolId
in: path
required: true
description: The UUID of the protocol to delete.
example: eb1aa7b4-0e21-46de-b448-0c4eabdd32b7
schema:
type: string
format: uuid
minLength: 1
responses:
'204':
description: Success
'400':
description: Bad Request
'401':
$ref: '#/components/responses/Unauthorized'
operationId: deleteProtocolsByProtocolId
x-operation-id-source: derived
/formulation-protocols/{protocolId}:
patch:
tags:
- Protocols
summary: Update a formulation protocol
description: Updates an existing formulation protocol.
parameters:
- name: protocolId
in: path
required: true
description: The UUID of the formulation protocol to update.
example: eb1aa7b4-0e21-46de-b448-0c4eabdd32b7
schema:
type: string
format: uuid
minLength: 1
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
title:
type: string
description: New title for the protocol.
nullable: true
description:
type: string
description: New description for the protocol.
nullable: true
titleTableIds:
type: array
description: Tables from which users can select items for formulation.
items:
type: string
format: uuid
unit:
type: string
description: Unit for all formulation values.
nullable: true
hash:
type: string
description: Hash for optimistic concurrency control. Get this from a previous GET request.
required:
- hash
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/FormulationProtocol'
'400':
description: Bad Request
'401':
$ref: '#/components/responses/Unauthorized'
'409':
description: Conflict - The protocol has been modified since you last retrieved it
operationId: patchFormulationProtocolsByProtocolId
x-operation-id-source: derived
delete:
tags:
- Protocols
summary: Delete a formulation protocol
description: Deletes a formulation protocol and all its parameters.
parameters:
- name: protocolId
in: path
required: true
description: The UUID of the formulation protocol to delete.
example: eb1aa7b4-0e21-46de-b448-0c4eabdd32b7
schema:
type: string
format: uuid
minLength: 1
responses:
'204':
description: Success
'400':
description: Bad Request
'401':
$ref: '#/components/responses/Unauthorized'
operationId: deleteFormulationProtocolsByProtocolId
x-operation-id-source: derived
components:
schemas:
Protocol:
allOf:
- $ref: '#/components/schemas/BaseProtocol'
- type: object
properties:
type:
type: string
description: The type of the protocol, will always be PROTOCOL here.
enum:
- PROTOCOL
example: PROTOCOL
unit:
type: 'null'
description: Only relevant for formulation protocols. Will always return null here.
example: null
titleTableIds:
type: array
description: Only relevant for formulation protocols. Will always return an empty list here.
items: {}
example: []
parameters:
type: array
description: The list of parameters (columns) in this protocol.
items:
$ref: '#/components/schemas/Parameter'
required:
- type
- unit
- titleTableIds
- parameters
Error:
type: object
properties:
code:
type: string
message:
type: string
required:
- code
- message
Parameter:
properties:
id:
type: string
format: uuid
description: UUID of this parameter.
title:
type: string
description: Title of this parameter.
example: Boiling Point
nullable: true
description:
type: string
description: Description of this parameter.
nullable: true
titleItemId:
type: string
format: uuid
description: In some cases, the title of a parameter is another item, in this case this field is the UUID of that item, otherwise it's null.
nullable: true
type:
type: string
enum:
- QUANTITY
- TEXT
- BOOLEAN
- LINK
- CALCULATION
- ENUM
- PREDICTION
example: QUANTITY
description: The type of the parameter.
unit:
type: string
description: This is the unit of the parameter.
example: kg
nullable: true
hash:
type: string
description: Hash for optimistic concurrency control.
calculation:
type: object
description: Calculation formula (only applicable for calculation type parameters).
nullable: true
significantFiguresNum:
type: integer
description: Number of significant figures to use for the parameter (only applicable for calculation type parameters).
nullable: true
inputParameterIds:
type: array
description: IDs of input parameters (only applicable for calculation type parameters).
items:
type: string
format: uuid
nullable: true
enumValueOptions:
type: array
description: List of enum value options (only applicable for enum type parameters).
items:
type: object
properties:
id:
type: string
format: uuid
title:
type: string
nullable: true
linkTables:
type: array
description: List of link source table IDs from which items can be linked (only applicable for link type parameters).
items:
type: string
format: uuid
required:
- id
- title
- description
- titleItemId
- type
- unit
- hash
- calculation
- significantFiguresNum
- inputParameterIds
- enumValueOptions
- linkTables
FormulationProtocol:
allOf:
- $ref: '#/components/schemas/BaseProtocol'
- type: object
properties:
type:
type: string
description: The type of the protocol, will always be FORMULATION here.
enum:
- FORMULATION
example: FORMULATION
unit:
type: string
description: The unit this formulation protocol's components are measured in.
example: '%'
nullable: true
titleTableIds:
type: array
description: The list of tables (UUIDs) from which the user may choose items for the formulation.
items:
type: string
format: uuid
parameters:
type: array
description: Only relevant for non-formulation protocols. Will always return an empty list here.
items: {}
example: []
required:
- type
- unit
- titleTableIds
- parameters
BaseProtocol:
properties:
id:
type: string
format: uuid
description: UUID of this protocol.
title:
type: string
description: Title of this protocol.
example: Measured properties
description:
type: string
description: Description of this protocol (column group).
example: This protocol contains parameters representing the measurement conditions.
nullable: true
hash:
type: string
description: Hash for optimistic concurrency control.
required:
- id
- title
- description
- hash
responses:
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
ApiKey:
type: apiKey
in: header
name: Authorization