Create a product
const url = 'https://example.com/api/v1/products';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"capabilities":["example"],"display_name":"example","driver_id":"example","kind":"device","name":"example","parent_product_id":"example","vendor_id":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/products \ --header 'Content-Type: application/json' \ --data '{ "capabilities": [ "example" ], "display_name": "example", "driver_id": "example", "kind": "device", "name": "example", "parent_product_id": "example", "vendor_id": "example" }'Creates a custom (non-official) product and sets its capabilities. Gated by product:create.
Request Body required
Section titled “Request Body required ”object
A URL to the JSON Schema for this object.
Capability names the product provides (the default set its components inherit)
What an operator reads in pickers and lists
The driver that talks to it, by handle or uuid
What class of thing the product is
The globally unique kebab handle; renameable
The parent product, by handle or uuid
The vendor, by handle or uuid
Responses
Section titled “ Responses ”Created
object
A URL to the JSON Schema for this object.
The driver’s handle
The driver’s uuid; the stable form of driver
The product’s uuid, the stable handle that survives a rename
The kebab handle an operator reads and types; renameable
The parent product’s handle
The parent product’s uuid; the stable form of parent_product
The vendor’s handle
The vendor’s uuid; the stable form of vendor
Example
{ "$schema": "/api/v1/schemas/ProductBody.json", "kind": "device"}default
Section titled “default ”Error
object
A URL to the JSON Schema for this object.
A human-readable explanation specific to this occurrence of the problem.
Optional list of individual error details
object
Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’
Error message text
The value at the given location
A URI reference that identifies the specific occurrence of the problem.
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference to human-readable documentation for the error.
Example
{ "$schema": "/api/v1/schemas/ErrorModel.json", "detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "about:blank"}