SessionDock Developer Docs

Make your creative workflow programmable.

Authoritative guides, generated Local API reference, and practical patterns for local automation, scripts, launchers, and AI agents running alongside SessionDock.

Replace waveform notes

Same behavior as PUT for integrations that prefer PATCH semantics.

PATCH/api/v1/sessions/{id}/waveform-notes

Same behavior as PUT for integrations that prefer PATCH semantics.

curl -X PATCH 'http://127.0.0.1:18432/api/v1/sessions/session_123/waveform-notes?variantId=preview_main' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "notes": [
    {
      "id": "<string>",
      "timestamp": 0,
      "text": "<string>",
      "createdAt": "2025-01-15T12:34:56Z",
      "updatedAt": "2025-01-15T12:34:56Z"
    }
  ]
}'

Parameters

NameInTypeRequiredDescriptionExample
idpathstringYesSession identifier.session_123
variantIdquerystringNoOptional preview variant identifier.preview_main

Request Body

Required

application/json

Schema Shape

{
  "notes": [
    {
      "id": "<string>",
      "timestamp": 0,
      "text": "<string>",
      "createdAt": "2025-01-15T12:34:56Z",
      "updatedAt": "2025-01-15T12:34:56Z"
    }
  ]
}

Example

{
  "notes": [
    {
      "id": "<string>",
      "timestamp": 0,
      "text": "<string>",
      "createdAt": "2025-01-15T12:34:56Z",
      "updatedAt": "2025-01-15T12:34:56Z"
    }
  ]
}

Responses

200

Updated waveform notes

application/json

Schema Shape

{
  "data": {
    "sessionId": "<string>",
    "variantId": "<string>",
    "key": "<string>",
    "notes": [
      {
        "id": "<string>",
        "timestamp": 0,
        "text": "<string>",
        "createdAt": "2025-01-15T12:34:56Z",
        "updatedAt": "2025-01-15T12:34:56Z"
      }
    ]
  }
}

Example

{
  "data": {
    "sessionId": "<string>",
    "variantId": "<string>",
    "key": "<string>",
    "notes": [
      {
        "id": "<string>",
        "timestamp": 0,
        "text": "<string>",
        "createdAt": "2025-01-15T12:34:56Z",
        "updatedAt": "2025-01-15T12:34:56Z"
      }
    ]
  }
}
400

Malformed JSON or rejected input.

application/json

Schema Shape

{
  "error": {
    "status": 0,
    "code": "<string>",
    "message": "<string>"
  }
}

Example

{
  "error": {
    "status": 400,
    "code": "invalid_json",
    "message": "Request body must be valid JSON."
  }
}
401

Missing or invalid bearer token.

application/json

Schema Shape

{
  "error": {
    "status": 0,
    "code": "<string>",
    "message": "<string>"
  }
}

Example

{
  "error": {
    "status": 401,
    "code": "unauthorized",
    "message": "Provide Authorization: Bearer <token>."
  }
}
403

Write attempted while Local API is in read-only mode.

application/json

Schema Shape

{
  "error": {
    "status": 0,
    "code": "<string>",
    "message": "<string>"
  }
}

Example

{
  "error": {
    "status": 403,
    "code": "read_only",
    "message": "Enable Full Automation to perform this action."
  }
}
404

No matching resource was found.

application/json

Schema Shape

{
  "error": {
    "status": 0,
    "code": "<string>",
    "message": "<string>"
  }
}

Example

{
  "error": {
    "status": 404,
    "code": "not_found",
    "message": "session not found"
  }
}
501

Waveform notes service is unavailable in the current runtime.

application/json

Schema Shape

{
  "error": {
    "status": 0,
    "code": "<string>",
    "message": "<string>"
  }
}

Example

{
  "error": {
    "status": 501,
    "code": "waveform_notes_unavailable",
    "message": "Waveform notes service is unavailable."
  }
}