Welcome to the T-IA Connect API documentation. This REST API allows you to interact directly with Siemens TIA Portal, enabling full automation of your engineering workflows through standard HTTP requests.
568endpoints documented across 53 categories
Generated from the API contract of T-IA Connect 2.5.354.
Base URL
All endpoints are prefixed with:
http://localhost:9000/api
Content Type
Requests and responses are formatted as:
application/json
Key Capabilities
Native Integration
Direct connection to Openness API without proprietary DLL complexity.
Real-time Feedback
Monitor compilation and downloads via WebSockets and Jobs API.
Headless Automation
Designed for CI/CD pipelines and industrial server environments.
Response envelope
Every JSON response is wrapped in the same envelope: success and message summarize the result, response carries the payload declared for the operation, and status carries listener context (TIA Portal state, build) whose shape is not guaranteed.
Complete REST API documentation for Siemens TIA Portal automation. All endpoints include executable examples in curl, PowerShell and Python.
Health & Status
Check that the API is running and that TIA Portal is reachable.
GET /api/health - Get health. Quick health check to verify the API is running and TIA Portal is reachable.
GET /api/health/diagnostics - Get diagnostics. Full diagnostics report including TIA Portal connectivity, machine info, and Openness permissions.
GET /api/health/ping - Ping. Simple ping endpoint to check if the API server is responding.
GET /api/health/resources - Get resources
GET /api/health/stable - Get stable health
GET /api/health/versions - Get versions. List all installed TIA Portal versions detected on the machine.
POST /api/health/shutdown - Shutdown
TIA Portal Instance
State of the TIA Portal instance used by the API.
GET /api/instances - Get instances. List all running TIA Portal instances detected on the machine.
Instance Actions
Attach to, detach from, start and stop the TIA Portal instance.
GET /api/instance/diagnostics - Get TIA diagnostics. Get detailed TIA process diagnostics including memory usage, CPU, and Openness status.
GET /api/instance/status - Get status. Get the current connection status and which TIA Portal project is open.
GET /api/instance/version - Get version. Get the current TIA-Connect API version.
POST /api/instance/actions/attach - Attach to instance. Attach to an existing TIA Portal process by its PID. Use GET /api/instances to find running processes first.
POST /api/instance/actions/detach - Detach from instance. Detach from the current TIA Portal instance without closing it. TIA Portal continues running independently.
POST /api/instance/actions/launch - Launch or attach. Launch a new TIA Portal instance. The API will start TIA Portal and automatically connect to it.
POST /api/instance/actions/restart-unresponsive - Restart unresponsive
POST /api/instance/actions/shutdown - Shutdown instance. Shutdown the TIA Portal connection and close the TIA Portal process gracefully.
Projects
Open, create, save, archive, retrieve and close TIA Portal projects.
DELETE /api/projects/history - Remove from history. Remove an entry from the project history.
GET /api/projects - Get projects. List all currently open projects in TIA Portal.
GET /api/projects/files - List project files
GET /api/projects/history - Get history. Get the list of recently opened projects.
GET /api/projects/infrastructure - Get project infrastructure. Get project infrastructure details (subnets, connections, IO systems).
GET /api/projects/languages - Get project languages
GET /api/projects/overview - Get project overview. Get a full overview of the current project including devices, blocks, and tags.
POST /api/projects/actions/archive - Archive project. Archive the current project to a .zap file. This is an asynchronous operation - use the returned jobId to poll for completion.
POST /api/projects/actions/close - Close project. Close the currently open project (asynchronous).
POST /api/projects/actions/close-sync - Close project sync. Close the currently open project. This is a synchronous call that waits until the project is fully closed.
POST /api/projects/actions/create - Create project. Create a new empty TIA Portal project (asynchronous).
POST /api/projects/actions/create-from-archive - Create project from archive. Restore a project from a .zap archive file (asynchronous).
POST /api/projects/actions/create-from-archive-sync - Create project from archive sync. Restore a project from a .zap archive file. This is a synchronous call that waits until the project is fully restored.
POST /api/projects/actions/create-sync - Create project sync. Create a new empty TIA Portal project. This is a synchronous call that waits until the project is ready.
POST /api/projects/actions/export-texts - Export project texts
POST /api/projects/actions/export-texts-async - Export project texts async
POST /api/projects/actions/import-texts - Import project texts
POST /api/projects/actions/index - Index project. Index or reindex the project for faster searches and navigation.
POST /api/projects/actions/open - Open project. Open an existing TIA Portal project. This is an asynchronous operation - use the returned jobId to poll for completion.
POST /api/projects/actions/save - Save project. Save the currently open project (asynchronous).
POST /api/projects/actions/save-sync - Save project sync. Save the currently open project. This is a synchronous call that waits until the save is complete.
POST /api/projects/actions/simulation-support - Set simulation support. Enable simulation support for the project (PLCSIM Advanced).
POST /api/projects/languages - Set project languages
Project Instances
TIA Portal instances and the projects they hold.
POST /api/project-instances/actions/select - Select project instance
POST /api/project-instances/actions/start - Start project instance
Async Jobs
Follow and cancel long-running operations. Asynchronous endpoints return a job to poll here.
GET /api/jobs/{jobId} - Get job status. Get the current status and result of an asynchronous job.
POST /api/jobs/execute-sync - Execute sync job. Execute a job synchronously, blocking until the operation completes and returning the result directly.
POST /api/jobs/{jobId}/cancel - Cancel job
Settings
Settings of the T-IA Connect server.
GET /api/settings - Get settings. Get the current API server settings including security configuration.
POST /api/settings - Save settings. Save updated settings. Send the full settings object (use GET first to read current values).
System
Information about the T-IA Connect server.
GET /api/system/browse-file - Browse file. Open a file browser dialog on the TIA Portal host machine.
GET /api/system/browse-folder - Browse folder. Open a folder browser dialog to select a directory.
GET /api/system/browse-project - Browse project. Open a project browser dialog to select a TIA Portal project.
Devices
PLCs, HMIs and other hardware: add from the catalog, configure, rename, delete and compile.
DELETE /api/devices/{deviceName} - Delete device. Delete a device from the project.
GET /api/catalog/cache/status - Get catalog cache status. Get the current status of the hardware catalog cache.
GET /api/devices/compatible-slots - Get compatible slots. Get compatible module slots for a device.
GET /api/devices/{deviceName}/cpu/attribute-dump - Get CPU attribute dump
GET /api/devices/{deviceName}/cpu/properties - Get CPU properties
GET /api/devices/{deviceName}/hardware-details - Get device hardware details. Get hardware details with network information for a device.
GET /api/projects/devices - Get devices. List all devices in the current project.
GET /api/projects/devices/async - Get devices async. List all devices in the current project (asynchronous).
GET /api/projects/devices/parking-lot - Get parking lot devices. Get parking lot devices (unplaced devices in the project).
POST /api/catalog/actions/find - Find device in catalog. Find a device in the hardware catalog by exact order number (asynchronous).
POST /api/catalog/actions/find-sync - Find device in catalog sync. Find a device in the hardware catalog by exact order number.
POST /api/catalog/actions/search - Search catalog. Fuzzy search the hardware catalog by keyword or partial order number (asynchronous).
POST /api/catalog/actions/search-sync - Search catalog sync. Fuzzy search the hardware catalog by keyword or partial order number.
POST /api/catalog/cache/build - Build catalog cache. Build (or rebuild) the hardware catalog cache.
POST /api/catalog/cache/load - Load catalog cache. Load the hardware catalog cache into memory.
POST /api/cpu-configuration/create - Create prepared CPU
POST /api/cpu-configuration/prepare - Prepare CPU configuration
POST /api/devices/actions/rename - Rename device. Rename an existing device.
POST /api/devices/actions/rename-async - Rename device async. Rename an existing device (asynchronous).
POST /api/devices/hardware/analog-input-channel - Configure analog input channel
POST /api/devices/hardware/io-start-address - Configure IO start address
POST /api/devices/plug-module - Plug module
POST /api/devices/{deviceName}/actions/compile - Compile device. Compile device hardware configuration (asynchronous).
GET /api/devices/{deviceName}/network/topology - Get topology
GET /api/network/devices - Get all device network info
GET /api/network/io-systems - Get IO systems
GET /api/network/subnets - Get project subnets
GET /api/network/topology - Get project topology
GET /api/network/views - Get engineering views
POST /api/network/subnets - Create subnet
Communication Settings
Communication settings of devices and interfaces.
DELETE /api/communication-settings/access-points/{name} - Delete access point
GET /api/communication-settings/access-points - Get access points
GET /api/communication-settings/access-points/{name} - Get access point
GET /api/communication-settings/diagnostic - Get diagnostic
GET /api/communication-settings/parameter-sets - Get parameter sets
POST /api/communication-settings/access-points - Create access point
PUT /api/communication-settings/access-points/{name}/mapping - Set mapping
CPU Services
CPU services: web server, OPC UA, protection and access levels.
DELETE /api/devices/{deviceName}/cpu-services/opcua/users/{username} - Delete OPC UA user
DELETE /api/devices/{deviceName}/cpu-services/webserver/users/{username} - Delete web server user
GET /api/devices/{deviceName}/cpu-services/diagnostics - Inspect CPU device services
GET /api/devices/{deviceName}/cpu-services/opcua - Get OPC UA config
GET /api/devices/{deviceName}/cpu-services/webserver - Get web server config
POST /api/devices/{deviceName}/cpu-services/opcua/users - Create OPC UA user
POST /api/devices/{deviceName}/cpu-services/webserver/users - Create web server user
Blocks
Program blocks (OB, FB, FC, DB): list, read code, create, import, export, compile, protect and modify interfaces.
DELETE /api/devices/{deviceName}/blocks/folders - Delete block folder. Delete a folder from the program blocks tree.
DELETE /api/devices/{deviceName}/blocks/{blockName} - Delete block. Delete a block from the device program.
DELETE /api/devices/{deviceName}/blocks/{blockName}/interface/members/{memberName} - Remove interface member. Delete an interface member from a block.
GET /api/devices/{deviceName}/blocks - Get blocks. List all blocks in the device program.
GET /api/devices/{deviceName}/blocks/async - Get blocks async. List all blocks in the device program (async variant for large projects).
GET /api/devices/{deviceName}/blocks/tree - Get block tree. Get the block tree structure including folders.
GET /api/devices/{deviceName}/blocks/{blockName}/content - Get block content. Get the full content of a block including its interface and network code.
GET /api/devices/{deviceName}/blocks/{blockName}/export-xml - Export block XML. Export a block as SimaticML XML and return the XML content directly.
GET /api/devices/{deviceName}/blocks/{blockName}/protection - Get block protection status
GET /api/devices/{deviceName}/blocks/{blockName}/source - Get block source
POST /api/devices/{deviceName}/blocks - Create block. Create a new block (OB, FB, FC, or DB) with optional interface and network code.
POST /api/devices/{deviceName}/blocks/actions/export - Export block. Export a block to an XML file (async variant).
POST /api/devices/{deviceName}/blocks/actions/export-sync - Export block sync. Export a block to an XML file.
POST /api/devices/{deviceName}/blocks/actions/import - Import block. Import a block from an XML file (async variant).
POST /api/devices/{deviceName}/blocks/actions/import-sync - Import block sync. Import a block from an XML file.
POST /api/devices/{deviceName}/blocks/actions/protect-batch - Protect blocks
POST /api/devices/{deviceName}/blocks/actions/rename - Rename block. Rename an existing block.
POST /api/devices/{deviceName}/blocks/actions/rename-async - Rename block async. Rename an existing block (async variant).
POST /api/devices/{deviceName}/blocks/folders - Create block folder. Create a new folder in the program blocks tree.
POST /api/devices/{deviceName}/blocks/{blockName}/actions/compile - Compile block
POST /api/devices/{deviceName}/blocks/{blockName}/actions/create-snapshot - Create snapshot. Create a snapshot of the current block state for later restoration.
POST /api/devices/{deviceName}/blocks/{blockName}/actions/export-prodiag - Export pro diag info. Export ProDIAG diagnostic data from a block to a file.
POST /api/devices/{deviceName}/blocks/{blockName}/actions/export-source - Export block source. Export a block as SCL source code to a file path.
POST /api/devices/{deviceName}/blocks/{blockName}/actions/load-snapshot - Load snapshot. Load and restore a previously created block snapshot.
POST /api/devices/{deviceName}/blocks/{blockName}/actions/load-start-values - Load start values. Load start values to actual values for a data block.
POST /api/devices/{deviceName}/blocks/{blockName}/actions/protect - Protect block
POST /api/devices/{deviceName}/blocks/{blockName}/actions/unprotect - Unprotect block
POST /api/devices/{deviceName}/blocks/{blockName}/interface/members - Add interface member. Add a new member to the block interface (Input, Output, InOut, Static, Temp, etc.).
POST /api/devices/{deviceName}/blocks/{blockName}/networks - Add networks to block. Add one or more networks to an existing block.
PUT /api/devices/{deviceName}/blocks/{blockName}/content - Update block content. Update the content of an existing block (interface and network code).
PUT /api/devices/{deviceName}/blocks/{blockName}/force-write - Force write block code
PUT /api/devices/{deviceName}/blocks/{blockName}/interface/members/{memberName} - Update interface member. Update an existing interface member (change data type, comment, etc.).
Block Generation
Generate PLC blocks from SCL sources, templates and specifications.
GET /api/blockgeneration/templates - List templates. List all available block templates for code generation.
POST /api/blockgeneration/bulk-import - Bulk import blocks. Import multiple block XML files into the project at once.
POST /api/blockgeneration/generate-and-import - Generate and import block. Generate a block from a JSON specification and immediately import it into the TIA Portal project.
POST /api/blockgeneration/generate-from-design - Generate from design. Generate a block from a high-level design specification. The API interprets the design and produces the appropriate block structure.
POST /api/blockgeneration/generate-graph - Generate and import graph. Generate a GRAPH (sequential function chart) block and import it into the project.
POST /api/blockgeneration/generate-graph-only - Generate graph only. Generate a GRAPH block XML file without importing it into the project.
POST /api/blockgeneration/generate-only - Generate block only. Generate a block XML file from a JSON specification without importing it into the project.
POST /api/blockgeneration/import-only - Import block only. Import an existing XML block file into the TIA Portal project without generating it.
External Sources
External source files (SCL, STL) and their folders: import, generate blocks, delete.
DELETE /api/devices/{deviceName}/external-sources/folders - Delete external source folder. Delete a folder from the external sources tree.
DELETE /api/devices/{deviceName}/external-sources/{sourceName} - Delete external source. Delete an external source from the device.
GET /api/devices/{deviceName}/external-sources - List external sources. List all external sources in the device.
POST /api/devices/{deviceName}/external-sources/folders - Create external source folder. Create a folder in the external sources tree.
POST /api/devices/{deviceName}/external-sources/from-file - Create from file. Create an external source from an existing SCL file on disk.
POST /api/devices/{deviceName}/external-sources/from-text - Create from text. Create an external source from raw SCL text content.
POST /api/devices/{deviceName}/external-sources/import-and-generate - Import and generate. Import raw SCL source text and compile it into TIA Portal blocks.
POST /api/devices/{deviceName}/external-sources/import-and-generate-from-file - Import and generate from file
POST /api/devices/{deviceName}/external-sources/{sourceName}/generate - Generate blocks. Generate (compile) blocks from an external source into the TIA Portal project.
Tags & Constants
PLC tags and user constants: create, update, rename, delete, import and export.
DELETE /api/devices/{deviceName}/tag-tables/{tableName}/tags/{tagName} - Delete tag. Delete a tag.
GET /api/devices/{deviceName}/tag-tables/{tableName}/export-xml - Export tag table to XML. Export tags from a table as XML.
GET /api/devices/{deviceName}/tag-tables/{tableName}/tags - Get tags. Get all tags from a specific tag table.
GET /api/devices/{deviceName}/tag-tables/{tableName}/tags/async - Get tags async. Get all tags from a specific tag table asynchronously.
GET /api/devices/{deviceName}/tags/all - Get all tags. Get all tags across all tables.
POST /api/devices/{deviceName}/tag-tables/{tableName}/actions/export-csv - Export tag table to CSV. Export tags from a table to a CSV file asynchronously.
POST /api/devices/{deviceName}/tag-tables/{tableName}/actions/export-csv-sync - Export tag table to CSV sync. Export tags from a table to a CSV file.
POST /api/devices/{deviceName}/tag-tables/{tableName}/actions/export-excel - Export tag table to excel. Export tags from a table to an Excel file asynchronously.
POST /api/devices/{deviceName}/tag-tables/{tableName}/actions/export-excel-sync - Export tag table to excel sync. Export tags from a table to an Excel file.
POST /api/devices/{deviceName}/tag-tables/{tableName}/actions/import-csv - Import tags from CSV. Import tags from a CSV file asynchronously.
POST /api/devices/{deviceName}/tag-tables/{tableName}/actions/import-csv-sync - Import tags from CSV sync. Import tags from a CSV file.
POST /api/devices/{deviceName}/tag-tables/{tableName}/actions/import-xlsx - Import tags from xlsx. Import tags from an Excel file asynchronously.
POST /api/devices/{deviceName}/tag-tables/{tableName}/actions/import-xlsx-sync - Import tags from xlsx sync. Import tags from an Excel file.
POST /api/devices/{deviceName}/tag-tables/{tableName}/tags/{tagName}/actions/rename - Rename tag
POST /api/devices/{deviceName}/tags - Add single tag. Add a single tag.
POST /api/devices/{deviceName}/tags/actions/import - Import tags. Import tags from JSON asynchronously.
POST /api/devices/{deviceName}/tags/actions/import-sync - Import tags sync. Import tags from JSON.
PUT /api/devices/{deviceName}/tag-tables/{tableName}/tags/{tagName} - Update tag. Update a tag.
Tag Tables
PLC tag tables and their folders.
DELETE /api/devices/{deviceName}/tag-tables/folders - Delete tag table folder. Delete a tag table folder.
DELETE /api/devices/{deviceName}/tag-tables/{tableName}/actions/delete - Delete tag table. Delete a tag table asynchronously.
DELETE /api/devices/{deviceName}/tag-tables/{tableName}/actions/delete-sync - Delete tag table sync. Delete a tag table.
DELETE /api/devices/{deviceName}/tag-tables/{tableName}/constants/{constantName} - Delete constant. Delete a constant from a tag table.
GET /api/devices/{deviceName}/tag-tables - Get tag tables. List tag tables.
GET /api/devices/{deviceName}/tag-tables/async - Get tag tables async. List tag tables asynchronously.
GET /api/devices/{deviceName}/tag-tables/tree - Get tag table tree. Get the tag table tree view including folders.
GET /api/devices/{deviceName}/tag-tables/{tableName}/constants - Get constants. List constants in a tag table.
GET /api/devices/{deviceName}/tag-tables/{tableName}/constants/system - Get system constants. Get system constants only from a tag table.
GET /api/devices/{deviceName}/tag-tables/{tableName}/constants/user - Get user constants. Get user constants only from a tag table.
POST /api/devices/{deviceName}/tag-tables/actions/create - Create tag table. Create a tag table asynchronously.
POST /api/devices/{deviceName}/tag-tables/actions/create-sync - Create tag table sync. Create a tag table.
POST /api/devices/{deviceName}/tag-tables/folders - Create tag table folder. Create a tag table folder.
POST /api/devices/{deviceName}/tag-tables/{tableName}/constants - Create constant. Create a constant in a tag table.
POST /api/tag-tables/actions/create - Create exact
POST /api/tag-tables/actions/delete - Delete exact
POST /api/tag-tables/actions/list - List exact
POST /api/tag-tables/actions/rename - Rename exact
PUT /api/devices/{deviceName}/tag-tables/{tableName}/actions/update - Update tag table name. Update a tag table asynchronously.
PUT /api/devices/{deviceName}/tag-tables/{tableName}/actions/update-sync - Update tag table name sync. Rename a tag table.
PUT /api/devices/{deviceName}/tag-tables/{tableName}/constants/{constantName} - Update constant. Update a constant in a tag table.
Data Types (UDT)
PLC data types: create, read, update, import and export.
DELETE /api/devices/{deviceName}/udts/folders/{folderPath} - Delete UDT folder. Delete a UDT folder.
DELETE /api/devices/{deviceName}/udts/{udtName} - Delete UDT. Delete a User Defined Type from the device.
GET /api/devices/{deviceName}/udts - Get udts. List all User Defined Types in the device.
GET /api/devices/{deviceName}/udts/tree - Get UDT tree. Get the UDT folder tree structure including nested folders.
GET /api/devices/{deviceName}/udts/{udtName} - Get UDT. Get the full details of a specific UDT including all its members.
POST /api/devices/{deviceName}/udts - Create UDT. Create a new User Defined Type with the specified members.
POST /api/devices/{deviceName}/udts/actions/import - Import UDT. Import a UDT from a file.
POST /api/devices/{deviceName}/udts/actions/import/async - Import UDT async. Import a UDT from a file asynchronously.
POST /api/devices/{deviceName}/udts/async - Create UDT async. Create a new User Defined Type asynchronously.
POST /api/devices/{deviceName}/udts/folders - Create UDT folder. Create a UDT folder.
POST /api/devices/{deviceName}/udts/{udtName}/actions/export - Export UDT. Export a specific UDT to a file on disk.
PUT /api/devices/{deviceName}/udts/{udtName} - Update UDT. Update an existing UDT by replacing its member definitions.
PUT /api/devices/{deviceName}/udts/{udtName}/async - Update UDT async. Update an existing UDT asynchronously.
GET /api/devices/{deviceName}/plc-alarms/text-lists - Get alarm textlists
POST /api/devices/{deviceName}/plc-alarms/instance-texts/export-xlsx - Export instance texts to xlsx
POST /api/devices/{deviceName}/plc-alarms/text-lists - Create alarm textlist
POST /api/devices/{deviceName}/plc-alarms/text-lists/export-xlsx - Export text lists to xlsx
POST /api/devices/{deviceName}/plc-alarms/text-lists/import-xlsx - Import text lists from xlsx
Software Units
Software units, their namespaces and relations.
DELETE /api/devices/{deviceName}/software-units/{unitName} - Delete unit
GET /api/devices/{deviceName}/software-units - Get units
GET /api/devices/{deviceName}/software-units/{unitName}/relations - Get unit relations
POST /api/devices/{deviceName}/software-units - Create unit
POST /api/devices/{deviceName}/software-units/{unitName}/relations - Add unit relation
PUT /api/devices/{deviceName}/software-units/{unitName}/namespace - Set namespace
Libraries
Project and global libraries, types, versions and master copies.
DELETE /api/libraries/global/master-copies - Delete global master copy. Delete a master copy from the global library.
DELETE /api/libraries/global/types/{typeName} - Delete global library type. Delete a type from the global library.
DELETE /api/project/library/master-copies/{mcPath} - Delete project master copy. Delete a master copy from the project library by its path.
DELETE /api/project/library/types/{typeName} - Delete project library type. Delete a library type from the project library.
GET /api/devices/{deviceName}/blocks/{blockName}/cross-references - Get cross references. Get cross-references for a specific block (where it is used and what it uses).
GET /api/libraries/global - Get global library infos. List all global libraries available on the system.
GET /api/libraries/global/master-copies - Get global master copies. List all master copies in the global library.
GET /api/libraries/global/tree - Get global library tree. Get the full tree structure of the global library.
GET /api/libraries/global/types - Get global library types. List all types in the global library.
GET /api/project/library - Get project library. Get project library information.
GET /api/project/library/master-copies - Get project master copies. List all master copies in the project library.
GET /api/project/library/tree - Get project library tree. Get the full project library tree structure including folders and items.
GET /api/project/library/types - Get project library types. List all library types in the project library.
POST /api/libraries/global - Create global library. Create a new global library.
POST /api/libraries/global/actions/archive - Archive global library. Archive the currently open global library.
POST /api/libraries/global/actions/archive/async - Archive global library async
POST /api/libraries/global/actions/close - Close global library. Close the currently open global library.
POST /api/libraries/global/actions/open - Open global library. Open an existing global library.
POST /api/libraries/global/actions/save - Save global library. Save the currently open global library.
POST /api/libraries/global/master-copies - Create global master copy. Create a new master copy in the global library.
POST /api/libraries/global/master-copies/actions/instantiate - Create from global master copy. Instantiate a master copy from the global library into the project.
POST /api/libraries/global/master-copies/folders - Create global master copy folder. Create a folder in the global library master copies.
POST /api/libraries/global/types/actions/compare - Compare global library type versions
POST /api/libraries/global/types/actions/instantiate - Create from global library type. Instantiate a type from the global library into the project.
POST /api/libraries/global/types/versions - Create global library type version
POST /api/libraries/global/types/versions/async - Create global library type version async
POST /api/libraries/global/types/{typeName}/actions/set-default - Set global library type default version
POST /api/project/library/master-copies - Create project master copy. Create a new master copy from an existing block or item in the project.
POST /api/project/library/master-copies/actions/instantiate - Create from project master copy. Instantiate a master copy into the project (e.g., into a specific device).
POST /api/project/library/master-copies/folders - Create project master copy folder. Create a folder in the project library master copies.
POST /api/project/library/types/actions/compare - Compare project library type versions. Compare two library types or type versions.
POST /api/project/library/types/actions/instantiate - Create from project library type. Instantiate a library type into the project.
POST /api/project/library/types/versions - Create project library type version. Create a new version of a library type.
POST /api/project/library/types/versions/async - Create project library type version async
POST /api/project/library/types/{typeName}/actions/set-default - Set project library type default version. Set the default version for a library type.
Security & UMAC
Project users, roles and protection settings.
DELETE /api/devices/{deviceName}/security/password/{accessLevel} - Reset password. Delete a password for a specific access level.
DELETE /api/security/default-cpu-master-secret - Clear default CPU master secret
DELETE /api/security/roles/{roleName} - Delete custom role
DELETE /api/security/users/{userName} - Delete user
DELETE /api/security/users/{userName}/roles/{roleName} - Remove role from user
GET /api/devices/{deviceName}/security/protection-level - Get protection level. Get the current CPU protection level.
GET /api/devices/{deviceName}/security/summary - Get security summary. Get security summary for a device - shows which protection mechanisms are active.
GET /api/security/default-cpu-master-secret - Get default CPU master secret status
GET /api/security/roles - Get roles. List all UMAC roles available in the project.
GET /api/security/secrets - List secrets
GET /api/security/secrets/{idOrLabel}/metadata - Get secret metadata
GET /api/security/users - Get users. List all UMAC users in the project.
POST /api/devices/{deviceName}/security/configuration/apply - Apply CPU configuration
POST /api/devices/{deviceName}/security/configuration/diagnose - Diagnose CPU configuration
POST /api/devices/{deviceName}/security/configure - Configure security for simulation. Configure security settings for a device (protection levels, access control).
POST /api/devices/{deviceName}/security/display-password - Set display password. Set the display password for a device (HMI display protection).
POST /api/devices/{deviceName}/security/master-secret/actions - Manage master secret. Set the master secret for a device.
POST /api/devices/{deviceName}/security/password - Set password. Set or change a password for a specific access level.
POST /api/devices/{deviceName}/security/protection-level - Set protection level
POST /api/security/default-cpu-master-secret - Set default CPU master secret
POST /api/security/roles - Create custom role
POST /api/security/secrets - Store secret
POST /api/security/users - Create user. Create a UMAC user in the project (User Management Access Control).
POST /api/security/users/{userName}/roles - Assign role to user
GET /api/devices/{deviceName}/cpu/status - Get CPU state. Get the current CPU operating state (RUN, STOP, etc.).
GET /api/devices/{deviceName}/online-diagnostics - Get CPU online diagnostics
GET /api/devices/{deviceName}/online/auth-password/status - Get online auth status
GET /api/devices/{deviceName}/online/status - Get online state. Check whether the device is currently online or offline.
GET /api/online-access/scan - Scan online access
POST /api/devices/{deviceName}/actions/compare - Compare online offline. Compare online and offline versions of the device program.
POST /api/devices/{deviceName}/actions/download - Download. Download the program to the PLC asynchronously. Returns a job ID to poll for completion.
POST /api/devices/{deviceName}/actions/download-sync - Download sync. Download the program to the PLC synchronously. Waits for the operation to complete before returning.
POST /api/devices/{deviceName}/actions/upload - Upload. Upload (read back) the program from the PLC (asynchronous).
POST /api/devices/{deviceName}/actions/upload-sync - Upload sync. Upload (read back) the program from the PLC (synchronous).
POST /api/devices/{deviceName}/cpu/actions/start - Start CPU. Start the CPU (set to RUN mode).
POST /api/devices/{deviceName}/cpu/actions/stop - Stop CPU. Stop the CPU (set to STOP mode).
POST /api/devices/{deviceName}/online - Go online. Go online with the specified device to establish a live connection.
POST /api/devices/{deviceName}/online/auth-password - Set online auth password
POST /api/online/workflow-guide - Get online workflow guide
PLCSim Simulation
PLCSim Advanced instances: create, start, read and write tags, simulate.
DELETE /api/simulation/instances/{name} - Delete instance. Delete a virtual PLC instance by name.
GET /api/simulation/instances - Get instances. List all registered virtual PLC instances.
GET /api/simulation/instances/{name}/config - Get instance config. Get configuration details for a specific instance.
GET /api/simulation/instances/{name}/diagnostics - Get instance diagnostics
GET /api/simulation/instances/{name}/network - Get network. Get network configuration for a specific instance.
GET /api/simulation/instances/{name}/state - Get instance state. Get the current state of a virtual PLC instance.
GET /api/simulation/persistence - Get persistence folders
GET /api/simulation/persistence/{name} - Get persistence info
GET /api/simulation/profiles - List profiles. List all saved simulation profiles.
GET /api/simulation/profiles/{fileName} - Get profile. Get details of a specific simulation profile.
GET /api/simulation/runtime/config - Get runtime config. Get the current PLCSim runtime configuration.
GET /api/simulation/runtime/net-interfaces - Get net interfaces
GET /api/simulation/runtime/status - Get runtime status. Get PLCSim runtime status including version and running state.
GET /api/simulation/state - Get simulation state. Get the current simulation state including connection and running status.
GET /api/simulation/status - Get status. Get overall simulation status including runtime and active instances.
GET /api/simulation/tags - Get tags. List all available simulation tags from the connected instance.
GET /api/simulation/tags/{tagName} - Read tag. Read the current value of a specific simulation tag.
POST /api/simulation/connect - Connect. Connect to a PLCSim Advanced instance for tag access and monitoring.
POST /api/simulation/disconnect - Disconnect. Disconnect from the current PLCSim Advanced instance.
POST /api/simulation/import-legacy - Import legacy. Import a legacy PLCSim project into PLCSim Advanced.
POST /api/simulation/instances/create - Create instance. Create a new virtual PLC instance in PLCSim Advanced.
POST /api/simulation/instances/{name}/memory-reset - Memory reset. Reset PLC memory for the specified instance.
POST /api/simulation/instances/{name}/power-off - Power off. Power off a virtual PLC instance.
POST /api/simulation/instances/{name}/power-on - Power on. Power on a virtual PLC instance.
POST /api/simulation/instances/{name}/repair - Repair instance
POST /api/simulation/instances/{name}/run - Run instance. Set the virtual PLC CPU to RUN mode.
POST /api/simulation/instances/{name}/stop - Stop instance. Set the virtual PLC CPU to STOP mode.
POST /api/simulation/profiles - Save profile. Create a new simulation profile with instance definitions.
POST /api/simulation/runtime/net-interface-bindings - Set net interface bindings
POST /api/simulation/runtime/port - Set runtime port. Set the communication port used by PLCSim Advanced.
POST /api/simulation/runtime/start - Start runtime manager. Start the PLCSim Advanced runtime environment.
POST /api/simulation/start - Start simulation. Start a simulation session on a specific instance.
POST /api/simulation/stop - Stop simulation. Stop the current simulation session.
POST /api/simulation/tags/batch-read - Batch read. Read multiple simulation tags in a single request.
POST /api/simulation/tags/batch-write - Batch write. Write values to multiple simulation tags in a single request.
POST /api/simulation/tags/refresh - Refresh tags. Refresh the tag list from the connected PLCSim instance.
POST /api/simulation/widgets/batch-set - Batch set widget values
PUT /api/simulation/instances/{name}/config - Set instance config. Update configuration for a specific instance.
PUT /api/simulation/instances/{name}/network - Set network. Update network configuration for a specific instance.
PUT /api/simulation/runtime/config - Set runtime config. Update the PLCSim runtime configuration.
PUT /api/simulation/tags/{tagName} - Write tag. Write a value to a specific simulation tag.
PUT /api/simulation/widgets/{widgetId}/value - Set widget value
Diagnostics
Diagnostic and discovery services of TIA Portal Openness.
GET /api/diagnostic/cpu-services/{deviceName} - Get CPU services. Get CPU services available for a device.
GET /api/diagnostic/enum-values/{typeName} - Get enum values. Get all values of a specific Openness enum type.
GET /api/diagnostic/namespaces - Get namespace summary. Get a summary of all Siemens Engineering namespaces and their type counts.
GET /api/diagnostic/online-download-types - Get online download upload types. Get categorized online and download types supported by TIA Portal.
GET /api/diagnostic/plc-services/{deviceName} - Get PLC software services. Get PLC software services available for a device.
GET /api/diagnostic/providers - Get all providers. List all available Openness provider interfaces.
GET /api/diagnostic/search - Search types. Search for a specific type by name.
GET /api/diagnostic/types - Get types by namespace. Search for Openness types matching a filter string.
Watch & Force
Watch and force tables: create, edit and export.
DELETE /api/devices/{deviceName}/force-tables/{tableName} - Delete force table. Delete a force table from the device.
DELETE /api/devices/{deviceName}/watch-force-tables/folders - Delete watch force table folder. Delete a folder from the watch/force tables container.
DELETE /api/devices/{deviceName}/watch-tables/{tableName} - Delete watch table. Delete a watch table from the device.
GET /api/devices/{deviceName}/force-tables - Get force tables. List all force tables in the device.
GET /api/devices/{deviceName}/force-tables/{tableName} - Get force table. Get detailed information about a specific force table.
GET /api/devices/{deviceName}/watch-tables - Get watch tables. List all watch tables in the device.
GET /api/devices/{deviceName}/watch-tables/{tableName} - Get watch table. Get detailed information about a specific watch table including its entries.
POST /api/devices/{deviceName}/force-tables - Create force table. Create a new force table.
POST /api/devices/{deviceName}/force-tables/{tableName}/actions/export - Export force table. Export a force table to an XML file on disk.
POST /api/devices/{deviceName}/watch-force-tables/actions/import - Import table. Import a watch or force table from an XML file.
POST /api/devices/{deviceName}/watch-force-tables/folders - Create watch force table folder. Create a folder in the watch/force tables container.
POST /api/devices/{deviceName}/watch-tables - Create watch table. Create a new empty watch table.
POST /api/devices/{deviceName}/watch-tables/{tableName}/actions/export - Export watch table. Export a watch table to an XML file on disk.
POST /api/devices/{deviceName}/watch-tables/{tableName}/entries - Add watch table entries. Add one or more tag entries to a watch table.
POST /api/devices/{deviceName}/watch-tables/{tableName}/entries/actions/clear - Clear watch table entries. Clear all entries from a watch table.
POST /api/devices/{deviceName}/watch-tables/{tableName}/entries/actions/remove - Remove watch table entries. Remove specific entries from a watch table.
PLC Tests
Automated PLC tests: create, run and read results.
DELETE /api/testharness/tests/{name} - Delete test
GET /api/testharness/results - Get results
GET /api/testharness/tests - List tests
GET /api/testharness/tests/{name} - Get test
POST /api/testharness/run - Run test
POST /api/testharness/tests - Create test
FAT / SAT
Factory and site acceptance test reports.
POST /api/fatsat/generate - Generate report
POST /api/fatsat/generate-sync - Generate report sync
POST /api/fatsat/support-evidence - Generate support evidence report
POST /api/fatsat/support-evidence-sync - Generate support evidence report sync
Reports
Project reports and deliverables.
POST /api/reports/deliverable - Generate deliverable
POST /api/reports/generate - Generate report
POST /api/reports/generate-sync - Generate report sync
Pipelines
Saved sequences of operations: create, run and read their history.
DELETE /api/pipelines/{name} - Delete pipeline
GET /api/pipelines - List pipelines
GET /api/pipelines/executions - Get history
GET /api/pipelines/executions/{id} - Get execution
GET /api/pipelines/templates - List templates
GET /api/pipelines/templates/{id} - Get template
GET /api/pipelines/{name} - Get pipeline
POST /api/pipelines - Save pipeline
POST /api/pipelines/run-inline - Run inline
POST /api/pipelines/templates/{id}/instantiate - Instantiate template
POST /api/pipelines/{name}/run - Run pipeline
Patterns
Reusable engineering patterns: list, inspect and instantiate.
GET /api/patterns - Get patterns
GET /api/patterns/guide - Get pattern guide
GET /api/patterns/{patternId} - Get pattern details
POST /api/patterns/{patternId}/instantiate - Instantiate pattern
Source Control
Version control of the project: status, commit, branches, diff and remotes.
GET /api/source-control/file-content - Get file content
GET /api/source-control/log - Get log
GET /api/source-control/remotes - List remotes
GET /api/source-control/status - Get status
POST /api/source-control/branches - Create branch
POST /api/source-control/branches/checkout - Checkout branch
POST /api/source-control/commit - Commit
POST /api/source-control/export-preview - Export preview
POST /api/source-control/import - Import
POST /api/source-control/init - Init
POST /api/source-control/merge - Merge branch
POST /api/source-control/pull - Pull
POST /api/source-control/push - Push
POST /api/source-control/remotes - Add remote
POST /api/source-control/restore - Restore
PUT /api/source-control/config - Set config
History & Snapshots
Project history, snapshots and restore points.
DELETE /api/history/snapshots/{snapshotId} - Delete snapshot. Delete a snapshot. Returns 404 if the snapshot does not exist.
GET /api/history/blocks/{deviceName}/{blockName} - Get block snapshots. List all snapshots for a specific block.
GET /api/history/snapshots/{snapshotId} - Get snapshot. Get details of a specific snapshot.
GET /api/history/snapshots/{snapshotId}/content - Get snapshot content. Get the full content of a snapshot (block source or tag table entries).
GET /api/history/stats - Get stats. Get snapshot storage statistics.
GET /api/history/tags/{deviceName}/{tableName} - Get tag table snapshots. List all snapshots for a specific tag table.
POST /api/history/actions/cleanup - Trigger cleanup. Trigger a cleanup of old snapshots to free storage.
POST /api/history/blocks/{deviceName}/{blockName}/actions/snapshot - Create block snapshot. Create a manual snapshot of a block before making changes.
POST /api/history/snapshots/{snapshotId}/actions/restore-sync - Restore snapshot. Restore a snapshot synchronously, replacing the current block or tag table content.
POST /api/history/tags/actions/create - Create exact tag table snapshot
POST /api/history/tags/actions/list - List exact tag table snapshots
POST /api/history/tags/actions/restore - Restore exact tag table snapshot
POST /api/history/tags/{deviceName}/{tableName}/actions/snapshot - Create tag table snapshot. Create a manual snapshot of a tag table before making changes.
Operation History
History of the TIA Portal operations performed through the API.
DELETE /api/operation-history - Clear
GET /api/operation-history - Get
Version Control Interface
TIA Portal Version Control Interface workspaces and synchronization.
POST /api/workplans/{id}/active-phase - Set active phase
POST /api/workplans/{id}/artifacts - Add artifact
POST /api/workplans/{id}/design-spec-links - Add design spec link
POST /api/workplans/{id}/execution-logs - Add execution log
POST /api/workplans/{id}/phases - Add phase
POST /api/workplans/{id}/phases/reorder - Reorder phases
POST /api/workplans/{id}/phases/{phaseId}/verification - Update verification
POST /api/workplans/{id}/sync-snapshot - Sync snapshot
Artifacts
Files produced by the API (archives, exports, reports): list, read metadata, download and clean up.
DELETE /api/artifacts/{artifactId} - Delete
GET /api/artifacts - List
GET /api/artifacts/{artifactId} - Download
GET /api/artifacts/{artifactId}/metadata - Get metadata
POST /api/artifacts/cleanup-expired - Cleanup expired
POST /api/artifacts/project-archive - Archive current project
Assets
Static protocol assets served by the API.
GET /api/assets/protocoles/{name} - Get protocol logo
Audit
Read the audit trail of operations performed through the API.
GET /api/audit - Get audit log. Get project audit logs (API call history, actions performed).
AI Assistant
Chat with the built-in TIA Portal assistant, read its history, list models and stop a running answer.
DELETE /api/assistant/history - Clear history. Clear the entire chat history. This action cannot be undone.
GET /api/assistant/history - Get history. Retrieve the chat history. Optionally filter by project key using query parameter.
POST /api/assistant/chat - Chat. Send a message to the AI assistant. The response is streamed in real-time. Optionally provide a ProjectKey to give the assistant context about a specific project.
POST /api/assistant/models - Get models. Get the list of available AI models based on the current assistant configuration. Send the assistant settings to filter compatible models.
POST /api/assistant/stop - Stop. Stop the current AI generation in progress. Useful when the assistant is producing a long response you no longer need.
POST /api/assistant/workplan-proposals/accept - Accept workplan proposal
POST /api/assistant/workplan-proposals/proposal-only/multirun - Run proposal only harness
POST /api/assistant/workplan-proposals/proposal-only/multirun/export - Run proposal only harness export
POST /api/assistant/workplans/strict-pass-only/run - Run strict pass only
Commands
Discover and run the commands exposed by the API.
GET /api/command/info/{route} - Get endpoint info. Get detailed information about a specific API route including parameters and expected body.
GET /api/command/list - Get available endpoints. Get a list of all available API endpoints with their controllers and HTTP methods.
Prompts
Prompts available to the assistant.
GET /api/prompts/contextual - Get contextual prompt
POST /api/prompts/contextual - Post contextual prompt
Design Spec
Functional design specifications used to generate and check the project.
DELETE /api/design-spec/model - Clear model. Clear the currently loaded design model from memory.
GET /api/design-spec/model - Get model. Get the currently loaded design model. Returns the full specification that was previously loaded.
POST /api/design-spec/generate - Generate SCL. Generate PLC blocks from the currently loaded design specification. The blocks are generated but not imported into the TIA Portal project.
POST /api/design-spec/generate-and-import - Generate and import. Generate PLC blocks from the loaded design specification and automatically import them into the currently open TIA Portal project.
POST /api/design-spec/load - Load from CSV. Load a design specification into memory. The spec describes the PLC logic you want to generate.
POST /api/design-spec/load-separate - Load from separate CSV. Load a design specification with separate sections for inputs, outputs, logic, and configuration. Useful for complex specs built incrementally.
Custom Documentation
Upload, list and search your own reference documents.