Weidmüller Serial Interfaces API

API for u-OS serial interface settings

Operations 4

GET /serial-interfaces/config Read the serial interface configuration for the system #
PUT /serial-interfaces/config Set the serial interface configuration for the system #
PATCH /serial-interfaces/config Update the serial interface configuration for the system #
GET /serial-interfaces/state Get the current state of the serial interfaces on the system #

Work with this as data

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 Specification

weidmueller-serial-interfaces-api-openapi.yml Raw ↑
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