Create an endpoint
const url = 'https://example.com/api/v1/endpoints';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"component":"example","driver":"example","inputs":{"additionalProperty":"example"},"label":"example","node":"example","params":"example","transport":"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/endpoints \ --header 'Content-Type: application/json' \ --data '{ "component": "example", "driver": "example", "inputs": { "additionalProperty": "example" }, "label": "example", "node": "example", "params": "example", "transport": "example" }'Creates an endpoint owned by a component (or a server-hosted one, which needs an all-scoped grant), named by its transport; the optional label is the only identity string an operator types, and is where what the connection is FOR goes. The create scope cascades through the owning component. Gated by endpoint:create.
Request Body required
Section titled “Request Body required ”object
A URL to the JSON Schema for this object.
Owning component, by name or id; omit for a server-hosted endpoint (needs an all-scoped grant)
Attach this driver (by name or id): the spec derives the transport and params, and the endpoint’s tasks derive from the spec’s functions
The inputs the driver’s spec declares (host, port, credentials as secret reference names); required ones must be supplied, defaults fill the rest
object
What an operator reads in lists (Control processor). Settable here because the name is derived from the transport, so it says how the device is reached and never what the connection is for
Node placement, by name or id
Address/target settings (jsonb); an attach derives them from the inputs instead
A transport name from the code registry (GET /transports); the endpoint is named by it, unique within the component. Exactly one of transport (a bare probe endpoint) or driver (an attach) is set
Responses
Section titled “ Responses ”Created
object
A URL to the JSON Schema for this object.
The owning component name; absent for a server-hosted endpoint
The owning component’s id; the stable form of component
The driver this endpoint was attached through (#813); absent for a bare probe endpoint
The attached driver’s id; the stable form of driver
The endpoint’s uuid, the stable handle;
The effective inputs supplied at attach, defaults baked; secret inputs are reference names, never values
The friendly string an operator reads, and the only identity string an operator types here: the name is derived from the transport. Absent when unset, and a surface with none renders the name verbatim
The derived name (its transport), unique within the owning component
The node placement name, if assigned
The placed node’s id; the stable form of node
The address/target settings (jsonb)
The transport name (the wire this endpoint speaks over), from the code registry
Example
{ "$schema": "/api/v1/schemas/EndpointBody.json"}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"}