API Documentation (v1)
API Documentation (v1)
Download OpenAPI specification:Download
This version (v1) is an older API version that will be deprecated soon. To see the documentation for the most recent version (v2), click here.
A task is an automation that can do almost anything you do manually on the web. For example:
- Open a webpage,
- Log in,
- Click on buttons,
- Fill out forms,
- Extract structured data from a webpage into a spreadsheet,
- Take screenshots,
- Monitor specific parts of webpages for visual or content changes.
Tasks are created either using 1-Click Automations or using Browse AI Recorder and its click-and-extract interface. Every task has a few variables (like the webpage address) that you can adjust every time you run it.
Retrieve list of tasks under your account
If you have already created a few tasks on your dashboard, you can use this endpoint to retrieve a list of them.
You can then use other endpoints to retrieve more information about your tasks or run tasks.
path Parameters
| teamId required | string Team ID. Even single-user personal accounts have a team ID. Feel free to ask us if you do not know your ID. |
header Parameters
| authorization required | string Example: Bearer YOUR_SECRET_API_KEY You can generate a new API key on your dashboard if you do not have one. |
Responses
Request samples
- C#
- Go
- Java
- Node (Native)
- Node (request)
- Objective-C
- PHP
- Python (python3)
- Python (requests)
- Ruby
- Shell (cURL)
- Shell (wget)
- Swift
var client = new RestClient("https://api.browse.ai/v1/teams/{teamId}/tasks/"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer YOUR_SECRET_API_KEY"); IRestResponse response = client.Execute(request);
Response samples
- 200
- 400
- 401
{- "statusCode": 200,
- "messageCode": "success",
- "tasks": {
- "totalCount": 0,
- "items": [
- {
- "id": "4f5cd7ff-6c98-4cac-8cf0-d7d0cb050b06",
- "name": "Extract data from Realtor.com",
- "createdAt": 1620739118,
- "variables": [
- {
- "type": "text",
- "name": "originUrl",
- "label": "Origin URL",
- "encrypted": false,
- "value": null
}
]
}
]
}
}Every time Browse AI runs a task for you, it counts as one execution. For example, if you set up a monitoring task to monitor a webpage for changes daily, Browse AI will have to execute the task every day or about 30 times per month for you.
Note: Task executions used to be called jobs. The word job is still used in some API endpoints and parameters for backwards-compatibility.
Run a task
Run a task on-demand with custom variable inputs.
When you need to run a task and get its captured data, you can use this endpoint to run the task, and then use webhooks to receive the captured data as soon as the execution is finished. Alternatively, you can poll the GET endpoint to retrieve an execution's details as soon as it is finished.
path Parameters
| taskId required | string Unique task ID You can find a task's ID by opening it on the dashboard and copying its ID in the browser address bar. |
query Parameters
| waitForJob | boolean Deprecated Default: false
This option has been fully deprecated. Its value is always assumed |
header Parameters
| authorization required | string Example: Bearer YOUR_SECRET_API_KEY You can generate a new API key on your dashboard if you do not have one. |
Responses
Request samples
- C#
- Go
- Java
- Node (Native)
- Node (request)
- Objective-C
- PHP
- Python (python3)
- Python (requests)
- Ruby
- Shell (cURL)
- Shell (wget)
- Swift
var client = new RestClient("https://api.browse.ai/v1/tasks/{taskId}/jobs?waitForJob=false"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer YOUR_SECRET_API_KEY"); request.AddParameter("undefined", "{\"variables\":{\"originUrl\":\"https://www.espressozone.com/espresso-machines/semi-automatic-espresso-machines\"}}", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
Response samples
- 200
- 400
- 401
- 404
- 500
- 503
{- "statusCode": 200,
- "messageCode": "success",
- "result": {
- "id": "f6fb62b6-f06a-4bf7-a623-c6a35c2e70b0",
- "variables": [
- {
- "type": "text",
- "name": "originUrl",
- "label": "Origin URL",
- "encrypted": false,
- "value": null
}
], - "triggeredByUserId": null,
- "triggeredByTaskMonitorId": null,
- "triggeredByAPI": true,
- "createdAt": 1620739118,
- "startedAt": 1620739118,
- "finishedAt": 1620739118,
- "userFriendlyError": null,
- "triedRecordingVideo": true,
- "videoRemovedAt": 1620739118,
- "retriedJobId": "673da019-bf0c-476e-9c4f-d35252a151dc",
- "retriedOriginalJobId": "673da019-bf0c-476e-9c4f-d35252a151dc",
- "retriedByJobId": null,
- "capturedTexts": [
- {
- "id": "a5398be3-020c-4b6f-a6c6-59ed4d86ab5c",
- "name": "Product Title",
- "text": "Apple iPhone 8, 64GB, Space Gray",
- "targetNotFound": false,
- "type": "innerText",
- "createdAt": 1620739118
}
], - "capturedScreenshots": [
- {
- "id": "b4d132f3-12d9-4770-ac7d-88e481fc5b47",
- "name": "Top ads",
- "width": 600,
- "height": 120,
- "x": 201,
- "y": 142,
- "deviceScaleFactor": 1.2,
- "full": null,
- "createdAt": 1620739118,
- "comparedToScreenshotId": "29d742c2-6f45-4f29-9d48-ba6fe66e6e3d",
- "changePercentage": 20,
- "diffThreshold": 5,
- "fileRemovedAt": 1620739118
}
], - "capturedLists": [
- {
- "id": "b9585fa0-20be-4094-8a03-6878b86d7cbf",
- "name": "Products",
- "skip": 0,
- "limit": 100,
- "itemsCount": 86,
- "uniqueCapturedTextName": "Product Title",
- "createdAt": 1620739118,
- "listItems": [
- {
- "listItemIndex": 0,
- "capturedTexts": [
- {
- "id": "a5398be3-020c-4b6f-a6c6-59ed4d86ab5c",
- "name": "Product Title",
- "text": "Apple iPhone 8, 64GB, Space Gray",
- "targetNotFound": false,
- "type": "innerText",
- "createdAt": 1620739118
}
], - "capturedLists": { }
}
]
}
]
}
}Retrieve a task execution
Retrieve a task execution's details and captured data.
path Parameters
| taskId required | string Unique task ID You can find a task's ID by opening it on the dashboard and copying its ID in the browser address bar. |
| jobId required | string Unique execution ID |
header Parameters
| authorization required | string Example: Bearer YOUR_SECRET_API_KEY You can generate a new API key on your dashboard if you do not have one. |
Responses
Request samples
- C#
- Go
- Java
- Node (Native)
- Node (request)
- Objective-C
- PHP
- Python (python3)
- Python (requests)
- Ruby
- Shell (cURL)
- Shell (wget)
- Swift
var client = new RestClient("https://api.browse.ai/v1/tasks/{taskId}/jobs/{jobId}"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer YOUR_SECRET_API_KEY"); IRestResponse response = client.Execute(request);
Response samples
- 200
- 400
- 401
- 404
{- "statusCode": 200,
- "messageCode": "success",
- "result": {
- "id": "f6fb62b6-f06a-4bf7-a623-c6a35c2e70b0",
- "variables": [
- {
- "type": "text",
- "name": "originUrl",
- "label": "Origin URL",
- "encrypted": false,
- "value": null
}
], - "triggeredByUserId": null,
- "triggeredByTaskMonitorId": null,
- "triggeredByAPI": true,
- "createdAt": 1620739118,
- "startedAt": 1620739118,
- "finishedAt": 1620739118,
- "userFriendlyError": null,
- "triedRecordingVideo": true,
- "videoRemovedAt": 1620739118,
- "retriedJobId": "673da019-bf0c-476e-9c4f-d35252a151dc",
- "retriedOriginalJobId": "673da019-bf0c-476e-9c4f-d35252a151dc",
- "retriedByJobId": null,
- "capturedTexts": [
- {
- "id": "a5398be3-020c-4b6f-a6c6-59ed4d86ab5c",
- "name": "Product Title",
- "text": "Apple iPhone 8, 64GB, Space Gray",
- "targetNotFound": false,
- "type": "innerText",
- "createdAt": 1620739118
}
], - "capturedScreenshots": [
- {
- "id": "b4d132f3-12d9-4770-ac7d-88e481fc5b47",
- "name": "Top ads",
- "width": 600,
- "height": 120,
- "x": 201,
- "y": 142,
- "deviceScaleFactor": 1.2,
- "full": null,
- "createdAt": 1620739118,
- "comparedToScreenshotId": "29d742c2-6f45-4f29-9d48-ba6fe66e6e3d",
- "changePercentage": 20,
- "diffThreshold": 5,
- "fileRemovedAt": 1620739118
}
], - "capturedLists": [
- {
- "id": "b9585fa0-20be-4094-8a03-6878b86d7cbf",
- "name": "Products",
- "skip": 0,
- "limit": 100,
- "itemsCount": 86,
- "uniqueCapturedTextName": "Product Title",
- "createdAt": 1620739118,
- "listItems": [
- {
- "listItemIndex": 0,
- "capturedTexts": [
- {
- "id": "a5398be3-020c-4b6f-a6c6-59ed4d86ab5c",
- "name": "Product Title",
- "text": "Apple iPhone 8, 64GB, Space Gray",
- "targetNotFound": false,
- "type": "innerText",
- "createdAt": 1620739118
}
], - "capturedLists": { }
}
]
}
]
}
}Each task on Browse AI can optionally have one or more monitors. Monitoring tasks come with one monitor by default.
For example, if you set up a monitoring task to monitor a category page on an e-commerce site for changes daily, you can set up additional monitors to monitor other category pages on the same site using the same task.
Each monitor can have different variables and schedule.
Retrieve a task's monitors
Retrieve a task's monitors list.
path Parameters
| taskId required | string Unique task ID You can find a task's ID by opening it on the dashboard and copying its ID in the browser address bar. |
header Parameters
| authorization required | string Example: Bearer YOUR_SECRET_API_KEY You can generate a new API key on your dashboard if you do not have one. |
Responses
Request samples
- C#
- Go
- Java
- Node (Native)
- Node (request)
- Objective-C
- PHP
- Python (python3)
- Python (requests)
- Ruby
- Shell (cURL)
- Shell (wget)
- Swift
var client = new RestClient("https://api.browse.ai/v1/tasks/{taskId}/monitors"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer YOUR_SECRET_API_KEY"); IRestResponse response = client.Execute(request);
Response samples
- 200
- 400
- 401
- 404
- 500
{- "statusCode": 200,
- "messageCode": "success",
- "monitors": [
- [
- {
- "id": "f6fb62b6-f06a-4bf7-a623-c6a35c2e70b0",
- "name": "Monitor Products",
- "variables": [
- {
- "type": "text",
- "name": "originUrl",
- "label": "Origin URL",
- "encrypted": false,
- "value": null
}
], - "schedules": [
- {
- "type": "FIXED_INTERVAL",
- "everyMinutes": 60
}
], - "notifyOnCapturedScreenshotChange": true,
- "notifyOnCapturedTextChange": true,
- "capturedScreenshotNotificationThreshold": 15,
- "createdAt": 1620739118,
- "pausedAt": 1620739118,
- "updatedAt": 1620739118
}
]
]
}Create a new monitor on a task
Create a new monitor on a task.
path Parameters
| taskId required | string Unique task ID You can find a task's ID by opening it on the dashboard and copying its ID in the browser address bar. |
header Parameters
| authorization required | string Example: Bearer YOUR_SECRET_API_KEY You can generate a new API key on your dashboard if you do not have one. |
Request Body schema: application/jsonrequired
| name | string [ 1 .. 200 ] characters Monitor name |
| variables | object An object of variable values to override default variables. |
Array of Fixed interval schedule (object) or null (Schedules) Array of schedules. | |
| notifyOnCapturedScreenshotChange | boolean If set to |
| notifyOnCapturedTextChange | boolean If set to |
| capturedScreenshotNotificationThreshold | number The "screenshot changed" email notification will be sent to you if the change is greater than this threshold (in percent). |
Responses
Request samples
- Payload
- C#
- Go
- Java
- Node (Native)
- Node (request)
- Objective-C
- PHP
- Python (python3)
- Python (requests)
- Ruby
- Shell (cURL)
- Shell (wget)
- Swift
{- "name": "Monitor Products",
- "variables": {
- "originUrl": "www.google.com",
- "limit": 10
}, - "schedules": [
- {
- "type": "FIXED_INTERVAL",
- "everyMinutes": 60
}
], - "notifyOnCapturedScreenshotChange": true,
- "notifyOnCapturedTextChange": true,
- "capturedScreenshotNotificationThreshold": 15
}Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "statusCode": 200,
- "messageCode": "success",
- "monitor": {
- "id": "f6fb62b6-f06a-4bf7-a623-c6a35c2e70b0",
- "name": "Monitor Products",
- "variables": [
- {
- "type": "text",
- "name": "originUrl",
- "label": "Origin URL",
- "encrypted": false,
- "value": null
}
], - "schedules": [
- {
- "type": "FIXED_INTERVAL",
- "everyMinutes": 60
}
], - "notifyOnCapturedScreenshotChange": true,
- "notifyOnCapturedTextChange": true,
- "capturedScreenshotNotificationThreshold": 15,
- "createdAt": 1620739118,
- "pausedAt": 1620739118,
- "updatedAt": 1620739118
}
}Retrieve a task's monitor
Retrieve a task's monitor.
path Parameters
| taskId required | string Unique task ID You can find a task's ID by opening it on the dashboard and copying its ID in the browser address bar. |
| monitorId required | string Unique monitor ID You can find a monitor's ID by opening it on the dashboard and copying its ID in the browser address bar. |
header Parameters
| authorization required | string Example: Bearer YOUR_SECRET_API_KEY You can generate a new API key on your dashboard if you do not have one. |
Responses
Request samples
- C#
- Go
- Java
- Node (Native)
- Node (request)
- Objective-C
- PHP
- Python (python3)
- Python (requests)
- Ruby
- Shell (cURL)
- Shell (wget)
- Swift
var client = new RestClient("https://api.browse.ai/v1/tasks/{taskId}/monitors/{monitorId}"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer YOUR_SECRET_API_KEY"); IRestResponse response = client.Execute(request);
Response samples
- 200
- 400
- 401
- 404
- 500
{- "statusCode": 200,
- "messageCode": "success",
- "monitor": {
- "id": "f6fb62b6-f06a-4bf7-a623-c6a35c2e70b0",
- "name": "Monitor Products",
- "variables": [
- {
- "type": "text",
- "name": "originUrl",
- "label": "Origin URL",
- "encrypted": false,
- "value": null
}
], - "schedules": [
- {
- "type": "FIXED_INTERVAL",
- "everyMinutes": 60
}
], - "notifyOnCapturedScreenshotChange": true,
- "notifyOnCapturedTextChange": true,
- "capturedScreenshotNotificationThreshold": 15,
- "createdAt": 1620739118,
- "pausedAt": 1620739118,
- "updatedAt": 1620739118
}
}Update a task monitor
Update a task monitor
path Parameters
| taskId required | string Unique task ID You can find a task's ID by opening it on the dashboard and copying its ID in the browser address bar. |
| monitorId required | string Unique monitor ID You can find a monitor's ID by opening it on the dashboard and copying its ID in the browser address bar. |
header Parameters
| authorization required | string Example: Bearer YOUR_SECRET_API_KEY You can generate a new API key on your dashboard if you do not have one. |
Request Body schema: application/jsonrequired
| name | string or null Monitor name |
| variables | object or null An object of variable values to override default variables. |
Array of Fixed interval schedule (object) or null (Schedules) Array of schedules. | |
| notifyOnCapturedScreenshotChange | boolean or null If set to |
| notifyOnCapturedTextChange | boolean or null If set to |
| capturedScreenshotNotificationThreshold | number or null The "screenshot changed" email notification will be sent to you if the change is greater than this threshold (in percent). |
Responses
Request samples
- Payload
- C#
- Go
- Java
- Node (Native)
- Node (request)
- Objective-C
- PHP
- Python (python3)
- Python (requests)
- Ruby
- Shell (cURL)
- Shell (wget)
- Swift
{- "name": "Monitor Products",
- "variables": {
- "originUrl": "www.google.com",
- "limit": 10
}, - "schedules": [
- {
- "type": "FIXED_INTERVAL",
- "everyMinutes": 60
}
], - "notifyOnCapturedScreenshotChange": true,
- "notifyOnCapturedTextChange": true,
- "capturedScreenshotNotificationThreshold": 15
}Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "statusCode": 200,
- "messageCode": "success",
- "monitor": {
- "id": "f6fb62b6-f06a-4bf7-a623-c6a35c2e70b0",
- "name": "Monitor Products",
- "variables": [
- {
- "type": "text",
- "name": "originUrl",
- "label": "Origin URL",
- "encrypted": false,
- "value": null
}
], - "schedules": [
- {
- "type": "FIXED_INTERVAL",
- "everyMinutes": 60
}
], - "notifyOnCapturedScreenshotChange": true,
- "notifyOnCapturedTextChange": true,
- "capturedScreenshotNotificationThreshold": 15,
- "createdAt": 1620739118,
- "pausedAt": 1620739118,
- "updatedAt": 1620739118
}
}Delete a task's monitor
Delete a task's monitor.
path Parameters
| taskId required | string Unique task ID You can find a task's ID by opening it on the dashboard and copying its ID in the browser address bar. |
| monitorId required | string Unique monitor ID You can find a monitor's ID by opening it on the dashboard and copying its ID in the browser address bar. |
header Parameters
| authorization required | string Example: Bearer YOUR_SECRET_API_KEY You can generate a new API key on your dashboard if you do not have one. |
Responses
Request samples
- C#
- Go
- Java
- Node (Native)
- Node (request)
- Objective-C
- PHP
- Python (python3)
- Python (requests)
- Ruby
- Shell (cURL)
- Shell (wget)
- Swift
var client = new RestClient("https://api.browse.ai/v1/tasks/{taskId}/monitors/{monitorId}"); var request = new RestRequest(Method.DELETE); request.AddHeader("Authorization", "Bearer YOUR_SECRET_API_KEY"); IRestResponse response = client.Execute(request);
Response samples
- 200
- 400
- 401
- 404
- 500
{- "statusCode": 200,
- "messageCode": "success",
- "monitor": {
- "id": "673da019-bf0c-476e-9c4f-d35252a151dc"
}
}Bulk run a task
Create a new bulk run on a task.
path Parameters
| taskId required | string Unique task ID You can find a task's ID by opening it on the dashboard and copying its ID in the browser address bar. |
header Parameters
| authorization required | string Example: Bearer YOUR_SECRET_API_KEY You can generate a new API key on your dashboard if you do not have one. |
Request Body schema: application/jsonrequired
| title | string [ 1 .. 200 ] characters A string that describes the bulk run. |
| variables | Array of objects An array of variables to override the task's default variables. |
Responses
Request samples
- Payload
- C#
- Go
- Java
- Node (Native)
- Node (request)
- Objective-C
- PHP
- Python (python3)
- Python (requests)
- Ruby
- Shell (cURL)
- Shell (wget)
- Swift
{- "title": "Bulk Run Title",
- "variables": [
]
}Response samples
- 200
- 400
- 401
- 403
- 404
- 500
{- "statusCode": 200,
- "messageCode": "success",
- "result": {
- "bulkRun": {
- "id": "f6fb62b6-f06a-4bf7-a623-c6a35c2e70b0",
- "title": "Bulk Run Title",
- "jobsCount": 10,
- "taskId": "4f5cd7ff-6c98-4cac-8cf0-d7d0cb050b06",
- "createdAt": 1620739118
}
}
}Retrieve a task's bulk runs list
Retrieve a task's bulk runs list.
path Parameters
| taskId required | string Unique task ID You can find a task's ID by opening it on the dashboard and copying its ID in the browser address bar. |
query Parameters
| page | integer >= 1 Page number |
header Parameters
| authorization required | string Example: Bearer YOUR_SECRET_API_KEY You can generate a new API key on your dashboard if you do not have one. |
Responses
Request samples
- C#
- Go
- Java
- Node (Native)
- Node (request)
- Objective-C
- PHP
- Python (python3)
- Python (requests)
- Ruby
- Shell (cURL)
- Shell (wget)
- Swift
var client = new RestClient("https://api.browse.ai/v1/tasks/{taskId}/bulk-runs?page=1"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer YOUR_SECRET_API_KEY"); IRestResponse response = client.Execute(request);
Response samples
- 200
- 400
- 401
- 404
{- "statusCode": 200,
- "messageCode": "success",
- "result": {
- "totalCount": 101,
- "pageNumber": 1,
- "hasMore": true,
- "items": [
- {
- "id": "f6fb62b6-f06a-4bf7-a623-c6a35c2e70b0",
- "title": "Bulk Run Title",
- "jobsCount": 10,
- "taskId": "4f5cd7ff-6c98-4cac-8cf0-d7d0cb050b06",
- "createdAt": 1620739118
}
]
}
}Retrieve a task's bulk run
Retrieve a task's bulk run along with a list of task executions triggered through the bulk run.
path Parameters
| taskId required | string Unique task ID You can find a task's ID by opening it on the dashboard and copying its ID in the browser address bar. |
| bulkRunId required | string Unique bulk run ID |
query Parameters
| page | integer >= 1 Page number |
header Parameters
| authorization required | string Example: Bearer YOUR_SECRET_API_KEY You can generate a new API key on your dashboard if you do not have one. |
Responses
Request samples
- C#
- Go
- Java
- Node (Native)
- Node (request)
- Objective-C
- PHP
- Python (python3)
- Python (requests)
- Ruby
- Shell (cURL)
- Shell (wget)
- Swift
var client = new RestClient("https://api.browse.ai/v1/tasks/{taskId}/bulk-runs/{bulkRunId}?page=1"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer YOUR_SECRET_API_KEY"); IRestResponse response = client.Execute(request);
Response samples
- 200
- 400
- 401
- 404
{- "statusCode": 200,
- "messageCode": "success",
- "result": {
- "bulkRun": {
- "id": "f6fb62b6-f06a-4bf7-a623-c6a35c2e70b0",
- "title": "Bulk Run Title",
- "jobsCount": 10,
- "taskId": "4f5cd7ff-6c98-4cac-8cf0-d7d0cb050b06",
- "createdAt": 1620739118
}, - "taskJobs": {
- "totalCount": 101,
- "pageNumber": 1,
- "hasMore": true,
- "items": [
- {
- "id": "f6fb62b6-f06a-4bf7-a623-c6a35c2e70b0",
- "variables": [
- {
- "type": "text",
- "name": "originUrl",
- "label": "Origin URL",
- "encrypted": false,
- "value": null
}
], - "triggeredByUserId": null,
- "triggeredByTaskMonitorId": null,
- "triggeredByAPI": true,
- "createdAt": 1620739118,
- "startedAt": 1620739118,
- "finishedAt": 1620739118,
- "userFriendlyError": null,
- "triedRecordingVideo": true,
- "videoRemovedAt": 1620739118,
- "retriedJobId": "673da019-bf0c-476e-9c4f-d35252a151dc",
- "retriedOriginalJobId": "673da019-bf0c-476e-9c4f-d35252a151dc",
- "retriedByJobId": null,
- "capturedTexts": [
- {
- "id": "a5398be3-020c-4b6f-a6c6-59ed4d86ab5c",
- "name": "Product Title",
- "text": "Apple iPhone 8, 64GB, Space Gray",
- "targetNotFound": false,
- "type": "innerText",
- "createdAt": 1620739118
}
], - "capturedScreenshots": [
- {
- "id": "b4d132f3-12d9-4770-ac7d-88e481fc5b47",
- "name": "Top ads",
- "width": 600,
- "height": 120,
- "x": 201,
- "y": 142,
- "deviceScaleFactor": 1.2,
- "full": null,
- "createdAt": 1620739118,
- "comparedToScreenshotId": "29d742c2-6f45-4f29-9d48-ba6fe66e6e3d",
- "changePercentage": 20,
- "diffThreshold": 5,
- "fileRemovedAt": 1620739118
}
], - "capturedLists": [
- {
- "id": "b9585fa0-20be-4094-8a03-6878b86d7cbf",
- "name": "Products",
- "skip": 0,
- "limit": 100,
- "itemsCount": 86,
- "uniqueCapturedTextName": "Product Title",
- "createdAt": 1620739118,
- "listItems": [
- {
- "listItemIndex": 0,
- "capturedTexts": [
- { }
], - "capturedLists": { }
}
]
}
]
}
]
}
}
}