tessl.io Tasks API
The Tasks API from tessl.io — 8 operation(s) for tasks.
The Tasks API from tessl.io — 8 operation(s) for tasks.
openapi: 3.1.1
info:
title: Tessl Admin Keys Tasks API
version: 1.0.0
description: Admin-scoped API keys for support tooling.
servers:
- url: https://api.tessl.io
tags:
- name: Tasks
paths:
/experimental/tasks:
post:
tags:
- Tasks
description: Create-or-get a task by `idempotencyKey`. Emits `task.created`; when `startImmediately` (default true) and inputs are supplied, kicks off the first run.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- workspaceName
- idempotencyKey
- definition
- inputs
properties:
workspaceName:
minLength: 1
type: string
idempotencyKey:
minLength: 1
type: string
definition:
type: object
required:
- skillRef
- repoUrl
- agent
properties:
skillRef:
minLength: 1
type: string
repoUrl:
minLength: 1
type: string
baseBranch:
minLength: 1
type: string
agent:
minLength: 1
type: string
model:
minLength: 1
type: string
environmentId:
format: uuid
type: string
inputs:
type: object
additionalProperties: {}
links:
type: array
items:
type: object
required:
- type
- value
properties:
type:
minLength: 1
type: string
value:
minLength: 1
type: string
displayLabel:
minLength: 1
maxLength: 256
type: string
displayTitle:
minLength: 1
maxLength: 1024
type: string
displayUrl:
minLength: 1
maxLength: 2048
pattern: ^https?://
type: string
initialUserInput:
type: object
required:
- text
properties:
text:
minLength: 1
type: string
startImmediately:
type: boolean
parameters:
- schema:
type: string
example: Bearer <token>
in: header
name: Authorization
required: false
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
required:
- links
- data
properties:
links:
type: object
required:
- self
properties:
self:
format: uri
type: string
data:
type: object
required:
- id
- type
- attributes
properties:
id:
format: uuid
type: string
type:
type: string
enum:
- task
attributes:
type: object
required:
- status
- definition
- inputs
- currentRunId
- links
- createdBy
- createdAt
- updatedAt
properties:
status:
anyOf:
- type: string
enum:
- running
- type: string
enum:
- waiting_for_input
- type: string
enum:
- cancelled
definition:
type: object
required:
- skillRef
- repoUrl
- agent
properties:
skillRef:
minLength: 1
type: string
repoUrl:
minLength: 1
type: string
baseBranch:
minLength: 1
type: string
agent:
minLength: 1
type: string
model:
minLength: 1
type: string
environmentId:
format: uuid
type: string
inputs:
type: object
additionalProperties: {}
currentRunId:
anyOf:
- format: uuid
type: string
- type: 'null'
links:
type: array
items:
type: object
required:
- type
- value
- eventId
properties:
type:
type: string
value:
type: string
eventId:
anyOf:
- format: uuid
type: string
- type: 'null'
displayLabel:
type: string
displayTitle:
type: string
displayUrl:
type: string
createdBy:
anyOf:
- format: uuid
type: string
- type: 'null'
createdAt:
format: date-time
type: string
updatedAt:
format: date-time
type: string
'201':
description: Default Response
content:
application/json:
schema:
type: object
required:
- links
- data
properties:
links:
type: object
required:
- self
properties:
self:
format: uri
type: string
data:
type: object
required:
- id
- type
- attributes
properties:
id:
format: uuid
type: string
type:
type: string
enum:
- task
attributes:
type: object
required:
- status
- definition
- inputs
- currentRunId
- links
- createdBy
- createdAt
- updatedAt
properties:
status:
anyOf:
- type: string
enum:
- running
- type: string
enum:
- waiting_for_input
- type: string
enum:
- cancelled
definition:
type: object
required:
- skillRef
- repoUrl
- agent
properties:
skillRef:
minLength: 1
type: string
repoUrl:
minLength: 1
type: string
baseBranch:
minLength: 1
type: string
agent:
minLength: 1
type: string
model:
minLength: 1
type: string
environmentId:
format: uuid
type: string
inputs:
type: object
additionalProperties: {}
currentRunId:
anyOf:
- format: uuid
type: string
- type: 'null'
links:
type: array
items:
type: object
required:
- type
- value
- eventId
properties:
type:
type: string
value:
type: string
eventId:
anyOf:
- format: uuid
type: string
- type: 'null'
displayLabel:
type: string
displayTitle:
type: string
displayUrl:
type: string
createdBy:
anyOf:
- format: uuid
type: string
- type: 'null'
createdAt:
format: date-time
type: string
updatedAt:
format: date-time
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
description: Unauthorized
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Unauthorized
status:
type: number
enum:
- 401
message:
type: string
'403':
description: Forbidden
content:
application/json:
schema:
description: Forbidden
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Forbidden
status:
type: number
enum:
- 403
message:
type: string
'404':
description: Not Found
content:
application/json:
schema:
description: Not Found
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Not Found
status:
type: number
enum:
- 404
message:
type: string
'500':
description: Internal Server Error
content:
application/json:
schema:
description: Internal Server Error
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Internal Server Error
status:
type: number
enum:
- 500
message:
type: string
get:
tags:
- Tasks
description: List tasks in a workspace, optionally filtered by status.
parameters:
- schema:
default: -id
anyOf:
- type: array
items:
anyOf:
- type: string
enum:
- id
- type: string
enum:
- -id
- anyOf:
- type: string
enum:
- id
- type: string
enum:
- -id
in: query
name: sort
required: false
- schema:
minimum: 1
maximum: 100
default: 100
type: integer
in: query
name: page[size]
required: false
- schema:
type: string
in: query
name: page[after]
required: false
- schema:
type: string
in: query
name: page[before]
required: false
- schema:
minLength: 1
type: string
in: query
name: filter[workspaceName]
required: true
- schema:
anyOf:
- type: string
enum:
- running
- type: string
enum:
- waiting_for_input
- type: string
enum:
- cancelled
in: query
name: filter[status]
required: false
- schema:
anyOf:
- type: string
enum:
- running
- type: string
enum:
- waiting_for_input
- type: string
enum:
- cancelled
in: query
name: filter[status][eq]
required: false
- schema:
type: string
example: Bearer <token>
in: header
name: Authorization
required: false
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
required:
- links
- meta
- data
properties:
links:
type: object
required:
- self
- next
- prev
properties:
self:
format: uri
type: string
next:
anyOf:
- format: uri
type: string
- type: 'null'
prev:
anyOf:
- format: uri
type: string
- type: 'null'
meta:
type: object
required:
- count
properties:
count:
type: number
data:
type: array
items:
type: object
required:
- id
- type
- attributes
properties:
id:
format: uuid
type: string
type:
type: string
enum:
- task
attributes:
type: object
required:
- status
- definition
- currentRunId
- linkCount
- createdAt
- updatedAt
properties:
status:
anyOf:
- type: string
enum:
- running
- type: string
enum:
- waiting_for_input
- type: string
enum:
- cancelled
definition:
type: object
required:
- skillRef
- repoUrl
- agent
properties:
skillRef:
minLength: 1
type: string
repoUrl:
minLength: 1
type: string
baseBranch:
minLength: 1
type: string
agent:
minLength: 1
type: string
model:
minLength: 1
type: string
environmentId:
format: uuid
type: string
currentRunId:
anyOf:
- format: uuid
type: string
- type: 'null'
linkCount:
minimum: 0
type: integer
createdAt:
format: date-time
type: string
updatedAt:
format: date-time
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
description: Unauthorized
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Unauthorized
status:
type: number
enum:
- 401
message:
type: string
'403':
description: Forbidden
content:
application/json:
schema:
description: Forbidden
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Forbidden
status:
type: number
enum:
- 403
message:
type: string
'404':
description: Not Found
content:
application/json:
schema:
description: Not Found
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Not Found
status:
type: number
enum:
- 404
message:
type: string
'500':
description: Internal Server Error
content:
application/json:
schema:
description: Internal Server Error
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Internal Server Error
status:
type: number
enum:
- 500
message:
type: string
/experimental/tasks/by-link:
get:
tags:
- Tasks
description: Find a task by its (workspace, link type, link value) triple. 404 when no match exists.
parameters:
- schema:
minLength: 1
type: string
in: query
name: workspaceName
required: true
- schema:
minLength: 1
type: string
in: query
name: type
required: true
- schema:
minLength: 1
type: string
in: query
name: value
required: true
- schema:
type: string
example: Bearer <token>
in: header
name: Authorization
required: false
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
required:
- links
- data
properties:
links:
type: object
required:
- self
properties:
self:
format: uri
type: string
data:
type: object
required:
- id
- type
- attributes
properties:
id:
format: uuid
type: string
type:
type: string
enum:
- task
attributes:
type: object
required:
- status
- definition
- inputs
- currentRun
- pendingInputCount
- links
- latestEvents
- workspaceName
- createdAt
- updatedAt
properties:
status:
anyOf:
- type: string
enum:
- running
- type: string
enum:
- waiting_for_input
- type: string
enum:
- cancelled
definition:
type: object
required:
- skillRef
- repoUrl
- agent
properties:
skillRef:
minLength: 1
type: string
repoUrl:
minLength: 1
type: string
baseBranch:
minLength: 1
type: string
agent:
minLength: 1
type: string
model:
minLength: 1
type: string
environmentId:
format: uuid
type: string
inputs:
type: object
additionalProperties: {}
currentRun:
anyOf:
- type: object
required:
- id
- status
properties:
id:
format: uuid
type: string
status:
type: string
progress:
type: object
additionalProperties: {}
- type: 'null'
pendingInputCount:
minimum: 0
type: integer
links:
type: array
items:
type: object
required:
- type
- value
- eventId
properties:
type:
type: string
value:
type: string
eventId:
anyOf:
- format: uuid
type: string
- type: 'null'
displayLabel:
type: string
displayTitle:
type: string
displayUrl:
type: string
latestEvents:
type: array
items:
type: object
required:
- id
- type
- attributes
properties:
id:
format: uuid
type: string
type:
type: string
enum:
- task-event
attributes:
anyOf:
- type: object
required:
- taskId
- runId
- actor
- createdAt
- type
- payload
properties:
taskId:
format: uuid
type: string
runId:
anyOf:
- format: uuid
type: string
- type: 'null'
actor:
type: object
required:
- kind
properties:
kind:
anyOf:
- type: string
enum:
# --- truncated at 32 KB (242 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tesslio/refs/heads/main/openapi/tesslio-tasks-api-openapi.yml