openapi: 3.0.0 info: description: Unified API for QuantCDN Admin and QuantCloud Platform services title: QuantCDN AI Agents CrawlerSchedules API version: 4.15.8 servers: - description: QuantCDN Public Cloud url: https://dashboard.quantcdn.io - description: QuantGov Cloud url: https://dash.quantgov.cloud security: - BearerAuth: [] tags: - description: Scheduled website crawl operations name: CrawlerSchedules paths: /api/v2/organizations/{organization}/projects/{project}/crawlers/{crawler}/schedules: get: operationId: CrawlerSchedules_list parameters: - example: test-org explode: false in: path name: organization required: true schema: type: string style: simple - example: test-project explode: false in: path name: project required: true schema: type: string style: simple - example: 00000000-0000-0000-0000-000000000000 explode: false in: path name: crawler required: true schema: type: string style: simple responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/V2CrawlerSchedule' type: array description: The request has succeeded. '400': content: application/json: schema: $ref: '#/components/schemas/V2Error' description: The server could not understand the request due to invalid syntax. '403': content: application/json: schema: $ref: '#/components/schemas/V2Error' description: Access is forbidden. summary: List schedules for a crawler tags: - CrawlerSchedules post: operationId: CrawlerSchedules_add parameters: - description: Organization identifier explode: false in: path name: organization required: true schema: type: string style: simple - description: Project identifier explode: false in: path name: project required: true schema: type: string style: simple - description: Crawler identifier explode: false in: path name: crawler required: true schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/V2CrawlerScheduleRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/V2CrawlerSchedule' description: The request has succeeded. '400': content: application/json: schema: $ref: '#/components/schemas/V2Error' description: The server could not understand the request due to invalid syntax. '403': content: application/json: schema: $ref: '#/components/schemas/V2Error' description: Access is forbidden. summary: Add a new schedule tags: - CrawlerSchedules /api/v2/organizations/{organization}/projects/{project}/crawlers/{crawler}/schedules/{crawler_schedule}: delete: operationId: CrawlerSchedules_delete parameters: - description: Organization identifier explode: false in: path name: organization required: true schema: type: string style: simple - description: Project identifier explode: false in: path name: project required: true schema: type: string style: simple - description: Crawler identifier explode: false in: path name: crawler required: true schema: type: string style: simple - description: Crawler schedule identifier explode: false in: path name: crawler_schedule required: true schema: type: string style: simple responses: '204': description: The crawler schedule has been deleted. '400': content: application/json: schema: $ref: '#/components/schemas/V2Error' description: The server could not understand the request due to invalid syntax. '403': content: application/json: schema: $ref: '#/components/schemas/V2Error' description: Access is forbidden. summary: Delete a schedule tags: - CrawlerSchedules get: operationId: CrawlerSchedules_show parameters: - description: Organization identifier explode: false in: path name: organization required: true schema: type: string style: simple - description: Project identifier explode: false in: path name: project required: true schema: type: string style: simple - description: Crawler identifier explode: false in: path name: crawler required: true schema: type: string style: simple - description: Crawler schedule identifier explode: false in: path name: crawler_schedule required: true schema: type: string style: simple responses: '200': content: application/json: schema: $ref: '#/components/schemas/V2CrawlerSchedule' description: The crawler schedule. '400': content: application/json: schema: $ref: '#/components/schemas/V2Error' description: The server could not understand the request due to invalid syntax. '403': content: application/json: schema: $ref: '#/components/schemas/V2Error' description: Access is forbidden. summary: Show a specific schedule tags: - CrawlerSchedules patch: operationId: CrawlerSchedules_edit parameters: - description: Organization identifier explode: false in: path name: organization required: true schema: type: string style: simple - description: Project identifier explode: false in: path name: project required: true schema: type: string style: simple - description: Crawler identifier explode: false in: path name: crawler required: true schema: type: string style: simple - description: Crawler schedule identifier explode: false in: path name: crawler_schedule required: true schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/V2CrawlerScheduleRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/V2CrawlerSchedule' description: The crawler schedule. '400': content: application/json: schema: $ref: '#/components/schemas/V2Error' description: The server could not understand the request due to invalid syntax. '403': content: application/json: schema: $ref: '#/components/schemas/V2Error' description: Access is forbidden. summary: Edit a schedule tags: - CrawlerSchedules components: schemas: V2CrawlerScheduleRequest: example: schedule_cron_string: 0 2 * * * name: Daily Crawl properties: name: description: Schedule name. If not provided, defaults to 'Schedule {crawler_name}'. example: Daily Crawl type: string schedule_cron_string: description: 'Standard Unix cron expression with 5 space-separated fields: minute, hour, day-of-month, month, day-of-week. Example: 0 2 * * * for daily at 2 AM.' example: 0 2 * * * type: string required: - schedule_cron_string type: object V2Error: example: message: The requested resource was not found error: true properties: message: description: Error message example: The requested resource was not found type: string error: description: Error flag example: true type: boolean required: - error - message type: object V2CrawlerSchedule: example: crawler_last_run_id: 12345 schedule_cron_string: 0 2 * * * updated_at: 2024-10-11 16:45:00+00:00 project_id: 789 name: Test schedule crawler_config_id: 456 created_at: 2024-01-20 09:15:00+00:00 crawler_uuid: 550e8400-e29b-41d4-a716-446655440000 id: 1 properties: id: description: Schedule ID example: 1 type: integer name: description: Schedule name example: Test schedule type: string crawler_config_id: description: Crawler config ID example: 456 type: integer crawler_uuid: description: Crawler UUID example: 550e8400-e29b-41d4-a716-446655440000 type: string project_id: description: Project ID example: 789 type: integer crawler_last_run_id: description: Last run ID example: 12345 type: integer schedule_cron_string: description: 'Standard Unix cron expression with 5 space-separated fields: minute, hour, day-of-month, month, day-of-week. Example: 0 2 * * * runs daily at 2 AM.' example: 0 2 * * * type: string created_at: description: Creation timestamp example: 2024-01-20 09:15:00+00:00 format: date-time type: string updated_at: description: Last update timestamp example: 2024-10-11 16:45:00+00:00 format: date-time type: string required: - crawler_config_id - crawler_last_run_id - id - project_id - schedule_cron_string type: object securitySchemes: BearerAuth: bearerFormat: JWT description: 'Enter your Bearer token in the format: `Bearer `. Obtain your API token from the QuantCDN dashboard under Profile > API Tokens.' scheme: bearer type: http