Cursion DocsCursion Docs
Home
Dashboard
Home
Dashboard
  • Guides

    • Account
    • Billing
    • Selfhost
    • App
    • API
    • CLI
    • MCP
    • Data
    • Agents
  • API

    • Site
    • Page
    • Scan
    • Test
    • Case
    • CaseRun
    • Flow
    • FlowRun
    • Issue
    • Schedule
    • Alert
    • Report
    • Process
  • CLI

    • Site
    • Page
    • Scan
    • Test
    • Case
    • Flow

Process

A Process is the tracking object in the Cursion application. A Process is used to track generation actions such as case.generate.

Process object

{
   "id": "dbd7d10c-2a51-4ba2-abb2-7efa82516c89",   // uuid of the process
   "site": "72eba795-becb-41b0-8afd-af8481e9570c", // id of the associated site
   "type": "case.generate",                        // task type running for this process
   "time_created": "2026-05-01T19:52:24.226311Z",  // when process was created
   "time_completed": null,                         // when process was completed
   "success": false,                               // if process completed successfully
   "info_url": null,                               // status url - usually empty
   "progress": 1.0,                                // progress from 0-100 
   "info": {                                       // extra info including task_id
      "task_id": "5de0b5e2-ad4e-4c7e-a01f-644af0a50731"
   },
   "exception": null,                              // any exceptions from the running task
   "object_id": null                               // the associated object_id (present when complete)
}

Retrieve a Process

Once a Process object is received in a response, it is possible to retrieve that Process to check on it's "progress". This is useful when a secondary task needs to be run once the Process has finished.

GET - /process/<process:id>

# import env vars
CURSION_API_BASE_URL = os.environ.get('CURSION_API_BASE_URL')
CURSION_API_TOKEN = os.environ.get('CURSION_API_TOKEN')

# setup configs
url = f'{CURSION_API_BASE_URL}/process/<process:id>'
headers = {
   "content-type": "application/json",
   "Authorization" : CURSION_API_TOKEN
}

# send the request
res = requests.get(
   url=url, 
   headers=headers, 
)

# retrieve response data
json_response = res.json()
print(json_response)

Output:

View Full Output
{
   "id": "dbd7d10c-2a51-4ba2-abb2-7efa82516c89",
   "site": "72eba795-becb-41b0-8afd-af8481e9570c",
   "type": "case.generate",
   "time_created": "2026-05-01T19:52:24.226311Z",
   "time_completed": null,
   "success": false,
   "info_url": null,
   "progress": 1.0,
   "info": {
      "task_id": "5de0b5e2-ad4e-4c7e-a01f-644af0a50731"
   },
   "exception": null,
   "object_id": null
}

Retrieve many Processes

This endpoint returns a paginated response with all Process objects ordered by time_created. This endpoint is useful when needing to displaying your processs in a table view for example.

The limit parameter specifies the total number of objects you want returned per "group" (we recommend keeping this under 10 for best performance). The offset parameter specfies which "group" to return. For example, limit=10&offset=10 in a total dataset of 30 objects would return 10 processs in range process #10 - process #20.

Info

Add parameters type=<process.type> & object_id=<process.object_id> to filter results further.

GET - /process?page_id=<page:id>&limit=10&offset=0

import requests, os

# import env vars
SCANERR_API_BASE_URL = os.environ.get('SCANERR_API_BASE_URL')
CURSION_API_TOKEN = os.environ.get('SCANERR_API_BASE_URL')

# setup configs
url = f'{BASE_URL}/process?page_id=<page:id>&limit=10&offset=0'
headers = {
   "content-type": "application/json",
   "Authorization" : CURSION_API_TOKEN
}

# send the request
res = requests.get(
   url=url,
   headers=headers,
)

# retrieve response data
json_response = res.json()
print(json_response)

View Full Output
{
   "count":30,
   "next":"https://api.cursion.dev/v1/ops/process?limit=10&offset=20",
   "previous":"https://api.cursion.dev/v1/ops/process?limit=10&offset=10", 
   "results":[
      {
         "id": "dbd7d10c-2a51-4ba2-abb2-7efa82516c89",
         "site": "72eba795-becb-41b0-8afd-af8481e9570c",
         "type": "case.generate",
         "time_created": "2026-05-01T19:52:24.226311Z",
         "time_completed": null,
         "success": false,
         "info_url": null,
         "progress": 1.0,
         "info": {
            "task_id": "5de0b5e2-ad4e-4c7e-a01f-644af0a50731"
         },
         "exception": null,
         "object_id": null
      },

      ### SHORTENED FOR DISPLAY PURPOSES ###
   ]
}


Delete a Process

Because Processs have a primary link to their task, deleting will terminate the running Task. It is advisable to only delete if you also plan to terminate the associated Task.

Caution

Please use caution with this endpoint as it is irreversible.

DELETE - /process/<process:id>

import requests, os

# import env vars
SCANERR_API_BASE_URL = os.environ.get('SCANERR_API_BASE_URL')
CURSION_API_TOKEN = os.environ.get('SCANERR_API_BASE_URL')

# setup configs
url = f'{BASE_URL}/process/<process:id>'
headers = {
   "content-type": "application/json",
   "Authorization" : CURSION_API_TOKEN
}

# send the request
res = requests.delete(
   url=url, 
   headers=headers, 
)

# retrieve response data
json_response = res.json()
print(json_response)

View Full Output
{
   "message": "process deleted successfully"
}

Last Updated:
Contributors: Landon
Prev
Report