Semaphor

Update a visual

Updates visual metadata (title, description) or replaces the frame configuration. All fields are optional — only provided fields are changed.

Optimistic concurrency: Pass expectedLastModified (an ISO 8601 timestamp from a previous GET) to detect conflicts. If another user modified the visual after that timestamp, the request fails with 409 and returns the current lastModified value so you can re-fetch and retry.

PUT
/api/management/v1/visuals/{visualId}

Authorization

BearerAuth
AuthorizationBearer <token>

A project-scoped or dashboard-scoped access token. Generate one via the Token API using your project ID and project secret.

In: header

Path Parameters

visualId*string

Visual identifier.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X put "https://semaphor.cloud/api/management/v1/visuals/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string",
  "title": "string",
  "description": "string",
  "projectId": "string",
  "tenantId": "string",
  "frameObject": {},
  "permissions": {
    "canEdit": true,
    "canShare": true,
    "canDelete": true
  },
  "ownership": {},
  "project": {},
  "tenant": {},
  "AccessControlEntry": [
    {}
  ]
}
{
  "error": "string",
  "code": "string",
  "details": {},
  "success": true
}
{
  "error": "string",
  "code": "string",
  "details": {},
  "success": true
}
{
  "error": "string",
  "code": "string",
  "details": {},
  "success": true
}
{
  "error": "string",
  "code": "string",
  "details": {},
  "success": true
}
{
  "error": "string",
  "code": "string",
  "details": {},
  "success": true
}