ctlsurf Tasks API
The tasks API from ctlsurf — 4 operation(s) for tasks.
The tasks API from ctlsurf — 4 operation(s) for tasks.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/ctlsurf-com:ctlsurf-com-tasks-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Ctlsurf Com Tasks API
version: 0.1.0
description: 'Operations tagged tasks across 2 of this provider''s published API definitions: ctlsurf-com-openapi.json, ctlsurf-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://app.ctlsurf.com
description: ctlsurf application host (documented MCP endpoint https://app.ctlsurf.com/api/mcp; spec served at /openapi.json)
tags:
- name: Tasks
paths:
/api/tasks:
get:
tags:
- Tasks
summary: List Tasks
description: List tasks from checklist blocks across user's pages.
operationId: list_tasks_api_tasks_get
security:
- HTTPBearer: []
parameters:
- name: status
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: 'Filter by status: todo, done'
title: Status
description: 'Filter by status: todo, done'
- name: assigned_to
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: 'Filter by assignment: agent, human'
title: Assigned To
description: 'Filter by assignment: agent, human'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TaskResponse'
title: Response List Tasks Api Tasks Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/tasks/page/{page_id}:
post:
tags:
- Tasks
summary: Create Task
description: Create a new agent task on a page. Finds or creates a ctlsurf_task block.
operationId: create_task_api_tasks_page__page_id__post
security:
- HTTPBearer: []
parameters:
- name: page_id
in: path
required: true
schema:
type: string
format: uuid
title: Page Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskCreate'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/tasks/{block_id}/{task_id}:
patch:
tags:
- Tasks
summary: Update Task
description: Update a specific task within a checklist or ctlsurf_task block.
operationId: update_task_api_tasks__block_id___task_id__patch
security:
- HTTPBearer: []
parameters:
- name: block_id
in: path
required: true
schema:
type: string
format: uuid
title: Block Id
- name: task_id
in: path
required: true
schema:
type: string
title: Task Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskUpdate'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TaskResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Tasks
summary: Delete Task
description: Delete a specific task from a checklist or ctlsurf_task block.
operationId: delete_task_api_tasks__block_id___task_id__delete
security:
- HTTPBearer: []
parameters:
- name: block_id
in: path
required: true
schema:
type: string
format: uuid
title: Block Id
- name: task_id
in: path
required: true
schema:
type: string
title: Task Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/tasks/folder/{folder_id}:
get:
tags:
- Tasks
summary: Get Folder Agent Tasks
description: Get all agent tasks (ctlsurf_task) in a folder, grouped by page.
operationId: get_folder_agent_tasks_api_tasks_folder__folder_id__get
security:
- HTTPBearer: []
parameters:
- name: folder_id
in: path
required: true
schema:
type: string
format: uuid
title: Folder Id
- name: include_done
in: query
required: false
schema:
type: boolean
description: Include completed tasks
default: true
title: Include Done
description: Include completed tasks
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/FolderAgentTasks'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
TaskItem:
properties:
id:
type: string
title: Id
text:
type: string
title: Text
done:
type: boolean
title: Done
default: false
assigned_to:
anyOf:
- type: string
- type: 'null'
title: Assigned To
status:
anyOf:
- type: string
enum:
- todo
- in_progress
- blocked
- done
- type: 'null'
title: Status
notes:
items:
type: string
type: array
title: Notes
default: []
type: object
required:
- id
- text
title: TaskItem
TaskCompletion:
properties:
summary:
type: string
title: Summary
assumptions:
items:
type: string
type: array
title: Assumptions
attempted_but_failed:
items:
type: string
type: array
title: Attempted But Failed
simplified_or_skipped:
items:
type: string
type: array
title: Simplified Or Skipped
caveats:
items:
type: string
type: array
title: Caveats
default: []
follow_ups:
items:
type: string
type: array
title: Follow Ups
default: []
type: object
required:
- summary
- assumptions
- attempted_but_failed
- simplified_or_skipped
title: TaskCompletion
description: 'Structured completion data required when marking a task as done.
Forces agents to document assumptions, failed attempts, and simplifications.'
FolderAgentTasks:
properties:
folder_id:
type: string
format: uuid
title: Folder Id
folder_name:
type: string
title: Folder Name
pages:
items:
$ref: '#/components/schemas/PageTasks'
type: array
title: Pages
total_pending:
type: integer
title: Total Pending
total_done:
type: integer
title: Total Done
type: object
required:
- folder_id
- folder_name
- pages
- total_pending
- total_done
title: FolderAgentTasks
description: All agent tasks in a folder, grouped by page.
TaskUpdate:
properties:
done:
anyOf:
- type: boolean
- type: 'null'
title: Done
status:
anyOf:
- type: string
enum:
- todo
- in_progress
- blocked
- done
- type: 'null'
title: Status
text:
anyOf:
- type: string
- type: 'null'
title: Text
note:
anyOf:
- type: string
- type: 'null'
title: Note
skill_id:
anyOf:
- type: string
- type: 'null'
title: Skill Id
completion:
anyOf:
- $ref: '#/components/schemas/TaskCompletion'
- type: 'null'
reopen_feedback:
anyOf:
- type: string
- type: 'null'
title: Reopen Feedback
type: object
title: TaskUpdate
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
PageTasks:
properties:
page_id:
type: string
format: uuid
title: Page Id
page_title:
type: string
title: Page Title
tasks:
items:
$ref: '#/components/schemas/AgentTaskItem'
type: array
title: Tasks
type: object
required:
- page_id
- page_title
- tasks
title: PageTasks
description: Tasks grouped by page.
TaskCreate:
properties:
text:
type: string
title: Text
skill_id:
anyOf:
- type: string
- type: 'null'
title: Skill Id
type: object
required:
- text
title: TaskCreate
AgentTaskItem:
properties:
id:
type: string
title: Id
text:
type: string
title: Text
done:
type: boolean
title: Done
default: false
notes:
items:
type: string
type: array
title: Notes
default: []
skill_id:
anyOf:
- type: string
- type: 'null'
title: Skill Id
block_id:
type: string
format: uuid
title: Block Id
block_title:
anyOf:
- type: string
- type: 'null'
title: Block Title
type: object
required:
- id
- text
- block_id
title: AgentTaskItem
description: A single agent task item with context.
TaskResponse:
properties:
block_id:
type: string
format: uuid
title: Block Id
page_id:
type: string
format: uuid
title: Page Id
item:
$ref: '#/components/schemas/TaskItem'
type: object
required:
- block_id
- page_id
- item
title: TaskResponse
securitySchemes:
HTTPBearer:
type: http
scheme: bearer
x-refined-from:
- ctlsurf-com-openapi.json
- ctlsurf-com-openapi.yml