Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/weidmueller:weidmueller-serial-interfaces-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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: Weidmueller Serial Interfaces API
version: 1.5.0-next
contact:
name: Weidmüller
license:
name: MIT
identifier: MIT
description: 'Operations tagged serial-interfaces across 2 of this provider''s published API definitions: administration-openapi.yaml, weidmueller-administration-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: /u-os-adm/api/v1
tags:
- name: serial-interfaces
description: API for u-OS serial interface settings
paths:
/serial-interfaces/config:
get:
tags:
- serial-interfaces
summary: Read the serial interface configuration for the system
description: 'For systems that support u-extend modules, the config may also contain interfaces that are currently not present on the system.
This endpoint is only available on platforms with configurable serial interfaces (e.g. R-Series or M-Series).'
operationId: get_serial_interface_config
responses:
'200':
description: Configuration read successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/SerialInterfacesConfig'
default:
description: Common HTTP Error codes may be thrown by this method, such as 400, 401, 403, 404, 412, 422 or 500. See body for detailed error info.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/HttpErrorPayload'
security:
- OAuth2:
- u-os-adm.serial-interfaces.readonly
- OAuth2:
- u-os-adm.serial-interfaces.readwrite
put:
tags:
- serial-interfaces
summary: Set the serial interface configuration for the system
description: 'You must always at least include all interfaces that are currently present on the system in the request payload.
For systems that support u-extend modules, the config may also contain interfaces that are currently not present on the system.
This allows to configure interfaces before they get connected.
This endpoint is only available on platforms with configurable serial interfaces (e.g. R-Series or M-Series).'
operationId: set_serial_interface_config
requestBody:
description: Configuration to update
content:
application/json:
schema:
$ref: '#/components/schemas/SerialInterfacesConfig'
required: true
responses:
'200':
description: Configuration updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/SerialInterfacesConfig'
default:
description: Common HTTP Error codes may be thrown by this method, such as 400, 401, 403, 404, 412, 422 or 500. See body for detailed error info.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/HttpErrorPayload'
security:
- OAuth2:
- u-os-adm.serial-interfaces.readwrite
patch:
tags:
- serial-interfaces
summary: Update the serial interface configuration for the system
description: 'For systems that support u-extend modules, the config may also contain interfaces that are currently not present on the system.
This allows to configure interfaces before they get connected.
This endpoint is only available on platforms with configurable serial interfaces (e.g. R-Series or M-Series).'
operationId: update_serial_interface_config
requestBody:
description: Configuration to update
content:
application/json:
schema:
$ref: '#/components/schemas/PartialSerialInterfacesConfig'
required: true
responses:
'200':
description: Configuration updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/SerialInterfacesConfig'
default:
description: Common HTTP Error codes may be thrown by this method, such as 400, 401, 403, 404, 412, 422 or 500. See body for detailed error info.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/HttpErrorPayload'
security:
- OAuth2:
- u-os-adm.serial-interfaces.readwrite
servers:
- url: /u-os-adm/api/v1
/serial-interfaces/state:
get:
tags:
- serial-interfaces
summary: Get the current state of the serial interfaces on the system
description: 'The state only includes interfaces that are currently present on the system and contains their current, active state.
This endpoint is only available on platforms with configurable serial interfaces (e.g. R-Series or M-Series).'
operationId: get_serial_interface_state
responses:
'200':
description: State read successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/SerialInterfacesState'
default:
description: Common HTTP Error codes may be thrown by this method, such as 400, 401, 403, 404, 412, 422 or 500. See body for detailed error info.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/HttpErrorPayload'
security:
- OAuth2:
- u-os-adm.serial-interfaces.readonly
- OAuth2:
- u-os-adm.serial-interfaces.readwrite
servers:
- url: /u-os-adm/api/v1
components:
schemas:
RsInterfaceConfig:
oneOf:
- $ref: '#/components/schemas/Rs232Config'
- $ref: '#/components/schemas/Rs485Config'
description: 'Current operation mode of a RS interface (RS-232 or RS-485). The `mode` field is the discriminator selecting the variant.
For RS-485 interfaces, this also includes whether the termination resistor is enabled or disabled.
Please note that some interfaces may only support RS-232 or RS-485 mode. For example, tty-x3 on R-Series only supports RS-485 mode.'
examples:
- enable_termination_resistor: true
mode: RS485
discriminator:
propertyName: mode
mapping:
RS232: '#/components/schemas/Rs232Config'
RS485: '#/components/schemas/Rs485Config'
RsInterfaceState:
type: object
required:
- name
- device_path
- supported_modes
- state
properties:
device_path:
type: string
description: The device path in /dev that belong to the RS interface. This is the path that should be used to open the interface for reading/writing.
example: /dev/tty-x3
name:
type: string
description: Name of the RS interface. Used for configuration.
example: tty-x3
state:
$ref: '#/components/schemas/RsInterfaceConfig'
description: Current configuration of the RS interface (RS-232 or RS-485)
supported_modes:
type: array
items:
$ref: '#/components/schemas/AllowedRsMode'
description: 'Returns the supported operation modes for this interface.
Some interfaces may only support RS-232 or RS-485 mode. For example, tty-x3 on R-Series only supports RS-485 mode.'
example:
- RS232
- RS485
HttpErrorPayload:
type: object
description: 'Common error payload structure for HTTP responses.
Based on [RFC 9457](https://datatracker.ietf.org/doc/html/rfc9457)'
required:
- type
- title
- status
properties:
detail:
type:
- string
- 'null'
description: Optional details about the error
example: 'Low Level OS Error #1234'
instance:
type:
- string
- 'null'
format: uri-reference
description: A human-readable explanation specific to this occurrence of the problem
example: null
status:
type: integer
format: int32
description: The HTTP status code generated by the origin server for this occurrence of the problem
example: 500
maximum: 599
minimum: 100
title:
type: string
description: Human-readable error message.
example: Something went wrong in the backend.
type:
type: string
format: uri-reference
description: 'A URI reference that identifies the problem type
The last part of the URI is always a `ErrorId`'
example: /u-os-adm/api/v1/errors/set-security-settings
CanInterfaceState:
type: object
required:
- name
- alt_names
- termination_resistance_ohm
properties:
alt_names:
type: array
items:
type: string
description: List of alternate names for the CAN interface, if any
example:
- can0
name:
type: string
description: Primary name of the CAN interface
example: can-fm0-em0
termination_resistance_ohm:
type: integer
format: int32
description: 'Current termination resistor value for the CAN interface, in Ohms. A value of 0 indicates that the termination resistor is disabled.
Reports the terminator controlled by the local interface, not the effective resistance of the entire bus.'
example: 120
minimum: 0
PartialSerialInterfacesConfig:
type: object
description: Configuration settings for all serial interfaces (CAN, RS-232, RS-485) on the system. (PATCH)
properties:
can_interfaces:
type: object
description: 'Configuration settings for all CAN interfaces on the system, keyed by interface name.
Keys may contain interfaces that are currently not present on the system.
For each existing interface, a configuration must be provided. If an interface is missing, the request will be rejected.
You may delete configuration of interfaces which are no longer present, e.g. for u-extend modules.'
additionalProperties: true
example:
can-fm0-em0:
enable_termination_resistor: true
rs_interfaces:
type: object
description: 'Configuration settings for all RS interfaces (RS-232, RS-485) on the system, keyed by u-OS interface name.
Keys may contain interfaces that are currently not present on the system.
For each existing interface, a configuration must be provided. If an interface is missing, the request will be rejected.
You may delete configuration of interfaces which are no longer present, e.g. for u-extend modules.
Note that the u-OS interface name is not the same as the device path in `/dev`. The u-OS interface name is used to configure the interface, while
the device path is used to open the interface for reading/writing. You can obtain the device path from the state endpoint.'
additionalProperties: true
example:
tty-fm0-em1:
enable_termination_resistor: false
mode: RS485
tty-fm1-em1: null
Rs232Config:
type: object
description: RS-232 mode configuration.
required:
- mode
properties:
mode:
type: string
enum:
- RS232
SerialInterfacesConfig:
type: object
description: Configuration settings for all serial interfaces (CAN, RS-232, RS-485) on the system.
required:
- can_interfaces
- rs_interfaces
properties:
can_interfaces:
type: object
description: 'Configuration settings for all CAN interfaces on the system, keyed by interface name.
Keys may contain interfaces that are currently not present on the system.
For each existing interface, a configuration must be provided. If an interface is missing, the request will be rejected.
You may delete configuration of interfaces which are no longer present, e.g. for u-extend modules.'
additionalProperties:
$ref: '#/components/schemas/CanInterfaceConfig'
propertyNames:
type: string
example:
can-fm0-em0:
enable_termination_resistor: true
can-fm0-em1:
enable_termination_resistor: false
rs_interfaces:
type: object
description: 'Configuration settings for all RS interfaces (RS-232, RS-485) on the system, keyed by u-OS interface name.
Keys may contain interfaces that are currently not present on the system.
For each existing interface, a configuration must be provided. If an interface is missing, the request will be rejected.
You may delete configuration of interfaces which are no longer present, e.g. for u-extend modules.
Note that the u-OS interface name is not the same as the device path in `/dev`. The u-OS interface name is used to configure the interface, while
the device path is used to open the interface for reading/writing. You can obtain the device path from the state endpoint.'
additionalProperties:
$ref: '#/components/schemas/RsInterfaceConfig'
propertyNames:
type: string
example:
tty-fm0-em1:
mode: RS232
tty-x3:
enable_termination_resistor: true
mode: RS485
SerialInterfacesState:
type: object
description: 'Current state of all serial interfaces (CAN, RS-232, RS-485) on the system.
Unlike the configuration struct, this only contains interfaces that are currently present on the system.'
required:
- allow_add_can_interfaces
- allow_add_rs_interfaces
- can_interfaces
- rs_interfaces
properties:
allow_add_can_interfaces:
type: boolean
description: 'If set to true, the system allows adding new CAN interfaces.
This is the case for systems which allow expansion (e.g. u-extend) with new interfaces.'
allow_add_rs_interfaces:
type: boolean
description: 'If set to true, the system allows adding new RS interfaces.
This is the case for systems which allow expansion (e.g. u-extend) with new interfaces.'
can_interfaces:
type: array
items:
$ref: '#/components/schemas/CanInterfaceState'
description: Current state of all CAN interfaces on the system.
rs_interfaces:
type: array
items:
$ref: '#/components/schemas/RsInterfaceState'
description: Current state of all RS interfaces (RS-232, RS-485) on the system.
CanInterfaceConfig:
type: object
required:
- enable_termination_resistor
properties:
enable_termination_resistor:
type: boolean
description: If set to true, a termination resistor will be enabled on the CAN interface. If set to false, the termination resistor will be disabled.
AllowedRsMode:
type: string
description: 'Represents the allowed operation modes for a RS interface.
This determines which config variants are allowed for the interface.
For example, some interfaces may only support RS-232 or RS-485 mode. For example, tty-x3 on R-Series only supports RS-485 mode.'
enum:
- RS232
- RS485
Rs485Config:
type: object
description: RS-485 mode configuration.
required:
- mode
- enable_termination_resistor
properties:
enable_termination_resistor:
type: boolean
description: If set to true, a termination resistor will be enabled on the RS-485 interface. If set to false, the termination resistor will be disabled.
mode:
type: string
enum:
- RS485
securitySchemes:
OAuth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: /oauth2/token
scopes:
u-os-adm.firewall.readonly: Read access for firewall endpoints
u-os-adm.firewall.readwrite: Read and write access for firewall endpoints
u-os-adm.logging.readonly: Read access for logging endpoints
u-os-adm.network.readonly: Read access for network endpoints
u-os-adm.network.readwrite: Read and write access for network endpoints
u-os-adm.realtime.readonly: Read access for realtime endpoints
u-os-adm.realtime.readwrite: Read and write access for realtime endpoints
u-os-adm.recovery.readwrite: Read and write access for recovery endpoints
u-os-adm.security.readonly: Read access for security endpoints
u-os-adm.security.readwrite: Read and write access for security endpoints
u-os-adm.serial-interfaces.readonly: Read access for serial interface configuration endpoints
u-os-adm.serial-interfaces.readwrite: Read and write access for serial interface configuration endpoints
u-os-adm.syslog.readonly: Read access for syslog endpoints
u-os-adm.syslog.readwrite: Read and write access for syslog endpoints
u-os-adm.system.readonly: Read access for system endpoints
u-os-adm.system.readwrite: Read and write access for system endpoints
u-os-adm.time.readonly: Read access for time settings endpoints
u-os-adm.time.readwrite: Read and write access for time settings endpoints
u-os-adm.update.readonly: Read access for update endpoints
u-os-adm.update.readwrite: Read and write access for update endpoints
description: The HTTP API uses the OAuth2 client credentials flow.
x-refined-from:
- administration-openapi.yaml
- weidmueller-administration-openapi.yml