---
title: "Update a task"
method: POST
path: "/tasks/{id}"
tags: ["Task"]
---

# Update a task

`POST /tasks/{id}`

## Request

- Base URL: `https://api.palisade.email`
- URL: `https://api.palisade.email/tasks/{id}`
- Auth: one of:
  - HTTP bearer
  - HTTP basic

## Path parameters

- `id` string, uuid, required

## Headers

- `Palisade-Version` '2025-04-30' | 'unstable', required

## Request body

- object
  - `status` 'open' | 'snoozed' | 'canceled' | 'dismissed' | 'pending' | 'done'
  - `ignore_spf` boolean: Stops counting the ticket's sender against SPF on its domain. Ignoring both SPF and DKIM for the ticket's sender discards it, which answers the sender's confirm_source ticket: a confirm_source ticket updated so that both are ignored is closed as done unless the status sent is dismissed or canceled, and any other open confirm_source ticket for the same sender closes as well.
  - `ignore_dkim` boolean: Stops counting the ticket's sender against DKIM on its domain. Ignoring both SPF and DKIM for the ticket's sender discards it, which answers the sender's confirm_source ticket: a confirm_source ticket updated so that both are ignored is closed as done unless the status sent is dismissed or canceled, and any other open confirm_source ticket for the same sender closes as well.
  - `confirm_source` boolean: Confirms the ticket's sender for its domain. That answers the sender's confirm_source ticket, so a confirm_source ticket updated with this flag is closed as done unless the status sent is dismissed or canceled, and any other open confirm_source ticket for the same sender closes as well.
  - `confirm_source_in_use` boolean

## Response `200`

Success

- object
  - `id` string, uuid, required
  - `domain_id` string, uuid, required
  - `sending_domain` string, nullable, required
  - `source_id` string, uuid, nullable, required
  - `source_alias` string, nullable, required
  - `priority` number, required
  - `sequence` number, required: Where the task sits in the email-authentication rollout, lower first: 10 DMARC setup, 20 foundation records, 30 SPF/DKIM alignment, 40 cleanup, 50 enforcement, 60 hardening. Separate from priority, which is urgency; sequence orders tasks of equal priority, since an alignment task cannot be worked before DMARC reporting exists to show the failure.
  - `status` 'open' | 'snoozed' | 'canceled' | 'dismissed' | 'pending' | 'done', required
  - `type` 'cleanup_spf_record' | 'confirm_source' | 'lockdown_domain' | 'reduce_spf_lookups' | 'set_up_dmarc_record' | 'source_failing_dkim' | 'source_failing_spf' | 'set_up_mx_record' | 'set_up_spf_record' | 'update_dmarc_record' | 'update_ttl' | 'set_up_mta_sts' | 'set_up_tls_rpt' | 'resolve_dns_conflict' | 'review_unused_sender' | 'cleanup_sender_records' | 'fix_mx_certificate' | 'renew_vmc_certificate' | 'dkim_selector_not_imported' | 'set_up_bimi', required
  - `description` string, required
  - `snoozed_until` string, date-time, nullable, required
  - `marked_pending_at` string, date-time, nullable, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `resolved_at` string, date-time, nullable, required
  - `resolution_reason` 'verified' | 'manual', nullable, required: Why a done ticket closed. 'verified': Palisade's own check found the problem gone. 'manual': a person or an API caller marked it done and nothing was checked. Null on a ticket that is not done, and on one closed before the reason was first recorded. More values may be added, so treat an unknown one as unspecified.

---

[API](https://skmtc.dev/palisade/apis/palisade-api.md) · [All operations](https://skmtc.dev/palisade/apis/palisade-api/llms.txt) · [OpenAPI document](https://skmtc.dev/palisade/apis/palisade-api/revisions/37b4ae5a7766?raw)
