AI MindClip

July 23, 2026 ยท View on GitHub


Device List Information

KeyValue TypeDescription
deviceIdStringdevice ID
deviceNameStringdevice name
deviceTypeStringdevice type. AI MindClip

Device Status

KeyValue TypeDescription
deviceIdStringdevice ID
deviceTypeStringdevice type. AI MindClip
batteryIntegerthe current battery level, 0-100
chargingStatusIntegercharge state. 0, uncharged; 1, charging
recordingStatusIntegerrecording state. 0, not recording; 1, recording
uploadStatusIntegerupload state. 0, not uploaded; 1, uploading
hasUntransferredFilesBooleandetermines if the device has files that are not transferred

Control Commands

AI MindClip does not support device control commands.


Feature APIs

Get recording list

GET /v1.1/mindclip/recordings?deviceID={deviceID}&pageNum={pageNum}&pageSize={pageSize}

Available for: SwitchBot AI MindClip

Description

Gets a paginated list of recordings created by an AI MindClip device.

Query parameters

ParameterTypeRequiredDescription
deviceIDStringYesdevice ID
pageNumIntegerYespage number
pageSizeIntegerYesnumber of recordings returned per page

Response

The body object contains the following properties,

Key NameValue TypeDescription
totalIntegertotal number of recordings
pageNumIntegercurrent page number
pageSizeIntegernumber of recordings returned per page
pagesIntegertotal number of pages
listArrayrecording list
list[].idStringrecording ID
list[].displayNameStringrecording display name
list[].recordingLenIntegerrecording length
list[].fileSizeIntegerrecording file size
list[].deviceIDStringdevice ID
list[].transcribeStatusIntegertranscription status
list[].createdTimeIntegercreated time in Unix milliseconds
list[].folderIDIntegerfolder ID
list[].emojiStringfolder or recording emoji
list[].isSystemBooleandetermines if the folder is a system folder
{
    "statusCode": 100,
    "message": "success",
    "body": {
        "total": 1,
        "pageNum": 1,
        "pageSize": 20,
        "pages": 1,
        "list": [
            {
                "id": "5f3a1c2e9b7d",
                "displayName": "Team sync",
                "recordingLen": 1820,
                "fileSize": 2931456,
                "deviceID": "AABBCCDDEEFF",
                "transcribeStatus": 2,
                "createdTime": 1716000000000,
                "folderID": 3,
                "emoji": "๐Ÿ“",
                "isSystem": false
            }
        ]
    }
}

Error codes

Refer to Standard HTTP Error Codes for error handling.

Sample request

GET /v1.1/mindclip/recordings?deviceID=AABBCCDDEEFF&pageNum=1&pageSize=20 HTTP/1.1
Host: api.switch-bot.com
Authorization: <token>
sign: <signature>
nonce: <nonce>
t: <timestamp>

Get recording detail

GET /v1.1/mindclip/recordings/{recordingId}

Available for: SwitchBot AI MindClip

Description

Gets the metadata for a specified AI MindClip recording.

Path parameters

ParameterTypeRequiredDescription
recordingIdStringYesrecording ID

Response

The body object contains the following properties,

Key NameValue TypeDescription
idStringrecording ID
displayNameStringrecording display name
recordingLenIntegerrecording length
fileSizeIntegerrecording file size
deviceIDStringdevice ID
transcribeStatusIntegertranscription status
createdTimeIntegercreated time in Unix milliseconds
folderIDIntegerfolder ID
emojiStringfolder or recording emoji
isSystemBooleandetermines if the folder is a system folder
{
    "statusCode": 100,
    "message": "success",
    "body": {
        "id": "5f3a1c2e9b7d",
        "displayName": "Team sync",
        "recordingLen": 1820,
        "fileSize": 2931456,
        "deviceID": "AABBCCDDEEFF",
        "transcribeStatus": 2,
        "createdTime": 1780060800000,
        "folderID": 3,
        "emoji": "note",
        "isSystem": false
    }
}

Error codes

Refer to Standard HTTP Error Codes for error handling.

Sample request

GET /v1.1/mindclip/recordings/5f3a1c2e9b7d HTTP/1.1
Host: api.switch-bot.com
Authorization: <token>
sign: <signature>
nonce: <nonce>
t: <timestamp>

Get recording summary

GET /v1.1/mindclip/summaries/{recordingId}

Available for: SwitchBot AI MindClip

Description

Gets the transcript, AI summary, template result, atmosphere analysis, extracted todos, and speaker information for a specified recording.

Path parameters

ParameterTypeRequiredDescription
recordingIdStringYesrecording ID

Response

The body object contains the following properties,

Key NameValue TypeDescription
fileIDStringrecording file ID
transcribeStatusIntegertranscription status
transcribeResultStringtranscript text
aiSummaryResultStringAI summary text
aiTemplateResultStringAI template result
aiAtmoResultStringAI atmosphere result
aiTodoListArrayAI extracted todo items
aiTodoList[].titleStringtodo title
aiTodoList[].reminderTimeIntegerreminder time in Unix milliseconds
aiTodoList[].isCompletedBooleandetermines if the todo is completed
aiTodoList[].createdTimeIntegercreated time in Unix milliseconds
aiTodoList[].fileIDStringrecording file ID
aiTodoList[].deviceIDStringdevice ID
aiTodoList[].categoryIntegertodo category
speakersArrayspeaker information
speakers[].speakerStringspeaker identifier
speakers[].speakerNameStringspeaker name
speakers[].lightColorStringspeaker color for light mode
speakers[].darkColorStringspeaker color for dark mode
speakers[].speakerConfidenceNumberspeaker recognition confidence
{
    "statusCode": 100,
    "message": "success",
    "body": {
        "fileID": "5f3a1c2e9b7d",
        "transcribeStatus": 2,
        "transcribeResult": "Alice: Let's review the release plan.",
        "aiSummaryResult": "Key decisions: ship v2 next week.",
        "aiTemplateResult": "## Meeting Notes\n- Ship v2 next week",
        "aiAtmoResult": "Focused and collaborative",
        "aiTodoList": [
            {
                "title": "Send meeting notes to team",
                "reminderTime": 1780147200000,
                "isCompleted": false,
                "createdTime": 1780060800000,
                "fileID": "5f3a1c2e9b7d",
                "deviceID": "AABBCCDDEEFF",
                "category": 1
            }
        ],
        "speakers": [
            {
                "speaker": "spk_1",
                "speakerName": "Alice",
                "lightColor": "#FFB300",
                "darkColor": "#FFD54F",
                "speakerConfidence": 0.92
            }
        ]
    }
}

Error codes

Refer to Standard HTTP Error Codes for error handling.

Sample request

GET /v1.1/mindclip/summaries/5f3a1c2e9b7d HTTP/1.1
Host: api.switch-bot.com
Authorization: <token>
sign: <signature>
nonce: <nonce>
t: <timestamp>

Get todo list

GET /v1.1/mindclip/todos?completedNum={completedNum}&pageNum={pageNum}&pageSize={pageSize}

Available for: SwitchBot AI MindClip

Description

Gets a paginated list of todos extracted from AI MindClip recordings.

Query parameters

ParameterTypeRequiredDescription
completedNumIntegerYescompletion-state filter
pageNumIntegerYespage number
pageSizeIntegerYesnumber of todos returned per page

Response

The body object contains the following properties,

Key NameValue TypeDescription
totalIntegertotal number of todos
pageNumIntegercurrent page number
pageSizeIntegernumber of todos returned per page
pagesIntegertotal number of pages
listArraytodo list
list[].titleStringtodo title
list[].reminderTimeIntegerreminder time in Unix milliseconds
list[].isCompletedBooleandetermines if the todo is completed
list[].createdTimeIntegercreated time in Unix milliseconds
list[].fileIDStringrecording file ID
list[].deviceIDStringdevice ID
list[].categoryIntegertodo category
{
    "statusCode": 100,
    "message": "success",
    "body": {
        "total": 1,
        "pageNum": 1,
        "pageSize": 20,
        "pages": 1,
        "list": [
            {
                "title": "Send meeting notes to team",
                "reminderTime": 1716100000000,
                "isCompleted": false,
                "createdTime": 1716000000000,
                "fileID": "5f3a1c2e9b7d",
                "deviceID": "AABBCCDDEEFF",
                "category": 1
            }
        ]
    }
}

Error codes

Refer to Standard HTTP Error Codes for error handling.

Sample request

GET /v1.1/mindclip/todos?completedNum=0&pageNum=1&pageSize=20 HTTP/1.1
Host: api.switch-bot.com
Authorization: <token>
sign: <signature>
nonce: <nonce>
t: <timestamp>

Get daily memory

GET /v1.1/mindclip/assistant/daily?date={date}

Available for: SwitchBot AI MindClip

Description

Gets the AI MindClip daily memory for a specified date.

Query parameters

ParameterTypeRequiredDescription
dateStringYesdate in YYYY-MM-DD format

Response

The body object contains the following properties,

Key NameValue TypeDescription
listArraydaily memory records
list[].summaryDateStringsummary date in YYYY-MM-DD format
list[].summaryContentStringdaily summary content
list[].statusIntegersummary generation status
list[].timezoneStringtimezone
list[].locationsArraylocations associated with the daily memory
list[].locations[].timestampIntegerlocation time in Unix seconds
list[].locations[].latitudeNumberlatitude
list[].locations[].longitudeNumberlongitude
list[].locations[].placeNameStringplace name
list[].locations[].fileIDStringrelated recording file ID
{
    "statusCode": 100,
    "message": "success",
    "body": {
        "list": [
            {
                "summaryDate": "2026-05-30",
                "summaryContent": "Today you had 3 meetings and created 2 todos.",
                "status": 1,
                "timezone": "Asia/Shanghai",
                "locations": [
                    {
                        "timestamp": 1780060800,
                        "latitude": 31.23,
                        "longitude": 121.47,
                        "placeName": "Shanghai Office",
                        "fileID": "5f3a1c2e9b7d"
                    }
                ]
            }
        ]
    }
}

Error codes

Refer to Standard HTTP Error Codes for error handling.

Sample request

GET /v1.1/mindclip/assistant/daily?date=2026-05-30 HTTP/1.1
Host: api.switch-bot.com
Authorization: <token>
sign: <signature>
nonce: <nonce>
t: <timestamp>

Get weekly summary

GET /v1.1/mindclip/assistant/weekly?week={week}

Available for: SwitchBot AI MindClip

Description

Gets the AI MindClip weekly summary for a specified ISO week.

Query parameters

ParameterTypeRequiredDescription
weekStringYesISO week in YYYY-Www format

Response

The body object contains the following properties,

Key NameValue TypeDescription
summaryWeekStringISO week in YYYY-Www format
summaryContentStringweekly summary content
statusIntegersummary generation status
timezoneStringtimezone
{
    "statusCode": 100,
    "message": "success",
    "body": {
        "summaryWeek": "2026-W22",
        "summaryContent": "This week you recorded 12 sessions across 5 days.",
        "status": 1,
        "timezone": "Asia/Shanghai"
    }
}

Error codes

Refer to Standard HTTP Error Codes for error handling.

Sample request

GET /v1.1/mindclip/assistant/weekly?week=2026-W22 HTTP/1.1
Host: api.switch-bot.com
Authorization: <token>
sign: <signature>
nonce: <nonce>
t: <timestamp>

Get urgent todo list

GET /v1.1/mindclip/assistant/urgent-todos?date={date}

Available for: SwitchBot AI MindClip

Description

Gets urgent AI MindClip todos for a specified date.

Query parameters

ParameterTypeRequiredDescription
dateStringYesdate in YYYY-MM-DD format

Response

The body object contains the following properties,

Key NameValue TypeDescription
summaryDateStringsummary date in YYYY-MM-DD format
todosArrayurgent todo items
todos[].titleStringtodo title
todos[].reminderTimeIntegerreminder time in Unix milliseconds
todos[].rankIntegertodo priority rank
todos[].fileIDStringrelated recording file ID
todos[].isCompletedBooleandetermines if the todo is completed
todos[].categoryIntegertodo category
{
    "statusCode": 100,
    "message": "success",
    "body": {
        "summaryDate": "2026-05-30",
        "todos": [
            {
                "title": "Send meeting notes to team",
                "reminderTime": 1780147200000,
                "rank": 1,
                "fileID": "5f3a1c2e9b7d",
                "isCompleted": false,
                "category": 1
            }
        ]
    }
}

Error codes

Refer to Standard HTTP Error Codes for error handling.

Sample request

GET /v1.1/mindclip/assistant/urgent-todos?date=2026-05-30 HTTP/1.1
Host: api.switch-bot.com
Authorization: <token>
sign: <signature>
nonce: <nonce>
t: <timestamp>

Webhook Events

Key NameValue TypeDescription
eventTypeStringthe type of events
eventVersionStringthe current event version
contextObjectthe detail info of the event
deviceTypeStringthe type of the device
deviceMacStringthe MAC address of the device
timeOfSampleLongthe time stamp when the event is sent
chargeUploadCompletedObjectcharge upload completion event
chargeUploadCompleted.fileIDStringrecording file ID
chargeUploadCompleted.fileNameStringrecording file name
chargeUploadCompleted.statusIntegercharge upload status. 1, completed
chargeUploadCompleted.timestampLongcharge upload completion timestamp
transcriptionObjecttranscription status event
transcription.fileIDStringrecording file ID
transcription.statusInteger0, not transcribed; 1, transcribing; 2, succeeded; 3, failed; 4, timed out; 5, speech transcription failed
transcription.timestampLongtranscription event timestamp
dailySummaryLongdaily summary generation timestamp
weeklySummaryLongweekly summary generation timestamp

Charge upload completion example,

{
    "eventType": "changeReport",
    "eventVersion": "1",
    "context": {
        "deviceType": "AI MindClip",
        "deviceMac": "AIPINNOTE-DEVICE-001",
        "timeOfSample": 1749542100000,
        "chargeUploadCompleted": {
            "fileID": "20260610143022001",
            "fileName": "2026-06-10 14:30",
            "status": 1,
            "timestamp": 1749542100000
        }
    }
}

Transcription example,

{
    "eventType": "changeReport",
    "eventVersion": "1",
    "context": {
        "deviceType": "AI MindClip",
        "deviceMac": "AIPINNOTE-DEVICE-001",
        "timeOfSample": 1749542400000,
        "transcription": {
            "fileID": "20260610143022001",
            "status": 1,
            "timestamp": 1749542400000
        }
    }
}

Daily memory generation example,

{
    "eventType": "changeReport",
    "eventVersion": "1",
    "context": {
        "deviceType": "AI MindClip",
        "deviceMac": "AIPINNOTE-DEVICE-001",
        "timeOfSample": 1749556800000,
        "dailySummary": 1749556800
    }
}

Weekly summary generation example,

{
    "eventType": "changeReport",
    "eventVersion": "1",
    "context": {
        "deviceType": "AI MindClip",
        "deviceMac": "AIPINNOTE-DEVICE-001",
        "timeOfSample": 1749816000000,
        "weeklySummary": 1749816000
    }
}