Authentik Tasks API

Background task schedules and runs executed by the authentik worker.

Operations 10

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /tasks/schedules/ List scheduled background jobs · Tasks schedules list #
Ask an LLM
“Which recurring background jobs are scheduled in authentik?”
“Can I see only the schedules that are paused?”
Tell an agent
List all task schedules.
Show schedules for actor {actor_name} with paused = {paused}.
GET /tasks/schedules/{id}/ Get a task schedule · Tasks schedules retrieve #
Ask an LLM
“What crontab does a specific schedule run on?”
“Is a particular recurring job currently paused?”
Tell an agent
Get schedule {id}.
Show the crontab and paused state of schedule {id}.
PUT /tasks/schedules/{id}/ Replace a schedule's crontab and state · Tasks schedules update #
Ask an LLM
“Can I rewrite a schedule's full definition with a new crontab?”
“What fields must I send to replace a recurring job's schedule?”
Tell an agent
Replace schedule {id} with crontab {crontab}.
Overwrite schedule {id}: crontab {crontab}, paused {paused}.
PATCH /tasks/schedules/{id}/ Pause or retime a schedule · Tasks schedules partial update #
Ask an LLM
“How do I pause a recurring job without changing its timing?”
“Can I change only the crontab on an existing schedule?”
Tell an agent
Pause schedule {id} by setting paused to {paused}.
Change just the crontab of schedule {id} to {crontab}.
POST /tasks/schedules/{id}/send/ Run a schedule immediately · Tasks schedules send create #
Ask an LLM
“Can I trigger a scheduled job right now instead of waiting for its next run?”
“Is there a way to kick off a recurring task on demand?”
Tell an agent
Trigger schedule {id} now.
Run the job behind schedule {id} immediately.
GET /tasks/tasks/ List background tasks · Tasks tasks list #
Ask an LLM
“Which background tasks have run recently, and which failed?”
“Can I filter tasks by queue, state or actor name?”
Tell an agent
List background tasks in state {state}.
Show tasks run by actor {actor_name} on queue {queue_name}.
GET /tasks/tasks/{message_id}/ Get a background task · Tasks tasks retrieve #
Ask an LLM
“What happened when a specific background task ran?”
“Can I look up a task's state and messages by its message id?”
Tell an agent
Get task {message_id}.
Show the state and log of task {message_id}.
POST /tasks/tasks/{message_id}/retry/ Retry a background task · Tasks tasks retry create #
Ask an LLM
“Can I re-run a task that failed?”
“How do I retry one background job by its message id?”
Tell an agent
Retry task {message_id}.
Re-run the failed background task {message_id}.
GET /tasks/tasks/status/ Get the overall task status summary · Tasks tasks status retrieve #
Ask an LLM
“Are my background tasks healthy overall?”
“What is the global count of tasks by status?”
Tell an agent
Show the global status summary across all tasks.
Summarize how many tasks are in each status.
GET /tasks/workers/ Count connected workers · Tasks workers list #
Ask an LLM
“How many worker processes are connected right now?”
“Is any background worker online to process tasks?”
Tell an agent
Get the number of currently connected workers.
Check whether workers are connected.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/authentik:authentik-tasks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

authentik-tasks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: authentik Tasks API
  version: 2026.11.0-rc1
  description: Making authentication simple.
  contact:
    email: hello@goauthentik.io
  license:
    name: MIT
    url: https://github.com/goauthentik/authentik/blob/main/LICENSE
  x-source-url: https://api.goauthentik.io/schema.yml
  x-last-validated: '2026-09-04'
servers:
- url: /api/v3
tags:
- name: Tasks
paths:
  /tasks/schedules/:
    get:
      operationId: tasks_schedules_list
      parameters:
      - in: query
        name: actor_name
        schema:
          type: string
      - $ref: '#/components/parameters/QueryPaginationOrdering'
      - $ref: '#/components/parameters/QueryPaginationPage'
      - $ref: '#/components/parameters/QueryPaginationPageSize'
      - in: query
        name: paused
        schema:
          type: boolean
      - in: query
        name: rel_obj_content_type__app_label
        schema:
          type: string
      - in: query
        name: rel_obj_content_type__model
        schema:
          type: string
      - in: query
        name: rel_obj_id
        schema:
          type: string
      - in: query
        name: rel_obj_id__isnull
        schema:
          type: boolean
      - $ref: '#/components/parameters/QuerySearch'
      tags:
      - Tasks
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedScheduleList'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
      summary: Tasks schedules list
      x-summary-source: derived
  /tasks/schedules/{id}/:
    get:
      operationId: tasks_schedules_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Schedule.
        required: true
      tags:
      - Tasks
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Schedule'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
      summary: Tasks schedules retrieve
      x-summary-source: derived
    put:
      operationId: tasks_schedules_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Schedule.
        required: true
      tags:
      - Tasks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduleRequest'
        required: true
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Schedule'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
      summary: Tasks schedules update
      x-summary-source: derived
    patch:
      operationId: tasks_schedules_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Schedule.
        required: true
      tags:
      - Tasks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedScheduleRequest'
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Schedule'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
      summary: Tasks schedules partial update
      x-summary-source: derived
  /tasks/schedules/{id}/send/:
    post:
      operationId: tasks_schedules_send_create
      description: Trigger this schedule now
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Schedule.
        required: true
      tags:
      - Tasks
      security:
      - authentik: []
      responses:
        '204':
          description: Schedule sent successfully
        '404':
          description: Schedule not found
        '500':
          description: Failed to send schedule
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
      summary: Tasks schedules send create
      x-summary-source: derived
  /tasks/tasks/:
    get:
      operationId: tasks_tasks_list
      parameters:
      - in: query
        name: actor_name
        schema:
          type: string
      - in: query
        name: aggregated_status
        schema:
          type: array
          items:
            $ref: '#/components/schemas/TaskAggregatedStatusEnum'
        explode: true
        style: form
      - in: query
        name: message_id
        schema:
          type: string
          format: uuid
      - in: query
        name: message_id__in
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - $ref: '#/components/parameters/QueryPaginationOrdering'
      - $ref: '#/components/parameters/QueryPaginationPage'
      - $ref: '#/components/parameters/QueryPaginationPageSize'
      - in: query
        name: queue_name
        schema:
          type: string
      - in: query
        name: rel_obj_content_type__app_label
        schema:
          type: string
      - in: query
        name: rel_obj_content_type__model
        schema:
          type: string
      - in: query
        name: rel_obj_id
        schema:
          type: string
      - in: query
        name: rel_obj_id__isnull
        schema:
          type: boolean
      - $ref: '#/components/parameters/QuerySearch'
      - in: query
        name: state
        schema:
          allOf:
          - $ref: '#/components/schemas/TaskStatusEnum'
          description: 'Task status


            '
      tags:
      - Tasks
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedTaskList'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
      summary: Tasks tasks list
      x-summary-source: derived
  /tasks/tasks/{message_id}/:
    get:
      operationId: tasks_tasks_retrieve
      parameters:
      - in: path
        name: message_id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Task.
        required: true
      tags:
      - Tasks
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
      summary: Tasks tasks retrieve
      x-summary-source: derived
  /tasks/tasks/{message_id}/retry/:
    post:
      operationId: tasks_tasks_retry_create
      description: Retry task
      parameters:
      - in: path
        name: message_id
        schema:
          type: string
          format: uuid
        description: A UUID string identifying this Task.
        required: true
      tags:
      - Tasks
      security:
      - authentik: []
      responses:
        '204':
          description: Task retried successfully
        '400':
          description: Task is not in a retryable state
        '404':
          description: Task not found
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
      summary: Tasks tasks retry create
      x-summary-source: derived
  /tasks/tasks/status/:
    get:
      operationId: tasks_tasks_status_retrieve
      description: Global status summary for all tasks
      tags:
      - Tasks
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalTaskStatus'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
      summary: Tasks tasks status retrieve
      x-summary-source: derived
  /tasks/workers/:
    get:
      operationId: tasks_workers_list
      description: Get currently connected worker count.
      tags:
      - Tasks
      security:
      - authentik: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Worker'
          description: ''
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        '403':
          $ref: '#/components/responses/GenericErrorResponse'
      summary: Tasks workers list
      x-summary-source: derived
components:
  schemas:
    LogEvent:
      type: object
      description: Single log message with all context logged.
      properties:
        timestamp:
          type: string
          format: date-time
        log_level:
          $ref: '#/components/schemas/LogLevelEnum'
        logger:
          type: string
        event:
          type: string
        attributes:
          type: object
          additionalProperties: {}
      required:
      - attributes
      - event
      - log_level
      - logger
      - timestamp
    Worker:
      type: object
      properties:
        worker_id:
          type: string
        version:
          type: string
        version_matching:
          type: boolean
      required:
      - version
      - version_matching
      - worker_id
    Schedule:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        identifier:
          type:
          - string
          - 'null'
          readOnly: true
          description: Unique schedule identifier
        uid:
          type: string
          readOnly: true
        actor_name:
          type: string
          readOnly: true
          description: Dramatiq actor to call
        rel_obj_app_label:
          type: string
          readOnly: true
        rel_obj_model:
          type: string
          title: Python model class name
          readOnly: true
        rel_obj_id:
          type:
          - string
          - 'null'
        crontab:
          type: string
          description: When to schedule tasks
        paused:
          type: boolean
          description: Pause this schedule
        next_run:
          type: string
          format: date-time
          readOnly: true
        description:
          type:
          - string
          - 'null'
          readOnly: true
        last_task_status:
          allOf:
          - $ref: '#/components/schemas/LastTaskStatusEnum'
          readOnly: true
      required:
      - actor_name
      - crontab
      - description
      - id
      - identifier
      - last_task_status
      - next_run
      - rel_obj_app_label
      - rel_obj_model
      - uid
    TaskStatusEnum:
      enum:
      - waiting_for_dependencies
      - queued
      - consumed
      - preprocess
      - running
      - postprocess
      - rejected
      - done
      type: string
    Task:
      type: object
      properties:
        message_id:
          type: string
          format: uuid
        queue_name:
          type: string
          description: Queue name
        actor_name:
          type: string
          description: Dramatiq actor name
        state:
          allOf:
          - $ref: '#/components/schemas/TaskStatusEnum'
          description: Task status
        mtime:
          type: string
          format: date-time
          description: Task last modified time
        retries:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          description: Number of retries
        eta:
          type:
          - string
          - 'null'
          format: date-time
          description: Planned execution time
        rel_obj_app_label:
          type: string
          readOnly: true
        rel_obj_model:
          type: string
          title: Python model class name
          readOnly: true
        rel_obj_id:
          type:
          - string
          - 'null'
        uid:
          type: string
          readOnly: true
        logs:
          type: array
          items:
            $ref: '#/components/schemas/LogEvent'
          readOnly: true
        previous_logs:
          type: array
          items:
            $ref: '#/components/schemas/LogEvent'
          readOnly: true
        aggregated_status:
          $ref: '#/components/schemas/TaskAggregatedStatusEnum'
        description:
          type:
          - string
          - 'null'
          readOnly: true
      required:
      - actor_name
      - aggregated_status
      - description
      - logs
      - previous_logs
      - rel_obj_app_label
      - rel_obj_model
      - uid
    LastTaskStatusEnum:
      enum:
      - waiting_for_dependencies
      - queued
      - consumed
      - preprocess
      - running
      - postprocess
      - rejected
      - done
      - info
      - warning
      - error
      type: string
    ScheduleRequest:
      type: object
      properties:
        rel_obj_id:
          type:
          - string
          - 'null'
          minLength: 1
        crontab:
          type: string
          minLength: 1
          description: When to schedule tasks
        paused:
          type: boolean
          description: Pause this schedule
      required:
      - crontab
    TaskAggregatedStatusEnum:
      enum:
      - waiting_for_dependencies
      - queued
      - consumed
      - preprocess
      - running
      - postprocess
      - rejected
      - done
      - info
      - warning
      - error
      type: string
    ValidationError:
      type: object
      description: Validation Error
      properties:
        non_field_errors:
          type: array
          items:
            type: string
        code:
          type: string
      additionalProperties: {}
    PatchedScheduleRequest:
      type: object
      properties:
        rel_obj_id:
          type:
          - string
          - 'null'
          minLength: 1
        crontab:
          type: string
          minLength: 1
          description: When to schedule tasks
        paused:
          type: boolean
          description: Pause this schedule
    GlobalTaskStatus:
      type: object
      properties:
        queued:
          type: integer
          readOnly: true
        consumed:
          type: integer
          readOnly: true
        preprocess:
          type: integer
          readOnly: true
        running:
          type: integer
          readOnly: true
        postprocess:
          type: integer
          readOnly: true
        rejected:
          type: integer
          readOnly: true
        done:
          type: integer
          readOnly: true
        info:
          type: integer
          readOnly: true
        warning:
          type: integer
          readOnly: true
        error:
          type: integer
          readOnly: true
      required:
      - consumed
      - done
      - error
      - info
      - postprocess
      - preprocess
      - queued
      - rejected
      - running
      - warning
    PaginatedScheduleList:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        results:
          type: array
          items:
            $ref: '#/components/schemas/Schedule'
        autocomplete:
          $ref: '#/components/schemas/Autocomplete'
      required:
      - autocomplete
      - pagination
      - results
    Autocomplete:
      type: object
      additionalProperties: {}
    PaginatedTaskList:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        results:
          type: array
          items:
            $ref: '#/components/schemas/Task'
        autocomplete:
          $ref: '#/components/schemas/Autocomplete'
      required:
      - autocomplete
      - pagination
      - results
    GenericError:
      type: object
      description: Generic API Error
      properties:
        detail:
          type: string
        code:
          type: string
      required:
      - detail
    LogLevelEnum:
      enum:
      - critical
      - exception
      - error
      - warn
      - warning
      - info
      - debug
      - notset
      type: string
    Pagination:
      type: object
      properties:
        next:
          type: number
        previous:
          type: number
        count:
          type: number
        current:
          type: number
        total_pages:
          type: number
        start_index:
          type: number
        end_index:
          type: number
      required:
      - count
      - current
      - end_index
      - next
      - previous
      - start_index
      - total_pages
  responses:
    GenericErrorResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GenericError'
      description: ''
    ValidationErrorResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
      description: ''
  parameters:
    QueryPaginationOrdering:
      in: query
      name: ordering
      schema:
        type: string
      description: Which field to use when ordering the results.
    QueryPaginationPageSize:
      in: query
      name: page_size
      schema:
        type: integer
      description: Number of results to return per page.
    QueryPaginationPage:
      in: query
      name: page
      schema:
        type: integer
      description: A page number within the paginated result set.
    QuerySearch:
      in: query
      name: search
      schema:
        type: string
      description: A search term.
  securitySchemes:
    authentik:
      type: http
      scheme: bearer
    authentik_device_auth:
      type: http
      scheme: bearer+agent
    authentik_device_enroll:
      type: http
      scheme: bearer
    authentik_device_federation:
      type: http
      scheme: bearer