Document List
On This Page

API Reference: Data

Dataset Endpoints

Datasets are collections of related datatables that belong together logically.

List Datasets

Retrieve all datasets in a tenant.

Endpoint: GET /tenant/{tenantId}/datasets

Parameters:

NameTypeLocationRequiredDescription
tenantIdstringpathYesThe unique identifier of the tenant

Response:

[
	{
		"id": "f6a7b8c9-d0e1-2345-fab6-789012345678",
		"displayName": "Sales Data",
		"createdAt": "2024-01-20T08:00:00Z",
		"datatableCount": 3
	}
]

Create Dataset

Create a new dataset in a tenant.

Endpoint: POST /tenant/{tenantId}/datasets

Parameters:

NameTypeLocationRequiredDescription
tenantIdstringpathYesThe unique identifier of the tenant

Request Body:

{
	"displayName": "My New Dataset",
	"treeNodeType": "Dataset",
	"treeParentId": null
}
FieldTypeRequiredDescription
displayNamestringYesName of the dataset
treeNodeTypestringNoMust be Dataset (default) or TreeGroup
treeParentIdstringNoParent folder ID for organizing datasets

Response: Returns the created dataset object.


Get Dataset

Retrieve details about a specific dataset.

Endpoint: GET /tenant/{tenantId}/datasets/{datasetId}

Parameters:

NameTypeLocationRequiredDescription
tenantIdstringpathYesThe unique identifier of the tenant
datasetIdstringpathYesThe unique identifier of the dataset

Response:

{
	"id": "f6a7b8c9-d0e1-2345-fab6-789012345678",
	"displayName": "Sales Data",
	"createdAt": "2024-01-20T08:00:00Z",
	"datatables": [
		{
			"id": "a7b8c9d0-e1f2-3456-abc7-890123456789",
			"displayName": "Orders",
			"rowCount": 15000
		}
	]
}

Delete Dataset

Delete a dataset and all its datatables.

Endpoint: DELETE /tenant/{tenantId}/datasets/{datasetId}

Parameters:

NameTypeLocationRequiredDescription
tenantIdstringpathYesThe unique identifier of the tenant
datasetIdstringpathYesThe unique identifier of the dataset

Response:

{
	"success": true
}

warning

Deleting a dataset will permanently remove all associated datatables and data. This action cannot be undone.


Datatable Endpoints

Datatables store the actual event log data used for process mining.

List Datatables

Retrieve all datatables in a tenant.

Endpoint: GET /tenant/{tenantId}/datatables

Parameters:

NameTypeLocationRequiredDescription
tenantIdstringpathYesThe unique identifier of the tenant

Response:

[
	{
		"id": "a7b8c9d0-e1f2-3456-abc7-890123456789",
		"displayName": "Orders 2024",
		"datasetId": "f6a7b8c9-d0e1-2345-fab6-789012345678",
		"rowCount": 15000,
		"createdAt": "2024-01-25T10:00:00Z"
	}
]

Create Datatable

Create a new datatable within an existing dataset.

Endpoint: POST /tenant/{tenantId}/datasets/{datasetId}/datatables

Parameters:

NameTypeLocationRequiredDescription
tenantIdstringpathYesThe unique identifier of the tenant
datasetIdstringpathYesThe unique identifier of the dataset

Request Body:

{
	"displayName": "Orders Q1 2024"
}
FieldTypeRequiredDescription
displayNamestringYesName of the datatable

Response: Returns the created datatable object.


Get Datatable

Retrieve details about a specific datatable.

Endpoint: GET /tenant/{tenantId}/datatable/{datatableId}

Parameters:

NameTypeLocationRequiredDescription
tenantIdstringpathYesThe unique identifier of the tenant
datatableIdstringpathYesThe unique identifier of the datatable

Response:

{
	"id": "a7b8c9d0-e1f2-3456-abc7-890123456789",
	"displayName": "Orders 2024",
	"datasetId": "f6a7b8c9-d0e1-2345-fab6-789012345678",
	"rowCount": 15000,
	"columns": [
		{"name": "case_id", "type": "string"},
		{"name": "activity", "type": "string"},
		{"name": "timestamp", "type": "datetime"}
	],
	"createdAt": "2024-01-25T10:00:00Z"
}

Get Presigned Upload URL

Get a temporary URL for uploading a file directly to a datatable.

Endpoint: GET /tenant/{tenantId}/datatable/{datatableId}/uploads/presignedurl

Parameters:

NameTypeLocationRequiredDescription
tenantIdstringpathYesThe unique identifier of the tenant
datatableIdstringpathYesThe unique identifier of the datatable
datasetidstringqueryYesThe unique identifier of the dataset
filenamestringqueryYesThe name of the file to upload
filesizestringqueryYesThe size of the file in bytes
filelastmodifiedstringqueryYesTimestamp of when the file was last modified
validforsecondsstringqueryNoURL validity duration in seconds (default: 3600)

Response:

{
	"PreSignedUploadUrl": "https://s3.amazonaws.com/bucket/path?X-Amz-Algorithm=AWS4-HMAC-SHA256&..."
}

Usage: Use the returned URL to upload a file via HTTP PUT:

# Get the presigned URL with required parameters
URL=$(curl -s -H "X-API-Key: your-api-key" \
  "https://api.processmind.com/tenant/{tenantId}/datatable/{datatableId}/uploads/presignedurl?datasetid={datasetId}&filename=data.csv&filesize=1024&filelastmodified=1704067200000")

# Upload the file
curl -X PUT --upload-file "data.csv" -H "Content-Type: text/csv" "$URL"

info

Presigned URLs expire after a limited time. Use the URL promptly after obtaining it. If the upload fails, request a new presigned URL.