Skip to content

Latest commit

 

History

History
181 lines (129 loc) · 4.08 KB

File metadata and controls

181 lines (129 loc) · 4.08 KB
title Create workspace asset upload
description Create workspace asset upload via Plane API. HTTP request format, parameters, scopes, and example responses for create workspace asset upload.
keywords plane, plane api, rest api, api integration, assets, create workspace asset upload

Create workspace asset upload

POST /api/v1/workspaces/{workspace_slug}/assets/

Generate presigned URL for generic asset upload

Path Parameters

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.

Body Parameters

Original filename of the asset

MIME type of the file

File size in bytes

UUID of the project to associate with the asset

External identifier for the asset (for integration tracking)

External source system (for integration tracking)

Scopes

assets:write

curl -X POST \
  "https://api.plane.so/api/v1/workspaces/my-workspace/assets/" \
  -H "X-API-Key: $PLANE_API_KEY" \
  # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Example Name",
  "type": "image/jpeg",
  "size": 1024000,
  "project_id": "550e8400-e29b-41d4-a716-446655440000",
  "external_id": "550e8400-e29b-41d4-a716-446655440000",
  "external_source": "github"
}'
import requests

response = requests.post(
    "https://api.plane.so/api/v1/workspaces/my-workspace/assets/",
    headers={"X-API-Key": "your-api-key"},
    json={
      "name": "Example Name",
      "type": "image/jpeg",
      "size": 1024000,
      "project_id": "550e8400-e29b-41d4-a716-446655440000",
      "external_id": "550e8400-e29b-41d4-a716-446655440000",
      "external_source": "github"
    }
)
print(response.json())
const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/assets/", {
  method: "POST",
  headers: {
    "X-API-Key": "your-api-key",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    name: "Example Name",
    type: "image/jpeg",
    size: 1024000,
    project_id: "550e8400-e29b-41d4-a716-446655440000",
    external_id: "550e8400-e29b-41d4-a716-446655440000",
    external_source: "github",
  }),
});
const data = await response.json();
{
  "asset_id": "550e8400-e29b-41d4-a716-446655440000",
  "asset_url": "/api/assets/v2/workspaces/my-workspace/projects/None/issues/None/attachments/550e8400-e29b-41d4-a716-446655440000/",
  "upload_data": {
    "url": "https://uploads.example.com/plane-bucket",
    "fields": {
      "Content-Type": "image/png",
      "key": "workspace-assets/550e8400-e29b-41d4-a716-446655440000/workspace-image.png",
      "x-amz-algorithm": "AWS4-HMAC-SHA256",
      "x-amz-credential": "example/20240101/us-east-1/s3/aws4_request",
      "x-amz-date": "20240101T000000Z",
      "policy": "example-policy",
      "x-amz-signature": "example-signature"
    }
  }
}