Skip to content

Get upload credentials

POST/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/attachments/

Creates a pre-signed POST form data for uploading an attachment directly to S3. This endpoint handles the first step of the two-and-a-half step upload process where you first get the upload credentials and then use them to upload the actual file.

Path Parameters

workspace_slug:requiredstring

The workspace_slug represents the unique workspace identifier for a workspace in Plane. It can be found in the URL. For example, in the URL https://app.plane.so/my-team/projects/, the workspace slug is my-team.

project_id:requiredstring

The unique identifier of the project.

work_item_id:requiredstring

The unique identifier of the work item.

Body Parameters

name:requiredstring

Original filename of the attachment.

type:optionalstring

MIME type of the file (e.g., image/png, application/pdf).

size:requiredinteger

Size of the file in bytes.

external_id:optionalstring

External identifier for the asset (for integration tracking).

external_source:optionalstring

External source system (for integration tracking).

Get upload credentials
bash
curl -X POST \
  "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/" \
  -H "X-API-Key: $PLANE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "example-name",
  "type": "example-type",
  "size": 1,
  "external_id": "example-external_id",
  "external_source": "example-external_source"
}'
Response201
json
{
  "id": "project-uuid",
  "name": "Project Name",
  "identifier": "PROJ",
  "description": "Project description",
  "created_at": "2024-01-01T00:00:00Z"
}