Passo Developers
Api

Create a job

POST
/jobs

Creates a job (a workspace's brief) in the caller's resolved workspace (see Passo-Workspace; an API key uses its own workspace). The caller must be a member of that workspace. Body: title (required), and optional platform (instagram|youtube), postingWindowStart and postingWindowEnd (ISO dates, YYYY-MM-DD; end must be on or after start). Optional deliverables: an array of lines {type, quantity, description?} (quantity is a required integer 1-100 with no default; description defaults to the type's label; when the job's platform is set, every deliverable must match that platform). Returns the created job, echoing the created deliverables.

Authorization

AuthorizationBearer <token>

A Supabase-issued OAuth user access token. On collection endpoints, pair with a Passo-Workspace header to pick a workspace.

In: header

Header Parameters

Passo-Workspace?string

The workspace's public id (e.g. wsp_abc) to operate in. OAuth callers with more than one workspace must send it; a single-workspace caller may omit it. Ignored for API keys (the key is pinned to its workspace). A uuid or another resource's id is rejected with a 400.

Match^wsp_

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/jobs" \  -H "Content-Type: application/json" \  -d '{    "title": "string"  }'
{  "id": "string",  "workspaceId": "string",  "title": "string",  "status": "open",  "platform": "instagram",  "postingWindowStart": "string",  "postingWindowEnd": "string",  "createdAt": "string",  "updatedAt": "string",  "deliverables": [    {      "id": "string",      "type": "instagram_reel",      "quantity": -9007199254740991,      "position": -9007199254740991,      "description": "string"    }  ]}