Overview
Create Schedule
The Snapshot Schedule API lets you create automated schedules for recurring website screenshot captures. A schedule can contain one or more website URLs and can run once, at a fixed interval, or according to a cron expression. Each scheduled screenshot can be configured with options such as viewport dimensions, full-page capture, image format, quality, capture delay, page loading conditions, CSS selectors, element capture, custom User-Agent and language settings, and optional HTML or text extraction. Use this endpoint when you want to automate website screenshots on a recurring schedule instead of triggering each capture manually. Scheduled captures can be used for website monitoring, visual change tracking, historical records, and automated reporting.
Endpoint
https://snapshot-api.mindiqglobal.com/api/v1/schedulesRequest Body
{
"name": "Daily Homepage Check",
"description": "Track homepage changes",
"schedule": {
"type": "INTERVAL",
"firstRunAt": "2026-08-07T09:00:00Z",
"intervalValue": 1,
"intervalUnit": "DAYS"
},
"items": [
{
"url": "https://example.com",
"width": 1920,
"height": 1080,
"fullPage": true,
"format": "png",
"responseType": "json",
"quality": 100,
"delay": 0,
"waitUntil": "page_loaded",
"extractHtml": true,
"extractText": true
}
]
}Request Body Parameters
| Field | Required | Type | Description |
|---|---|---|---|
| name | Yes | string | Schedule name. |
| description | No | string | Schedule description. |
| schedule | Yes | object | Schedule timing configuration object. |
| schedule.type | Yes | enum | Schedule type. Possible values: ONCE, INTERVAL, CRON. |
| schedule.firstRunAt | Conditional | datetime | First run datetime in ISO-8601 format. Required for ONCE; optional for other types based on workflow. |
| schedule.intervalValue | Conditional | integer | Interval amount. Required when schedule.type is INTERVAL. Expected positive integer (for example, 1, 2, 12). |
| schedule.intervalUnit | Conditional | enum | Interval unit. Required when schedule.type is INTERVAL. Possible values: MINUTES, HOURS, DAYS, WEEKS, MONTHS. |
| schedule.cronExpression | Conditional | string | Cron expression. Required when schedule.type is CRON. |
| items | Yes | array | List of screenshot items to capture. |
| items[].url | Yes | string | Target URL (http:// or https://). |
| items[].width | No | integer | Viewport width. Expected positive integer (for example, 1280, 1920). |
| items[].height | No | integer | Viewport height. Expected positive integer (for example, 720, 1080). |
| items[].fullPage | No | boolean | Capture full page. Possible values: true, false. Cannot be combined with crop or element. |
| items[].format | No | enum | Image format. Possible values: png, jpeg. |
| items[].responseType | No | enum | Scheduled captures support json only. |
| items[].quality | No | integer | JPEG quality. Allowed range: 0-100. |
| items[].delay | No | number | Capture delay in seconds. Allowed range: 0-10. |
| items[].waitUntil | No | enum | dom_loaded, page_loaded, network_idle. |
| items[].waitUntilTimeout | No | number | Allowed range: 1-30 seconds. |
| items[].waitFor | No | string | CSS selector to wait for before capture (max wait 15s). |
| items[].crop | No | string | Crop rectangle left,top,width,height. Cannot be combined with fullPage or element. |
| items[].element | No | string | Capture first matching element selector. Cannot be combined with fullPage or crop. |
| items[].thumbnailWidth | No | integer | Positive integer. Preserves aspect ratio. |
| items[].userAgent | No | string | Custom user-agent. |
| items[].acceptLanguage | No | string | Custom accept-language. |
| items[].extractHtml | No | boolean | Default false. Only with responseType=json. |
| items[].extractText | No | boolean | Default false. Only with responseType=json. |
Success Response
{
"id": 21,
"name": "Daily Homepage Check",
"description": "Track homepage changes",
"status": "ACTIVE",
"schedule": {
"type": "INTERVAL",
"firstRunAt": "2026-08-07T09:00:00Z",
"intervalValue": 1,
"intervalUnit": "DAYS",
"cronExpression": null
},
"nextRunAt": "2026-08-07T09:00:00Z",
"lastRunAt": null,
"items": [
{
"id": 44,
"url": "https://example.com",
"width": 1920,
"height": 1080,
"fullPage": true,
"format": "png",
"responseType": "json",
"quality": 100,
"delay": 0,
"waitUntil": "page_loaded",
"waitUntilTimeout": 15,
"waitFor": null,
"crop": null,
"element": null,
"thumbnailWidth": null,
"userAgent": null,
"acceptLanguage": null,
"extractHtml": true,
"extractText": true,
"createdAt": "2026-08-06T10:00:00Z",
"updatedAt": "2026-08-06T10:00:00Z"
}
],
"createdAt": "2026-08-06T10:00:00Z",
"updatedAt": "2026-08-06T10:00:00Z"
}Response Body Parameters
| Name | Type | Description |
|---|---|---|
| id | integer | Schedule ID. |
| name | string | Schedule name. |
| description | string | null | Schedule description. |
| status | enum | Schedule status, Possible values: ACTIVE, COMPLETED |
| schedule | object | Schedule timing configuration. |
| schedule.type | enum | Possible values: ONCE, INTERVAL, CRON. |
| schedule.firstRunAt | datetime | null | First run datetime in ISO-8601 format. |
| schedule.intervalValue | integer | null | Interval value for interval schedules. |
| schedule.intervalUnit | enum | null | Possible values: MINUTES, HOURS, DAYS, WEEKS, MONTHS. |
| schedule.cronExpression | string | null | Cron expression for cron schedules. |
| nextRunAt | datetime | null | Next run datetime in ISO-8601 format. |
| lastRunAt | datetime | null | Last run datetime in ISO-8601 format. |
| items | array | Schedule items. |
| items[].id | integer | Schedule item ID. |
| items[].url | string | Target URL. |
| items[].width | integer | null | Viewport width. |
| items[].height | integer | null | Viewport height. |
| items[].fullPage | boolean | Full page flag. Possible values: true, false. |
| items[].format | enum | Possible values: png, jpeg. |
| items[].responseType | enum | Scheduled captures use json. |
| items[].quality | integer | null | JPEG quality (0-100). |
| items[].delay | number | null | Capture delay in seconds. |
| items[].waitUntil | enum | null | dom_loaded, page_loaded, network_idle. |
| items[].waitUntilTimeout | number | null | wait_until timeout in seconds. |
| items[].waitFor | string | null | CSS selector wait target. |
| items[].crop | string | null | Crop rectangle left,top,width,height. |
| items[].element | string | null | Element selector target. |
| items[].thumbnailWidth | integer | null | Thumbnail width. |
| items[].userAgent | string | null | Custom user-agent. |
| items[].acceptLanguage | string | null | Custom accept-language. |
| items[].extractHtml | boolean | Extract HTML enabled state. |
| items[].extractText | boolean | Extract text enabled state. |
| items[].createdAt | datetime | Item creation datetime in ISO-8601 format. |
| items[].updatedAt | datetime | Item update datetime in ISO-8601 format. |
| createdAt | datetime | Schedule creation datetime in ISO-8601 format. |
| updatedAt | datetime | Schedule update datetime in ISO-8601 format. |