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

# Get a task

`GET /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

## Query parameters

- `expand` string[]

## Headers

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

## Response `200`

Success

- Task
  - `id` string, uuid, required
  - `domain_id` string, uuid, required
  - `domain` object
    - `id` string, uuid, required
    - `url` string, required
    - `dmarc_policy` string, required
    - `score` number, required: The domain audit score as it stands now.
  - `score_gain` integer: How much of the domain score completing this ticket wins back, by the same scoring the domain overview shows. 0 for ticket types the score does not measure. Present only with expand[]=domain, since it depends on the domain as it stands now.
  - `sending_domain` string, nullable, required
  - `source_id` string, uuid, nullable, required
  - `source` object
    - `id` string, uuid, required
    - `name` string, required
    - `homepage` string, uri, nullable, required
    - `documentation` object, required
      - `spf` string, nullable
      - `dkim` string, nullable
      - `combined` string, nullable
    - `category` 'SENDING_TOOL' | 'MAILBOX_PROVIDER' | 'VPS_PROVIDER' | 'SECURITY_PROVIDER' | 'EMAIL_RELAY', required
    - `forwarding_type` 'NOT_FORWARDER' | 'FORWARDER' | 'FORWARDER_ONLY', required
    - `spf_support` 'NONE' | 'RARE' | 'FULL', required
    - `spf_supported_methods` string[], required
    - `spf_support_options` object, required
      - `direct` object, nullable, required
        - `values` string[], required
        - `requires_advanced_config` boolean, nullable, required
      - `subdomain` object, nullable, required
        - `is_managed` boolean, required
        - `requires_user_selection` boolean, required
        - `path` string, nullable, required
        - `value` string, nullable, required
        - `dns_records` object[], required
          - `type` 'TXT' | 'CNAME' | 'MX', required
          - `value` string
    - `dkim_support` 'NONE' | 'RARE' | 'FULL', required
    - `dkim_discovery_selectors` string[], required
  - `instructions` object, nullable: BETA: Only expandable for GET /tasks/:id. Can contain instructions sometimes.
    - `steps` string[], required
    - `dns_records` object[], required
      - `type` 'TXT' | 'CNAME', required
      - `name` string
      - `value` string
  - `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)
