openapi: 3.0.3 info: title: 'WebChange Detector' description: 'This documentation aims to provide you with all the information you need to integrate WebChange Detector into your workflow.' version: 1.0.0 servers: - url: 'https://api.webchangedetector.com' tags: - name: Account description: 'This object represents your account with WCD' - name: Batch description: 'This object represents Batches of Queues.' - name: Comparison description: 'This object represents the comparison between 2 `Screenshots` and how they differ.' - name: Group description: 'This object groups together a list of URLs and group wide settings for them.' - name: Queue description: 'This object represents a log of taking screenshots, comparing screenshots and their status.' - name: Screenshot description: "This object represents the actual screenshot and the location it's stored at." - name: Subaccount description: 'This object represents a Subaccount' - name: Url description: 'This object represents a single URL and specific settings' - name: Webhook description: 'This object contains the webhook calls a user can set to be notified for various events.' - name: Website description: 'This object represents Websites.' components: securitySchemes: default: type: http scheme: bearer description: 'You can retrieve your token on webchangedetector.com or via the plugin.' security: - default: [] paths: /api/v2/account: get: summary: 'Get Account' operationId: getAccount description: 'Retrieves your Account. The fields `plan`, `plan_name`, `company` and `magic_login_secret` only come for full accounts (not sub accounts).' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 041c6528-783f-4e7e-b831-1a424ffeb8f3 name_first: Hans name_last: Hacker email: mail@example.com plan: agency plan_name: Agency company: 'ACME Ltd' webhook_secret: zq3csqdst0txgo5qe9mkqsourrxo56wd magic_login_secret: WdKnLLcsDxpJdfmv is_subaccount: false checks_done: 6982 checks_left: 3018 checks_limit: 10000 timezone: UTC status: active renewal_at: '2025-01-01 13:37:42' properties: data: type: object properties: id: type: string example: 041c6528-783f-4e7e-b831-1a424ffeb8f3 name_first: type: string example: Hans name_last: type: string example: Hacker email: type: string example: mail@example.com plan: type: string example: agency plan_name: type: string example: Agency company: type: string example: 'ACME Ltd' webhook_secret: type: string example: zq3csqdst0txgo5qe9mkqsourrxo56wd magic_login_secret: type: string example: WdKnLLcsDxpJdfmv is_subaccount: type: boolean example: false checks_done: type: integer example: 6982 checks_left: type: integer example: 3018 checks_limit: type: integer example: 10000 timezone: type: string example: UTC status: type: string example: active renewal_at: type: string example: '2025-01-01 13:37:42' tags: - Account put: summary: 'Update Account' operationId: updateAccount description: "Updates your `Account` by setting the values of the parameters passed.\nAny parameters not provided will be left unchanged." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 041c6528-783f-4e7e-b831-1a424ffeb8f3 name_first: Jane name_last: Doe email: mail@example.com plan: agency plan_name: Agency company: 'ACME LLC' webhook_secret: zq3csqdst0txgo5qe9mkqsourrxo56wd magic_login_secret: WdKnLLcsDxpJdfmv is_subaccount: false checks_done: 42 checks_left: 1337 checks_limit: 1379 timezone: UTC status: active renewal_at: '2025-01-01 13:37:42' properties: data: type: object properties: id: type: string example: 041c6528-783f-4e7e-b831-1a424ffeb8f3 name_first: type: string example: Jane name_last: type: string example: Doe email: type: string example: mail@example.com plan: type: string example: agency plan_name: type: string example: Agency company: type: string example: 'ACME LLC' webhook_secret: type: string example: zq3csqdst0txgo5qe9mkqsourrxo56wd magic_login_secret: type: string example: WdKnLLcsDxpJdfmv is_subaccount: type: boolean example: false checks_done: type: integer example: 42 checks_left: type: integer example: 1337 checks_limit: type: integer example: 1379 timezone: type: string example: UTC status: type: string example: active renewal_at: type: string example: '2025-01-01 13:37:42' tags: - Account requestBody: required: false content: application/json: schema: type: object properties: name_first: type: string description: 'First Name' example: Jane nullable: false name_last: type: string description: 'Last Name' example: Doe nullable: false company: type: string description: 'Company Name' example: 'ACME LLC' nullable: false /api/v2/batches: get: summary: 'List Batches' operationId: listBatches description: "Returns a list of all `Batch`. The `Batches` are sorted by creation date, with\nthe most recent `Batches` appearing first." parameters: - in: query name: above_threshold description: 'Only show Batches where there is a change detected between 2 screenshots.' example: false required: false schema: type: boolean description: 'Only show Batches where there is a change detected between 2 screenshots.' example: false nullable: false - in: query name: from description: 'Start date for filter. Must be a valid date.' example: '2024-07-01' required: false schema: type: string description: 'Start date for filter. Must be a valid date.' example: '2024-07-01' nullable: false - in: query name: to description: 'End date for filter, defaults to today. Must be a valid date.' example: '2024-07-04' required: false schema: type: string description: 'End date for filter, defaults to today. Must be a valid date.' example: '2024-07-04' nullable: false - in: query name: status description: 'Comma separated list of Comparison status to filter for.' example: 'to_fix,false_positive' required: false schema: type: string description: 'Comma separated list of Comparison status to filter for.' example: 'to_fix,false_positive' nullable: false - in: query name: queue_type description: 'Comma separated list of Queue types to filter for.' example: 'post,comparison' required: false schema: type: string description: 'Comma separated list of Queue types to filter for.' example: 'post,comparison' nullable: false - in: query name: group_ids description: 'Comma separated list of Group IDs.' example: '023c282c-6513-420a-a36b-a654312ab229,023c282c-6513-420a-a36b-a654312ab230' required: false schema: type: string description: 'Comma separated list of Group IDs.' example: '023c282c-6513-420a-a36b-a654312ab229,023c282c-6513-420a-a36b-a654312ab230' nullable: false responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 0d5f8108-51f1-4961-939a-2d33c7145918 name: Foobar sc_version: '2.0' finished_at: '2024-07-29 13:37:42' comparisons_count: ok: 0 new: 1 false_positive: 0 to_fix: 0 above_threshold: 10 queues_count: failed: 0 browser_console_count: added: 1 removed: 0 mixed: 0 unchanged: 0 links: first: 'http://api.webchangedetector.test/api/v2/batches?page=1' last: 'http://api.webchangedetector.test/api/v2/batches?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/batches?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: 'http://api.webchangedetector.test/api/v2/batches' per_page: 15 to: 1 total: 1 properties: data: type: array example: - id: 0d5f8108-51f1-4961-939a-2d33c7145918 name: Foobar sc_version: '2.0' finished_at: '2024-07-29 13:37:42' comparisons_count: ok: 0 new: 1 false_positive: 0 to_fix: 0 above_threshold: 10 queues_count: failed: 0 browser_console_count: added: 1 removed: 0 mixed: 0 unchanged: 0 items: type: object properties: id: type: string example: 0d5f8108-51f1-4961-939a-2d33c7145918 name: type: string example: Foobar sc_version: type: string example: '2.0' finished_at: type: string example: '2024-07-29 13:37:42' comparisons_count: type: object properties: ok: type: integer example: 0 new: type: integer example: 1 false_positive: type: integer example: 0 to_fix: type: integer example: 0 above_threshold: type: integer example: 10 queues_count: type: object properties: failed: type: integer example: 0 browser_console_count: type: object properties: added: type: integer example: 1 removed: type: integer example: 0 mixed: type: integer example: 0 unchanged: type: integer example: 0 links: type: object properties: first: type: string example: 'http://api.webchangedetector.test/api/v2/batches?page=1' last: type: string example: 'http://api.webchangedetector.test/api/v2/batches?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/batches?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: 'http://api.webchangedetector.test/api/v2/batches' per_page: type: integer example: 15 to: type: integer example: 1 total: type: integer example: 1 tags: - Batch '/api/v2/batches/{id}': get: summary: 'Get Batch' operationId: getBatch description: 'Retrieves a `Batch` object identfied by their ID' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 0d5f8108-51f1-4961-939a-2d33c7145918 name: Foobar sc_version: '2.0' finished_at: '2024-07-29 13:37:42' comparisons_count: ok: 0 new: 1 false_positive: 0 to_fix: 0 above_threshold: 10 queues_count: failed: 0 browser_console_count: added: 1 removed: 0 mixed: 0 unchanged: 0 properties: data: type: object properties: id: type: string example: 0d5f8108-51f1-4961-939a-2d33c7145918 name: type: string example: Foobar sc_version: type: string example: '2.0' finished_at: type: string example: '2024-07-29 13:37:42' comparisons_count: type: object properties: ok: type: integer example: 0 new: type: integer example: 1 false_positive: type: integer example: 0 to_fix: type: integer example: 0 above_threshold: type: integer example: 10 queues_count: type: object properties: failed: type: integer example: 0 browser_console_count: type: object properties: added: type: integer example: 1 removed: type: integer example: 0 mixed: type: integer example: 0 unchanged: type: integer example: 0 tags: - Batch put: summary: 'Update Batch' operationId: updateBatch description: "Updates the specified `Batch` by setting the values of the parameters passed.\nAny parameters not provided will be left unchanged." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 0d5f8108-51f1-4961-939a-2d33c7145918 name: Foobar sc_version: '2.0' finished_at: '2024-07-29 13:37:42' comparisons_count: ok: 0 new: 1 false_positive: 0 to_fix: 0 above_threshold: 10 queues_count: failed: 0 browser_console_count: added: 1 removed: 0 mixed: 0 unchanged: 0 properties: id: type: string example: 0d5f8108-51f1-4961-939a-2d33c7145918 name: type: string example: Foobar sc_version: type: string example: '2.0' finished_at: type: string example: '2024-07-29 13:37:42' comparisons_count: type: object properties: ok: type: integer example: 0 new: type: integer example: 1 false_positive: type: integer example: 0 to_fix: type: integer example: 0 above_threshold: type: integer example: 10 queues_count: type: object properties: failed: type: integer example: 0 browser_console_count: type: object properties: added: type: integer example: 1 removed: type: integer example: 0 mixed: type: integer example: 0 unchanged: type: integer example: 0 tags: - Batch requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the Batch.' example: Foobar nullable: false required: - name parameters: - in: path name: id description: 'The ID of the Batch.' example: 0d5f8108-51f1-4961-939a-2d33c7145918 required: true schema: type: string /api/v2/comparisons: get: summary: 'List Comparisons' operationId: listComparisons description: "Returns a list of all `Comparison`. The `Comparisons` are sorted by creation date, with\nthe most recent `Comparisons` appearing first." parameters: - in: query name: above_threshold description: 'Is a change detected between 2 screenshots.' example: false required: false schema: type: boolean description: 'Is a change detected between 2 screenshots.' example: false nullable: false - in: query name: from description: 'Start date for filter. Must be a valid date.' example: '2024-07-01' required: false schema: type: string description: 'Start date for filter. Must be a valid date.' example: '2024-07-01' nullable: false - in: query name: to description: 'End date for filter, defaults to today. Must be a valid date.' example: '2024-07-04' required: false schema: type: string description: 'End date for filter, defaults to today. Must be a valid date.' example: '2024-07-04' nullable: false - in: query name: status description: 'Comma separated list of status to filter for.' example: 'to_fix,false_positive' required: false schema: type: string description: 'Comma separated list of status to filter for.' example: 'to_fix,false_positive' nullable: false - in: query name: groups description: 'Comma separated list of group IDs.' example: '023c282c-6513-420a-a36b-a654312ab229,023c282c-6513-420a-a36b-a654312ab230' required: false schema: type: string description: 'Comma separated list of group IDs.' example: '023c282c-6513-420a-a36b-a654312ab229,023c282c-6513-420a-a36b-a654312ab230' nullable: false - in: query name: batches description: 'Batch IDs.' example: '0d5f8108-51f1-4961-939a-2d33c7145918,1d5f8108-51f1-4961-939a-2d33c7145918' required: false schema: type: string description: 'Batch IDs.' example: '0d5f8108-51f1-4961-939a-2d33c7145918,1d5f8108-51f1-4961-939a-2d33c7145918' nullable: false - in: query name: token description: '' example: mollitia required: false schema: type: string description: '' example: mollitia nullable: false responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 21cf8800-f906-4fa3-b1db-ed3d2977354d screenshot_1: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae screenshot_1_created_at: '2025-01-01 13:37:00' screenshot_1_updated_at: '2025-01-01 13:37:01' screenshot_1_link: 'https://storage.webchangedetector.com/folder/screenshot1.png' screenshot_2: 958dce2c-8468-47d3-8bc2-7dc6bf0aadaf screenshot_2_created_at: '2025-01-01 13:37:00' screenshot_2_updated_at: '2025-01-01 13:37:01' screenshot_2_link: 'https://storage.webchangedetector.com/folder/screenshot2.png' html_title: Foobar device: mobile monitoring: true group: 023c282c-6513-420a-a36b-a654312ab229 group_name: Barfoo queue: 8ea7b88d-b5c6-4fad-8e9d-1497a54d9266 link: 'https://storage.webchangedetector.com/folder/comparison.png' batch: 0d5f8108-51f1-4961-939a-2d33c7145918 batch_name: 'Auto Update Checks' difference_percent: 0.4 threshold: 0.2 status: new public_link: 'https://www.webchangedetector.com/show-change-detection?token=f00b4r' token: f00b4r url: 'https://example.com' url_id: 418e0748-a9cf-480b-86d6-88b00bac00b9 cms: wordpress created_at: '2025-01-01 13:37:00' links: first: 'http://api.webchangedetector.test/api/v2/comparisons?page=1' last: 'http://api.webchangedetector.test/api/v2/comparisons?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/comparisons?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: 'http://api.webchangedetector.test/api/v2/comparisons' per_page: 15 to: 1 total: 1 above_threshold_count: 3 properties: data: type: array example: - id: 21cf8800-f906-4fa3-b1db-ed3d2977354d screenshot_1: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae screenshot_1_created_at: '2025-01-01 13:37:00' screenshot_1_updated_at: '2025-01-01 13:37:01' screenshot_1_link: 'https://storage.webchangedetector.com/folder/screenshot1.png' screenshot_2: 958dce2c-8468-47d3-8bc2-7dc6bf0aadaf screenshot_2_created_at: '2025-01-01 13:37:00' screenshot_2_updated_at: '2025-01-01 13:37:01' screenshot_2_link: 'https://storage.webchangedetector.com/folder/screenshot2.png' html_title: Foobar device: mobile monitoring: true group: 023c282c-6513-420a-a36b-a654312ab229 group_name: Barfoo queue: 8ea7b88d-b5c6-4fad-8e9d-1497a54d9266 link: 'https://storage.webchangedetector.com/folder/comparison.png' batch: 0d5f8108-51f1-4961-939a-2d33c7145918 batch_name: 'Auto Update Checks' difference_percent: 0.4 threshold: 0.2 status: new public_link: 'https://www.webchangedetector.com/show-change-detection?token=f00b4r' token: f00b4r url: 'https://example.com' url_id: 418e0748-a9cf-480b-86d6-88b00bac00b9 cms: wordpress created_at: '2025-01-01 13:37:00' items: type: object properties: id: type: string example: 21cf8800-f906-4fa3-b1db-ed3d2977354d screenshot_1: type: string example: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae screenshot_1_created_at: type: string example: '2025-01-01 13:37:00' screenshot_1_updated_at: type: string example: '2025-01-01 13:37:01' screenshot_1_link: type: string example: 'https://storage.webchangedetector.com/folder/screenshot1.png' screenshot_2: type: string example: 958dce2c-8468-47d3-8bc2-7dc6bf0aadaf screenshot_2_created_at: type: string example: '2025-01-01 13:37:00' screenshot_2_updated_at: type: string example: '2025-01-01 13:37:01' screenshot_2_link: type: string example: 'https://storage.webchangedetector.com/folder/screenshot2.png' html_title: type: string example: Foobar device: type: string example: mobile monitoring: type: boolean example: true group: type: string example: 023c282c-6513-420a-a36b-a654312ab229 group_name: type: string example: Barfoo queue: type: string example: 8ea7b88d-b5c6-4fad-8e9d-1497a54d9266 link: type: string example: 'https://storage.webchangedetector.com/folder/comparison.png' batch: type: string example: 0d5f8108-51f1-4961-939a-2d33c7145918 batch_name: type: string example: 'Auto Update Checks' difference_percent: type: number example: 0.4 threshold: type: number example: 0.2 status: type: string example: new public_link: type: string example: 'https://www.webchangedetector.com/show-change-detection?token=f00b4r' token: type: string example: f00b4r url: type: string example: 'https://example.com' url_id: type: string example: 418e0748-a9cf-480b-86d6-88b00bac00b9 cms: type: string example: wordpress created_at: type: string example: '2025-01-01 13:37:00' links: type: object properties: first: type: string example: 'http://api.webchangedetector.test/api/v2/comparisons?page=1' last: type: string example: 'http://api.webchangedetector.test/api/v2/comparisons?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/comparisons?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: 'http://api.webchangedetector.test/api/v2/comparisons' per_page: type: integer example: 15 to: type: integer example: 1 total: type: integer example: 1 above_threshold_count: type: integer example: 3 tags: - Comparison '/api/v2/comparisons/{id}': get: summary: 'Get Comparison' operationId: getComparison description: 'Retrieves a `Comparison` object identfied by their ID' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 21cf8800-f906-4fa3-b1db-ed3d2977354d screenshot_1: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae screenshot_1_created_at: '2025-01-01 13:37:00' screenshot_1_updated_at: '2025-01-01 13:37:01' screenshot_1_link: 'https://storage.webchangedetector.com/folder/screenshot1.png' screenshot_2: 958dce2c-8468-47d3-8bc2-7dc6bf0aadaf screenshot_2_created_at: '2025-01-01 13:37:00' screenshot_2_updated_at: '2025-01-01 13:37:01' screenshot_2_link: 'https://storage.webchangedetector.com/folder/screenshot2.png' html_title: Foobar device: mobile monitoring: true group: 023c282c-6513-420a-a36b-a654312ab229 group_name: Barfoo queue: 8ea7b88d-b5c6-4fad-8e9d-1497a54d9266 link: 'https://storage.webchangedetector.com/folder/comparison.png' batch: 0d5f8108-51f1-4961-939a-2d33c7145918 batch_name: 'Auto Update Checks' difference_percent: 0.4 threshold: 0.2 status: new public_link: 'https://www.webchangedetector.com/show-change-detection?token=f00b4r' token: f00b4r url: 'https://example.com' url_id: 418e0748-a9cf-480b-86d6-88b00bac00b9 cms: wordpress created_at: '2025-01-01 13:37:00' properties: data: type: object properties: id: type: string example: 21cf8800-f906-4fa3-b1db-ed3d2977354d screenshot_1: type: string example: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae screenshot_1_created_at: type: string example: '2025-01-01 13:37:00' screenshot_1_updated_at: type: string example: '2025-01-01 13:37:01' screenshot_1_link: type: string example: 'https://storage.webchangedetector.com/folder/screenshot1.png' screenshot_2: type: string example: 958dce2c-8468-47d3-8bc2-7dc6bf0aadaf screenshot_2_created_at: type: string example: '2025-01-01 13:37:00' screenshot_2_updated_at: type: string example: '2025-01-01 13:37:01' screenshot_2_link: type: string example: 'https://storage.webchangedetector.com/folder/screenshot2.png' html_title: type: string example: Foobar device: type: string example: mobile monitoring: type: boolean example: true group: type: string example: 023c282c-6513-420a-a36b-a654312ab229 group_name: type: string example: Barfoo queue: type: string example: 8ea7b88d-b5c6-4fad-8e9d-1497a54d9266 link: type: string example: 'https://storage.webchangedetector.com/folder/comparison.png' batch: type: string example: 0d5f8108-51f1-4961-939a-2d33c7145918 batch_name: type: string example: 'Auto Update Checks' difference_percent: type: number example: 0.4 threshold: type: number example: 0.2 status: type: string example: new public_link: type: string example: 'https://www.webchangedetector.com/show-change-detection?token=f00b4r' token: type: string example: f00b4r url: type: string example: 'https://example.com' url_id: type: string example: 418e0748-a9cf-480b-86d6-88b00bac00b9 cms: type: string example: wordpress created_at: type: string example: '2025-01-01 13:37:00' tags: - Comparison put: summary: 'Update Comparison' operationId: updateComparison description: "Updates the specified `Comparison` by setting the values of the parameters passed.\nAny parameters not provided will be left unchanged." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 21cf8800-f906-4fa3-b1db-ed3d2977354d screenshot_1: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae screenshot_1_created_at: '2025-01-01 13:37:00' screenshot_1_updated_at: '2025-01-01 13:37:01' screenshot_1_link: 'https://storage.webchangedetector.com/folder/screenshot1.png' screenshot_2: 958dce2c-8468-47d3-8bc2-7dc6bf0aadaf screenshot_2_created_at: '2025-01-01 13:37:00' screenshot_2_updated_at: '2025-01-01 13:37:01' screenshot_2_link: 'https://storage.webchangedetector.com/folder/screenshot2.png' html_title: Foobar device: mobile monitoring: true group: 023c282c-6513-420a-a36b-a654312ab229 group_name: Barfoo queue: 8ea7b88d-b5c6-4fad-8e9d-1497a54d9266 link: 'https://storage.webchangedetector.com/folder/comparison.png' batch: 0d5f8108-51f1-4961-939a-2d33c7145918 batch_name: 'Auto Update Checks' difference_percent: 0.4 threshold: 0.2 status: new public_link: 'https://www.webchangedetector.com/show-change-detection?token=f00b4r' token: f00b4r url: 'https://example.com' url_id: 418e0748-a9cf-480b-86d6-88b00bac00b9 cms: wordpress created_at: '2025-01-01 13:37:00' properties: id: type: string example: 21cf8800-f906-4fa3-b1db-ed3d2977354d screenshot_1: type: string example: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae screenshot_1_created_at: type: string example: '2025-01-01 13:37:00' screenshot_1_updated_at: type: string example: '2025-01-01 13:37:01' screenshot_1_link: type: string example: 'https://storage.webchangedetector.com/folder/screenshot1.png' screenshot_2: type: string example: 958dce2c-8468-47d3-8bc2-7dc6bf0aadaf screenshot_2_created_at: type: string example: '2025-01-01 13:37:00' screenshot_2_updated_at: type: string example: '2025-01-01 13:37:01' screenshot_2_link: type: string example: 'https://storage.webchangedetector.com/folder/screenshot2.png' html_title: type: string example: Foobar device: type: string example: mobile monitoring: type: boolean example: true group: type: string example: 023c282c-6513-420a-a36b-a654312ab229 group_name: type: string example: Barfoo queue: type: string example: 8ea7b88d-b5c6-4fad-8e9d-1497a54d9266 link: type: string example: 'https://storage.webchangedetector.com/folder/comparison.png' batch: type: string example: 0d5f8108-51f1-4961-939a-2d33c7145918 batch_name: type: string example: 'Auto Update Checks' difference_percent: type: number example: 0.4 threshold: type: number example: 0.2 status: type: string example: new public_link: type: string example: 'https://www.webchangedetector.com/show-change-detection?token=f00b4r' token: type: string example: f00b4r url: type: string example: 'https://example.com' url_id: type: string example: 418e0748-a9cf-480b-86d6-88b00bac00b9 cms: type: string example: wordpress created_at: type: string example: '2025-01-01 13:37:00' tags: - Comparison requestBody: required: true content: application/json: schema: type: object properties: status: type: string description: 'Mark the comparison as a false positive, as fixed or simply ok.' example: false_positive nullable: false enum: - false_positive - ok - to_fix required: - status parameters: - in: path name: id description: 'The ID of the Comparison.' example: 21cf8800-f906-4fa3-b1db-ed3d2977354d required: true schema: type: string /api/v2/groups: get: summary: 'List Groups' operationId: listGroups description: "Returns a list of all Groups. The Groups are sorted by creation date, with\nthe most recent Groups appearing first." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 023c282c-6513-420a-a36b-a654312ab229 name: 'Example Group' monitoring: true enabled: true hour_of_day: 0 interval_in_h: 24 alert_emails: 'hello@example.com,test@foobar.com' css: null js: null cms: wordpress threshold: 0.2 urls_count: 42 selected_urls_count: 37 links: first: 'http://api.webchangedetector.test/api/v2/groups?page=1' last: 'http://api.webchangedetector.test/api/v2/groups?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/groups?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: 'http://api.webchangedetector.test/api/v2/groups' per_page: 15 to: 1 total: 1 properties: data: type: array example: - id: 023c282c-6513-420a-a36b-a654312ab229 name: 'Example Group' monitoring: true enabled: true hour_of_day: 0 interval_in_h: 24 alert_emails: 'hello@example.com,test@foobar.com' css: null js: null cms: wordpress threshold: 0.2 urls_count: 42 selected_urls_count: 37 items: type: object properties: id: type: string example: 023c282c-6513-420a-a36b-a654312ab229 name: type: string example: 'Example Group' monitoring: type: boolean example: true enabled: type: boolean example: true hour_of_day: type: integer example: 0 interval_in_h: type: integer example: 24 alert_emails: type: string example: 'hello@example.com,test@foobar.com' css: type: string example: null js: type: string example: null cms: type: string example: wordpress threshold: type: number example: 0.2 urls_count: type: integer example: 42 selected_urls_count: type: integer example: 37 links: type: object properties: first: type: string example: 'http://api.webchangedetector.test/api/v2/groups?page=1' last: type: string example: 'http://api.webchangedetector.test/api/v2/groups?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/groups?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: 'http://api.webchangedetector.test/api/v2/groups' per_page: type: integer example: 15 to: type: integer example: 1 total: type: integer example: 1 tags: - Group requestBody: required: false content: application/json: schema: type: object properties: per_page: type: integer description: '' example: 13 nullable: false monitoring: type: boolean description: '' example: false nullable: false post: summary: 'Create Group' operationId: createGroup description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 023c282c-6513-420a-a36b-a654312ab229 name: 'Example Group' monitoring: true enabled: true hour_of_day: 0 interval_in_h: 24 alert_emails: 'hello@example.com,test@foobar.com' css: '.btn {visibility: none;}' js: '' cms: wordpress threshold: 0.2 urls_count: 42 selected_urls_count: 37 properties: data: type: object properties: id: type: string example: 023c282c-6513-420a-a36b-a654312ab229 name: type: string example: 'Example Group' monitoring: type: boolean example: true enabled: type: boolean example: true hour_of_day: type: integer example: 0 interval_in_h: type: integer example: 24 alert_emails: type: string example: 'hello@example.com,test@foobar.com' css: type: string example: '.btn {visibility: none;}' js: type: string example: '' cms: type: string example: wordpress threshold: type: number example: 0.2 urls_count: type: integer example: 42 selected_urls_count: type: integer example: 37 tags: - Group requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Name of the Group.' example: 'Example Group' nullable: false monitoring: type: boolean description: 'Defaults to false.' example: true nullable: false enum: - 'true' - 'false' enabled: type: boolean description: 'Defaults to true.' example: true nullable: false enum: - 'true' - 'false' hour_of_day: type: integer description: 'Which hour of the day are the auto updates executed. Defaults to 0' example: 0 nullable: false interval_in_h: type: number description: 'One of the following intervals of the hour. Defaults to 24' example: 24 nullable: false enum: - 0.25 - 0.5 - 3 - 6 - 12 - 24 alert_emails: type: array description: 'A list of emails to notify. Defaults to the account email.' example: - hello@example.com - mail@example.com items: type: string css: type: string description: 'CSS to be injected before the screenshot is taken for all URLs in this group' example: '.btn {visibility: none;}' nullable: false js: type: string description: 'JavaScript to be injected before the screenshot is taken for all URLs in this group' example: '' nullable: false threshold: type: numeric description: 'Difference in percent of when this counts as a change detection for all URLs in this group' example: 0.4 nullable: false required: - name '/api/v2/groups/{id}': get: summary: 'Get Group' operationId: getGroup description: 'Retrieves a Group object identfied by their ID' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 023c282c-6513-420a-a36b-a654312ab229 name: 'Example Group' monitoring: true enabled: true hour_of_day: 0 interval_in_h: 24 alert_emails: 'hello@example.com,test@foobar.com' css: null js: null cms: wordpress threshold: 0.2 urls_count: 42 selected_urls_count: 37 properties: data: type: object properties: id: type: string example: 023c282c-6513-420a-a36b-a654312ab229 name: type: string example: 'Example Group' monitoring: type: boolean example: true enabled: type: boolean example: true hour_of_day: type: integer example: 0 interval_in_h: type: integer example: 24 alert_emails: type: string example: 'hello@example.com,test@foobar.com' css: type: string example: null js: type: string example: null cms: type: string example: wordpress threshold: type: number example: 0.2 urls_count: type: integer example: 42 selected_urls_count: type: integer example: 37 tags: - Group put: summary: 'Update Group' operationId: updateGroup description: "Updates the specified `Group` by setting the values of the parameters passed.\nAny parameters not provided will be left unchanged." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 023c282c-6513-420a-a36b-a654312ab229 name: 'Example Group' monitoring: true enabled: true hour_of_day: 0 interval_in_h: 24 alert_emails: 'hello@example.com,test@foobar.com' css: '.btn {visibility: none;}' js: '' cms: wordpress threshold: 0.2 urls_count: 42 selected_urls_count: 37 properties: data: type: object properties: id: type: string example: 023c282c-6513-420a-a36b-a654312ab229 name: type: string example: 'Example Group' monitoring: type: boolean example: true enabled: type: boolean example: true hour_of_day: type: integer example: 0 interval_in_h: type: integer example: 24 alert_emails: type: string example: 'hello@example.com,test@foobar.com' css: type: string example: '.btn {visibility: none;}' js: type: string example: '' cms: type: string example: wordpress threshold: type: number example: 0.2 urls_count: type: integer example: 42 selected_urls_count: type: integer example: 37 tags: - Group requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: 'Name of the Group.' example: 'Example Group' nullable: false monitoring: type: boolean description: 'Defaults to false.' example: true nullable: false enum: - 'true' - 'false' enabled: type: boolean description: 'Defaults to true.' example: true nullable: false enum: - 'true' - 'false' hour_of_day: type: integer description: 'Which hour of the day are the auto updates executed. Defaults to 0' example: 0 nullable: false interval_in_h: type: number description: 'One of the following intervals of the hour. Defaults to 24' example: 24 nullable: false enum: - 0.25 - 0.5 - 3 - 6 - 12 - 24 alert_emails: type: array description: 'A list of emails to notify. Defaults to the account email.' example: - hello@example.com - mail@example.com items: type: string css: type: string description: 'CSS to be injected before the screenshot is taken for all URLs in this group' example: '.btn {visibility: none;}' nullable: false js: type: string description: 'JavaScript to be injected before the screenshot is taken for all URLs in this group' example: '' nullable: false threshold: type: numeric description: 'Difference in percent of when this counts as a change detection for all URLs in this group' example: 0.4 nullable: false delete: summary: 'Delete Group' operationId: deleteGroup description: "Permanently deletes a `Group`. This cannot be undone.\n<aside class=\"notice\">This does not delete the URLs inside a Group</aside>" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: message: '{ID} deleted' properties: message: type: string example: '{ID} deleted' tags: - Group parameters: - in: path name: id description: 'The ID of the Group.' example: 023c282c-6513-420a-a36b-a654312ab229 required: true schema: type: string '/api/v2/groups/{id}/add-urls': post: summary: 'Add Urls To Group' operationId: addUrlsToGroup description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: count: '{Amount of URLs added}' properties: count: type: string example: '{Amount of URLs added}' tags: - Group requestBody: required: true content: application/json: schema: type: object properties: urls: type: array description: 'Array of URLs with their settings in this Group' example: - id: 418e0748-a9cf-480b-86d6-88b00bac00b9 desktop: true - id: 418e0748-a9cf-480b-86d6-88b00bac00c1 mobile: false items: type: string required: - urls parameters: - in: path name: id description: 'The ID of the Group.' example: 023c282c-6513-420a-a36b-a654312ab229 required: true schema: type: string '/api/v2/groups/{id}/remove-urls': post: summary: 'Remove Urls From Group' operationId: removeUrlsFromGroup description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: count: '{Amount of URLs removed}' properties: count: type: string example: '{Amount of URLs removed}' tags: - Group requestBody: required: true content: application/json: schema: type: object properties: urls: type: array description: 'Array of URL IDs' example: - 418e0748-a9cf-480b-86d6-88b00bac00b9 - 418e0748-a9cf-480b-86d6-88b00bac00c1 items: type: string required: - urls parameters: - in: path name: id description: 'The ID of the Group.' example: 023c282c-6513-420a-a36b-a654312ab229 required: true schema: type: string '/api/v2/groups/{id}/urls': get: summary: 'List Urls For Group' operationId: listUrlsForGroup description: 'Returns a list of all `Urls`. The `Urls` are sorted by creation date, with the most recent `Urls` appearing first.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: 'Example Title' url: example.com/foobar last_crawled_at: '2025-01-01 13:37:42' desktop: true mobile: true css: null js: null threshold: null group: 023c282c-6513-420a-a36b-a654312ab229 links: first: 'http://api.webchangedetector.test/api/v2/groups/023c282c-6513-420a-a36b-a654312ab229/urls?page=1' last: 'http://api.webchangedetector.test/api/v2/groups/023c282c-6513-420a-a36b-a654312ab229/urls?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/groups/023c282c-6513-420a-a36b-a654312ab229/urls?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: 'http://api.webchangedetector.test/api/v2/groups/023c282c-6513-420a-a36b-a654312ab229/urls' per_page: 15 to: 1 total: 1 selected_urls_count: 1 properties: data: type: array example: - id: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: 'Example Title' url: example.com/foobar last_crawled_at: '2025-01-01 13:37:42' desktop: true mobile: true css: null js: null threshold: null group: 023c282c-6513-420a-a36b-a654312ab229 items: type: object properties: id: type: string example: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: type: string example: 'Example Title' url: type: string example: example.com/foobar last_crawled_at: type: string example: '2025-01-01 13:37:42' desktop: type: boolean example: true mobile: type: boolean example: true css: type: string example: null js: type: string example: null threshold: type: string example: null group: type: string example: 023c282c-6513-420a-a36b-a654312ab229 links: type: object properties: first: type: string example: 'http://api.webchangedetector.test/api/v2/groups/023c282c-6513-420a-a36b-a654312ab229/urls?page=1' last: type: string example: 'http://api.webchangedetector.test/api/v2/groups/023c282c-6513-420a-a36b-a654312ab229/urls?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/groups/023c282c-6513-420a-a36b-a654312ab229/urls?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: 'http://api.webchangedetector.test/api/v2/groups/023c282c-6513-420a-a36b-a654312ab229/urls' per_page: type: integer example: 15 to: type: integer example: 1 total: type: integer example: 1 selected_urls_count: type: integer example: 1 tags: - Group requestBody: required: false content: application/json: schema: type: object properties: per_page: type: integer description: '' example: 4 nullable: false type: type: string description: '' example: sit nullable: false category: type: string description: '' example: distinctio nullable: false search: type: string description: '' example: sed nullable: false url_ids: type: string description: '' example: maxime nullable: false parameters: - in: path name: id description: 'The ID of the Group.' example: 023c282c-6513-420a-a36b-a654312ab229 required: true schema: type: string - in: path name: type description: 'URL Type.' example: foobar required: true schema: type: string - in: path name: category description: Category. example: barfoo required: true schema: type: string - in: path name: search description: 'Search in html_title and url.' example: loremipsum required: true schema: type: string - in: path name: url_ids description: 'Comma separated list of URL UUIDs' example: repudiandae required: true schema: type: string '/api/v2/groups/{group_id}/urls/{url_id}': put: summary: 'Update Url In Group' operationId: updateUrlInGroup description: 'Updates a URL within a group.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: 'Example Title' url: example.com/foobar last_crawled_at: '2025-01-01 13:37:42' desktop: true mobile: true css: '.btn {visibility: none;}' js: null threshold: null group: 023c282c-6513-420a-a36b-a654312ab229 meta: selected_urls_count: 1 properties: data: type: object properties: id: type: string example: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: type: string example: 'Example Title' url: type: string example: example.com/foobar last_crawled_at: type: string example: '2025-01-01 13:37:42' desktop: type: boolean example: true mobile: type: boolean example: true css: type: string example: '.btn {visibility: none;}' js: type: string example: null threshold: type: string example: null group: type: string example: 023c282c-6513-420a-a36b-a654312ab229 meta: type: object properties: selected_urls_count: type: integer example: 1 tags: - Group requestBody: required: false content: application/json: schema: type: object properties: desktop: type: boolean description: 'Should a desktop screenshot be taken' example: true nullable: false enum: - 'true' - 'false' mobile: type: boolean description: 'Should a mobile screenshot be taken' example: true nullable: false enum: - 'true' - 'false' css: type: string description: 'CSS to be injected before the screenshot is taken' example: '.btn {visibility: none;}' nullable: false js: type: string description: 'JavaScript to be injected before the screenshot is taken' example: cupiditate nullable: false threshold: type: numeric description: 'Difference in percent of when this counts as a change detection' example: 0.4 nullable: false parameters: - in: path name: group_id description: 'The ID of the Group.' example: 023c282c-6513-420a-a36b-a654312ab229 required: true schema: type: string - in: path name: url_id description: 'The ID of the URL in that Group.' example: 418e0748-a9cf-480b-86d6-88b00bac00b9 required: true schema: type: string '/api/v2/groups/{group_id}/urls': put: summary: 'Update All Urls In Group' operationId: updateAllUrlsInGroup description: 'Updates all URLs within a group.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: message: '42 URLs in Group 023c282c-6513-420a-a36b-a654312ab229 changed' properties: message: type: string example: '42 URLs in Group 023c282c-6513-420a-a36b-a654312ab229 changed' tags: - Group requestBody: required: false content: application/json: schema: type: object properties: urls: type: array description: 'Array of URLs with settings' example: - id: 418e0748-a9cf-480b-86d6-88b00bac00b9 desktop: true mobile: true css: null js: null threshold: 0.4 items: type: string parameters: - in: path name: group_id description: 'The ID of the Group.' example: 023c282c-6513-420a-a36b-a654312ab229 required: true schema: type: string /api/v2/queues: get: summary: 'List Queues' operationId: listQueues description: 'Returns a list of all `Queues`. The `Queues` are sorted by creation date, with the most recent `Queues` appearing first.' parameters: - in: query name: status description: 'Comma separated list of status to filter for.' example: 'done,failed' required: false schema: type: string description: 'Comma separated list of status to filter for.' example: 'done,failed' nullable: false - in: query name: groups description: 'Comma separated list of Group UUIDs to filter for.' example: '023c282c-6513-420a-a36b-a654312ab229,023c282c-6513-420a-a36b-a654312ab230' required: false schema: type: string description: 'Comma separated list of Group UUIDs to filter for.' example: '023c282c-6513-420a-a36b-a654312ab229,023c282c-6513-420a-a36b-a654312ab230' nullable: false - in: query name: batches description: 'Comma separated list of Batch UUIDs to filter for.' example: '0d5f8108-51f1-4961-939a-2d33c7145918,1d5f8108-51f1-4961-939a-2d33c7145918' required: false schema: type: string description: 'Comma separated list of Batch UUIDs to filter for.' example: '0d5f8108-51f1-4961-939a-2d33c7145918,1d5f8108-51f1-4961-939a-2d33c7145918' nullable: false responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 3bf0cec1-e8ee-49ba-804e-0db5ed93a7e3 url: 418e0748-a9cf-480b-86d6-88b00bac00b9 batch: 0d5f8108-51f1-4961-939a-2d33c7145918 group: 023c282c-6513-420a-a36b-a654312ab229 device: desktop status: open error_msg: null sc_type: pre css: null js: null monitoring: true url_link: 'https://example.com' html_title: 'Example Title' image_link: 'https://images.webchangedetector.com/image.jpg' created_at: '2024-08-08 13:37:42' updated_at: '2024-08-08 13:37:42' links: first: 'http://api.webchangedetector.test/api/v2/queues?page=1' last: 'http://api.webchangedetector.test/api/v2/queues?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/queues?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: 'http://api.webchangedetector.test/api/v2/queues' per_page: 15 to: 1 total: 1 properties: data: type: array example: - id: 3bf0cec1-e8ee-49ba-804e-0db5ed93a7e3 url: 418e0748-a9cf-480b-86d6-88b00bac00b9 batch: 0d5f8108-51f1-4961-939a-2d33c7145918 group: 023c282c-6513-420a-a36b-a654312ab229 device: desktop status: open error_msg: null sc_type: pre css: null js: null monitoring: true url_link: 'https://example.com' html_title: 'Example Title' image_link: 'https://images.webchangedetector.com/image.jpg' created_at: '2024-08-08 13:37:42' updated_at: '2024-08-08 13:37:42' items: type: object properties: id: type: string example: 3bf0cec1-e8ee-49ba-804e-0db5ed93a7e3 url: type: string example: 418e0748-a9cf-480b-86d6-88b00bac00b9 batch: type: string example: 0d5f8108-51f1-4961-939a-2d33c7145918 group: type: string example: 023c282c-6513-420a-a36b-a654312ab229 device: type: string example: desktop status: type: string example: open error_msg: type: string example: null sc_type: type: string example: pre css: type: string example: null js: type: string example: null monitoring: type: boolean example: true url_link: type: string example: 'https://example.com' html_title: type: string example: 'Example Title' image_link: type: string example: 'https://images.webchangedetector.com/image.jpg' created_at: type: string example: '2024-08-08 13:37:42' updated_at: type: string example: '2024-08-08 13:37:42' links: type: object properties: first: type: string example: 'http://api.webchangedetector.test/api/v2/queues?page=1' last: type: string example: 'http://api.webchangedetector.test/api/v2/queues?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/queues?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: 'http://api.webchangedetector.test/api/v2/queues' per_page: type: integer example: 15 to: type: integer example: 1 total: type: integer example: 1 tags: - Queue '/api/v2/queues/{id}': get: summary: 'Get Queue' operationId: getQueue description: 'Retrieves a `Queue` object identfied by their ID' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 3bf0cec1-e8ee-49ba-804e-0db5ed93a7e3 url: 418e0748-a9cf-480b-86d6-88b00bac00b9 batch: 0d5f8108-51f1-4961-939a-2d33c7145918 group: 023c282c-6513-420a-a36b-a654312ab229 device: desktop status: open sc_type: pre css: null js: null monitoring: true url_link: 'https://example.com' html_title: 'Example Title' image_link: 'https://images.webchangedetector.com/image.jpg' created_at: '2024-08-08 13:37:42' updated_at: '2024-08-08 13:37:42' properties: data: type: object properties: id: type: string example: 3bf0cec1-e8ee-49ba-804e-0db5ed93a7e3 url: type: string example: 418e0748-a9cf-480b-86d6-88b00bac00b9 batch: type: string example: 0d5f8108-51f1-4961-939a-2d33c7145918 group: type: string example: 023c282c-6513-420a-a36b-a654312ab229 device: type: string example: desktop status: type: string example: open sc_type: type: string example: pre css: type: string example: null js: type: string example: null monitoring: type: boolean example: true url_link: type: string example: 'https://example.com' html_title: type: string example: 'Example Title' image_link: type: string example: 'https://images.webchangedetector.com/image.jpg' created_at: type: string example: '2024-08-08 13:37:42' updated_at: type: string example: '2024-08-08 13:37:42' tags: - Queue parameters: - in: path name: id description: 'The ID of the Queue.' example: 3bf0cec1-e8ee-49ba-804e-0db5ed93a7e3 required: true schema: type: string /api/v2/screenshots: get: summary: 'List Screenshots' operationId: listScreenshots description: "Returns a list of all `Screenshots`. The `Screenshots` are sorted by creation date, with\nthe most recent `Screenshots` appearing first." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae queue: 8ea7b88d-b5c6-4fad-8e9d-1497a54d9266 domain: example.com url: example.com/foobar link: 'https://images.webchangedetector.com/example.jpg' device: desktop sc_type: pre monitoring: true browser_console: text: 'Failed to load resource: the server responded with a status of 404 ()' type: error location: url: 'https://example.com.com/favicon.ico' links: first: 'http://api.webchangedetector.test/api/v2/screenshots?page=1' last: 'http://api.webchangedetector.test/api/v2/screenshots?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/screenshots?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: 'http://api.webchangedetector.test/api/v2/screenshots' per_page: 15 to: 1 total: 1 properties: data: type: array example: - id: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae queue: 8ea7b88d-b5c6-4fad-8e9d-1497a54d9266 domain: example.com url: example.com/foobar link: 'https://images.webchangedetector.com/example.jpg' device: desktop sc_type: pre monitoring: true browser_console: text: 'Failed to load resource: the server responded with a status of 404 ()' type: error location: url: 'https://example.com.com/favicon.ico' items: type: object properties: id: type: string example: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae queue: type: string example: 8ea7b88d-b5c6-4fad-8e9d-1497a54d9266 domain: type: string example: example.com url: type: string example: example.com/foobar link: type: string example: 'https://images.webchangedetector.com/example.jpg' device: type: string example: desktop sc_type: type: string example: pre monitoring: type: boolean example: true browser_console: type: object properties: text: type: string example: 'Failed to load resource: the server responded with a status of 404 ()' type: type: string example: error location: type: object properties: url: type: string example: 'https://example.com.com/favicon.ico' links: type: object properties: first: type: string example: 'http://api.webchangedetector.test/api/v2/screenshots?page=1' last: type: string example: 'http://api.webchangedetector.test/api/v2/screenshots?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/screenshots?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: 'http://api.webchangedetector.test/api/v2/screenshots' per_page: type: integer example: 15 to: type: integer example: 1 total: type: integer example: 1 tags: - Screenshot '/api/v2/screenshots/{id}': get: summary: 'Get Screenshot' operationId: getScreenshot description: 'Retrieves a `Screenshot` object identfied by their ID' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae queue: 8ea7b88d-b5c6-4fad-8e9d-1497a54d9266 domain: example.com url: example.com/foobar link: 'https://images.webchangedetector.com/example.jpg' device: desktop sc_type: pre monitoring: true browser_console: text: 'Failed to load resource: the server responded with a status of 404 ()' type: error location: url: 'https://example.com.com/favicon.ico' properties: data: type: object properties: id: type: string example: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae queue: type: string example: 8ea7b88d-b5c6-4fad-8e9d-1497a54d9266 domain: type: string example: example.com url: type: string example: example.com/foobar link: type: string example: 'https://images.webchangedetector.com/example.jpg' device: type: string example: desktop sc_type: type: string example: pre monitoring: type: boolean example: true browser_console: type: object properties: text: type: string example: 'Failed to load resource: the server responded with a status of 404 ()' type: type: string example: error location: type: object properties: url: type: string example: 'https://example.com.com/favicon.ico' tags: - Screenshot parameters: - in: path name: id description: 'The ID of the Screenshot.' example: 958dce2c-8468-47d3-8bc2-7dc6bf0aadae required: true schema: type: string /api/v2/screenshots/take: post: summary: 'Take Screenshot' operationId: takeScreenshot description: "Adds screenshots of URLs in the passed groups to the queue. The parameter sc_type indicates if\npre-update screenshots are taken (pre) or post-update screenshots and comparisons are taken (post).\nWhen post-update screenshots are done, a comparison is automatically triggered." parameters: [] responses: 200: description: Success content: application/json: schema: type: object example: batch: 0d5f8108-51f1-4961-939a-2d33c7145918 amount_screenshots: 42 groups: - 023c282c-6513-420a-a36b-a654312ab229 - 023c282c-6513-420a-a36b-a654312ab230 properties: batch: type: string example: 0d5f8108-51f1-4961-939a-2d33c7145918 amount_screenshots: type: integer example: 42 groups: type: array example: - 023c282c-6513-420a-a36b-a654312ab229 - 023c282c-6513-420a-a36b-a654312ab230 items: type: string 402: description: 'Not enough credits' content: application/json: schema: type: object example: message: 'Bummer, you used your credit already. Please upgrade your account to a bigger plan.' properties: message: type: string example: 'Bummer, you used your credit already. Please upgrade your account to a bigger plan.' tags: - Screenshot requestBody: required: true content: application/json: schema: type: object properties: group_ids: type: array description: 'A list of Groups.' example: '["023c282c-6513-420a-a36b-a654312ab229", "023c282c-6513-420a-a36b-a654312ab230"]' items: type: string sc_type: type: string description: '' example: post nullable: false enum: - pre - post required: - group_ids /api/v2/subaccounts: get: summary: 'List Subaccounts' operationId: listSubaccounts description: "Returns a list of all `Subaccounts`. The `Subaccounts` are sorted by creation date, with\nthe most recent `Subaccounts` appearing first." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 17482316-2398-4374-9f70-e0e3e2bf292a name_first: Jane name_last: Doe email: mail@example.com checks_done: 42 checks_left: 1337 timezone: UTC is_subaccount: true links: first: 'http://api.webchangedetector.test/api/v2/subaccounts?page=1' last: 'http://api.webchangedetector.test/api/v2/subaccounts?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/subaccounts?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: 'http://api.webchangedetector.test/api/v2/subaccounts' per_page: 15 to: 1 total: 1 properties: data: type: array example: - id: 17482316-2398-4374-9f70-e0e3e2bf292a name_first: Jane name_last: Doe email: mail@example.com checks_done: 42 checks_left: 1337 timezone: UTC is_subaccount: true items: type: object properties: id: type: string example: 17482316-2398-4374-9f70-e0e3e2bf292a name_first: type: string example: Jane name_last: type: string example: Doe email: type: string example: mail@example.com checks_done: type: integer example: 42 checks_left: type: integer example: 1337 timezone: type: string example: UTC is_subaccount: type: boolean example: true links: type: object properties: first: type: string example: 'http://api.webchangedetector.test/api/v2/subaccounts?page=1' last: type: string example: 'http://api.webchangedetector.test/api/v2/subaccounts?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/subaccounts?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: 'http://api.webchangedetector.test/api/v2/subaccounts' per_page: type: integer example: 15 to: type: integer example: 1 total: type: integer example: 1 tags: - Subaccount post: summary: 'Create Subaccount' operationId: createSubaccount description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 17482316-2398-4374-9f70-e0e3e2bf292a name_first: Jane name_last: Doe email: mail@example.com checks_done: 42 checks_left: 1337 timezone: UTC api_token: V82abQfqPA3hBXL9ZHfMAt94Ta23VUdYt691D7GO is_subaccount: true properties: data: type: object properties: id: type: string example: 17482316-2398-4374-9f70-e0e3e2bf292a name_first: type: string example: Jane name_last: type: string example: Doe email: type: string example: mail@example.com checks_done: type: integer example: 42 checks_left: type: integer example: 1337 timezone: type: string example: UTC api_token: type: string example: V82abQfqPA3hBXL9ZHfMAt94Ta23VUdYt691D7GO is_subaccount: type: boolean example: true tags: - Subaccount requestBody: required: true content: application/json: schema: type: object properties: name_first: type: string description: 'First Name' example: Hans nullable: false name_last: type: string description: 'Last Name' example: Hacker nullable: false email: type: string description: 'Must be a valid email' example: mail@example.com nullable: false limit_checks: type: number description: '' example: 161.42008 nullable: false required: - name_first - name_last - email - limit_checks '/api/v2/subaccounts/{id}': get: summary: 'Get Subaccount' operationId: getSubaccount description: 'Retrieves a `Subaccount` object identfied by their ID' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 17482316-2398-4374-9f70-e0e3e2bf292a name_first: Jane name_last: Doe email: mail@example.com checks_done: 42 checks_left: 1337 timezone: UTC is_subaccount: true properties: data: type: object properties: id: type: string example: 17482316-2398-4374-9f70-e0e3e2bf292a name_first: type: string example: Jane name_last: type: string example: Doe email: type: string example: mail@example.com checks_done: type: integer example: 42 checks_left: type: integer example: 1337 timezone: type: string example: UTC is_subaccount: type: boolean example: true tags: - Subaccount put: summary: 'Update Subaccount' operationId: updateSubaccount description: "Updates the specified `Subaccount` by setting the values of the parameters passed.\nAny parameters not provided will be left unchanged.\n<aside class=\"notice\">This request accepts mostly the same arguments as the `Subaccount` creation call</aside>" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 17482316-2398-4374-9f70-e0e3e2bf292a name_first: Jane name_last: Doe email: mail@example.com checks_done: 42 checks_left: 1337 timezone: UTC is_subaccount: true properties: data: type: object properties: id: type: string example: 17482316-2398-4374-9f70-e0e3e2bf292a name_first: type: string example: Jane name_last: type: string example: Doe email: type: string example: mail@example.com checks_done: type: integer example: 42 checks_left: type: integer example: 1337 timezone: type: string example: UTC is_subaccount: type: boolean example: true tags: - Subaccount requestBody: required: true content: application/json: schema: type: object properties: name_first: type: string description: 'First Name' example: Hans nullable: false name_last: type: string description: 'Last Name' example: Hacker nullable: false limit_checks: type: number description: '' example: 4.2 nullable: false required: - name_first - name_last delete: summary: 'Delete Subaccount' operationId: deleteSubaccount description: "Permanently deletes a `Subaccount`. This cannot be undone.\n<aside class=\"notice\">This is only possible if the Subaccount doesn't have any Groups and URLs anymore</aside>" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: message: 'Subaccount deleted' properties: message: type: string example: 'Subaccount deleted' tags: - Subaccount parameters: - in: path name: id description: 'The ID of the Subaccount.' example: 17482316-2398-4374-9f70-e0e3e2bf292a required: true schema: type: string /api/v2/urls: get: summary: 'List Urls' operationId: listUrls description: "Returns a list of all `Urls`. The `Urls` are sorted by creation date, with\nthe most recent `Urls` appearing first." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: 'Example Title' url: example.com/foobar last_crawled_at: '2025-01-01 13:37:42' type: types category: Seiten website: 91e9c9fd-b86f-4269-a3f4-f02810167a6d groups: - 023c282c-6513-420a-a36b-a654312ab229 - 023c282c-6513-420a-a36b-a654312ab230 status_code: 200 error_count: 0 links: first: 'http://api.webchangedetector.test/api/v2/urls?page=1' last: 'http://api.webchangedetector.test/api/v2/urls?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/urls?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: 'http://api.webchangedetector.test/api/v2/urls' per_page: 15 to: 1 total: 1 properties: data: type: array example: - id: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: 'Example Title' url: example.com/foobar last_crawled_at: '2025-01-01 13:37:42' type: types category: Seiten website: 91e9c9fd-b86f-4269-a3f4-f02810167a6d groups: - 023c282c-6513-420a-a36b-a654312ab229 - 023c282c-6513-420a-a36b-a654312ab230 status_code: 200 error_count: 0 items: type: object properties: id: type: string example: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: type: string example: 'Example Title' url: type: string example: example.com/foobar last_crawled_at: type: string example: '2025-01-01 13:37:42' type: type: string example: types category: type: string example: Seiten website: type: string example: 91e9c9fd-b86f-4269-a3f4-f02810167a6d groups: type: array example: - 023c282c-6513-420a-a36b-a654312ab229 - 023c282c-6513-420a-a36b-a654312ab230 items: type: string status_code: type: integer example: 200 error_count: type: integer example: 0 links: type: object properties: first: type: string example: 'http://api.webchangedetector.test/api/v2/urls?page=1' last: type: string example: 'http://api.webchangedetector.test/api/v2/urls?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/urls?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: 'http://api.webchangedetector.test/api/v2/urls' per_page: type: integer example: 15 to: type: integer example: 1 total: type: integer example: 1 tags: - Url post: summary: 'Create Url' operationId: createUrl description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: 'Example Title' url: example.com/foobar last_crawled_at: '2025-01-01 13:37:42' type: null category: null website: null groups: [] status_code: 200 error_count: 0 properties: data: type: object properties: id: type: string example: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: type: string example: 'Example Title' url: type: string example: example.com/foobar last_crawled_at: type: string example: '2025-01-01 13:37:42' type: type: string example: null category: type: string example: null website: type: string example: null groups: type: array example: [] status_code: type: integer example: 200 error_count: type: integer example: 0 tags: - Url requestBody: required: true content: application/json: schema: type: object properties: url: type: string description: 'Must be a valid URL' example: 'https://example.com' nullable: false required: - url '/api/v2/urls/{id}': get: summary: 'Get Url' operationId: getUrl description: 'Retrieves a `Url` object identfied by their ID' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: 'Example Title' url: example.com/foobar last_crawled_at: '2025-01-01 13:37:42' type: types category: Seiten website: 91e9c9fd-b86f-4269-a3f4-f02810167a6d groups: - 023c282c-6513-420a-a36b-a654312ab229 - 023c282c-6513-420a-a36b-a654312ab230 status_code: 200 error_count: 0 properties: data: type: object properties: id: type: string example: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: type: string example: 'Example Title' url: type: string example: example.com/foobar last_crawled_at: type: string example: '2025-01-01 13:37:42' type: type: string example: types category: type: string example: Seiten website: type: string example: 91e9c9fd-b86f-4269-a3f4-f02810167a6d groups: type: array example: - 023c282c-6513-420a-a36b-a654312ab229 - 023c282c-6513-420a-a36b-a654312ab230 items: type: string status_code: type: integer example: 200 error_count: type: integer example: 0 tags: - Url put: summary: 'Update Url' operationId: updateUrl description: "Updates the specified `Url` by setting the values of the parameters passed.\nAny parameters not provided will be left unchanged.\n<aside class=\"notice\">This request accepts mostly the same arguments as the `Url` creation call</aside>" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: 'Example Title' url: example.com/foobar last_crawled_at: '2025-01-01 13:37:42' type: types category: Seiten website: 91e9c9fd-b86f-4269-a3f4-f02810167a6d status_code: 200 error_count: 0 groups: - 023c282c-6513-420a-a36b-a654312ab229 - 023c282c-6513-420a-a36b-a654312ab230 properties: data: type: object properties: id: type: string example: 418e0748-a9cf-480b-86d6-88b00bac00b9 html_title: type: string example: 'Example Title' url: type: string example: example.com/foobar last_crawled_at: type: string example: '2025-01-01 13:37:42' type: type: string example: types category: type: string example: Seiten website: type: string example: 91e9c9fd-b86f-4269-a3f4-f02810167a6d status_code: type: integer example: 200 error_count: type: integer example: 0 groups: type: array example: - 023c282c-6513-420a-a36b-a654312ab229 - 023c282c-6513-420a-a36b-a654312ab230 items: type: string tags: - Url requestBody: required: true content: application/json: schema: type: object properties: url: type: string description: 'Must be a valid URL' example: 'https://example.com' nullable: false required: - url delete: summary: 'Delete Url' operationId: deleteUrl description: "Permanently deletes a `Url`. This cannot be undone.\n<aside class=\"notice\">This might leave an empty Group</aside>" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: message: 'URL deleted' properties: message: type: string example: 'URL deleted' tags: - Url parameters: - in: path name: id description: 'The ID of the Url.' example: 418e0748-a9cf-480b-86d6-88b00bac00b9 required: true schema: type: string /api/v2/urls/add-from-sitemap: post: summary: 'Add From Sitemap' operationId: addFromSitemap description: "Adds all the URLs found in a sitemap for a given domain.\n<aside class=\"warning\">This is an alpha feature and possibly unstable!</aside>" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: message: 'Sitemap parsing started.' properties: message: type: string example: 'Sitemap parsing started.' tags: - Url requestBody: required: true content: application/json: schema: type: object properties: domain: type: string description: 'The domain to parse the sitemap from' example: example.com nullable: false required: - domain /api/v2/webhooks: get: summary: 'List Webhooks' operationId: listWebhooks description: "Returns a list of all Webhooks. The Webhooks are sorted by creation date, with\nthe most recent Webhooks appearing first." parameters: - in: query name: event description: 'Event of the Queue.' example: comparison_status_new required: false schema: type: string description: 'Event of the Queue.' example: comparison_status_new nullable: false enum: - batch_finished - comparison_status_new - queue_status_done - queue_status_failed responses: 200: description: '' content: application/json: schema: type: object example: data: - id: d86e9245-3524-4f8d-b5d9-e4a472136d27 event: comparison_status_new url: 'https://example.com' links: first: 'http://api.webchangedetector.test/api/v2/webhooks?page=1' last: 'http://api.webchangedetector.test/api/v2/webhooks?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/webhooks?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: 'http://api.webchangedetector.test/api/v2/webhooks' per_page: 15 to: 1 total: 1 properties: data: type: array example: - id: d86e9245-3524-4f8d-b5d9-e4a472136d27 event: comparison_status_new url: 'https://example.com' items: type: object properties: id: type: string example: d86e9245-3524-4f8d-b5d9-e4a472136d27 event: type: string example: comparison_status_new url: type: string example: 'https://example.com' links: type: object properties: first: type: string example: 'http://api.webchangedetector.test/api/v2/webhooks?page=1' last: type: string example: 'http://api.webchangedetector.test/api/v2/webhooks?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/webhooks?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: 'http://api.webchangedetector.test/api/v2/webhooks' per_page: type: integer example: 15 to: type: integer example: 1 total: type: integer example: 1 tags: - Webhook post: summary: 'Create Webhook' operationId: createWebhook description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: d86e9245-3524-4f8d-b5d9-e4a472136d27 event: comparison_status_new url: 'https://example.com' properties: data: type: object properties: id: type: string example: d86e9245-3524-4f8d-b5d9-e4a472136d27 event: type: string example: comparison_status_new url: type: string example: 'https://example.com' tags: - Webhook requestBody: required: true content: application/json: schema: type: object properties: url: type: string description: 'Must be a valid URL.' example: 'http://johns.net/est-consequuntur-consequatur-laborum-aut' nullable: false event: type: string description: '' example: queue_status_done nullable: false enum: - batch_finished - comparison_status_new - comparison_status_new_collection - comparison_summary - queue_status_done - queue_status_failed - wordpress_cron required: - url - event '/api/v2/webhooks/{id}': get: summary: 'Get Webhook' operationId: getWebhook description: 'Retrieves a Webhook object identfied by their ID' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: d86e9245-3524-4f8d-b5d9-e4a472136d27 event: comparison_status_new url: 'https://example.com' properties: data: type: object properties: id: type: string example: d86e9245-3524-4f8d-b5d9-e4a472136d27 event: type: string example: comparison_status_new url: type: string example: 'https://example.com' tags: - Webhook put: summary: 'Update Webhook' operationId: updateWebhook description: "Updates the specified `Webhook` by setting the values of the parameters passed.\n<aside class=\"notice\">This request accepts mostly the same arguments as the `Webhook` creation call</aside>" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: d86e9245-3524-4f8d-b5d9-e4a472136d27 event: comparison_status_new url: 'https://example.com' properties: data: type: object properties: id: type: string example: d86e9245-3524-4f8d-b5d9-e4a472136d27 event: type: string example: comparison_status_new url: type: string example: 'https://example.com' tags: - Webhook requestBody: required: true content: application/json: schema: type: object properties: url: type: string description: 'Must be a valid URL' example: 'https://example.com' nullable: false required: - url delete: summary: 'Delete Webhook' operationId: deleteWebhook description: 'Permanently deletes a `Webhook`. This cannot be undone.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: message: '{ID} deleted' properties: message: type: string example: '{ID} deleted' tags: - Webhook parameters: - in: path name: id description: 'The ID of the Webhook.' example: d86e9245-3524-4f8d-b5d9-e4a472136d27 required: true schema: type: string /api/v2/websites: get: summary: 'List Websites' operationId: listWebsites description: "Returns a list of all `Website`. The `Websites` are sorted by creation date, with\nthe most recent `Websites` appearing first.\n<aside class=\"warning\">This is an alpha feature, the API might change!</aside>" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 91e9c9fd-b86f-4269-a3f4-f02810167a6d manual_detection_group: 023c282c-6513-420a-a36b-a654312ab229 auto_detection_group: 023c282c-6513-420a-a36b-a654312ab230 domain: example.com sync_url_types: - url_type_slug: types url_type_name: 'Post Types' post_type_slug: posts post_type_name: Posts auto_update_settings: auto_update_checks_enabled: '0' auto_update_checks_from: '13:37' auto_update_checks_to: '13:42' auto_update_checks_monday: '1' auto_update_checks_tuesday: '1' auto_update_checks_wednesday: '1' auto_update_checks_thursday: '1' auto_update_checks_friday: '1' auto_update_checks_saturday: '0' auto_update_checks_sunday: '0' auto_update_checks_emails: mail@example.com allowances: change_detections_view: 1 manual_checks_view: 1 manual_checks_start: 1 manual_checks_settings: 1 manual_checks_urls: 1 monitoring_checks_view: 1 monitoring_checks_settings: 1 monitoring_checks_urls: 1 logs_view: 1 settings_view: 1 settings_add_urls: 1 settings_account_settings: 1 upgrade_account: 1 wizard_start: 1 only_frontpage: 0 links: first: 'http://api.webchangedetector.test/api/v2/websites?page=1' last: 'http://api.webchangedetector.test/api/v2/websites?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/websites?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: 'http://api.webchangedetector.test/api/v2/websites' per_page: 15 to: 1 total: 1 properties: data: type: array example: - id: 91e9c9fd-b86f-4269-a3f4-f02810167a6d manual_detection_group: 023c282c-6513-420a-a36b-a654312ab229 auto_detection_group: 023c282c-6513-420a-a36b-a654312ab230 domain: example.com sync_url_types: - url_type_slug: types url_type_name: 'Post Types' post_type_slug: posts post_type_name: Posts auto_update_settings: auto_update_checks_enabled: '0' auto_update_checks_from: '13:37' auto_update_checks_to: '13:42' auto_update_checks_monday: '1' auto_update_checks_tuesday: '1' auto_update_checks_wednesday: '1' auto_update_checks_thursday: '1' auto_update_checks_friday: '1' auto_update_checks_saturday: '0' auto_update_checks_sunday: '0' auto_update_checks_emails: mail@example.com allowances: change_detections_view: 1 manual_checks_view: 1 manual_checks_start: 1 manual_checks_settings: 1 manual_checks_urls: 1 monitoring_checks_view: 1 monitoring_checks_settings: 1 monitoring_checks_urls: 1 logs_view: 1 settings_view: 1 settings_add_urls: 1 settings_account_settings: 1 upgrade_account: 1 wizard_start: 1 only_frontpage: 0 items: type: object properties: id: type: string example: 91e9c9fd-b86f-4269-a3f4-f02810167a6d manual_detection_group: type: string example: 023c282c-6513-420a-a36b-a654312ab229 auto_detection_group: type: string example: 023c282c-6513-420a-a36b-a654312ab230 domain: type: string example: example.com sync_url_types: type: array example: - url_type_slug: types url_type_name: 'Post Types' post_type_slug: posts post_type_name: Posts items: type: object properties: url_type_slug: type: string example: types url_type_name: type: string example: 'Post Types' post_type_slug: type: string example: posts post_type_name: type: string example: Posts auto_update_settings: type: object properties: auto_update_checks_enabled: type: string example: '0' auto_update_checks_from: type: string example: '13:37' auto_update_checks_to: type: string example: '13:42' auto_update_checks_monday: type: string example: '1' auto_update_checks_tuesday: type: string example: '1' auto_update_checks_wednesday: type: string example: '1' auto_update_checks_thursday: type: string example: '1' auto_update_checks_friday: type: string example: '1' auto_update_checks_saturday: type: string example: '0' auto_update_checks_sunday: type: string example: '0' auto_update_checks_emails: type: string example: mail@example.com allowances: type: object properties: change_detections_view: type: integer example: 1 manual_checks_view: type: integer example: 1 manual_checks_start: type: integer example: 1 manual_checks_settings: type: integer example: 1 manual_checks_urls: type: integer example: 1 monitoring_checks_view: type: integer example: 1 monitoring_checks_settings: type: integer example: 1 monitoring_checks_urls: type: integer example: 1 logs_view: type: integer example: 1 settings_view: type: integer example: 1 settings_add_urls: type: integer example: 1 settings_account_settings: type: integer example: 1 upgrade_account: type: integer example: 1 wizard_start: type: integer example: 1 only_frontpage: type: integer example: 0 links: type: object properties: first: type: string example: 'http://api.webchangedetector.test/api/v2/websites?page=1' last: type: string example: 'http://api.webchangedetector.test/api/v2/websites?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: 'http://api.webchangedetector.test/api/v2/websites?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: 'http://api.webchangedetector.test/api/v2/websites' per_page: type: integer example: 15 to: type: integer example: 1 total: type: integer example: 1 tags: - Website post: summary: 'Create Website' operationId: createWebsite description: "Creates a `Website` by setting the values of the parameters passed.\nTypically only done by the WordPress plugin.\n<aside class=\"warning\">This is an alpha feature, the API might change!</aside>" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 91e9c9fd-b86f-4269-a3f4-f02810167a6d domain: example.com manual_detection_group: 023c282c-6513-420a-a36b-a654312ab229 auto_detection_group: 023c282c-6513-420a-a36b-a654312ab230 allowances: change_detections_view: 1 manual_checks_view: 1 manual_checks_start: 1 manual_checks_settings: 1 manual_checks_urls: 1 monitoring_checks_view: 1 monitoring_checks_settings: 1 monitoring_checks_urls: 1 logs_view: 1 settings_view: 1 settings_add_urls: 1 settings_account_settings: 1 upgrade_account: 1 wizard_start: 1 only_frontpage: 0 sync_url_types: - url_type_slug: types url_type_name: 'Post Types' post_type_slug: posts post_type_name: Posts - url_type_slug: types url_type_name: 'Post Types' post_type_slug: pages post_type_name: Pages auto_update_settings: auto_update_checks_enabled: null auto_update_checks_from: '13:37' auto_update_checks_to: '13:42' auto_update_checks_monday: 1 auto_update_checks_tuesday: 1 auto_update_checks_wednesday: 1 auto_update_checks_thursday: 1 auto_update_checks_friday: 1 auto_update_checks_saturday: 0 auto_update_checks_sunday: 0 auto_update_checks_emails: mail@example.com properties: id: type: string example: 91e9c9fd-b86f-4269-a3f4-f02810167a6d domain: type: string example: example.com manual_detection_group: type: string example: 023c282c-6513-420a-a36b-a654312ab229 auto_detection_group: type: string example: 023c282c-6513-420a-a36b-a654312ab230 allowances: type: object properties: change_detections_view: type: integer example: 1 manual_checks_view: type: integer example: 1 manual_checks_start: type: integer example: 1 manual_checks_settings: type: integer example: 1 manual_checks_urls: type: integer example: 1 monitoring_checks_view: type: integer example: 1 monitoring_checks_settings: type: integer example: 1 monitoring_checks_urls: type: integer example: 1 logs_view: type: integer example: 1 settings_view: type: integer example: 1 settings_add_urls: type: integer example: 1 settings_account_settings: type: integer example: 1 upgrade_account: type: integer example: 1 wizard_start: type: integer example: 1 only_frontpage: type: integer example: 0 sync_url_types: type: array example: - url_type_slug: types url_type_name: 'Post Types' post_type_slug: posts post_type_name: Posts - url_type_slug: types url_type_name: 'Post Types' post_type_slug: pages post_type_name: Pages items: type: object properties: url_type_slug: type: string example: types url_type_name: type: string example: 'Post Types' post_type_slug: type: string example: posts post_type_name: type: string example: Posts auto_update_settings: type: object properties: auto_update_checks_enabled: type: string example: null auto_update_checks_from: type: string example: '13:37' auto_update_checks_to: type: string example: '13:42' auto_update_checks_monday: type: integer example: 1 auto_update_checks_tuesday: type: integer example: 1 auto_update_checks_wednesday: type: integer example: 1 auto_update_checks_thursday: type: integer example: 1 auto_update_checks_friday: type: integer example: 1 auto_update_checks_saturday: type: integer example: 0 auto_update_checks_sunday: type: integer example: 0 auto_update_checks_emails: type: string example: mail@example.com tags: - Website requestBody: required: true content: application/json: schema: type: object properties: domain: type: string description: 'The domain of the Website.' example: example.com nullable: false manual_detection_group_id: type: string description: 'The ID of the Manual Detection Group.' example: 91e9c9fd-b86f-4269-a3f4-f02810167a6d nullable: false auto_detection_group_id: type: string description: 'The ID of the Auto Detection Group.' example: 91e9c9fd-b86f-4269-a3f4-f02810167a6d nullable: false allowances: type: array description: 'The allowances of the Website.' example: '[]' items: type: string sync_url_types: type: array description: 'The sync url types of the Website.' example: '[]' items: type: string auto_update_settings: type: array description: 'The auto update settings of the Website.' example: '[]' items: type: string required: - domain - manual_detection_group_id - auto_detection_group_id - allowances - sync_url_types - auto_update_settings '/api/v2/websites/{id}': get: summary: 'Get Website' operationId: getWebsite description: "Retrieves a `Website` object identfied by their ID\n<aside class=\"warning\">This is an alpha feature, the API might change!</aside>" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 91e9c9fd-b86f-4269-a3f4-f02810167a6d manual_detection_group: 023c282c-6513-420a-a36b-a654312ab229 auto_detection_group: 023c282c-6513-420a-a36b-a654312ab230 domain: example.com sync_url_types: - url_type_slug: types url_type_name: 'Post Types' post_type_slug: posts post_type_name: Posts auto_update_settings: auto_update_checks_enabled: '0' auto_update_checks_from: '13:37' auto_update_checks_to: '13:42' auto_update_checks_monday: '1' auto_update_checks_tuesday: '1' auto_update_checks_wednesday: '1' auto_update_checks_thursday: '1' auto_update_checks_friday: '1' auto_update_checks_saturday: '0' auto_update_checks_sunday: '0' auto_update_checks_emails: mail@example.com allowances: change_detections_view: 1 manual_checks_view: 1 manual_checks_start: 1 manual_checks_settings: 1 manual_checks_urls: 1 monitoring_checks_view: 1 monitoring_checks_settings: 1 monitoring_checks_urls: 1 logs_view: 1 settings_view: 1 settings_add_urls: 1 settings_account_settings: 1 upgrade_account: 1 wizard_start: 1 only_frontpage: 0 properties: data: type: object properties: id: type: string example: 91e9c9fd-b86f-4269-a3f4-f02810167a6d manual_detection_group: type: string example: 023c282c-6513-420a-a36b-a654312ab229 auto_detection_group: type: string example: 023c282c-6513-420a-a36b-a654312ab230 domain: type: string example: example.com sync_url_types: type: array example: - url_type_slug: types url_type_name: 'Post Types' post_type_slug: posts post_type_name: Posts items: type: object properties: url_type_slug: type: string example: types url_type_name: type: string example: 'Post Types' post_type_slug: type: string example: posts post_type_name: type: string example: Posts auto_update_settings: type: object properties: auto_update_checks_enabled: type: string example: '0' auto_update_checks_from: type: string example: '13:37' auto_update_checks_to: type: string example: '13:42' auto_update_checks_monday: type: string example: '1' auto_update_checks_tuesday: type: string example: '1' auto_update_checks_wednesday: type: string example: '1' auto_update_checks_thursday: type: string example: '1' auto_update_checks_friday: type: string example: '1' auto_update_checks_saturday: type: string example: '0' auto_update_checks_sunday: type: string example: '0' auto_update_checks_emails: type: string example: mail@example.com allowances: type: object properties: change_detections_view: type: integer example: 1 manual_checks_view: type: integer example: 1 manual_checks_start: type: integer example: 1 manual_checks_settings: type: integer example: 1 manual_checks_urls: type: integer example: 1 monitoring_checks_view: type: integer example: 1 monitoring_checks_settings: type: integer example: 1 monitoring_checks_urls: type: integer example: 1 logs_view: type: integer example: 1 settings_view: type: integer example: 1 settings_add_urls: type: integer example: 1 settings_account_settings: type: integer example: 1 upgrade_account: type: integer example: 1 wizard_start: type: integer example: 1 only_frontpage: type: integer example: 0 tags: - Website put: summary: 'Update Website' operationId: updateWebsite description: "Updates the specified `Website` by setting the values of the parameters passed.\nAny parameters not provided will be left unchanged.\n<aside class=\"warning\">This is an alpha feature, the API might change!</aside>" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 91e9c9fd-b86f-4269-a3f4-f02810167a6d domain: example.com manual_detection_group: 023c282c-6513-420a-a36b-a654312ab229 auto_detection_group: 023c282c-6513-420a-a36b-a654312ab230 allowances: change_detections_view: 1 manual_checks_view: 1 manual_checks_start: 1 manual_checks_settings: 1 manual_checks_urls: 1 monitoring_checks_view: 1 monitoring_checks_settings: 1 monitoring_checks_urls: 1 logs_view: 1 settings_view: 1 settings_add_urls: 1 settings_account_settings: 1 upgrade_account: 1 wizard_start: 1 only_frontpage: 0 sync_url_types: - url_type_slug: types url_type_name: 'Post Types' post_type_slug: posts post_type_name: Posts - url_type_slug: types url_type_name: 'Post Types' post_type_slug: pages post_type_name: Pages auto_update_settings: auto_update_checks_enabled: null auto_update_checks_from: '13:37' auto_update_checks_to: '13:42' auto_update_checks_monday: 1 auto_update_checks_tuesday: 1 auto_update_checks_wednesday: 1 auto_update_checks_thursday: 1 auto_update_checks_friday: 1 auto_update_checks_saturday: 0 auto_update_checks_sunday: 0 auto_update_checks_emails: mail@example.com properties: id: type: string example: 91e9c9fd-b86f-4269-a3f4-f02810167a6d domain: type: string example: example.com manual_detection_group: type: string example: 023c282c-6513-420a-a36b-a654312ab229 auto_detection_group: type: string example: 023c282c-6513-420a-a36b-a654312ab230 allowances: type: object properties: change_detections_view: type: integer example: 1 manual_checks_view: type: integer example: 1 manual_checks_start: type: integer example: 1 manual_checks_settings: type: integer example: 1 manual_checks_urls: type: integer example: 1 monitoring_checks_view: type: integer example: 1 monitoring_checks_settings: type: integer example: 1 monitoring_checks_urls: type: integer example: 1 logs_view: type: integer example: 1 settings_view: type: integer example: 1 settings_add_urls: type: integer example: 1 settings_account_settings: type: integer example: 1 upgrade_account: type: integer example: 1 wizard_start: type: integer example: 1 only_frontpage: type: integer example: 0 sync_url_types: type: array example: - url_type_slug: types url_type_name: 'Post Types' post_type_slug: posts post_type_name: Posts - url_type_slug: types url_type_name: 'Post Types' post_type_slug: pages post_type_name: Pages items: type: object properties: url_type_slug: type: string example: types url_type_name: type: string example: 'Post Types' post_type_slug: type: string example: posts post_type_name: type: string example: Posts auto_update_settings: type: object properties: auto_update_checks_enabled: type: string example: null auto_update_checks_from: type: string example: '13:37' auto_update_checks_to: type: string example: '13:42' auto_update_checks_monday: type: integer example: 1 auto_update_checks_tuesday: type: integer example: 1 auto_update_checks_wednesday: type: integer example: 1 auto_update_checks_thursday: type: integer example: 1 auto_update_checks_friday: type: integer example: 1 auto_update_checks_saturday: type: integer example: 0 auto_update_checks_sunday: type: integer example: 0 auto_update_checks_emails: type: string example: mail@example.com tags: - Website requestBody: required: true content: application/json: schema: type: object properties: sync_url_types: type: array description: 'The sync url types of the Website.' example: '[]' items: type: string auto_update_settings: type: array description: 'The auto update settings of the Website.' example: '[]' items: type: string allowances: type: array description: 'The allowances of the Website.' example: '[]' items: type: string domain: type: string description: 'The domain of the Website.' example: example.com nullable: false manual_detection_group_id: type: string description: 'The ID of the Manual Detection Group.' example: 91e9c9fd-b86f-4269-a3f4-f02810167a6d nullable: false auto_detection_group_id: type: string description: 'The ID of the Auto Detection Group.' example: 91e9c9fd-b86f-4269-a3f4-f02810167a6d nullable: false required: - sync_url_types - auto_update_settings - allowances - domain - manual_detection_group_id - auto_detection_group_id parameters: - in: path name: id description: 'The ID of the Website.' example: 91e9c9fd-b86f-4269-a3f4-f02810167a6d required: true schema: type: string