Vectal Public API v1
Your tasks, projects, notes, and habits are open to AI agents through one REST API. It is free on every plan.
All API requests require a Vectal API key. Generate one from Settings → API Keys inside the app.
Pass your key in the Authorization header:
curl -H "Authorization: Bearer vec-YOUR_API_KEY" \
https://api.vectal.ai/api/v1/tasksAPI keys use the format vec-{uuid}. Keep them secret. They grant full access to the account.
https://api.vectal.ai/api/v1All endpoints are prefixed with /api/v1. Responses are JSON.
/api/v1/tasksList all tasks. Supports ?project_id, ?status, ?limit filters.
/api/v1/tasks/{task_id}Get a single task by ID.
/api/v1/tasksCreate a new task.
/api/v1/tasks/{task_id}Update a task. Only send fields you want to change.
/api/v1/tasks/{task_id}Archive (soft-delete) a task.
/api/v1/tasks/{task_id}/completeComplete a task. Handles recurring tasks automatically.
/api/v1/tasks/batchUp to 500 creates, updates, completes and deletes in one all-or-nothing call. Counts as one request.
curl -X POST https://api.vectal.ai/api/v1/tasks \
-H "Authorization: Bearer vec-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Review pull request",
"importance": 80,
"due_date": "2026-03-20T09:00:00Z",
"context": "Review the auth refactor PR before release",
"project_id": "optional-project-uuid"
}'| Field | Type | Description |
|---|---|---|
| name | string | Task name (required) |
| importance | int | Priority 1-100 (higher = more important) |
| due_date | string | ISO 8601 datetime |
| context | string | Description or notes |
| project_id | string | Assign to a project |
| status | string | active, completed, archived |
| kanban_column | string | to-do, in-progress, testing, completed |
| recurrence_text | string | e.g. "daily", "weekly", "every monday", "every 3 days" |
| timezone | string | IANA timezone, e.g. "America/New_York" |
/api/v1/projectsList all projects. Supports ?status filter.
/api/v1/projects/{project_id}Get a single project by ID.
/api/v1/projectsCreate a new project.
/api/v1/projects/{project_id}Update a project.
/api/v1/projects/{project_id}Archive a project.
| Field | Type | Description |
|---|---|---|
| name | string | Project name (required) |
| description | string | Short project description |
| color | string | Project color for display |
| context | string | Project context (max 16,000 chars) |
| status | string | active, archived |
/api/v1/notesList all active notes.
/api/v1/notes/{note_id}Get a single note by ID.
/api/v1/notesCreate a new note.
/api/v1/notes/{note_id}Update a note.
/api/v1/notes/{note_id}Soft-delete a note.
| Field | Type | Description |
|---|---|---|
| name | string | Note title (required) |
| context | string | Note content (supports markdown) |
| importance | int | Priority 1-100 (default: 50) |
| project_id | string | Assign to a project |
| is_pinned | boolean | Pin to the top |
/api/v1/habitsList habits with streaks and recent activity. Supports ?days and ?timezone.
/api/v1/habitsCreate a habit.
/api/v1/habits/{habit_id}Update a habit. Only send fields you want to change.
/api/v1/habits/{habit_id}Archive (soft-delete) a habit.
/api/v1/habits/{habit_id}/completeMark a habit done for today, or for ?date. Safe to repeat.
/api/v1/habits/{habit_id}/completeUndo a completion for today, or for ?date. Safe to repeat.
/api/v1/search?q={query}Full-text search across tasks, notes, and projects.
/api/v1/meGet the account that owns the API key. Use it to verify a key.
All responses follow a consistent structure.
{
"data": { "id": "...", "name": "...", ... }
}{
"data": [ ... ],
"pagination": { "page": 1, "per_page": 100, "total": 42 }
}{
"detail": {
"error": { "message": "Task not found", "code": "not_found" },
"status": 404
}
}The vectal CLI wraps the same API. It is the fastest way for an agent with a terminal to use Vectal.
npm install -g vectal # or run it without installing: npx vectal
vectal login --key vec-YOUR_API_KEY
vectal task add "Ship pricing update" --due 2026-10-09
vectal task list --json # raw API output for agentsEvery command supports --help. The full command list is in the Agent Skill below.
Vectal ships an official agent skill so AI agents (Claude Code, Cursor, and any tool that supports skills) can manage your tasks, projects, notes, and habits directly.
The skill is public at vectal.ai/skill. Install it into your agent's skills folder:
# Download the skill into your Claude skills directory
mkdir -p ~/.claude/skills/vectal-api
curl -sL https://www.vectal.ai/skill -o ~/.claude/skills/vectal-api/SKILL.mdThen set your API key as an environment variable:
export VECTAL_API_KEY="vec-YOUR_API_KEY"Once installed, your agent will automatically use the Vectal API when you ask it to manage tasks, create projects, or take notes.