| 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 |
POST
/api/v1/workspaces/{workspace_slug}/assets/
Generate presigned URL for generic asset upload
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.
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)
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"
}
}
}