Skip to main content

API Overview

The Studio server exposes the same REST API that the web UI uses. This document is intended for integration developers who want to call that API directly.

Base URL​

The Studio API is /api/v1.

https://<studio-host>/api/v1/...

The legacy path /api/... is also still supported (as an alias). Examples in this document that still use /api/... can be used as-is, but for new code, use /api/v1.

Do not confuse it with the platform's v5

These are not two versions of the same API, but different products with different listeners.

WhatPath
Studio APIStudio's own API (this document)/api/v1
Platform APIA proxy that apps created by Studio call from their own origin/api/v5

Authentication​

Send the session token as a header.

Authorization: Bearer <token>

If the token is missing or expired, the server returns 401. When the web UI receives a 401, it clears the stored token and returns to the login screen. We recommend the same handling when calling the API directly — a 401 will not be resolved by retrying.

Response Format​

Successful responses come wrapped in a data envelope.

{
"data": { "id": "prj_01H...", "name": "라인 모니터" }
}

Error responses contain a errors array. The message of the first item is the human-readable message.

{
"errors": [
{ "code": "project_not_found", "message": "프로젝트를 찾을 수 없습니다." }
]
}

It is safest for a client to check both the HTTP status and errors[0].message. There are cases where the server does not provide a message, and the web UI uses its own fallback text only in those cases.

Streaming Events​

Progress while the agent is working is delivered via streaming. This applies to chat (/api/session/{id}/message, /api/ask) and notifications (/api/notifications/stream).

There are seven types of events.

typePayloadMeaning
assistant_texttextText fragment written by the agent
tool_callname, inputA tool was invoked
tool_resultname, ok, summaryTool result. ok indicates success
file_changepathA file changed
commithash, messageChanges were committed
done—This turn ended
errormessageError during processing

Read until you receive done or error.

Attachments​

Attachments such as images are sent inline as base64.

{
"name": "설비사진.png",
"mime": "image/png",
"dataBase64": "iVBORw0KGgo..."
}

Document Structure​

DocumentWhat it covers
SessionWork session lifecycle, files, history, undo
Projects and DeploymentApp creation, deployment, rollback, runtime
ChatConversations with the agent, query history
SkillsField skill registration, extraction, import
Platform IntegrationPlantPulse platform data exploration, semantic search
AdministrationConfiguration, users, watchers, audit, alarms