> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://api.docs.modulards.com/modular-ds-public-api/tasks/website-tasks/list-tasks/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://api.docs.modulards.com/_mcp/server. # List tasks GET https://api.modulards.com/api/public/v1/site-tasks Lists the tasks logged on the websites your token can reach, newest first. Use it to review the work done on a website over a period, for example with `filter[site][]` and a date range, or to find the tasks that are still pending. Each task belongs to one website. To see the website or the attachments in the same answer, add them with `include`. Reference: https://api.docs.modulards.com/modular-ds-public-api/tasks/website-tasks/list-tasks ## Authentication - `Authorization` header (bearer token, required) — Personal access token created in the Modular DS dashboard; read-only tokens can only call GET endpoints. ## Request ### Query parameters - `filter[id][]` (string, optional) — Only these tasks, by task id. Several ids match any of them. - `filter[site][]` (string, optional) — Only the tasks of these websites, by website id. Several ids match any of them. Every website your token can reach when omitted. - `filter[s]` (string, optional) — Free-text search over the title, the content and the time spent. - `filter[started_at]` (string, optional) — First day to include, as `YYYY-MM-DD`: tasks whose date is on or after it. - `filter[ended_at]` (string, optional) — Last day to include, as `YYYY-MM-DD`: tasks whose date is on or before it. - `filter[is_pending]` (string, optional) — `1` for only the pending tasks, `0` for only the finished ones. - `include` (string, optional) — Related data to return with each task. Accepted: `site` (the website) and `files` (the task's attachments). Separate several with commas. - `sort` (string, optional) — Sort order. Accepted: `created_at`, `date`; a leading `-` reverses the order. Default `-created_at`, the most recently created first. - `page[number]` (string, optional) — Page number, starting at 1. - `page[size]` (string, optional) — Rows per page, up to 50 (default 15). ## Response ### 200 200 OK - `data` (list of ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaDataItems, optional) - `jsonapi` (ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaJsonapi, optional) - `links` (ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaLinks, optional) - `meta` (ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaMeta, optional) ## Types ### ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaDataItems - `attributes` (ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaDataItemsAttributes, optional) - `id` (string, optional) - `links` (ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaDataItemsLinks, optional) - `type` (string, optional) ### ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaJsonapi - `version` (string, optional) ### ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaLinks - `first` (string, optional) - `last` (string, optional) - `next` (any, optional, nullable) - `prev` (any, optional, nullable) ### ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaMeta - `current_page` (double, optional) - `from` (double, optional) - `last_page` (double, optional) - `links` (list of ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaMetaLinksItems, optional) - `path` (string, optional) - `per_page` (double, optional) - `to` (double, optional) - `total` (double, optional) ### ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaDataItemsAttributes - `content` (string, optional, nullable) - `created_at` (string, optional) - `date` (string, optional) - `is_pending` (boolean, optional) - `site_id` (double, optional) - `time_spent` (double, optional, nullable) - `title` (string, optional) - `updated_at` (string, optional) ### ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaDataItemsLinks - `self` (string, optional) ### ApiPublicV1SiteTasksGetResponsesContentApplicationJsonSchemaMetaLinksItems - `active` (boolean, optional) - `label` (string, optional) - `url` (string, optional, nullable) ## Examples **Response** ```json { "data": [ { "attributes": { "content": "
Renewed the certificate through the hosting panel.
", "created_at": "2026-09-17T09:00:00.000000Z", "date": "2026-09-17", "is_pending": false, "site_id": 12, "time_spent": 30, "title": "Renew the SSL certificate", "updated_at": "2026-09-17T09:00:00.000000Z" }, "id": "501", "links": { "self": "{{base_url}}/api/public/v1/site-tasks/501" }, "type": "site-tasks" }, { "attributes": { "content": null, "created_at": "2026-09-15T14:20:00.000000Z", "date": "2026-09-15", "is_pending": true, "site_id": 13, "time_spent": null, "title": "Update the caching plugin", "updated_at": "2026-09-15T14:20:00.000000Z" }, "id": "487", "links": { "self": "{{base_url}}/api/public/v1/site-tasks/487" }, "type": "site-tasks" } ], "jsonapi": { "version": "1.1" }, "links": { "first": "{{base_url}}/api/public/v1/site-tasks?page%5Bnumber%5D=1", "last": "{{base_url}}/api/public/v1/site-tasks?page%5Bnumber%5D=1", "next": null, "prev": null }, "meta": { "current_page": 1, "from": 1, "last_page": 1, "links": [ { "active": false, "label": "« Previous", "url": null }, { "active": true, "label": "1", "url": "{{base_url}}/api/public/v1/site-tasks?page%5Bnumber%5D=1" }, { "active": false, "label": "Next »", "url": null } ], "path": "{{base_url}}/api/public/v1/site-tasks", "per_page": 15, "to": 2, "total": 2 } } ``` **SDK Code** ```python 200 OK import requests url = "https://api.modulards.com/api/public/v1/site-tasks" headers = {"Authorization": "Bearer