Skip to main content
Version: Next

Http-Asana

Asana source connector

Description​

Reads tasks from the Asana REST API (GET /tasks) for one project. Built on connector-http-base. Batch mode only.

Key Features​

  • Batch
  • Stream
  • Exactly-once
  • Column projection
  • Parallelism

Options​

NameTypeRequiredDefaultDescription
api_keyStringYes-Asana Personal Access Token (raw token, no Bearer prefix). Needs tasks:read.
project_gidStringYes-Project whose tasks are read.
modified_sinceStringNo-Optional ISO 8601 timestamp, e.g. 2026-10-01T00:00:00Z.
base_urlStringNohttps://app.asana.com/api/1.0Asana REST API base URL.
retryIntNo3Max retries on HTTP 429 and 5xx.
retry_backoff_multiplier_msIntNo100Backoff multiplier in milliseconds.
retry_backoff_max_msIntNo10000Maximum backoff time in milliseconds.

api_key​

Asana Personal Access Token (raw token, no Bearer prefix). Needs tasks:read.

project_gid​

Project whose tasks are read.

modified_since​

Optional ISO 8601 timestamp, e.g. 2026-10-01T00:00:00Z. Asana counts a task as modified when its own properties or associations change, but not when only a subtask changes. The connector keeps no state between runs.

retry​

Max retries on HTTP 429 and 5xx (and, in the base client, IOExceptions). Backoff doubles from retry_backoff_multiplier_ms up to retry_backoff_max_ms.

Output columns​

All columns are STRING: gid, name, completed, completed_at, created_at, modified_at, due_on, assignee_gid, assignee_name, permalink_url. completed_at, due_on and the assignee columns can be null.

Example​

env {
execution.parallelism = 1
job.mode = BATCH
}

source {
Asana {
api_key = "<PAT>"
project_gid = "1200000000000000"
modified_since = "2026-10-01T00:00:00Z"
plugin_output = "asana_tasks"
}
}

sink {
Console {
plugin_input = "asana_tasks"
}
}

Notes​

Each run reads the project from the first page. After a failure, a restarted job re-reads from the beginning and may emit rows that were already sent; tasks edited during a run can also appear twice. Every row includes the task gid, which can assist an idempotent downstream sink in deduplicating or upserting, but the connector provides no delivery guarantee. Rate-limit handling is bounded backoff only; Retry-After is not honored.

ChangeCommitVersion
[Feature][connector-http-asana] Add Asana source connectorhttps://github.com/apache/seatunneldev