API ReferenceThesis Core API
Thesis Core API
The Thesis Core API for chat and agent operations
Alert
List all alerts
get
/alertQuery parameters
unreadOnlybooleanOptionalReturns
200List of alerts
GET
GET /alert HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"id": "id_1a2b3c",
"message": "message",
"severity": "fatal",
"readAt": 1,
"createdAt": 1
}
]Get an alert by ID
get
/alert/{id}Path parameters
idstringRequiredReturns
200Alert
GET
GET /alert/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"message": "message",
"severity": "fatal",
"readAt": 1,
"createdAt": 1
}Mark an alert as read
post
/alert/{id}/mark-readPath parameters
idstringRequiredReturns
200Updated alert
POST
POST /alert/{id}/mark-read HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"message": "message",
"severity": "fatal",
"readAt": 1,
"createdAt": 1
}Mark an alert as unread
post
/alert/{id}/mark-unreadPath parameters
idstringRequiredReturns
200Updated alert
POST
POST /alert/{id}/mark-unread HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"message": "message",
"severity": "fatal",
"readAt": 1,
"createdAt": 1
}Mark all alerts as read
post
/alert/mark-all-readReturns
200Count of marked alerts
POST
POST /alert/mark-all-read HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"count": 1
}Chat
Create a new chat or retrieve existing chat by ID
post
/chatReturns
200Chat
POST
POST /chat HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"title": "title",
"notebookPath": "notebookPath",
"createdAt": 1,
"updatedAt": 1
}List all chats
get
/chatReturns
200List of chats
GET
GET /chat HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"id": "id_1a2b3c",
"title": "title",
"notebookPath": "notebookPath",
"createdAt": 1,
"updatedAt": 1
}
]Get a chat by ID
get
/chat/{chatId}Path parameters
chatIdstringRequiredReturns
200Chat
GET
GET /chat/{chatId} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"title": "title",
"notebookPath": "notebookPath",
"createdAt": 1,
"updatedAt": 1
}Update a chat
patch
/chat/{chatId}Path parameters
chatIdstringRequiredRequest body
titlestringOptionalnotebookPathstringOptionalReturns
200Updated chat
PATCH
PATCH /chat/{chatId} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"title": "title",
"notebookPath": "notebookPath"
}Responsejson
{
"id": "id_1a2b3c",
"title": "title",
"notebookPath": "notebookPath",
"createdAt": 1,
"updatedAt": 1
}Get a chat by notebook path
get
/chat/by-notebook/{notebookPath}Path parameters
notebookPathstringRequiredReturns
200Chat
GET
GET /chat/by-notebook/{notebookPath} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"title": "title",
"notebookPath": "notebookPath",
"createdAt": 1,
"updatedAt": 1
}Get chat items by chat ID
get
/chat/items/{chatId}Path parameters
chatIdstringRequiredReturns
200Chat items
GET
GET /chat/items/{chatId} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"id": "id_1a2b3c",
"chatId": "chatId",
"role": "role",
"content": "content",
"createdAt": 1
}
]Stream chat items by chat ID
post
/chat/items/stream/{chatId}Path parameters
chatIdstringRequiredReturns
200SSE stream of chat items
POST
POST /chat/items/stream/{chatId} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYSubscribe to chat item updates via SSE
get
/chat/items/subscribe/{chatId}Path parameters
chatIdstringRequiredReturns
200SSE stream
GET
GET /chat/items/subscribe/{chatId} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYSession
Create a new session
post
/sessionRequest body
sessionIdstringRequiredhashedSecretstringRequireduserIdstringRequiredReturns
200Created session
POST
POST /session HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"sessionId": "sessionId",
"hashedSecret": "hashedSecret",
"userId": "userId"
}Responsejson
{
"id": "id_1a2b3c",
"userId": "userId",
"secret": "secret",
"deletedAt": 1,
"createdAt": 1,
"updatedAt": 1
}List all sessions
get
/sessionReturns
200List of sessions
GET
GET /session HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"id": "id_1a2b3c",
"userId": "userId",
"secret": "secret",
"deletedAt": 1,
"createdAt": 1,
"updatedAt": 1
}
]Get a session by ID
get
/session/{id}Path parameters
idstringRequiredReturns
200Session
GET
GET /session/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"userId": "userId",
"secret": "secret",
"deletedAt": 1,
"createdAt": 1,
"updatedAt": 1
}Get a session by session ID
get
/session/by-session-id/{sessionId}Path parameters
sessionIdstringRequiredReturns
200Session
GET
GET /session/by-session-id/{sessionId} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"userId": "userId",
"secret": "secret",
"deletedAt": 1,
"createdAt": 1,
"updatedAt": 1
}Dataset
Create a new dataset
post
/datasetReturns
200Created dataset
POST
POST /dataset HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"structured": false,
"path": "path",
"format": "format",
"version": 1,
"rowCount": 1,
"columnCount": 1,
"sizeBytes": 1,
"schema": "schema",
"files": "files",
"fileCount": 1,
"parentId": "parentId",
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}List all datasets
get
/datasetReturns
200List of datasets
GET
GET /dataset HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"structured": false,
"path": "path",
"format": "format",
"version": 1,
"rowCount": 1,
"columnCount": 1,
"sizeBytes": 1,
"schema": "schema",
"files": "files",
"fileCount": 1,
"parentId": "parentId",
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}
]Upload a dataset file
post
/dataset/uploadReturns
200Uploaded dataset
POST
POST /dataset/upload HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"structured": false,
"path": "path",
"format": "format",
"version": 1,
"rowCount": 1,
"columnCount": 1,
"sizeBytes": 1,
"schema": "schema",
"files": "files",
"fileCount": 1,
"parentId": "parentId",
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}Upload multiple files and combine into one dataset
post
/dataset/upload-multipleReturns
200Created dataset
POST
POST /dataset/upload-multiple HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"structured": false,
"path": "path",
"format": "format",
"version": 1,
"rowCount": 1,
"columnCount": 1,
"sizeBytes": 1,
"schema": "schema",
"files": "files",
"fileCount": 1,
"parentId": "parentId",
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}Create a dataset from a file path
post
/dataset/from-pathRequest body
pathstringRequirednamestringOptionaldescriptionstringOptionalchatIdstringOptionalReturns
200Created dataset
POST
POST /dataset/from-path HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"path": "path",
"name": "name",
"description": "description",
"chatId": "chatId"
}Responsejson
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"structured": false,
"path": "path",
"format": "format",
"version": 1,
"rowCount": 1,
"columnCount": 1,
"sizeBytes": 1,
"schema": "schema",
"files": "files",
"fileCount": 1,
"parentId": "parentId",
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}Create a dataset from a directory path
post
/dataset/from-directoryRequest body
pathstringRequirednamestringOptionaldescriptionstringOptionalchatIdstringOptionalReturns
200Created dataset
POST
POST /dataset/from-directory HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"path": "path",
"name": "name",
"description": "description",
"chatId": "chatId"
}Responsejson
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"structured": false,
"path": "path",
"format": "format",
"version": 1,
"rowCount": 1,
"columnCount": 1,
"sizeBytes": 1,
"schema": "schema",
"files": "files",
"fileCount": 1,
"parentId": "parentId",
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}Get a dataset by ID
get
/dataset/{id}Path parameters
idstringRequiredReturns
200Dataset
GET
GET /dataset/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"structured": false,
"path": "path",
"format": "format",
"version": 1,
"rowCount": 1,
"columnCount": 1,
"sizeBytes": 1,
"schema": "schema",
"files": "files",
"fileCount": 1,
"parentId": "parentId",
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}Update a dataset
put
/dataset/{id}Path parameters
idstringRequiredRequest body
namestringOptionaldescriptionstringOptionalcloudIdstringOptionalReturns
200Updated dataset
PUT
PUT /dataset/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"name": "name",
"description": "description",
"cloudId": "cloudId"
}Responsejson
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"structured": false,
"path": "path",
"format": "format",
"version": 1,
"rowCount": 1,
"columnCount": 1,
"sizeBytes": 1,
"schema": "schema",
"files": "files",
"fileCount": 1,
"parentId": "parentId",
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}Delete a dataset
delete
/dataset/{id}Path parameters
idstringRequiredReturns
204Deleted
DELETE
DELETE /dataset/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYDownload a dataset file
get
/dataset/{id}/downloadPath parameters
idstringRequiredReturns
200Dataset file binary
GET
GET /dataset/{id}/download HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYAdd files to an existing dataset
post
/dataset/{id}/filesPath parameters
idstringRequiredReturns
200Updated dataset
POST
POST /dataset/{id}/files HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"structured": false,
"path": "path",
"format": "format",
"version": 1,
"rowCount": 1,
"columnCount": 1,
"sizeBytes": 1,
"schema": "schema",
"files": "files",
"fileCount": 1,
"parentId": "parentId",
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}Remove a file from a dataset
delete
/dataset/{id}/files/{filePath}Path parameters
idstringRequiredfilePathstringRequiredReturns
200Updated dataset
DELETE
DELETE /dataset/{id}/files/{filePath} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"structured": false,
"path": "path",
"format": "format",
"version": 1,
"rowCount": 1,
"columnCount": 1,
"sizeBytes": 1,
"schema": "schema",
"files": "files",
"fileCount": 1,
"parentId": "parentId",
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}Get notebooks associated with a dataset
get
/dataset/{id}/notebooksPath parameters
idstringRequiredReturns
200Notebook associations
GET
GET /dataset/{id}/notebooks HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"notebookPath": "notebookPath",
"notebookName": "notebookName",
"lastModified": 1
}
]Associate a notebook with a dataset
post
/dataset/{id}/notebooksPath parameters
idstringRequiredRequest body
notebookPathstringRequiredReturns
200Associated
POST
POST /dataset/{id}/notebooks HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"notebookPath": "notebookPath"
}Remove a notebook association from a dataset
delete
/dataset/{id}/notebooks/{notebookPath}Path parameters
idstringRequirednotebookPathstringRequiredReturns
204Removed
DELETE
DELETE /dataset/{id}/notebooks/{notebookPath} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYExperiment
Create a new experiment
post
/experimentRequest body
namestringRequiredinstructionsstringRequirednotebookPathstringRequiredmodelstringOptionalsessionIdstringOptionalsessionSecretstringOptionalReturns
200Created experiment
POST
POST /experiment HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"name": "name",
"instructions": "instructions",
"notebookPath": "notebookPath",
"model": "model",
"sessionId": "sessionId",
"sessionSecret": "sessionSecret"
}Responsejson
{
"experimentId": "experimentId",
"chatId": "chatId",
"notebookId": "notebookId",
"status": "pending"
}List experiments
get
/experimentQuery parameters
statusstringOptionalReturns
200List of experiments
GET
GET /experiment HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"id": "id_1a2b3c",
"name": "name",
"status": "pending",
"resultsOutput": null,
"resultsError": null,
"resultsSummary": null,
"approvedAt": 1,
"startedAt": 1,
"completedAt": 1,
"failedAt": 1,
"cancelledAt": 1,
"pausedAt": 1,
"chatId": "chatId",
"notebookId": "notebookId",
"createdAt": 1,
"updatedAt": 1
}
]Get an experiment by ID
get
/experiment/{id}Path parameters
idstringRequiredReturns
200Experiment
GET
GET /experiment/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"name": "name",
"status": "pending",
"resultsOutput": null,
"resultsError": null,
"resultsSummary": null,
"approvedAt": 1,
"startedAt": 1,
"completedAt": 1,
"failedAt": 1,
"cancelledAt": 1,
"pausedAt": 1,
"chatId": "chatId",
"notebookId": "notebookId",
"createdAt": 1,
"updatedAt": 1
}Pause an experiment
post
/experiment/{id}/pausePath parameters
idstringRequiredReturns
200Paused experiment
POST
POST /experiment/{id}/pause HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"name": "name",
"status": "pending",
"resultsOutput": null,
"resultsError": null,
"resultsSummary": null,
"approvedAt": 1,
"startedAt": 1,
"completedAt": 1,
"failedAt": 1,
"cancelledAt": 1,
"pausedAt": 1,
"chatId": "chatId",
"notebookId": "notebookId",
"createdAt": 1,
"updatedAt": 1
}Get experiment control plane data
get
/experiment/{id}/control-planePath parameters
idstringRequiredReturns
200Control plane data
GET
GET /experiment/{id}/control-plane HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"experiment": {
"id": "id_1a2b3c",
"name": "name",
"status": "pending",
"resultsOutput": null,
"resultsError": null,
"resultsSummary": null,
"approvedAt": 1,
"startedAt": 1,
"completedAt": 1,
"failedAt": 1,
"cancelledAt": 1,
"pausedAt": 1,
"chatId": "chatId",
"notebookId": "notebookId",
"createdAt": 1,
"updatedAt": 1
},
"metrics": [
{
"id": "id_1a2b3c",
"experimentId": "experimentId",
"name": "name",
"value": "value",
"timestamp": 1
}
],
"logs": [
{
"id": "id_1a2b3c",
"experimentId": "experimentId",
"message": "message",
"timestamp": 1
}
],
"events": [
{
"id": "id_1a2b3c",
"experimentId": "experimentId",
"data": null,
"timestamp": 1
}
]
}Ingest experiment metrics
post
/experiment/ingest/metricRequest body
idstringRequiredexperimentIdstringRequirednamestringRequiredvaluestringRequiredtimestampnumberRequiredReturns
200Metric ingested
POST
POST /experiment/ingest/metric HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"id": "id_1a2b3c",
"experimentId": "experimentId",
"name": "name",
"value": "value",
"timestamp": 1
}Ingest experiment events
post
/experiment/ingest/eventRequest body
idstringRequiredexperimentIdstringRequireddataRequiredtimestampnumberRequiredReturns
200Event ingested
POST
POST /experiment/ingest/event HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"id": "id_1a2b3c",
"experimentId": "experimentId",
"data": null,
"timestamp": 1
}Ingest experiment log
post
/experiment/ingest/logRequest body
idstringRequiredexperimentIdstringRequiredmessagestringRequiredtimestampnumberRequiredReturns
200Log ingested
POST
POST /experiment/ingest/log HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"id": "id_1a2b3c",
"experimentId": "experimentId",
"message": "message",
"timestamp": 1
}Model
List all models
get
/modelReturns
200List of models
GET
GET /model HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"path": "path",
"sizeBytes": 1,
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}
]Upload a model file
post
/model/uploadReturns
200Uploaded model
POST
POST /model/upload HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"path": "path",
"sizeBytes": 1,
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}Get a model by ID
get
/model/{id}Path parameters
idstringRequiredReturns
200Model
GET
GET /model/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"path": "path",
"sizeBytes": 1,
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}Update a model
put
/model/{id}Path parameters
idstringRequiredRequest body
namestringOptionaldescriptionstringOptionalcloudIdstringOptionalReturns
200Updated model
PUT
PUT /model/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"name": "name",
"description": "description",
"cloudId": "cloudId"
}Responsejson
{
"id": "id_1a2b3c",
"name": "name",
"description": "description",
"path": "path",
"sizeBytes": 1,
"chatId": "chatId",
"cloudId": "cloudId",
"createdAt": 1,
"updatedAt": 1
}Delete a model
delete
/model/{id}Path parameters
idstringRequiredReturns
204Deleted
DELETE
DELETE /model/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYDownload a model file
get
/model/{id}/downloadPath parameters
idstringRequiredReturns
200Model file binary
GET
GET /model/{id}/download HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYNotebook
List all notebooks
get
/notebookReturns
200List of notebooks
GET
GET /notebook HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"id": "id_1a2b3c",
"notebookPath": "notebookPath",
"datasetId": "datasetId",
"name": "name",
"createdAt": 1,
"updatedAt": 1
}
]Create a new notebook record
post
/notebookRequest body
notebookPathstringRequireddatasetIdstringOptionalnamestringOptionalReturns
200Created notebook
POST
POST /notebook HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"notebookPath": "notebookPath",
"datasetId": "datasetId",
"name": "name"
}Responsejson
{
"id": "id_1a2b3c",
"notebookPath": "notebookPath",
"datasetId": "datasetId",
"name": "name",
"createdAt": 1,
"updatedAt": 1
}Get notebook by path
get
/notebook/path/{path}Path parameters
pathstringRequiredReturns
200Notebook
GET
GET /notebook/path/{path} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"notebookPath": "notebookPath",
"datasetId": "datasetId",
"name": "name",
"createdAt": 1,
"updatedAt": 1
}Update notebook
put
/notebook/path/{path}Path parameters
pathstringRequiredRequest body
datasetIdstringOptionalnamestringOptionalReturns
200Updated notebook
PUT
PUT /notebook/path/{path} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"datasetId": "datasetId",
"name": "name"
}Responsejson
{
"id": "id_1a2b3c",
"notebookPath": "notebookPath",
"datasetId": "datasetId",
"name": "name",
"createdAt": 1,
"updatedAt": 1
}Delete notebook by path
delete
/notebook/path/{path}Path parameters
pathstringRequiredReturns
204Deleted
DELETE
DELETE /notebook/path/{path} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYGet notebook by ID
get
/notebook/{id}Path parameters
idstringRequiredReturns
200Notebook
GET
GET /notebook/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
{
"id": "id_1a2b3c",
"notebookPath": "notebookPath",
"datasetId": "datasetId",
"name": "name",
"createdAt": 1,
"updatedAt": 1
}Delete notebook by ID
delete
/notebook/{id}Path parameters
idstringRequiredReturns
204Deleted
DELETE
DELETE /notebook/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYExecute notebook cell with streaming outputs (SSE)
post
/notebook/execute-cell-streamReturns
200SSE stream of cell outputs
POST
POST /notebook/execute-cell-stream HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYInterrupt kernel and cancel associated agent executions
post
/notebook/interrupt-kernelReturns
200Kernel interrupted
POST
POST /notebook/interrupt-kernel HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYGet notebook variables
post
/notebook/variablesReturns
200Notebook variables
POST
POST /notebook/variables HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYRelease
List releases
get
/releaseReturns
200List of releases
GET
GET /release HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"id": "id_1a2b3c",
"name": "name",
"version": "version",
"hostedUrl": "hostedUrl",
"osType": "osType",
"hash": "hash",
"deletedAt": "deletedAt",
"createdAt": "createdAt",
"updatedAt": "updatedAt"
}
]Runtime
Detect available hardware accelerators
get
/runtime/hardwareReturns
200Hardware info
GET
GET /runtime/hardware HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYInfer GPU type using LLM
post
/runtime/infer-gpu-typeReturns
200Inferred GPU type
POST
POST /runtime/infer-gpu-type HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYTag
List all tags
get
/tagReturns
200List of tags
GET
GET /tag HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"id": "id_1a2b3c",
"name": "name",
"color": "color",
"createdAt": 1
}
]Create a new tag
post
/tagRequest body
namestringRequiredcolorstringOptionalReturns
200Created tag
POST
POST /tag HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"name": "name",
"color": "color"
}Responsejson
{
"id": "id_1a2b3c",
"name": "name",
"color": "color",
"createdAt": 1
}Update a tag
put
/tag/{id}Path parameters
idstringRequiredRequest body
namestringOptionalcolorstringOptionalReturns
200Updated tag
PUT
PUT /tag/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"name": "name",
"color": "color"
}Responsejson
{
"id": "id_1a2b3c",
"name": "name",
"color": "color",
"createdAt": 1
}Delete a tag
delete
/tag/{id}Path parameters
idstringRequiredReturns
204Deleted
DELETE
DELETE /tag/{id} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYAssign a tag to a file
post
/tag/assignRequest body
tagIdstringRequiredfilePathstringRequiredReturns
200File tag assignment
POST
POST /tag/assign HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"tagId": "tagId",
"filePath": "filePath"
}Responsejson
{
"id": "id_1a2b3c",
"tagId": "tagId",
"filePath": "filePath",
"createdAt": 1
}Remove a tag from a file
post
/tag/unassignRequest body
tagIdstringRequiredfilePathstringRequiredReturns
204Unassigned
POST
POST /tag/unassign HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEY
Content-Type: application/json
{
"tagId": "tagId",
"filePath": "filePath"
}Get tags for a file
get
/tag/file/{filePath}Path parameters
filePathstringRequiredReturns
200Tags for the file
GET
GET /tag/file/{filePath} HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"id": "id_1a2b3c",
"name": "name",
"color": "color",
"createdAt": 1,
"assignedAt": 1
}
]Get files for a tag
get
/tag/{tagId}/filesPath parameters
tagIdstringRequiredReturns
200Files with the tag
GET
GET /tag/{tagId}/files HTTP/1.1
Host: api.thesis.io/v1
Authorization: Bearer $THESIS_API_KEYResponsejson
[
{
"id": "id_1a2b3c",
"tagId": "tagId",
"filePath": "filePath",
"createdAt": 1
}
]