Web arayüzünün yaptığı her şey aynı REST API'den geçer; tıkladığınız her şeyi betikleyebilirsiniz. API, web portunda (varsayılan 8090) HTTP(S) üzerinden JSON'dur ve uygulama içinde canlı belgelenmiştir (… › REST API, Swagger UI).

Kimlik doğrulama
İki yol:
- Oturum çerezi —
POST /auth/v1/login{"username":"…","password":"…"}bir çerez döner; her istekle gönderin. Oturumlar güvenlik politikasına uyar (boşta zaman aşımı, tek/çoklu giriş). - API token — Ayarlar › API token'ları'ndan bir kullanıcı için token üretin ve
Authorization: Bearer <token>gönderin. Token kullanıcının rolünü ve kaynak ACL'sini taşır; istediğiniz an iptal edin.
curl -c c.txt -X POST https://scada.example.com/auth/v1/login \
-H "Content-Type: application/json" -d '{"username":"apiuser","password":"••••"}'
Ana uç grupları
| Grup | Örnek | Amaç |
|---|---|---|
/auth/v1/* | login, me, logout, forgot | kimlik doğrulama |
/config/v1/project/* | channels, channels/{ch}/devices, …/tags (GET/POST/PUT/DELETE) | proje yapılandırması, JSON dışa aktarımla aynı model |
/config/v1/settings | GET/PUT | sunucu ayarları |
/config/v1/license/* | activate, refresh, release, update-check | lisanslama |
/config/v1/scada/* | screens, library, symbols | SCADA ekranları |
/config/v1/advanced, /aliases, /alarms, /logger | CRUD | eklentiler |
/runtime/v1/values?tags=A.B.C,… | GET | kalite ve zaman damgalı canlı değerler |
/runtime/v1/write | POST {"tag":"A.B.C","value":42} | cihaza yazma (denetimli) |
/runtime/v1/status, /metrics, /services/* | GET/POST | sağlık, CPU/RAM, servis kontrolü |
/runtime/v1/events, /audit | GET | olay ve denetim günlükleri |
/logger/v1/history?tag=…&from=…&to=… | GET | historian verisi |
/iotgateway/* | GET/POST | Kepware uyumlu Data Bridge REST sunucusu (bkz. Data Bridge) |
Yapılandırma yazmaları sürüm çakışmasında 409, lisans tag tavanı aşılacaksa 402, kaynak ACL reddederse 403 döner.
Örnekler
Üç tag oku:
curl -b c.txt "http://localhost:8090/runtime/v1/values?tags=Tesis.PLC1.Debi,Tesis.PLC1.Basinc,Tesis.PLC1.Pompa1_Calisiyor"
[{"tag":"Tesis.PLC1.Debi","value":412.6,"quality":"Good","ts":"2026-09-05T10:20:41.008Z"}, …]
Setpoint yaz:
curl -b c.txt -X POST http://localhost:8090/runtime/v1/write \
-H "Content-Type: application/json" -d '{"tag":"Tesis.PLC1.Setpoint","value":55}'
Tek çağrıyla tag'li cihaz oluştur:
curl -b c.txt -X POST http://localhost:8090/config/v1/project/channels/Tesis/devices \
-H "Content-Type: application/json" \
-d '{"name":"PLC2","idString":"10.0.0.6:502","unitId":1,"scanRateMs":1000,
"tags":[{"name":"Debi","address":"40001","dataType":"Float"},{"name":"Calisiyor","address":"00001","dataType":"Boolean","readWrite":"RW"}]}'
Projeyi dışa / içe aktar:
curl -b c.txt http://localhost:8090/config/v1/project/export -o proje.json
curl -b c.txt -X POST http://localhost:8090/config/v1/project/import?mode=merge -H "Content-Type: application/json" --data-binary @proje.json
Oran sınırı ve güvenlik
- Giriş denemeleri sınırlıdır (tekrarlanan başarısızlıkta 429).
- Her değiştiren çağrı kullanıcı, IP ve içerik özetiyle denetim günlüğüne yazılır.
- Canlı değer okumaları ucuzdur (bellek içi); cihaz tarama hızından hızlı sorgulamayın — yüksek hızlı veri için OPC UA ya da MQTT'ye abone olun.
Swagger / OpenAPI
Uygulamada … › REST API etkileşimli OpenAPI belgesini açar (giriş gerekir). Her rotayı şemalarıyla listeler ve oturumunuzla denemenizi sağlar.
MergenHub