Guides

TypeScript SDK

3 min readBuilding


The @taskade/sdk package is in preview and not yet published to the public npm registry. Until it ships, call the API directly over HTTP — every Taskade endpoint is a plain HTTPS request and works from any language or runtime. This page shows both.

Call the API today (no SDK required)

Authenticate with a personal access token and hit either API directly.

REST API v1
Typescript
const token = process.env.TASKADE_TOKEN!;

// List your projects (RESTful v1)
const res = await fetch("https://www.taskade.com/api/v1/me/projects", {
  headers: { Authorization: `Bearer ${token}` },
});
const { items } = await res.json();
Action API v2
Typescript
const token = process.env.TASKADE_TOKEN!;

// Prompt an agent (action-based v2 — every call is a POST)
const res = await fetch("https://www.taskade.com/api/v2/promptAgent", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${token}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ spaceId, agentId, prompt: "Summarize standup notes" }),
});
const { summary } = await res.json();

A tiny typed wrapper is all most integrations need:

Typescript
async function taskade(operation: string, body: unknown) {
  const res = await fetch(`https://www.taskade.com/api/v2/${operation}`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.TASKADE_TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(body),
  });
  if (!res.ok) throw new Error(`${operation} failed: ${res.status}`);
  return res.json();
}

const { items } = await taskade("listSpaces", {});

cURL & Python

cURL
Bash
export TASKADE_TOKEN=YOUR_TOKEN

# List your projects (REST API v1)
curl -s \
  -H "Authorization: Bearer $TASKADE_TOKEN" \
  "https://www.taskade.com/api/v1/me/projects"

# Prompt an agent (Action API v2)
curl -s -X POST \
  -H "Authorization: Bearer $TASKADE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"spaceId":"SPACE_ID","agentId":"AGENT_ID","prompt":"Summarize standup notes"}' \
  "https://www.taskade.com/api/v2/promptAgent"
Python
Python
import os
import requests

token = os.environ["TASKADE_TOKEN"]
headers = {"Authorization": f"Bearer {token}"}

# List your projects (REST API v1)
items = requests.get(
    "https://www.taskade.com/api/v1/me/projects",
    headers=headers,
).json()["items"]

# Prompt an agent (Action API v2)
result = requests.post(
    "https://www.taskade.com/api/v2/promptAgent",
    headers=headers,
    json={
        "spaceId": "SPACE_ID",
        "agentId": "AGENT_ID",
        "prompt": "Summarize standup notes",
    },
).json()

What the SDK will look like

@taskade/sdk is a generated client for the Action API v2. When it's published you'll construct an HttpClient (which carries your token) and a TaskadePublicApi instance whose methods map 1:1 to the v2 operations:

Typescript
import { HttpClient, TaskadePublicApi } from "@taskade/sdk";

const http = new HttpClient({
  baseUrl: "https://www.taskade.com/api/v2",
  securityWorker: () => ({
    headers: { Authorization: `Bearer ${process.env.TASKADE_TOKEN}` },
  }),
});
const taskade = new TaskadePublicApi(http);

const { data } = await taskade.promptAgent({ spaceId, agentId, prompt: "Hi" });
// data is the response body: { ok: true, summary: "..." }


Method names match the v2 operations exactly — listSpaces, createProject, promptAgent, exportBundle, and so on. See the Action API v2 Reference for the full list and request shapes.

Resources

Resource Description
REST API v1 Reference Complete RESTful endpoint docs (full task CRUD)
Action API v2 Reference The action-based API the SDK wraps
Authentication Personal access tokens and OAuth 2.0
Workspace MCP Connect AI tools to your workspace