---
title: "Create Project Workflow"
method: POST
path: "/api/projects/{project_id}/workflows"
---

# Create Project Workflow

`POST /api/projects/{project_id}/workflows`

## Request

- Base URL: `https://app.tin.computer` (the document declares no server; this is the origin it was published from)
- URL: `https://app.tin.computer/api/projects/{project_id}/workflows`
- Auth: HTTP bearer

## Path parameters

- `project_id` string, uuid, required

## Request body

- ProjectWorkflowCreate
  - `workflow_id` string, uuid, required
  - `name` string, required
  - `inputs` object
  - `schedule` WorkflowSchedule
    - `cadence` 'daily' | 'weekly' | 'monthly', required
    - `weekdays` string[]
    - `day_of_month` integer, nullable
    - `months` integer[]
    - `local_time` string, required
    - `timezone` string, required
    - `start_at` string, date-time, nullable
    - `end_at` string, date-time, nullable
  - `request_id` string, uuid, required

## Response `201`

Successful Response

- ProjectWorkflowView
  - `id` string, uuid, required
  - `project_id` string, uuid, required
  - `workflow_id` string, uuid, required
  - `workflow_key` string, required
  - `workflow_title` string, required
  - `workflow_description` string, required
  - `workflow_drawn` boolean
  - `version_label` string, required
  - `definition_commit_sha` string, required
  - `name` string, required
  - `inputs` object, required
  - `input_schema` object, required
  - `schedule` object, nullable, required
  - `status` string, required
  - `next_run_at` string, date-time, nullable, required
  - `last_run_id` string, uuid, nullable, required
  - `last_run_status` 'pending' | 'running' | 'needs_input' | 'paused' | 'stopped' | 'succeeded' | 'failed' | 'superseded', required
  - `last_artifact_path` string, nullable, required
  - `last_artifact_title` string, nullable
  - `last_error` string, nullable, required
  - `settings_revision` integer, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `skip_scheduled_for` string, date-time, nullable
  - `last_result_summary` string, nullable
  - `last_started_at` string, date-time, nullable
  - `last_finished_at` string, date-time, nullable
  - `run_count` integer
  - `done_count` integer
  - `failed_count` integer
  - `typical_duration_seconds` number, nullable
  - `content_revision` object, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tin/apis/tin-lite-switchboard.md) · [All operations](https://skmtc.dev/tin/apis/tin-lite-switchboard/llms.txt) · [OpenAPI document](https://skmtc.dev/tin/apis/tin-lite-switchboard/revisions/c800ca3406f4?raw)
