diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts
index 4efb46e..03503c7 100644
--- a/docs/.vitepress/config.mts
+++ b/docs/.vitepress/config.mts
@@ -338,6 +338,22 @@ export default withMermaid(
text: "API Reference",
items: [
{ text: "Introduction", link: "/api-reference/introduction" },
+ {
+ text: "Assets",
+ collapsed: true,
+ items: [
+ { text: "Overview", link: "/api-reference/assets/overview" },
+ { text: "Create User Asset Upload", link: "/api-reference/assets/create-user-asset-upload" },
+ { text: "Update User Asset", link: "/api-reference/assets/update-user-asset" },
+ { text: "Delete User Asset", link: "/api-reference/assets/delete-user-asset" },
+ {
+ text: "Create Workspace Asset Upload",
+ link: "/api-reference/assets/create-workspace-asset-upload",
+ },
+ { text: "Get Workspace Asset", link: "/api-reference/assets/get-workspace-asset" },
+ { text: "Update Workspace Asset", link: "/api-reference/assets/update-workspace-asset" },
+ ],
+ },
{
text: "Project",
collapsed: true,
@@ -347,9 +363,38 @@ export default withMermaid(
{ text: "List Projects", link: "/api-reference/project/list-projects" },
{ text: "Get Project", link: "/api-reference/project/get-project-detail" },
{ text: "Update Project", link: "/api-reference/project/update-project-detail" },
+ { text: "Archive Project", link: "/api-reference/project/archive-project" },
+ { text: "Unarchive Project", link: "/api-reference/project/unarchive-project" },
{ text: "Delete Project", link: "/api-reference/project/delete-project" },
],
},
+ {
+ text: "Project Features",
+ collapsed: true,
+ items: [
+ { text: "Overview", link: "/api-reference/project-features/overview" },
+ { text: "Get Project Features", link: "/api-reference/project-features/get-project-features" },
+ {
+ text: "Update Project Features",
+ link: "/api-reference/project-features/update-project-features",
+ },
+ ],
+ },
+ {
+ text: "Estimates",
+ collapsed: true,
+ items: [
+ { text: "Overview", link: "/api-reference/estimate/overview" },
+ { text: "Create Estimate", link: "/api-reference/estimate/add-estimate" },
+ { text: "Get Estimate", link: "/api-reference/estimate/get-estimate" },
+ { text: "Update Estimate", link: "/api-reference/estimate/update-estimate" },
+ { text: "Delete Estimate", link: "/api-reference/estimate/delete-estimate" },
+ { text: "List Estimate Points", link: "/api-reference/estimate/list-estimate-points" },
+ { text: "Create Estimate Points", link: "/api-reference/estimate/add-estimate-points" },
+ { text: "Update Estimate Point", link: "/api-reference/estimate/update-estimate-point" },
+ { text: "Delete Estimate Point", link: "/api-reference/estimate/delete-estimate-point" },
+ ],
+ },
{
text: "State",
collapsed: true,
@@ -374,6 +419,24 @@ export default withMermaid(
{ text: "Delete Label", link: "/api-reference/label/delete-label" },
],
},
+ {
+ text: "Project Labels",
+ collapsed: true,
+ items: [
+ { text: "Overview", link: "/api-reference/project-labels/overview" },
+ { text: "Create Project Label", link: "/api-reference/project-labels/add-project-label" },
+ { text: "List Project Labels", link: "/api-reference/project-labels/list-project-labels" },
+ {
+ text: "Get Project Label",
+ link: "/api-reference/project-labels/get-project-label-detail",
+ },
+ {
+ text: "Update Project Label",
+ link: "/api-reference/project-labels/update-project-label-detail",
+ },
+ { text: "Delete Project Label", link: "/api-reference/project-labels/delete-project-label" },
+ ],
+ },
{
text: "Work Item",
collapsed: true,
@@ -382,8 +445,9 @@ export default withMermaid(
{ text: "Create Work Item", link: "/api-reference/issue/add-issue" },
{ text: "List Work Items", link: "/api-reference/issue/list-issues" },
{ text: "Get Work Item", link: "/api-reference/issue/get-issue-detail" },
- { text: "Get by Sequence ID", link: "/api-reference/issue/get-issue-sequence-id" },
+ { text: "Get by identifier", link: "/api-reference/issue/get-issue-sequence-id" },
{ text: "Search Work Items", link: "/api-reference/issue/search-issues" },
+ { text: "Advanced Search", link: "/api-reference/issue/advanced-search-work-items" },
{ text: "Update Work Item", link: "/api-reference/issue/update-issue-detail" },
{ text: "Delete Work Item", link: "/api-reference/issue/delete-issue" },
],
@@ -443,6 +507,7 @@ export default withMermaid(
{ text: "Add Type", link: "/api-reference/issue-types/types/add-issue-type" },
{ text: "List Types", link: "/api-reference/issue-types/types/list-issue-types" },
{ text: "Get Type Details", link: "/api-reference/issue-types/types/get-issue-type-details" },
+ { text: "Get Type Schema", link: "/api-reference/issue-types/types/get-work-item-type-schema" },
{ text: "Update Type", link: "/api-reference/issue-types/types/update-issue-types" },
{ text: "Delete Type", link: "/api-reference/issue-types/types/delete-issue-type" },
],
@@ -466,6 +531,9 @@ export default withMermaid(
{ text: "Overview", link: "/api-reference/issue-types/values/overview" },
{ text: "Add Property Values", link: "/api-reference/issue-types/values/add-property-values" },
{ text: "List Property Values", link: "/api-reference/issue-types/values/list-property-values" },
+ { text: "Get Property Value", link: "/api-reference/issue-types/values/get-property-value-detail" },
+ { text: "Update Property Value", link: "/api-reference/issue-types/values/update-property-value" },
+ { text: "Delete Property Value", link: "/api-reference/issue-types/values/delete-property-value" },
],
},
{
@@ -534,6 +602,36 @@ export default withMermaid(
{ text: "Get Project Page", link: "/api-reference/page/get-project-page" },
],
},
+ {
+ text: "Milestones",
+ collapsed: true,
+ items: [
+ { text: "Overview", link: "/api-reference/milestones/overview" },
+ { text: "Create Milestone", link: "/api-reference/milestones/add-milestone" },
+ { text: "List Milestones", link: "/api-reference/milestones/list-milestones" },
+ { text: "Get Milestone", link: "/api-reference/milestones/get-milestone-detail" },
+ { text: "List Milestone Work Items", link: "/api-reference/milestones/list-milestone-work-items" },
+ { text: "Update Milestone", link: "/api-reference/milestones/update-milestone-detail" },
+ { text: "Delete Milestone", link: "/api-reference/milestones/delete-milestone" },
+ ],
+ },
+ {
+ text: "Work Item Pages",
+ collapsed: true,
+ items: [
+ { text: "Overview", link: "/api-reference/work-item-pages/overview" },
+ { text: "Create Work Item Page Link", link: "/api-reference/work-item-pages/add-work-item-page" },
+ { text: "List Work Item Pages", link: "/api-reference/work-item-pages/list-work-item-pages" },
+ {
+ text: "Get Work Item Page Link",
+ link: "/api-reference/work-item-pages/get-work-item-page-detail",
+ },
+ {
+ text: "Delete Work Item Page Link",
+ link: "/api-reference/work-item-pages/delete-work-item-page",
+ },
+ ],
+ },
{
text: "Intake",
collapsed: true,
@@ -703,9 +801,55 @@ export default withMermaid(
{ text: "Overview", link: "/api-reference/members/overview" },
{ text: "Get Workspace Members", link: "/api-reference/members/get-workspace-members" },
{ text: "Get Project Members", link: "/api-reference/members/get-project-members" },
+ { text: "Create Project Member", link: "/api-reference/members/add-project-member" },
+ { text: "Get Project Member", link: "/api-reference/members/get-project-member-detail" },
+ { text: "Update Project Member", link: "/api-reference/members/update-project-member" },
+ { text: "Delete Project Member", link: "/api-reference/members/delete-project-member" },
{ text: "Remove Workspace Members", link: "/api-reference/members/remove-workspace-member" },
],
},
+ {
+ text: "Workspace Features",
+ collapsed: true,
+ items: [
+ { text: "Overview", link: "/api-reference/workspace-features/overview" },
+ {
+ text: "Get Workspace Features",
+ link: "/api-reference/workspace-features/get-workspace-features",
+ },
+ {
+ text: "Update Workspace Features",
+ link: "/api-reference/workspace-features/update-workspace-features",
+ },
+ ],
+ },
+ {
+ text: "Workspace Invitations",
+ collapsed: true,
+ items: [
+ { text: "Overview", link: "/api-reference/workspace-invitations/overview" },
+ {
+ text: "Create Workspace Invitation",
+ link: "/api-reference/workspace-invitations/add-workspace-invitation",
+ },
+ {
+ text: "List Workspace Invitations",
+ link: "/api-reference/workspace-invitations/list-workspace-invitations",
+ },
+ {
+ text: "Get Workspace Invitation",
+ link: "/api-reference/workspace-invitations/get-workspace-invitation-detail",
+ },
+ {
+ text: "Update Workspace Invitation",
+ link: "/api-reference/workspace-invitations/update-workspace-invitation",
+ },
+ {
+ text: "Delete Workspace Invitation",
+ link: "/api-reference/workspace-invitations/delete-workspace-invitation",
+ },
+ ],
+ },
{
text: "User",
collapsed: true,
diff --git a/docs/api-reference/assets/create-user-asset-upload.md b/docs/api-reference/assets/create-user-asset-upload.md
new file mode 100644
index 0000000..735620c
--- /dev/null
+++ b/docs/api-reference/assets/create-user-asset-upload.md
@@ -0,0 +1,157 @@
+---
+title: Create user asset upload
+description: Create user asset upload via Plane API. HTTP request format, parameters, scopes, and example responses for create user asset upload.
+keywords: plane, plane api, rest api, api integration, assets, create user asset upload
+---
+
+# Create user asset upload
+
+
+ POST
+ /api/v1/assets/user-assets/
+
+
+
+
+
+Generate presigned URL for user asset upload
+
+
+
+### Body Parameters
+
+
+
+
+
+Original filename of the asset
+
+
+
+
+
+MIME type of the file
+
+- `image/jpeg` - JPEG
+- `image/png` - PNG
+- `image/webp` - WebP
+- `image/jpg` - JPG
+- `image/gif` - GIF
+
+
+
+
+
+File size in bytes
+
+
+
+
+
+Type of user asset
+
+- `USER_AVATAR` - User Avatar
+- `USER_COVER` - User Cover
+
+
+
+
+
+
+
+
+### Scopes
+
+`assets:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST \
+ "https://api.plane.so/api/v1/assets/user-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,
+ "entity_type": "USER_AVATAR"
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.post(
+ "https://api.plane.so/api/v1/assets/user-assets/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "name": "Example Name",
+ "type": "image/jpeg",
+ "size": 1024000,
+ "entity_type": "USER_AVATAR"
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch("https://api.plane.so/api/v1/assets/user-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,
+ entity_type: "USER_AVATAR",
+ }),
+});
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "asset_id": "550e8400-e29b-41d4-a716-446655440000",
+ "asset_url": "/api/assets/v2/static/550e8400-e29b-41d4-a716-446655440000/",
+ "upload_data": {
+ "url": "https://uploads.example.com/plane-bucket",
+ "fields": {
+ "Content-Type": "image/png",
+ "key": "user-assets/550e8400-e29b-41d4-a716-446655440000/profile-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"
+ }
+ }
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/assets/create-workspace-asset-upload.md b/docs/api-reference/assets/create-workspace-asset-upload.md
new file mode 100644
index 0000000..472445a
--- /dev/null
+++ b/docs/api-reference/assets/create-workspace-asset-upload.md
@@ -0,0 +1,181 @@
+---
+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/{slug}/assets/
+
+
+
+
+
+Generate presigned URL for generic asset upload
+
+
+
+### Path Parameters
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### 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`
+
+
+
+
+
+
+
+
+
+
+```bash
+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"
+}'
+```
+
+
+
+
+```python
+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())
+```
+
+
+
+
+```javascript
+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();
+```
+
+
+
+
+
+
+```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"
+ }
+ }
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/assets/delete-user-asset.md b/docs/api-reference/assets/delete-user-asset.md
new file mode 100644
index 0000000..1fdef24
--- /dev/null
+++ b/docs/api-reference/assets/delete-user-asset.md
@@ -0,0 +1,96 @@
+---
+title: Delete user asset
+description: Delete user asset via Plane API. HTTP request format, parameters, scopes, and example responses for delete user asset.
+keywords: plane, plane api, rest api, api integration, assets, delete user asset
+---
+
+# Delete user asset
+
+
+ DELETE
+ /api/v1/assets/user-assets/{asset_id}/
+
+
+
+
+
+Delete user asset.
+
+Delete a user profile asset (avatar or cover image) and remove its reference from the user profile.
+This performs a soft delete by marking the asset as deleted and updating the user's profile.
+
+
+
+### Path Parameters
+
+
+
+
+
+
+### Scopes
+
+`assets:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE \
+ "https://api.plane.so/api/v1/assets/user-assets/550e8400-e29b-41d4-a716-446655440002/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.delete(
+ "https://api.plane.so/api/v1/assets/user-assets/550e8400-e29b-41d4-a716-446655440002/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch("https://api.plane.so/api/v1/assets/user-assets/550e8400-e29b-41d4-a716-446655440002/", {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+});
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/assets/get-workspace-asset.md b/docs/api-reference/assets/get-workspace-asset.md
new file mode 100644
index 0000000..b36672d
--- /dev/null
+++ b/docs/api-reference/assets/get-workspace-asset.md
@@ -0,0 +1,112 @@
+---
+title: Get workspace asset
+description: Get workspace asset via Plane API. HTTP request format, parameters, scopes, and example responses for get workspace asset.
+keywords: plane, plane api, rest api, api integration, assets, get workspace asset
+---
+
+# Get workspace asset
+
+
+ GET
+ /api/v1/workspaces/{slug}/assets/{asset_id}/
+
+
+
+
+
+Get presigned URL for asset download
+
+
+
+### Path Parameters
+
+
+
+
+
+Asset id.
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`assets:read`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/assets/550e8400-e29b-41d4-a716-446655440002/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/assets/550e8400-e29b-41d4-a716-446655440002/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/assets/550e8400-e29b-41d4-a716-446655440002/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "design-spec.pdf",
+ "type": "application/pdf",
+ "asset_url": "https://cdn.example.com/workspace-assets/design-spec.pdf",
+ "attributes": {
+ "entity_type": "WORKSPACE"
+ }
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/assets/overview.md b/docs/api-reference/assets/overview.md
new file mode 100644
index 0000000..d931105
--- /dev/null
+++ b/docs/api-reference/assets/overview.md
@@ -0,0 +1,40 @@
+---
+title: Overview
+description: Plane Assets API overview. Learn how user and workspace asset uploads work through the Plane API.
+keywords: plane, plane api, rest api, api integration, assets, uploads, files
+---
+
+# Overview
+
+Assets let you upload and manage files used across user profiles and workspaces, including images and other binary resources.
+
+[Learn more about using the Plane API](https://developers.plane.so/api-reference/introduction)
+
+
+
+
+## The Asset Object
+
+### Attributes
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "design-spec.pdf",
+ "type": "application/pdf",
+ "asset_url": "https://cdn.example.com/workspace-assets/design-spec.pdf",
+ "attributes": {
+ "entity_type": "WORKSPACE"
+ }
+}
+```
+
+
+
+
+
diff --git a/docs/api-reference/assets/update-user-asset.md b/docs/api-reference/assets/update-user-asset.md
new file mode 100644
index 0000000..1a9e063
--- /dev/null
+++ b/docs/api-reference/assets/update-user-asset.md
@@ -0,0 +1,134 @@
+---
+title: Update user asset
+description: Update user asset via Plane API. HTTP request format, parameters, scopes, and example responses for update user asset.
+keywords: plane, plane api, rest api, api integration, assets, update user asset
+---
+
+# Update user asset
+
+
+ PATCH
+ /api/v1/assets/user-assets/{asset_id}/
+
+
+
+
+
+Mark user asset as uploaded
+
+
+
+### Path Parameters
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Additional attributes to update for the asset
+
+
+
+
+
+
+
+
+### Scopes
+
+`assets:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X PATCH \
+ "https://api.plane.so/api/v1/assets/user-assets/550e8400-e29b-41d4-a716-446655440002/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "attributes": {
+ "name": "Example Name",
+ "type": "image/jpeg",
+ "size": 1024000
+ },
+ "entity_type": "USER_AVATAR"
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.patch(
+ "https://api.plane.so/api/v1/assets/user-assets/550e8400-e29b-41d4-a716-446655440002/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "attributes": {
+"name": "Example Name",
+"type": "image/jpeg",
+"size": 1024000
+ },
+ "entity_type": "USER_AVATAR"
+ }
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch("https://api.plane.so/api/v1/assets/user-assets/550e8400-e29b-41d4-a716-446655440002/", {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ attributes: {
+ name: "Example Name",
+ type: "image/jpeg",
+ size: 1024000,
+ },
+ entity_type: "USER_AVATAR",
+ }),
+});
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/assets/update-workspace-asset.md b/docs/api-reference/assets/update-workspace-asset.md
new file mode 100644
index 0000000..054beab
--- /dev/null
+++ b/docs/api-reference/assets/update-workspace-asset.md
@@ -0,0 +1,128 @@
+---
+title: Update workspace asset
+description: Update workspace asset via Plane API. HTTP request format, parameters, scopes, and example responses for update workspace asset.
+keywords: plane, plane api, rest api, api integration, assets, update workspace asset
+---
+
+# Update workspace asset
+
+
+ PATCH
+ /api/v1/workspaces/{slug}/assets/{asset_id}/
+
+
+
+
+
+Update generic asset after upload completion
+
+
+
+### Path Parameters
+
+
+
+
+
+Asset ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Whether the asset has been successfully uploaded
+
+
+
+
+
+
+
+
+### Scopes
+
+`assets:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X PATCH \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/assets/550e8400-e29b-41d4-a716-446655440002/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "is_uploaded": true
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.patch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/assets/550e8400-e29b-41d4-a716-446655440002/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "is_uploaded": true
+ }
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/assets/550e8400-e29b-41d4-a716-446655440002/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ is_uploaded: true,
+ }),
+ }
+);
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/customer/add-customer-property.md b/docs/api-reference/customer/add-customer-property.md
index e2d7fd2..7bd6f05 100644
--- a/docs/api-reference/customer/add-customer-property.md
+++ b/docs/api-reference/customer/add-customer-property.md
@@ -1,20 +1,20 @@
---
title: Create a customer property
-description: Create a customer property via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Create a customer property via Plane API. HTTP request format, parameters, scopes, and example responses for create a customer property.
+keywords: plane, plane api, rest api, api integration, customer, create a customer property
---
# Create a customer property
POST
- /api/v1/workspaces/{workspace_slug}/customer-properties/
+ /api/v1/workspaces/{slug}/customer-properties/
-Creates a new customer property definition in a workspace.
+Create a new customer property in the specified workspace.
@@ -22,9 +22,9 @@ Creates a new customer property definition in a workspace.
-
+
-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`.
+Slug.
@@ -37,93 +37,108 @@ The workspace_slug represents the unique workspace identifier for a workspace in
-
+
-Name of the property.
+Display name.
-
+
-Display name of the property.
+Description.
-
+
-Description of the property.
+Logo props.
-
+
-Type of the property.
+Sort order.
-
+
-Relation type of the property.
+- `TEXT` - Text
+- `DATETIME` - Datetime
+- `DECIMAL` - Decimal
+- `BOOLEAN` - Boolean
+- `OPTION` - Option
+- `RELATION` - Relation
+- `URL` - URL
+- `EMAIL` - Email
+- `FILE` - File
-
+
-Whether the property is required.
+- `ISSUE` - Issue
+- `USER` - User
-
+
-Whether the property supports multiple values.
+Is required.
-
+
-Whether the property is active.
+Default value.
-
+
-Sort order for the property.
+Settings.
-
+
-Default values for the property.
+Is active.
-
+
-Settings for the property.
+Is multi.
-
+
-Validation rules for the property.
+Validation rules.
-
+
-Logo properties for the property.
+External source.
-
+
-External source identifier.
+External id.
-
+
-External ID from the external source.
+Created by.
+
+
+
+
+
+Updated by.
@@ -139,6 +154,7 @@ External ID from the external source.
+
@@ -151,21 +167,24 @@ curl -X POST \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "display_name": "example-display_name",
- "description": "example-description",
- "property_type": "example-property_type",
- "relation_type": "example-relation_type",
+ "display_name": "Example Name",
+ "description": "Example description",
+ "logo_props": "example-value",
+ "sort_order": 1,
+ "property_type": "TEXT",
+ "relation_type": "ISSUE",
"is_required": true,
- "is_multi": true,
+ "default_value": [
+ "Example Name"
+ ],
+ "settings": "example-value",
"is_active": true,
- "sort_order": 1,
- "default_value": "example-default_value",
- "settings": "example-settings",
- "validation_rules": "example-validation_rules",
- "logo_props": "example-logo_props",
- "external_source": "example-external_source",
- "external_id": "example-external_id"
+ "is_multi": true,
+ "validation_rules": "example-value",
+ "external_source": "github",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -179,22 +198,25 @@ response = requests.post(
"https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'display_name': 'example-display_name',
- 'description': 'example-description',
- 'property_type': 'example-property_type',
- 'relation_type': 'example-relation_type',
- 'is_required': true,
- 'is_multi': true,
- 'is_active': true,
- 'sort_order': 1,
- 'default_value': 'example-default_value',
- 'settings': 'example-settings',
- 'validation_rules': 'example-validation_rules',
- 'logo_props': 'example-logo_props',
- 'external_source': 'example-external_source',
- 'external_id': 'example-external_id'
-}
+ "display_name": "Example Name",
+ "description": "Example description",
+ "logo_props": "example-value",
+ "sort_order": 1,
+ "property_type": "TEXT",
+ "relation_type": "ISSUE",
+ "is_required": true,
+ "default_value": [
+"Example Name"
+ ],
+ "settings": "example-value",
+ "is_active": true,
+ "is_multi": true,
+ "validation_rules": "example-value",
+ "external_source": "github",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -210,21 +232,22 @@ const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspac
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- display_name: "example-display_name",
- description: "example-description",
- property_type: "example-property_type",
- relation_type: "example-relation_type",
+ display_name: "Example Name",
+ description: "Example description",
+ logo_props: "example-value",
+ sort_order: 1,
+ property_type: "TEXT",
+ relation_type: "ISSUE",
is_required: true,
- is_multi: true,
+ default_value: ["Example Name"],
+ settings: "example-value",
is_active: true,
- sort_order: 1,
- default_value: "example-default_value",
- settings: "example-settings",
- validation_rules: "example-validation_rules",
- logo_props: "example-logo_props",
- external_source: "example-external_source",
- external_id: "example-external_id",
+ is_multi: true,
+ validation_rules: "example-value",
+ external_source: "github",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ created_by: "550e8400-e29b-41d4-a716-446655440000",
+ updated_by: "550e8400-e29b-41d4-a716-446655440000",
}),
});
const data = await response.json();
@@ -237,12 +260,23 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "display_name": "Example Name",
+ "description": "Example description",
+ "property_type": "TEXT",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "logo_props": "example-value",
+ "sort_order": 1,
+ "relation_type": "ISSUE",
+ "is_required": true
}
```
+
diff --git a/docs/api-reference/customer/add-customer-request.md b/docs/api-reference/customer/add-customer-request.md
index 5fc33f8..06fef4e 100644
--- a/docs/api-reference/customer/add-customer-request.md
+++ b/docs/api-reference/customer/add-customer-request.md
@@ -1,20 +1,20 @@
---
title: Create a customer request
-description: Create a customer request via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Create a customer request via Plane API. HTTP request format, parameters, scopes, and example responses for create a customer request.
+keywords: plane, plane api, rest api, api integration, customer, create a customer request
---
# Create a customer request
POST
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/requests/
+ /api/v1/workspaces/{slug}/customers/{customer_id}/requests/
-Creates a new request for a customer.
+Create a new request for the specified customer.
@@ -22,15 +22,15 @@ Creates a new request for a customer.
-
+
-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`.
+Customer id.
-
+
-The unique identifier for the customer.
+Slug.
@@ -43,15 +43,33 @@ The unique identifier for the customer.
-
+
-Title of the request.
+Name.
-
+
-Description of the request.
+Description.
+
+
+
+
+
+Description html.
+
+
+
+
+
+Link.
+
+
+
+
+
+Work item ids.
@@ -67,6 +85,7 @@ Description of the request.
+
@@ -74,13 +93,18 @@ Description of the request.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "title": "example-title",
- "description": "example-description"
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "link": "https://example.com/resource",
+ "work_item_ids": [
+ "550e8400-e29b-41d4-a716-446655440000"
+ ]
}'
```
@@ -91,12 +115,17 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/",
headers={"X-API-Key": "your-api-key"},
json={
- 'title': 'example-title',
- 'description': 'example-description'
-}
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "link": "https://example.com/resource",
+ "work_item_ids": [
+"550e8400-e29b-41d4-a716-446655440000"
+ ]
+ }
)
print(response.json())
```
@@ -105,17 +134,23 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/", {
- method: "POST",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- title: "example-title",
- description: "example-description",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ description: "example-value",
+ description_html: "Example content
",
+ link: "https://example.com/resource",
+ work_item_ids: ["550e8400-e29b-41d4-a716-446655440000"],
+ }),
+ }
+);
const data = await response.json();
```
@@ -126,12 +161,27 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "email": "Example Name",
+ "website_url": "https://example.com/resource",
+ "logo_props": "example-value",
+ "domain": "Example Name",
+ "employees": 1,
+ "stage": "Example Name",
+ "contract_status": "Example Name",
+ "revenue": "Example Name",
+ "archived_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "logo_asset": "550e8400-e29b-41d4-a716-446655440000"
}
```
+
diff --git a/docs/api-reference/customer/add-customer.md b/docs/api-reference/customer/add-customer.md
index fc80a11..6784d8e 100644
--- a/docs/api-reference/customer/add-customer.md
+++ b/docs/api-reference/customer/add-customer.md
@@ -1,20 +1,20 @@
---
title: Create a customer
-description: Create a customer via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Create a customer via Plane API. HTTP request format, parameters, scopes, and example responses for create a customer.
+keywords: plane, plane api, rest api, api integration, customer, create a customer
---
# Create a customer
POST
- /api/v1/workspaces/{workspace_slug}/customers/
+ /api/v1/workspaces/{slug}/customers/
-Creates a new customer in a workspace.
+Create a new customer in the specified workspace.
@@ -22,9 +22,9 @@ Creates a new customer in a workspace.
-
+
-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`.
+Slug.
@@ -37,15 +37,99 @@ The workspace_slug represents the unique workspace identifier for a workspace in
-
+
-Name of the customer.
+Name.
-
+
-Email address of the customer.
+Description.
+
+
+
+
+
+Description html.
+
+
+
+
+
+Description stripped.
+
+
+
+
+
+Email.
+
+
+
+
+
+Website url.
+
+
+
+
+
+Logo props.
+
+
+
+
+
+Domain.
+
+
+
+
+
+Employees.
+
+
+
+
+
+Stage.
+
+
+
+
+
+Contract status.
+
+
+
+
+
+Revenue.
+
+
+
+
+
+Archived at.
+
+
+
+
+
+Created by.
+
+
+
+
+
+Updated by.
+
+
+
+
+
+Logo asset.
@@ -61,6 +145,7 @@ Email address of the customer.
+
@@ -73,8 +158,22 @@ curl -X POST \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "email": "example-email"
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "email": "Example Name",
+ "website_url": "https://example.com/resource",
+ "logo_props": "example-value",
+ "domain": "Example Name",
+ "employees": 1,
+ "stage": "Example Name",
+ "contract_status": "Example Name",
+ "revenue": "Example Name",
+ "archived_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "logo_asset": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -88,9 +187,23 @@ response = requests.post(
"https://api.plane.so/api/v1/workspaces/my-workspace/customers/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'email': 'example-email'
-}
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "email": "Example Name",
+ "website_url": "https://example.com/resource",
+ "logo_props": "example-value",
+ "domain": "Example Name",
+ "employees": 1,
+ "stage": "Example Name",
+ "contract_status": "Example Name",
+ "revenue": "Example Name",
+ "archived_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "logo_asset": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -106,8 +219,22 @@ const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspac
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- email: "example-email",
+ name: "Example Name",
+ description: "example-value",
+ description_html: "Example content
",
+ description_stripped: "Example description",
+ email: "Example Name",
+ website_url: "https://example.com/resource",
+ logo_props: "example-value",
+ domain: "Example Name",
+ employees: 1,
+ stage: "Example Name",
+ contract_status: "Example Name",
+ revenue: "Example Name",
+ archived_at: "2024-01-01T00:00:00Z",
+ created_by: "550e8400-e29b-41d4-a716-446655440000",
+ updated_by: "550e8400-e29b-41d4-a716-446655440000",
+ logo_asset: "550e8400-e29b-41d4-a716-446655440000",
}),
});
const data = await response.json();
@@ -120,12 +247,23 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "example-value",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "customer_request_count": 1,
+ "logo_url": "Example Name",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "description_binary": "Example description",
+ "email": "Example Name"
}
```
+
diff --git a/docs/api-reference/customer/delete-customer-property.md b/docs/api-reference/customer/delete-customer-property.md
index a740d37..c873e59 100644
--- a/docs/api-reference/customer/delete-customer-property.md
+++ b/docs/api-reference/customer/delete-customer-property.md
@@ -1,20 +1,20 @@
---
title: Delete a customer property
-description: Delete a customer property via Plane API. HTTP DELETE request for removing resources.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Delete a customer property via Plane API. HTTP request format, parameters, scopes, and example responses for delete a customer property.
+keywords: plane, plane api, rest api, api integration, customer, delete a customer property
---
# Delete a customer property
DELETE
- /api/v1/workspaces/{workspace_slug}/customer-properties/{property_id}/
+ /api/v1/workspaces/{slug}/customer-properties/{pk}/
-Permanently deletes a customer property definition from a workspace. This action cannot be undone.
+Permanently delete a customer property from the workspace.
@@ -22,15 +22,15 @@ Permanently deletes a customer property definition from a workspace. This action
-
+
-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`.
+Pk.
-
+
-The unique identifier for the customer property.
+Slug.
@@ -46,6 +46,7 @@ The unique identifier for the customer property.
+
@@ -53,7 +54,7 @@ The unique identifier for the customer property.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/{property_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,23 +66,26 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/{property_id}/", {
- method: "DELETE",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
-const data = await response.json();
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
```
@@ -89,11 +93,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/customer/delete-customer-request.md b/docs/api-reference/customer/delete-customer-request.md
index c66bfdc..73d16a4 100644
--- a/docs/api-reference/customer/delete-customer-request.md
+++ b/docs/api-reference/customer/delete-customer-request.md
@@ -1,20 +1,20 @@
---
title: Delete a customer request
-description: Delete a customer request via Plane API. HTTP DELETE request for removing resources.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Delete a customer request via Plane API. HTTP request format, parameters, scopes, and example responses for delete a customer request.
+keywords: plane, plane api, rest api, api integration, customer, delete a customer request
---
# Delete a customer request
DELETE
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/requests/{request_id}/
+ /api/v1/workspaces/{slug}/customers/{customer_id}/requests/{pk}/
-Permanently deletes a customer request. This action cannot be undone.
+Permanently delete a customer request and unlink any linked issue
@@ -22,21 +22,21 @@ Permanently deletes a customer request. This action cannot be undone.
-
+
-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`.
+Customer id.
-
+
-The unique identifier for the customer.
+Pk.
-
+
-The unique identifier for the request.
+Slug.
@@ -52,6 +52,7 @@ The unique identifier for the request.
+
@@ -59,8 +60,8 @@ The unique identifier for the request.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/{request_id}/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,10 +72,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/{request_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/{request_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/550e8400-e29b-41d4-a716-446655440000/",
{
method: "DELETE",
headers: {
@@ -90,7 +91,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -98,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/customer/delete-customer.md b/docs/api-reference/customer/delete-customer.md
index 7ff1af9..77cbdcc 100644
--- a/docs/api-reference/customer/delete-customer.md
+++ b/docs/api-reference/customer/delete-customer.md
@@ -1,20 +1,20 @@
---
title: Delete a customer
-description: Permanently delete a customer record via Plane API. Removes the customer and unlinks associated work items. Returns 204 on success.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Delete a customer via Plane API. HTTP request format, parameters, scopes, and example responses for delete a customer.
+keywords: plane, plane api, rest api, api integration, customer, delete a customer
---
# Delete a customer
DELETE
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/
+ /api/v1/workspaces/{slug}/customers/{pk}/
-Permanently deletes a customer from a workspace. This action cannot be undone.
+Permanently delete a customer from the workspace.
@@ -22,15 +22,15 @@ Permanently deletes a customer from a workspace. This action cannot be undone.
-
+
-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`.
+Pk.
-
+
-The unique identifier for the customer.
+Slug.
@@ -46,6 +46,7 @@ The unique identifier for the customer.
+
@@ -53,7 +54,7 @@ The unique identifier for the customer.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,23 +66,26 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/", {
- method: "DELETE",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
-const data = await response.json();
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
```
@@ -89,11 +93,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/customer/get-customer-detail.md b/docs/api-reference/customer/get-customer-detail.md
index 4f34996..17e6483 100644
--- a/docs/api-reference/customer/get-customer-detail.md
+++ b/docs/api-reference/customer/get-customer-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a customer
-description: Get retrieve a customer details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Retrieve a customer via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a customer.
+keywords: plane, plane api, rest api, api integration, customer, retrieve a customer
---
# Retrieve a customer
GET
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/
+ /api/v1/workspaces/{slug}/customers/{pk}/
-Retrieves the details of an existing customer by its ID.
+Get a specific customer by ID
@@ -22,15 +22,15 @@ Retrieves the details of an existing customer by its ID.
-
+
-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`.
+Pk.
-
+
-The unique identifier for the customer.
+Slug.
@@ -46,6 +46,7 @@ The unique identifier for the customer.
+
@@ -53,8 +54,8 @@ The unique identifier for the customer.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +66,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +76,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -91,12 +95,23 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "example-value",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "customer_request_count": 1,
+ "logo_url": "Example Name",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "description_binary": "Example description",
+ "email": "Example Name"
}
```
+
diff --git a/docs/api-reference/customer/get-customer-property-detail.md b/docs/api-reference/customer/get-customer-property-detail.md
index b245294..e29f045 100644
--- a/docs/api-reference/customer/get-customer-property-detail.md
+++ b/docs/api-reference/customer/get-customer-property-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a customer property
-description: Get retrieve a customer property details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Retrieve a customer property via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a customer property.
+keywords: plane, plane api, rest api, api integration, customer, retrieve a customer property
---
# Retrieve a customer property
GET
- /api/v1/workspaces/{workspace_slug}/customer-properties/{property_id}/
+ /api/v1/workspaces/{slug}/customer-properties/{pk}/
-Retrieves the details of an existing customer property definition by its ID.
+Retrieve a specific customer property by ID.
@@ -22,15 +22,15 @@ Retrieves the details of an existing customer property definition by its ID.
-
+
-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`.
+Pk.
-
+
-The unique identifier for the customer property.
+Slug.
@@ -46,6 +46,7 @@ The unique identifier for the customer property.
+
@@ -53,8 +54,8 @@ The unique identifier for the customer property.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/{property_id}/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +66,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +76,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/{property_id}/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -91,12 +95,23 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "display_name": "Example Name",
+ "description": "Example description",
+ "property_type": "TEXT",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "logo_props": "example-value",
+ "sort_order": 1,
+ "relation_type": "ISSUE",
+ "is_required": true
}
```
+
diff --git a/docs/api-reference/customer/get-customer-property-value.md b/docs/api-reference/customer/get-customer-property-value.md
index ce7eeee..4b61fa0 100644
--- a/docs/api-reference/customer/get-customer-property-value.md
+++ b/docs/api-reference/customer/get-customer-property-value.md
@@ -1,20 +1,20 @@
---
title: Retrieve a customer property value
-description: List retrieve a customer property value via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Retrieve a customer property value via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a customer property value.
+keywords: plane, plane api, rest api, api integration, customer, retrieve a customer property value
---
# Retrieve a customer property value
GET
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/property-values/{property_id}/
+ /api/v1/workspaces/{slug}/customers/{customer_id}/property-values/{property_id}/
-Retrieves a specific property value for a customer by property ID.
+Retrieve values for a specific property of a customer.
@@ -22,21 +22,21 @@ Retrieves a specific property value for a customer by property ID.
-
+
-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`.
+Customer id.
-
+
-The unique identifier for the customer.
+Property id.
-
+
-The unique identifier for the customer property.
+Slug.
@@ -52,6 +52,7 @@ The unique identifier for the customer property.
+
@@ -59,8 +60,8 @@ The unique identifier for the customer property.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/property-values/{property_id}/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/property-values/550e8400-e29b-41d4-a716-446655440001/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/property-values/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/property-values/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/property-values/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/property-values/550e8400-e29b-41d4-a716-446655440001/",
{
method: "GET",
headers: {
@@ -100,12 +101,12 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "detail": "Property values retrieved successfully"
}
```
+
diff --git a/docs/api-reference/customer/get-customer-request-detail.md b/docs/api-reference/customer/get-customer-request-detail.md
index 8cee566..84ef2aa 100644
--- a/docs/api-reference/customer/get-customer-request-detail.md
+++ b/docs/api-reference/customer/get-customer-request-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a customer request
-description: Get retrieve a customer request details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Retrieve a customer request via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a customer request.
+keywords: plane, plane api, rest api, api integration, customer, retrieve a customer request
---
# Retrieve a customer request
GET
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/requests/{request_id}/
+ /api/v1/workspaces/{slug}/customers/{customer_id}/requests/{pk}/
-Retrieves the details of an existing customer request by its ID.
+Get a specific customer request by ID
@@ -22,21 +22,21 @@ Retrieves the details of an existing customer request by its ID.
-
+
-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`.
+Customer id.
-
+
-The unique identifier for the customer.
+Pk.
-
+
-The unique identifier for the request.
+Slug.
@@ -52,6 +52,7 @@ The unique identifier for the request.
+
@@ -59,8 +60,8 @@ The unique identifier for the request.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/{request_id}/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/{request_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/{request_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/550e8400-e29b-41d4-a716-446655440000/",
{
method: "GET",
headers: {
@@ -100,12 +101,27 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "email": "Example Name",
+ "website_url": "https://example.com/resource",
+ "logo_props": "example-value",
+ "domain": "Example Name",
+ "employees": 1,
+ "stage": "Example Name",
+ "contract_status": "Example Name",
+ "revenue": "Example Name",
+ "archived_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "logo_asset": "550e8400-e29b-41d4-a716-446655440000"
}
```
+
diff --git a/docs/api-reference/customer/link-work-items-to-customer.md b/docs/api-reference/customer/link-work-items-to-customer.md
index 509524c..9c30e4f 100644
--- a/docs/api-reference/customer/link-work-items-to-customer.md
+++ b/docs/api-reference/customer/link-work-items-to-customer.md
@@ -1,20 +1,20 @@
---
title: Link work items to customer
-description: Link work items to customer API endpoint. Request format, parameters, and response examples for Plane REST API.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, customers, crm, customer management
+description: Link work items to customer via Plane API. HTTP request format, parameters, scopes, and example responses for link work items to customer.
+keywords: plane, plane api, rest api, api integration, customer, link work items to customer
---
# Link work items to customer
POST
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/work-items/
+ /api/v1/workspaces/{slug}/customers/{customer_id}/issues/
-Links one or more work items to a customer.
+Link one or more issues to a customer, optionally within a specific customer request.
@@ -22,15 +22,15 @@ Links one or more work items to a customer.
-
+
-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`.
+Customer id.
-
+
-The unique identifier for the customer.
+Slug.
@@ -43,9 +43,9 @@ The unique identifier for the customer.
-
+
-Array of work item IDs to link to the customer.
+Array of issue IDs to link
@@ -61,6 +61,7 @@ Array of work item IDs to link to the customer.
+
@@ -68,12 +69,14 @@ Array of work item IDs to link to the customer.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/work-items/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/issues/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "issue_ids": "example-issue_ids"
+ "issue_ids": [
+ "550e8400-e29b-41d4-a716-446655440000"
+ ]
}'
```
@@ -84,11 +87,13 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/work-items/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/issues/",
headers={"X-API-Key": "your-api-key"},
json={
- 'issue_ids': 'example-issue_ids'
-}
+ "issue_ids": [
+"550e8400-e29b-41d4-a716-446655440000"
+ ]
+ }
)
print(response.json())
```
@@ -98,7 +103,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/work-items/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/issues/",
{
method: "POST",
headers: {
@@ -106,7 +111,7 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- issue_ids: "example-issue_ids",
+ issue_ids: ["550e8400-e29b-41d4-a716-446655440000"],
}),
}
);
@@ -120,15 +125,12 @@ const data = await response.json();
```json
{
- "id": "work-item-uuid",
- "name": "Work Item Title",
- "state": "state-uuid",
- "priority": 2,
- "created_at": "2024-01-01T00:00:00Z"
+ "detail": "Issues linked successfully"
}
```
+
diff --git a/docs/api-reference/customer/list-customer-properties.md b/docs/api-reference/customer/list-customer-properties.md
index 92c154b..23738d5 100644
--- a/docs/api-reference/customer/list-customer-properties.md
+++ b/docs/api-reference/customer/list-customer-properties.md
@@ -1,20 +1,20 @@
---
title: List all customer properties
-description: List all customer properties via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: List all customer properties via Plane API. HTTP request format, parameters, scopes, and example responses for list all customer properties.
+keywords: plane, plane api, rest api, api integration, customer, list all customer properties
---
# List all customer properties
GET
- /api/v1/workspaces/{workspace_slug}/customer-properties/
+ /api/v1/workspaces/{slug}/customer-properties/
-Returns a list of all customer property definitions in a workspace.
+List all customer properties in a workspace.
@@ -22,36 +22,9 @@ Returns a list of all customer property definitions in a workspace.
-
+
-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`.
-
-
-
-
-
-
-
-
-### Query Parameters
-
-
-
-
-
-Filter by workspace ID.
-
-
-
-
-
-Number of results to return per page.
-
-
-
-
-
-Number of results to skip for pagination.
+Slug.
@@ -67,6 +40,7 @@ Number of results to skip for pagination.
+
@@ -112,12 +86,29 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/customer/list-customer-property-values.md b/docs/api-reference/customer/list-customer-property-values.md
index d0a47da..615a986 100644
--- a/docs/api-reference/customer/list-customer-property-values.md
+++ b/docs/api-reference/customer/list-customer-property-values.md
@@ -1,20 +1,20 @@
---
title: List all customer property values
-description: List all customer property values via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: List all customer property values via Plane API. HTTP request format, parameters, scopes, and example responses for list all customer property values.
+keywords: plane, plane api, rest api, api integration, customer, list all customer property values
---
# List all customer property values
GET
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/property-values/
+ /api/v1/workspaces/{slug}/customers/{customer_id}/property-values/
-Returns a list of all property values for a customer.
+Retrieve all property values for a specific customer.
@@ -22,54 +22,15 @@ Returns a list of all property values for a customer.
-
-
-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`.
-
-
-
-The unique identifier for the customer.
-
-
-
-
-
-
-
-
-### Query Parameters
-
-
-
-
-
-Filter by customer ID.
-
-
-
-
-
-Filter by property ID.
+Customer id.
-
+
-Filter by workspace ID.
-
-
-
-
-
-Number of results to return per page.
-
-
-
-
-
-Number of results to skip for pagination.
+Slug.
@@ -85,6 +46,7 @@ Number of results to skip for pagination.
+
@@ -92,7 +54,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/property-values/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/property-values/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -104,7 +66,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/property-values/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/property-values/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -115,7 +77,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/property-values/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/property-values/",
{
method: "GET",
headers: {
@@ -133,12 +95,12 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "detail": "Customer property values retrieved successfully"
}
```
+
diff --git a/docs/api-reference/customer/list-customer-requests.md b/docs/api-reference/customer/list-customer-requests.md
index 4f08fdc..ab8a9dc 100644
--- a/docs/api-reference/customer/list-customer-requests.md
+++ b/docs/api-reference/customer/list-customer-requests.md
@@ -1,20 +1,20 @@
---
title: List all customer requests
-description: List all customer requests via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: List all customer requests via Plane API. HTTP request format, parameters, scopes, and example responses for list all customer requests.
+keywords: plane, plane api, rest api, api integration, customer, list all customer requests
---
# List all customer requests
GET
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/requests/
+ /api/v1/workspaces/{slug}/customers/{customer_id}/requests/
-Returns a list of all requests for a customer.
+List all requests for a customer with optional search filtering
@@ -22,48 +22,15 @@ Returns a list of all requests for a customer.
-
-
-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`.
-
-
-
-The unique identifier for the customer.
-
-
-
-
-
-
-
-
-### Query Parameters
-
-
-
-
-
-Filter by customer ID.
-
-
-
-
-
-Filter by workspace ID.
+Customer id.
-
+
-Number of results to return per page.
-
-
-
-
-
-Number of results to skip for pagination.
+Slug.
@@ -79,6 +46,7 @@ Number of results to skip for pagination.
+
@@ -86,7 +54,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -98,7 +66,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -108,12 +76,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -124,12 +95,27 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "email": "Example Name",
+ "website_url": "https://example.com/resource",
+ "logo_props": "example-value",
+ "domain": "Example Name",
+ "employees": 1,
+ "stage": "Example Name",
+ "contract_status": "Example Name",
+ "revenue": "Example Name",
+ "archived_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "logo_asset": "550e8400-e29b-41d4-a716-446655440000"
}
```
+
diff --git a/docs/api-reference/customer/list-customer-work-items.md b/docs/api-reference/customer/list-customer-work-items.md
index 9b2eab8..6176b9f 100644
--- a/docs/api-reference/customer/list-customer-work-items.md
+++ b/docs/api-reference/customer/list-customer-work-items.md
@@ -1,20 +1,20 @@
---
title: List all customer work items
-description: List all customer work items via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, customers, crm, customer management
+description: List all customer work items via Plane API. HTTP request format, parameters, scopes, and example responses for list all customer work items.
+keywords: plane, plane api, rest api, api integration, customer, list all customer work items
---
# List all customer work items
GET
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/work-items/
+ /api/v1/workspaces/{slug}/customers/{customer_id}/issues/
-Returns a list of all work items associated with a customer.
+List all issues linked to a customer, with filtering by request
@@ -22,15 +22,15 @@ Returns a list of all work items associated with a customer.
-
+
-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`.
+Customer id.
-
+
-The unique identifier for the customer.
+Slug.
@@ -46,6 +46,7 @@ The unique identifier for the customer.
+
@@ -53,8 +54,8 @@ The unique identifier for the customer.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/work-items/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/issues/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +66,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/work-items/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/issues/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -76,7 +77,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/work-items/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/issues/",
{
method: "GET",
headers: {
@@ -94,15 +95,12 @@ const data = await response.json();
```json
{
- "id": "work-item-uuid",
- "name": "Work Item Title",
- "state": "state-uuid",
- "priority": 2,
- "created_at": "2024-01-01T00:00:00Z"
+ "detail": "Customer issues retrieved successfully"
}
```
+
diff --git a/docs/api-reference/customer/list-customers.md b/docs/api-reference/customer/list-customers.md
index 4c75ced..667c842 100644
--- a/docs/api-reference/customer/list-customers.md
+++ b/docs/api-reference/customer/list-customers.md
@@ -1,20 +1,20 @@
---
title: List all customers
-description: List all customers via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: List all customers via Plane API. HTTP request format, parameters, scopes, and example responses for list all customers.
+keywords: plane, plane api, rest api, api integration, customer, list all customers
---
# List all customers
GET
- /api/v1/workspaces/{workspace_slug}/customers/
+ /api/v1/workspaces/{slug}/customers/
-Gets all the customers in a workspace
+List all customers in a workspace with optional search filtering
@@ -22,36 +22,9 @@ Gets all the customers in a workspace
-
+
-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`.
-
-
-
-
-
-
-
-
-### Query Parameters
-
-
-
-
-
-Filter by workspace ID.
-
-
-
-
-
-Number of results to return per page.
-
-
-
-
-
-Number of results to skip for pagination.
+Slug.
@@ -67,6 +40,7 @@ Number of results to skip for pagination.
+
@@ -112,12 +86,29 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/customer/unlink-work-item-from-customer.md b/docs/api-reference/customer/unlink-work-item-from-customer.md
index 541fe6d..5feb2f3 100644
--- a/docs/api-reference/customer/unlink-work-item-from-customer.md
+++ b/docs/api-reference/customer/unlink-work-item-from-customer.md
@@ -1,20 +1,20 @@
---
title: Unlink work item from customer
-description: Unlink work item from customer API endpoint. Request format, parameters, and response examples for Plane REST API.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, customers, crm, customer management
+description: Unlink work item from customer via Plane API. HTTP request format, parameters, scopes, and example responses for unlink work item from customer.
+keywords: plane, plane api, rest api, api integration, customer, unlink work item from customer
---
# Unlink work item from customer
DELETE
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/work-items/{work_item_id}/
+ /api/v1/workspaces/{slug}/customers/{customer_id}/issues/{issue_id}/
-Removes the association between a work item and a customer.
+Remove the link between an issue and a customer/customer request.
@@ -22,21 +22,21 @@ Removes the association between a work item and a customer.
-
+
-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`.
+Customer id.
-
+
-The unique identifier for the customer.
+Issue id.
-
+
-The unique identifier for the work item.
+Slug.
@@ -52,6 +52,7 @@ The unique identifier for the work item.
+
@@ -59,7 +60,7 @@ The unique identifier for the work item.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/work-items/work-item-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/issues/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,10 +72,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/work-items/work-item-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/issues/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/work-items/work-item-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/issues/550e8400-e29b-41d4-a716-446655440001/",
{
method: "DELETE",
headers: {
@@ -90,7 +91,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -98,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/customer/update-customer-detail.md b/docs/api-reference/customer/update-customer-detail.md
index f6c8dd8..11d9c89 100644
--- a/docs/api-reference/customer/update-customer-detail.md
+++ b/docs/api-reference/customer/update-customer-detail.md
@@ -1,20 +1,20 @@
---
title: Update a customer
-description: Update a customer via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Update a customer via Plane API. HTTP request format, parameters, scopes, and example responses for update a customer.
+keywords: plane, plane api, rest api, api integration, customer, update a customer
---
# Update a customer
PATCH
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/
+ /api/v1/workspaces/{slug}/customers/{pk}/
-Updates an existing customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Update an existing customer with the provided fields.
@@ -22,15 +22,15 @@ Updates an existing customer by setting the values of the parameters passed. Any
-
+
-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`.
+Pk.
-
+
-The unique identifier for the customer.
+Slug.
@@ -43,15 +43,99 @@ The unique identifier for the customer.
-
+
-Name of the customer.
+Name.
-
+
-Email address of the customer.
+Description.
+
+
+
+
+
+Description html.
+
+
+
+
+
+Description stripped.
+
+
+
+
+
+Email.
+
+
+
+
+
+Website url.
+
+
+
+
+
+Logo props.
+
+
+
+
+
+Domain.
+
+
+
+
+
+Employees.
+
+
+
+
+
+Stage.
+
+
+
+
+
+Contract status.
+
+
+
+
+
+Revenue.
+
+
+
+
+
+Archived at.
+
+
+
+
+
+Created by.
+
+
+
+
+
+Updated by.
+
+
+
+
+
+Logo asset.
@@ -67,6 +151,7 @@ Email address of the customer.
+
@@ -74,13 +159,27 @@ Email address of the customer.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "email": "example-email"
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "email": "Example Name",
+ "website_url": "https://example.com/resource",
+ "logo_props": "example-value",
+ "domain": "Example Name",
+ "employees": 1,
+ "stage": "Example Name",
+ "contract_status": "Example Name",
+ "revenue": "Example Name",
+ "archived_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "logo_asset": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -91,12 +190,26 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'email': 'example-email'
-}
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "email": "Example Name",
+ "website_url": "https://example.com/resource",
+ "logo_props": "example-value",
+ "domain": "Example Name",
+ "employees": 1,
+ "stage": "Example Name",
+ "contract_status": "Example Name",
+ "revenue": "Example Name",
+ "archived_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "logo_asset": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -105,17 +218,34 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/", {
- method: "PATCH",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- email: "example-email",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ description: "example-value",
+ description_html: "Example content
",
+ description_stripped: "Example description",
+ email: "Example Name",
+ website_url: "https://example.com/resource",
+ logo_props: "example-value",
+ domain: "Example Name",
+ employees: 1,
+ stage: "Example Name",
+ contract_status: "Example Name",
+ revenue: "Example Name",
+ archived_at: "2024-01-01T00:00:00Z",
+ created_by: "550e8400-e29b-41d4-a716-446655440000",
+ updated_by: "550e8400-e29b-41d4-a716-446655440000",
+ logo_asset: "550e8400-e29b-41d4-a716-446655440000",
+ }),
+ }
+);
const data = await response.json();
```
@@ -126,12 +256,23 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "example-value",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "customer_request_count": 1,
+ "logo_url": "Example Name",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "description_binary": "Example description",
+ "email": "Example Name"
}
```
+
diff --git a/docs/api-reference/customer/update-customer-property-detail.md b/docs/api-reference/customer/update-customer-property-detail.md
index 35cc0f9..750379c 100644
--- a/docs/api-reference/customer/update-customer-property-detail.md
+++ b/docs/api-reference/customer/update-customer-property-detail.md
@@ -1,20 +1,20 @@
---
title: Update a customer property
-description: Update a customer property via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Update a customer property via Plane API. HTTP request format, parameters, scopes, and example responses for update a customer property.
+keywords: plane, plane api, rest api, api integration, customer, update a customer property
---
# Update a customer property
PATCH
- /api/v1/workspaces/{workspace_slug}/customer-properties/{property_id}/
+ /api/v1/workspaces/{slug}/customer-properties/{pk}/
-Updates an existing customer property definition by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Update an existing customer property with the provided fields.
@@ -22,15 +22,15 @@ Updates an existing customer property definition by setting the values of the pa
-
+
-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`.
+Pk.
-
+
-The unique identifier for the customer property.
+Slug.
@@ -43,93 +43,108 @@ The unique identifier for the customer property.
-
+
-Name of the property.
+Display name.
-
+
-Display name of the property.
+Description.
-
+
-Description of the property.
+Logo props.
-
+
-Type of the property.
+Sort order.
-
+
-Relation type of the property.
+- `TEXT` - Text
+- `DATETIME` - Datetime
+- `DECIMAL` - Decimal
+- `BOOLEAN` - Boolean
+- `OPTION` - Option
+- `RELATION` - Relation
+- `URL` - URL
+- `EMAIL` - Email
+- `FILE` - File
-
+
-Whether the property is required.
+- `ISSUE` - Issue
+- `USER` - User
-
+
-Whether the property supports multiple values.
+Is required.
-
+
-Whether the property is active.
+Default value.
-
+
-Sort order for the property.
+Settings.
-
+
-Default values for the property.
+Is active.
-
+
-Settings for the property.
+Is multi.
-
+
-Validation rules for the property.
+Validation rules.
-
+
-Logo properties for the property.
+External source.
-
+
-External source identifier.
+External id.
-
+
-External ID from the external source.
+Created by.
+
+
+
+
+
+Updated by.
@@ -145,6 +160,7 @@ External ID from the external source.
+
@@ -152,26 +168,29 @@ External ID from the external source.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/{property_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "display_name": "example-display_name",
- "description": "example-description",
- "property_type": "example-property_type",
- "relation_type": "example-relation_type",
+ "display_name": "Example Name",
+ "description": "Example description",
+ "logo_props": "example-value",
+ "sort_order": 1,
+ "property_type": "TEXT",
+ "relation_type": "ISSUE",
"is_required": true,
- "is_multi": true,
+ "default_value": [
+ "Example Name"
+ ],
+ "settings": "example-value",
"is_active": true,
- "sort_order": 1,
- "default_value": "example-default_value",
- "settings": "example-settings",
- "validation_rules": "example-validation_rules",
- "logo_props": "example-logo_props",
- "external_source": "example-external_source",
- "external_id": "example-external_id"
+ "is_multi": true,
+ "validation_rules": "example-value",
+ "external_source": "github",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -182,25 +201,28 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'display_name': 'example-display_name',
- 'description': 'example-description',
- 'property_type': 'example-property_type',
- 'relation_type': 'example-relation_type',
- 'is_required': true,
- 'is_multi': true,
- 'is_active': true,
- 'sort_order': 1,
- 'default_value': 'example-default_value',
- 'settings': 'example-settings',
- 'validation_rules': 'example-validation_rules',
- 'logo_props': 'example-logo_props',
- 'external_source': 'example-external_source',
- 'external_id': 'example-external_id'
-}
+ "display_name": "Example Name",
+ "description": "Example description",
+ "logo_props": "example-value",
+ "sort_order": 1,
+ "property_type": "TEXT",
+ "relation_type": "ISSUE",
+ "is_required": true,
+ "default_value": [
+"Example Name"
+ ],
+ "settings": "example-value",
+ "is_active": true,
+ "is_multi": true,
+ "validation_rules": "example-value",
+ "external_source": "github",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -209,30 +231,34 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/{property_id}/", {
- method: "PATCH",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- display_name: "example-display_name",
- description: "example-description",
- property_type: "example-property_type",
- relation_type: "example-relation_type",
- is_required: true,
- is_multi: true,
- is_active: true,
- sort_order: 1,
- default_value: "example-default_value",
- settings: "example-settings",
- validation_rules: "example-validation_rules",
- logo_props: "example-logo_props",
- external_source: "example-external_source",
- external_id: "example-external_id",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ display_name: "Example Name",
+ description: "Example description",
+ logo_props: "example-value",
+ sort_order: 1,
+ property_type: "TEXT",
+ relation_type: "ISSUE",
+ is_required: true,
+ default_value: ["Example Name"],
+ settings: "example-value",
+ is_active: true,
+ is_multi: true,
+ validation_rules: "example-value",
+ external_source: "github",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ created_by: "550e8400-e29b-41d4-a716-446655440000",
+ updated_by: "550e8400-e29b-41d4-a716-446655440000",
+ }),
+ }
+);
const data = await response.json();
```
@@ -243,12 +269,23 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "display_name": "Example Name",
+ "description": "Example description",
+ "property_type": "TEXT",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "logo_props": "example-value",
+ "sort_order": 1,
+ "relation_type": "ISSUE",
+ "is_required": true
}
```
+
diff --git a/docs/api-reference/customer/update-customer-property-value.md b/docs/api-reference/customer/update-customer-property-value.md
index bf8d37c..041d31b 100644
--- a/docs/api-reference/customer/update-customer-property-value.md
+++ b/docs/api-reference/customer/update-customer-property-value.md
@@ -1,20 +1,20 @@
---
title: Update a customer property value
-description: Update a customer property value via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Update a customer property value via Plane API. HTTP request format, parameters, scopes, and example responses for update a customer property value.
+keywords: plane, plane api, rest api, api integration, customer, update a customer property value
---
# Update a customer property value
PATCH
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/property-values/{property_id}/
+ /api/v1/workspaces/{slug}/customers/{customer_id}/property-values/{property_id}/
-Updates a property value for a customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Update values for a specific property of a customer.
@@ -22,21 +22,21 @@ Updates a property value for a customer by setting the values of the 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`.
+Customer id.
-
+
-The unique identifier for the customer.
+Property id.
-
+
-The unique identifier for the customer property.
+Slug.
@@ -51,7 +51,7 @@ The unique identifier for the customer property.
-Array of values to set for the property.
+Array of values for the property
@@ -67,6 +67,7 @@ Array of values to set for the property.
+
@@ -74,12 +75,14 @@ Array of values to set for the property.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/property-values/{property_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/property-values/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "values": "example-values"
+ "values": [
+ "Example Name"
+ ]
}'
```
@@ -90,13 +93,15 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/property-values/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/property-values/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"},
json={
- 'values': 'example-values'
-}
+ "values": [
+"Example Name"
+ ]
+ }
)
-print(response.json())
+print(response.status_code)
```
@@ -104,7 +109,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/property-values/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/property-values/550e8400-e29b-41d4-a716-446655440001/",
{
method: "PATCH",
headers: {
@@ -112,26 +117,22 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- values: "example-values",
+ values: ["Example Name"],
}),
}
);
-const data = await response.json();
+console.log(response.status);
```
-
+
-```json
-{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
-}
-```
+No response body.
+
diff --git a/docs/api-reference/customer/update-customer-request-detail.md b/docs/api-reference/customer/update-customer-request-detail.md
index fa0a695..3cbf60b 100644
--- a/docs/api-reference/customer/update-customer-request-detail.md
+++ b/docs/api-reference/customer/update-customer-request-detail.md
@@ -1,20 +1,20 @@
---
title: Update a customer request
-description: Update a customer request via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, customers, crm, customer management
+description: Update a customer request via Plane API. HTTP request format, parameters, scopes, and example responses for update a customer request.
+keywords: plane, plane api, rest api, api integration, customer, update a customer request
---
# Update a customer request
PATCH
- /api/v1/workspaces/{workspace_slug}/customers/{customer_id}/requests/{request_id}/
+ /api/v1/workspaces/{slug}/customers/{customer_id}/requests/{pk}/
-Updates an existing customer request by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Update an existing customer request with the provided fields.
@@ -22,21 +22,21 @@ Updates an existing customer request by setting the values of the parameters pas
-
+
-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`.
+Customer id.
-
+
-The unique identifier for the customer.
+Pk.
-
+
-The unique identifier for the request.
+Slug.
@@ -49,15 +49,33 @@ The unique identifier for the request.
-
+
-Title of the request.
+Name.
-
+
-Description of the request.
+Description.
+
+
+
+
+
+Description html.
+
+
+
+
+
+Link.
+
+
+
+
+
+Work item ids.
@@ -73,6 +91,7 @@ Description of the request.
+
@@ -80,13 +99,18 @@ Description of the request.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/{request_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "title": "example-title",
- "description": "example-description"
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "link": "https://example.com/resource",
+ "work_item_ids": [
+ "550e8400-e29b-41d4-a716-446655440000"
+ ]
}'
```
@@ -97,12 +121,17 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/{request_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'title': 'example-title',
- 'description': 'example-description'
-}
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "link": "https://example.com/resource",
+ "work_item_ids": [
+"550e8400-e29b-41d4-a716-446655440000"
+ ]
+ }
)
print(response.json())
```
@@ -112,7 +141,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/customers/{customer_id}/requests/{request_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/customers/550e8400-e29b-41d4-a716-446655440001/requests/550e8400-e29b-41d4-a716-446655440000/",
{
method: "PATCH",
headers: {
@@ -120,8 +149,11 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- title: "example-title",
- description: "example-description",
+ name: "Example Name",
+ description: "example-value",
+ description_html: "Example content
",
+ link: "https://example.com/resource",
+ work_item_ids: ["550e8400-e29b-41d4-a716-446655440000"],
}),
}
);
@@ -135,12 +167,27 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "email": "Example Name",
+ "website_url": "https://example.com/resource",
+ "logo_props": "example-value",
+ "domain": "Example Name",
+ "employees": 1,
+ "stage": "Example Name",
+ "contract_status": "Example Name",
+ "revenue": "Example Name",
+ "archived_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "logo_asset": "550e8400-e29b-41d4-a716-446655440000"
}
```
+
diff --git a/docs/api-reference/cycle/add-cycle-work-items.md b/docs/api-reference/cycle/add-cycle-work-items.md
index 26e35c1..cb4e710 100644
--- a/docs/api-reference/cycle/add-cycle-work-items.md
+++ b/docs/api-reference/cycle/add-cycle-work-items.md
@@ -1,20 +1,20 @@
---
title: Add work items to cycle
-description: Create work items to cycle via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, cycles, sprints, iterations
+description: Add work items to cycle via Plane API. HTTP request format, parameters, scopes, and example responses for add work items to cycle.
+keywords: plane, plane api, rest api, api integration, cycle, add work items to cycle
---
# Add work items to cycle
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/cycles/{cycle_id}/cycle-issues/
+ /api/v1/workspaces/{slug}/projects/{project_id}/cycles/{cycle_id}/cycle-issues/
-Adds work items (issues) to a cycle
+Assign multiple work items to a cycle. Automatically handles bulk creation and updates with activity tracking.
@@ -22,21 +22,21 @@ Adds work items (issues) to a cycle
-
+
-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`.
+Cycle id.
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the cycle.
+Workspace slug
@@ -49,9 +49,9 @@ The unique identifier for the cycle.
-
+
-Array of work item IDs to add to the cycle.
+List of issue IDs to add to the cycle
@@ -67,6 +67,7 @@ Array of work item IDs to add to the cycle.
+
@@ -74,12 +75,15 @@ Array of work item IDs to add to the cycle.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/cycle-issues/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/cycle-issues/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "issues": "example-issues"
+ "issues": [
+ "550e8400-e29b-41d4-a716-446655440000",
+ "550e8400-e29b-41d4-a716-446655440000"
+ ]
}'
```
@@ -90,11 +94,14 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/cycle-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/cycle-issues/",
headers={"X-API-Key": "your-api-key"},
json={
- 'issues': 'example-issues'
-}
+ "issues": [
+"550e8400-e29b-41d4-a716-446655440000",
+"550e8400-e29b-41d4-a716-446655440000"
+ ]
+ }
)
print(response.json())
```
@@ -104,7 +111,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/cycle-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/cycle-issues/",
{
method: "POST",
headers: {
@@ -112,7 +119,7 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- issues: "example-issues",
+ issues: ["550e8400-e29b-41d4-a716-446655440000", "550e8400-e29b-41d4-a716-446655440000"],
}),
}
);
@@ -122,19 +129,23 @@ const data = await response.json();
-
+
```json
-{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "cycle": "550e8400-e29b-41d4-a716-446655440000",
+ "issue": "550e8400-e29b-41d4-a716-446655440000",
+ "sub_issues_count": 3,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
+ }
+]
```
+
diff --git a/docs/api-reference/cycle/add-cycle.md b/docs/api-reference/cycle/add-cycle.md
index 5435883..c858350 100644
--- a/docs/api-reference/cycle/add-cycle.md
+++ b/docs/api-reference/cycle/add-cycle.md
@@ -1,20 +1,20 @@
---
title: Create a cycle
-description: Create a cycle via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, cycles, sprints, iterations
+description: Create a cycle via Plane API. HTTP request format, parameters, scopes, and example responses for create a cycle.
+keywords: plane, plane api, rest api, api integration, cycle, create a cycle
---
# Create a cycle
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/cycles/
+ /api/v1/workspaces/{slug}/projects/{project_id}/cycles/
-Creates a new cycle in a project.
+Create a new development cycle with specified name, description, and date range. Supports external ID tracking for integration purposes.
@@ -22,15 +22,15 @@ Creates a new cycle in a project.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
@@ -45,55 +45,481 @@ The unique identifier of the project.
-Name of the cycle.
+Name.
-
+
-Description of the cycle.
+Description.
-
+
-Start date of the cycle in YYYY-MM-DD format.
+Start date.
-
+
-End date of the cycle in YYYY-MM-DD format.
+End date.
-
+
-ID of the user who owns the cycle.
+User who owns the cycle. If not provided, defaults to the current user.
-
+
-External source identifier.
+External source.
-
+
-External ID from the external source.
+External id.
-
-
-Timezone for the cycle.
-
-
-
-
-
-ID of the project for the cycle.
+
+
+- `Africa/Abidjan` - Africa/Abidjan
+- `Africa/Accra` - Africa/Accra
+- `Africa/Addis_Ababa` - Africa/Addis_Ababa
+- `Africa/Algiers` - Africa/Algiers
+- `Africa/Asmara` - Africa/Asmara
+- `Africa/Bamako` - Africa/Bamako
+- `Africa/Bangui` - Africa/Bangui
+- `Africa/Banjul` - Africa/Banjul
+- `Africa/Bissau` - Africa/Bissau
+- `Africa/Blantyre` - Africa/Blantyre
+- `Africa/Brazzaville` - Africa/Brazzaville
+- `Africa/Bujumbura` - Africa/Bujumbura
+- `Africa/Cairo` - Africa/Cairo
+- `Africa/Casablanca` - Africa/Casablanca
+- `Africa/Ceuta` - Africa/Ceuta
+- `Africa/Conakry` - Africa/Conakry
+- `Africa/Dakar` - Africa/Dakar
+- `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam
+- `Africa/Djibouti` - Africa/Djibouti
+- `Africa/Douala` - Africa/Douala
+- `Africa/El_Aaiun` - Africa/El_Aaiun
+- `Africa/Freetown` - Africa/Freetown
+- `Africa/Gaborone` - Africa/Gaborone
+- `Africa/Harare` - Africa/Harare
+- `Africa/Johannesburg` - Africa/Johannesburg
+- `Africa/Juba` - Africa/Juba
+- `Africa/Kampala` - Africa/Kampala
+- `Africa/Khartoum` - Africa/Khartoum
+- `Africa/Kigali` - Africa/Kigali
+- `Africa/Kinshasa` - Africa/Kinshasa
+- `Africa/Lagos` - Africa/Lagos
+- `Africa/Libreville` - Africa/Libreville
+- `Africa/Lome` - Africa/Lome
+- `Africa/Luanda` - Africa/Luanda
+- `Africa/Lubumbashi` - Africa/Lubumbashi
+- `Africa/Lusaka` - Africa/Lusaka
+- `Africa/Malabo` - Africa/Malabo
+- `Africa/Maputo` - Africa/Maputo
+- `Africa/Maseru` - Africa/Maseru
+- `Africa/Mbabane` - Africa/Mbabane
+- `Africa/Mogadishu` - Africa/Mogadishu
+- `Africa/Monrovia` - Africa/Monrovia
+- `Africa/Nairobi` - Africa/Nairobi
+- `Africa/Ndjamena` - Africa/Ndjamena
+- `Africa/Niamey` - Africa/Niamey
+- `Africa/Nouakchott` - Africa/Nouakchott
+- `Africa/Ouagadougou` - Africa/Ouagadougou
+- `Africa/Porto-Novo` - Africa/Porto-Novo
+- `Africa/Sao_Tome` - Africa/Sao_Tome
+- `Africa/Tripoli` - Africa/Tripoli
+- `Africa/Tunis` - Africa/Tunis
+- `Africa/Windhoek` - Africa/Windhoek
+- `America/Adak` - America/Adak
+- `America/Anchorage` - America/Anchorage
+- `America/Anguilla` - America/Anguilla
+- `America/Antigua` - America/Antigua
+- `America/Araguaina` - America/Araguaina
+- `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires
+- `America/Argentina/Catamarca` - America/Argentina/Catamarca
+- `America/Argentina/Cordoba` - America/Argentina/Cordoba
+- `America/Argentina/Jujuy` - America/Argentina/Jujuy
+- `America/Argentina/La_Rioja` - America/Argentina/La_Rioja
+- `America/Argentina/Mendoza` - America/Argentina/Mendoza
+- `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos
+- `America/Argentina/Salta` - America/Argentina/Salta
+- `America/Argentina/San_Juan` - America/Argentina/San_Juan
+- `America/Argentina/San_Luis` - America/Argentina/San_Luis
+- `America/Argentina/Tucuman` - America/Argentina/Tucuman
+- `America/Argentina/Ushuaia` - America/Argentina/Ushuaia
+- `America/Aruba` - America/Aruba
+- `America/Asuncion` - America/Asuncion
+- `America/Atikokan` - America/Atikokan
+- `America/Bahia` - America/Bahia
+- `America/Bahia_Banderas` - America/Bahia_Banderas
+- `America/Barbados` - America/Barbados
+- `America/Belem` - America/Belem
+- `America/Belize` - America/Belize
+- `America/Blanc-Sablon` - America/Blanc-Sablon
+- `America/Boa_Vista` - America/Boa_Vista
+- `America/Bogota` - America/Bogota
+- `America/Boise` - America/Boise
+- `America/Cambridge_Bay` - America/Cambridge_Bay
+- `America/Campo_Grande` - America/Campo_Grande
+- `America/Cancun` - America/Cancun
+- `America/Caracas` - America/Caracas
+- `America/Cayenne` - America/Cayenne
+- `America/Cayman` - America/Cayman
+- `America/Chicago` - America/Chicago
+- `America/Chihuahua` - America/Chihuahua
+- `America/Ciudad_Juarez` - America/Ciudad_Juarez
+- `America/Costa_Rica` - America/Costa_Rica
+- `America/Creston` - America/Creston
+- `America/Cuiaba` - America/Cuiaba
+- `America/Curacao` - America/Curacao
+- `America/Danmarkshavn` - America/Danmarkshavn
+- `America/Dawson` - America/Dawson
+- `America/Dawson_Creek` - America/Dawson_Creek
+- `America/Denver` - America/Denver
+- `America/Detroit` - America/Detroit
+- `America/Dominica` - America/Dominica
+- `America/Edmonton` - America/Edmonton
+- `America/Eirunepe` - America/Eirunepe
+- `America/El_Salvador` - America/El_Salvador
+- `America/Fort_Nelson` - America/Fort_Nelson
+- `America/Fortaleza` - America/Fortaleza
+- `America/Glace_Bay` - America/Glace_Bay
+- `America/Goose_Bay` - America/Goose_Bay
+- `America/Grand_Turk` - America/Grand_Turk
+- `America/Grenada` - America/Grenada
+- `America/Guadeloupe` - America/Guadeloupe
+- `America/Guatemala` - America/Guatemala
+- `America/Guayaquil` - America/Guayaquil
+- `America/Guyana` - America/Guyana
+- `America/Halifax` - America/Halifax
+- `America/Havana` - America/Havana
+- `America/Hermosillo` - America/Hermosillo
+- `America/Indiana/Indianapolis` - America/Indiana/Indianapolis
+- `America/Indiana/Knox` - America/Indiana/Knox
+- `America/Indiana/Marengo` - America/Indiana/Marengo
+- `America/Indiana/Petersburg` - America/Indiana/Petersburg
+- `America/Indiana/Tell_City` - America/Indiana/Tell_City
+- `America/Indiana/Vevay` - America/Indiana/Vevay
+- `America/Indiana/Vincennes` - America/Indiana/Vincennes
+- `America/Indiana/Winamac` - America/Indiana/Winamac
+- `America/Inuvik` - America/Inuvik
+- `America/Iqaluit` - America/Iqaluit
+- `America/Jamaica` - America/Jamaica
+- `America/Juneau` - America/Juneau
+- `America/Kentucky/Louisville` - America/Kentucky/Louisville
+- `America/Kentucky/Monticello` - America/Kentucky/Monticello
+- `America/Kralendijk` - America/Kralendijk
+- `America/La_Paz` - America/La_Paz
+- `America/Lima` - America/Lima
+- `America/Los_Angeles` - America/Los_Angeles
+- `America/Lower_Princes` - America/Lower_Princes
+- `America/Maceio` - America/Maceio
+- `America/Managua` - America/Managua
+- `America/Manaus` - America/Manaus
+- `America/Marigot` - America/Marigot
+- `America/Martinique` - America/Martinique
+- `America/Matamoros` - America/Matamoros
+- `America/Mazatlan` - America/Mazatlan
+- `America/Menominee` - America/Menominee
+- `America/Merida` - America/Merida
+- `America/Metlakatla` - America/Metlakatla
+- `America/Mexico_City` - America/Mexico_City
+- `America/Miquelon` - America/Miquelon
+- `America/Moncton` - America/Moncton
+- `America/Monterrey` - America/Monterrey
+- `America/Montevideo` - America/Montevideo
+- `America/Montserrat` - America/Montserrat
+- `America/Nassau` - America/Nassau
+- `America/New_York` - America/New_York
+- `America/Nome` - America/Nome
+- `America/Noronha` - America/Noronha
+- `America/North_Dakota/Beulah` - America/North_Dakota/Beulah
+- `America/North_Dakota/Center` - America/North_Dakota/Center
+- `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem
+- `America/Nuuk` - America/Nuuk
+- `America/Ojinaga` - America/Ojinaga
+- `America/Panama` - America/Panama
+- `America/Paramaribo` - America/Paramaribo
+- `America/Phoenix` - America/Phoenix
+- `America/Port-au-Prince` - America/Port-au-Prince
+- `America/Port_of_Spain` - America/Port_of_Spain
+- `America/Porto_Velho` - America/Porto_Velho
+- `America/Puerto_Rico` - America/Puerto_Rico
+- `America/Punta_Arenas` - America/Punta_Arenas
+- `America/Rankin_Inlet` - America/Rankin_Inlet
+- `America/Recife` - America/Recife
+- `America/Regina` - America/Regina
+- `America/Resolute` - America/Resolute
+- `America/Rio_Branco` - America/Rio_Branco
+- `America/Santarem` - America/Santarem
+- `America/Santiago` - America/Santiago
+- `America/Santo_Domingo` - America/Santo_Domingo
+- `America/Sao_Paulo` - America/Sao_Paulo
+- `America/Scoresbysund` - America/Scoresbysund
+- `America/Sitka` - America/Sitka
+- `America/St_Barthelemy` - America/St_Barthelemy
+- `America/St_Johns` - America/St_Johns
+- `America/St_Kitts` - America/St_Kitts
+- `America/St_Lucia` - America/St_Lucia
+- `America/St_Thomas` - America/St_Thomas
+- `America/St_Vincent` - America/St_Vincent
+- `America/Swift_Current` - America/Swift_Current
+- `America/Tegucigalpa` - America/Tegucigalpa
+- `America/Thule` - America/Thule
+- `America/Tijuana` - America/Tijuana
+- `America/Toronto` - America/Toronto
+- `America/Tortola` - America/Tortola
+- `America/Vancouver` - America/Vancouver
+- `America/Whitehorse` - America/Whitehorse
+- `America/Winnipeg` - America/Winnipeg
+- `America/Yakutat` - America/Yakutat
+- `Antarctica/Casey` - Antarctica/Casey
+- `Antarctica/Davis` - Antarctica/Davis
+- `Antarctica/DumontDUrville` - Antarctica/DumontDUrville
+- `Antarctica/Macquarie` - Antarctica/Macquarie
+- `Antarctica/Mawson` - Antarctica/Mawson
+- `Antarctica/McMurdo` - Antarctica/McMurdo
+- `Antarctica/Palmer` - Antarctica/Palmer
+- `Antarctica/Rothera` - Antarctica/Rothera
+- `Antarctica/Syowa` - Antarctica/Syowa
+- `Antarctica/Troll` - Antarctica/Troll
+- `Antarctica/Vostok` - Antarctica/Vostok
+- `Arctic/Longyearbyen` - Arctic/Longyearbyen
+- `Asia/Aden` - Asia/Aden
+- `Asia/Almaty` - Asia/Almaty
+- `Asia/Amman` - Asia/Amman
+- `Asia/Anadyr` - Asia/Anadyr
+- `Asia/Aqtau` - Asia/Aqtau
+- `Asia/Aqtobe` - Asia/Aqtobe
+- `Asia/Ashgabat` - Asia/Ashgabat
+- `Asia/Atyrau` - Asia/Atyrau
+- `Asia/Baghdad` - Asia/Baghdad
+- `Asia/Bahrain` - Asia/Bahrain
+- `Asia/Baku` - Asia/Baku
+- `Asia/Bangkok` - Asia/Bangkok
+- `Asia/Barnaul` - Asia/Barnaul
+- `Asia/Beirut` - Asia/Beirut
+- `Asia/Bishkek` - Asia/Bishkek
+- `Asia/Brunei` - Asia/Brunei
+- `Asia/Chita` - Asia/Chita
+- `Asia/Choibalsan` - Asia/Choibalsan
+- `Asia/Colombo` - Asia/Colombo
+- `Asia/Damascus` - Asia/Damascus
+- `Asia/Dhaka` - Asia/Dhaka
+- `Asia/Dili` - Asia/Dili
+- `Asia/Dubai` - Asia/Dubai
+- `Asia/Dushanbe` - Asia/Dushanbe
+- `Asia/Famagusta` - Asia/Famagusta
+- `Asia/Gaza` - Asia/Gaza
+- `Asia/Hebron` - Asia/Hebron
+- `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh
+- `Asia/Hong_Kong` - Asia/Hong_Kong
+- `Asia/Hovd` - Asia/Hovd
+- `Asia/Irkutsk` - Asia/Irkutsk
+- `Asia/Jakarta` - Asia/Jakarta
+- `Asia/Jayapura` - Asia/Jayapura
+- `Asia/Jerusalem` - Asia/Jerusalem
+- `Asia/Kabul` - Asia/Kabul
+- `Asia/Kamchatka` - Asia/Kamchatka
+- `Asia/Karachi` - Asia/Karachi
+- `Asia/Kathmandu` - Asia/Kathmandu
+- `Asia/Khandyga` - Asia/Khandyga
+- `Asia/Kolkata` - Asia/Kolkata
+- `Asia/Krasnoyarsk` - Asia/Krasnoyarsk
+- `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur
+- `Asia/Kuching` - Asia/Kuching
+- `Asia/Kuwait` - Asia/Kuwait
+- `Asia/Macau` - Asia/Macau
+- `Asia/Magadan` - Asia/Magadan
+- `Asia/Makassar` - Asia/Makassar
+- `Asia/Manila` - Asia/Manila
+- `Asia/Muscat` - Asia/Muscat
+- `Asia/Nicosia` - Asia/Nicosia
+- `Asia/Novokuznetsk` - Asia/Novokuznetsk
+- `Asia/Novosibirsk` - Asia/Novosibirsk
+- `Asia/Omsk` - Asia/Omsk
+- `Asia/Oral` - Asia/Oral
+- `Asia/Phnom_Penh` - Asia/Phnom_Penh
+- `Asia/Pontianak` - Asia/Pontianak
+- `Asia/Pyongyang` - Asia/Pyongyang
+- `Asia/Qatar` - Asia/Qatar
+- `Asia/Qostanay` - Asia/Qostanay
+- `Asia/Qyzylorda` - Asia/Qyzylorda
+- `Asia/Riyadh` - Asia/Riyadh
+- `Asia/Sakhalin` - Asia/Sakhalin
+- `Asia/Samarkand` - Asia/Samarkand
+- `Asia/Seoul` - Asia/Seoul
+- `Asia/Shanghai` - Asia/Shanghai
+- `Asia/Singapore` - Asia/Singapore
+- `Asia/Srednekolymsk` - Asia/Srednekolymsk
+- `Asia/Taipei` - Asia/Taipei
+- `Asia/Tashkent` - Asia/Tashkent
+- `Asia/Tbilisi` - Asia/Tbilisi
+- `Asia/Tehran` - Asia/Tehran
+- `Asia/Thimphu` - Asia/Thimphu
+- `Asia/Tokyo` - Asia/Tokyo
+- `Asia/Tomsk` - Asia/Tomsk
+- `Asia/Ulaanbaatar` - Asia/Ulaanbaatar
+- `Asia/Urumqi` - Asia/Urumqi
+- `Asia/Ust-Nera` - Asia/Ust-Nera
+- `Asia/Vientiane` - Asia/Vientiane
+- `Asia/Vladivostok` - Asia/Vladivostok
+- `Asia/Yakutsk` - Asia/Yakutsk
+- `Asia/Yangon` - Asia/Yangon
+- `Asia/Yekaterinburg` - Asia/Yekaterinburg
+- `Asia/Yerevan` - Asia/Yerevan
+- `Atlantic/Azores` - Atlantic/Azores
+- `Atlantic/Bermuda` - Atlantic/Bermuda
+- `Atlantic/Canary` - Atlantic/Canary
+- `Atlantic/Cape_Verde` - Atlantic/Cape_Verde
+- `Atlantic/Faroe` - Atlantic/Faroe
+- `Atlantic/Madeira` - Atlantic/Madeira
+- `Atlantic/Reykjavik` - Atlantic/Reykjavik
+- `Atlantic/South_Georgia` - Atlantic/South_Georgia
+- `Atlantic/St_Helena` - Atlantic/St_Helena
+- `Atlantic/Stanley` - Atlantic/Stanley
+- `Australia/Adelaide` - Australia/Adelaide
+- `Australia/Brisbane` - Australia/Brisbane
+- `Australia/Broken_Hill` - Australia/Broken_Hill
+- `Australia/Darwin` - Australia/Darwin
+- `Australia/Eucla` - Australia/Eucla
+- `Australia/Hobart` - Australia/Hobart
+- `Australia/Lindeman` - Australia/Lindeman
+- `Australia/Lord_Howe` - Australia/Lord_Howe
+- `Australia/Melbourne` - Australia/Melbourne
+- `Australia/Perth` - Australia/Perth
+- `Australia/Sydney` - Australia/Sydney
+- `Canada/Atlantic` - Canada/Atlantic
+- `Canada/Central` - Canada/Central
+- `Canada/Eastern` - Canada/Eastern
+- `Canada/Mountain` - Canada/Mountain
+- `Canada/Newfoundland` - Canada/Newfoundland
+- `Canada/Pacific` - Canada/Pacific
+- `Europe/Amsterdam` - Europe/Amsterdam
+- `Europe/Andorra` - Europe/Andorra
+- `Europe/Astrakhan` - Europe/Astrakhan
+- `Europe/Athens` - Europe/Athens
+- `Europe/Belgrade` - Europe/Belgrade
+- `Europe/Berlin` - Europe/Berlin
+- `Europe/Bratislava` - Europe/Bratislava
+- `Europe/Brussels` - Europe/Brussels
+- `Europe/Bucharest` - Europe/Bucharest
+- `Europe/Budapest` - Europe/Budapest
+- `Europe/Busingen` - Europe/Busingen
+- `Europe/Chisinau` - Europe/Chisinau
+- `Europe/Copenhagen` - Europe/Copenhagen
+- `Europe/Dublin` - Europe/Dublin
+- `Europe/Gibraltar` - Europe/Gibraltar
+- `Europe/Guernsey` - Europe/Guernsey
+- `Europe/Helsinki` - Europe/Helsinki
+- `Europe/Isle_of_Man` - Europe/Isle_of_Man
+- `Europe/Istanbul` - Europe/Istanbul
+- `Europe/Jersey` - Europe/Jersey
+- `Europe/Kaliningrad` - Europe/Kaliningrad
+- `Europe/Kirov` - Europe/Kirov
+- `Europe/Kyiv` - Europe/Kyiv
+- `Europe/Lisbon` - Europe/Lisbon
+- `Europe/Ljubljana` - Europe/Ljubljana
+- `Europe/London` - Europe/London
+- `Europe/Luxembourg` - Europe/Luxembourg
+- `Europe/Madrid` - Europe/Madrid
+- `Europe/Malta` - Europe/Malta
+- `Europe/Mariehamn` - Europe/Mariehamn
+- `Europe/Minsk` - Europe/Minsk
+- `Europe/Monaco` - Europe/Monaco
+- `Europe/Moscow` - Europe/Moscow
+- `Europe/Oslo` - Europe/Oslo
+- `Europe/Paris` - Europe/Paris
+- `Europe/Podgorica` - Europe/Podgorica
+- `Europe/Prague` - Europe/Prague
+- `Europe/Riga` - Europe/Riga
+- `Europe/Rome` - Europe/Rome
+- `Europe/Samara` - Europe/Samara
+- `Europe/San_Marino` - Europe/San_Marino
+- `Europe/Sarajevo` - Europe/Sarajevo
+- `Europe/Saratov` - Europe/Saratov
+- `Europe/Simferopol` - Europe/Simferopol
+- `Europe/Skopje` - Europe/Skopje
+- `Europe/Sofia` - Europe/Sofia
+- `Europe/Stockholm` - Europe/Stockholm
+- `Europe/Tallinn` - Europe/Tallinn
+- `Europe/Tirane` - Europe/Tirane
+- `Europe/Ulyanovsk` - Europe/Ulyanovsk
+- `Europe/Vaduz` - Europe/Vaduz
+- `Europe/Vatican` - Europe/Vatican
+- `Europe/Vienna` - Europe/Vienna
+- `Europe/Vilnius` - Europe/Vilnius
+- `Europe/Volgograd` - Europe/Volgograd
+- `Europe/Warsaw` - Europe/Warsaw
+- `Europe/Zagreb` - Europe/Zagreb
+- `Europe/Zurich` - Europe/Zurich
+- `GMT` - GMT
+- `Indian/Antananarivo` - Indian/Antananarivo
+- `Indian/Chagos` - Indian/Chagos
+- `Indian/Christmas` - Indian/Christmas
+- `Indian/Cocos` - Indian/Cocos
+- `Indian/Comoro` - Indian/Comoro
+- `Indian/Kerguelen` - Indian/Kerguelen
+- `Indian/Mahe` - Indian/Mahe
+- `Indian/Maldives` - Indian/Maldives
+- `Indian/Mauritius` - Indian/Mauritius
+- `Indian/Mayotte` - Indian/Mayotte
+- `Indian/Reunion` - Indian/Reunion
+- `Pacific/Apia` - Pacific/Apia
+- `Pacific/Auckland` - Pacific/Auckland
+- `Pacific/Bougainville` - Pacific/Bougainville
+- `Pacific/Chatham` - Pacific/Chatham
+- `Pacific/Chuuk` - Pacific/Chuuk
+- `Pacific/Easter` - Pacific/Easter
+- `Pacific/Efate` - Pacific/Efate
+- `Pacific/Fakaofo` - Pacific/Fakaofo
+- `Pacific/Fiji` - Pacific/Fiji
+- `Pacific/Funafuti` - Pacific/Funafuti
+- `Pacific/Galapagos` - Pacific/Galapagos
+- `Pacific/Gambier` - Pacific/Gambier
+- `Pacific/Guadalcanal` - Pacific/Guadalcanal
+- `Pacific/Guam` - Pacific/Guam
+- `Pacific/Honolulu` - Pacific/Honolulu
+- `Pacific/Kanton` - Pacific/Kanton
+- `Pacific/Kiritimati` - Pacific/Kiritimati
+- `Pacific/Kosrae` - Pacific/Kosrae
+- `Pacific/Kwajalein` - Pacific/Kwajalein
+- `Pacific/Majuro` - Pacific/Majuro
+- `Pacific/Marquesas` - Pacific/Marquesas
+- `Pacific/Midway` - Pacific/Midway
+- `Pacific/Nauru` - Pacific/Nauru
+- `Pacific/Niue` - Pacific/Niue
+- `Pacific/Norfolk` - Pacific/Norfolk
+- `Pacific/Noumea` - Pacific/Noumea
+- `Pacific/Pago_Pago` - Pacific/Pago_Pago
+- `Pacific/Palau` - Pacific/Palau
+- `Pacific/Pitcairn` - Pacific/Pitcairn
+- `Pacific/Pohnpei` - Pacific/Pohnpei
+- `Pacific/Port_Moresby` - Pacific/Port_Moresby
+- `Pacific/Rarotonga` - Pacific/Rarotonga
+- `Pacific/Saipan` - Pacific/Saipan
+- `Pacific/Tahiti` - Pacific/Tahiti
+- `Pacific/Tarawa` - Pacific/Tarawa
+- `Pacific/Tongatapu` - Pacific/Tongatapu
+- `Pacific/Wake` - Pacific/Wake
+- `Pacific/Wallis` - Pacific/Wallis
+- `US/Alaska` - US/Alaska
+- `US/Arizona` - US/Arizona
+- `US/Central` - US/Central
+- `US/Eastern` - US/Eastern
+- `US/Hawaii` - US/Hawaii
+- `US/Mountain` - US/Mountain
+- `US/Pacific` - US/Pacific
+- `UTC` - UTC
@@ -109,6 +535,7 @@ ID of the project for the cycle.
+
@@ -116,20 +543,17 @@ ID of the project for the cycle.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description",
- "start_date": "example-start_date",
- "end_date": "example-end_date",
- "owned_by": "example-owned_by",
- "external_source": "example-external_source",
- "external_id": "example-external_id",
- "timezone": "example-timezone",
- "project_id": "example-project_id"
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01T00:00:00Z",
+ "end_date": "2024-01-01T00:00:00Z",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -140,19 +564,16 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description',
- 'start_date': 'example-start_date',
- 'end_date': 'example-end_date',
- 'owned_by': 'example-owned_by',
- 'external_source': 'example-external_source',
- 'external_id': 'example-external_id',
- 'timezone': 'example-timezone',
- 'project_id': 'example-project_id'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01T00:00:00Z",
+ "end_date": "2024-01-01T00:00:00Z",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -161,24 +582,24 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/", {
- method: "POST",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- start_date: "example-start_date",
- end_date: "example-end_date",
- owned_by: "example-owned_by",
- external_source: "example-external_source",
- external_id: "example-external_id",
- timezone: "example-timezone",
- project_id: "example-project_id",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ description: "Example description",
+ start_date: "2024-01-01T00:00:00Z",
+ end_date: "2024-01-01T00:00:00Z",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
+ }),
+ }
+);
const data = await response.json();
```
@@ -189,15 +610,25 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01T00:00:00Z",
+ "end_date": "2024-01-01T00:00:00Z",
+ "status": "current",
+ "total_issues": 15,
+ "completed_issues": 8,
+ "cancelled_issues": 1,
+ "started_issues": 4,
+ "unstarted_issues": 2,
+ "backlog_issues": 0,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/cycle/archive-cycle.md b/docs/api-reference/cycle/archive-cycle.md
index 19f970a..c533804 100644
--- a/docs/api-reference/cycle/archive-cycle.md
+++ b/docs/api-reference/cycle/archive-cycle.md
@@ -1,20 +1,20 @@
---
title: Archive a cycle
-description: Archive a cycle API endpoint. Request format, parameters, and response examples for Plane REST API.
-keywords: plane, plane api, rest api, api integration, cycles, sprints, iterations
+description: Archive a cycle via Plane API. HTTP request format, parameters, scopes, and example responses for archive a cycle.
+keywords: plane, plane api, rest api, api integration, cycle, archive a cycle
---
# Archive a cycle
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/archived-cycles/{cycle_id}/archive/
+ /api/v1/workspaces/{slug}/projects/{project_id}/cycles/{cycle_id}/archive/
-Archives a cycle, while preserving its data.
+Move a completed cycle to archived status for historical tracking. Only cycles that have ended can be archived.
@@ -22,21 +22,21 @@ Archives a cycle, while preserving its data.
-
+
-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`.
+Cycle id.
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the cycle.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the cycle.
+
@@ -59,7 +60,7 @@ The unique identifier for the cycle.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/archived-cycles/cycle-uuid/archive/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/archive/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,10 +72,10 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/archived-cycles/cycle-uuid/archive/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/archive/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/archived-cycles/cycle-uuid/archive/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/archive/",
{
method: "POST",
headers: {
@@ -90,25 +91,18 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
-
+
-```json
-{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
-}
-```
+No response body.
+
diff --git a/docs/api-reference/cycle/delete-cycle.md b/docs/api-reference/cycle/delete-cycle.md
index a8ef04a..99ed115 100644
--- a/docs/api-reference/cycle/delete-cycle.md
+++ b/docs/api-reference/cycle/delete-cycle.md
@@ -1,20 +1,20 @@
---
title: Delete a cycle
-description: Permanently delete a cycle via Plane API. Removes the cycle and disassociates its work items. Returns 204 on success.
-keywords: plane, plane api, rest api, api integration, cycles, sprints, iterations
+description: Delete a cycle via Plane API. HTTP request format, parameters, scopes, and example responses for delete a cycle.
+keywords: plane, plane api, rest api, api integration, cycle, delete a cycle
---
# Delete a cycle
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/cycles/{cycle_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/cycles/{pk}/
-Permanently deletes a cycle from a project. This action cannot be undone.
+Permanently remove a cycle and all its associated issue relationships
@@ -22,21 +22,21 @@ Permanently deletes a cycle from a project. This action cannot be undone.
-
+
-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`.
+Pk.
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the cycle.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the cycle.
+
@@ -59,7 +60,7 @@ The unique identifier for the cycle.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,10 +72,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440000/",
{
method: "DELETE",
headers: {
@@ -90,7 +91,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -98,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/cycle/get-cycle-detail.md b/docs/api-reference/cycle/get-cycle-detail.md
index 9bf24f3..8983676 100644
--- a/docs/api-reference/cycle/get-cycle-detail.md
+++ b/docs/api-reference/cycle/get-cycle-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a cycle
-description: Get retrieve a cycle details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, cycles, sprints, iterations
+description: Retrieve a cycle via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a cycle.
+keywords: plane, plane api, rest api, api integration, cycle, retrieve a cycle
---
# Retrieve a cycle
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/cycles/{cycle_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/cycles/{pk}/
-Retrieves the details of an existing cycle by its ID.
+Retrieve details of a specific cycle by its ID. Supports cycle status filtering.
@@ -22,21 +22,21 @@ Retrieves the details of an existing cycle by its ID.
-
+
-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`.
+Pk.
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the cycle.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the cycle.
+
@@ -59,7 +60,7 @@ The unique identifier for the cycle.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440000/",
{
method: "GET",
headers: {
@@ -100,15 +101,25 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01T00:00:00Z",
+ "end_date": "2024-01-01T00:00:00Z",
+ "status": "current",
+ "total_issues": 15,
+ "completed_issues": 8,
+ "cancelled_issues": 1,
+ "started_issues": 4,
+ "unstarted_issues": 2,
+ "backlog_issues": 0,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/cycle/list-archived-cycles.md b/docs/api-reference/cycle/list-archived-cycles.md
index 0234b05..a9ceb77 100644
--- a/docs/api-reference/cycle/list-archived-cycles.md
+++ b/docs/api-reference/cycle/list-archived-cycles.md
@@ -1,20 +1,20 @@
---
title: List all archived cycles
-description: List all archived cycles via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, cycles, sprints, iterations
+description: List all archived cycles via Plane API. HTTP request format, parameters, scopes, and example responses for list all archived cycles.
+keywords: plane, plane api, rest api, api integration, cycle, list all archived cycles
---
# List all archived cycles
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/archived-cycles/
+ /api/v1/workspaces/{slug}/projects/{project_id}/archived-cycles/
-Returns a list of all archived cycles in a project.
+Retrieve all cycles that have been archived in the project.
@@ -22,15 +22,36 @@ Returns a list of all archived cycles in a project.
-
+
-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
-
+
+
+Workspace slug
+
+
+
+
+
+
+
-The unique identifier of the project.
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
+
+
+
+
+
+Number of results per page (default: 20, max: 100)
@@ -46,6 +67,7 @@ The unique identifier of the project.
+
@@ -53,7 +75,7 @@ The unique identifier of the project.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/archived-cycles/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archived-cycles/?cursor=20:1:0&per_page=20" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +87,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/archived-cycles/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archived-cycles/?cursor=20:1:0&per_page=20",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -76,7 +98,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/archived-cycles/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archived-cycles/?cursor=20:1:0&per_page=20",
{
method: "GET",
headers: {
@@ -94,15 +116,29 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/cycle/list-cycle-work-items.md b/docs/api-reference/cycle/list-cycle-work-items.md
index 09e4201..baedbf5 100644
--- a/docs/api-reference/cycle/list-cycle-work-items.md
+++ b/docs/api-reference/cycle/list-cycle-work-items.md
@@ -1,20 +1,20 @@
---
title: List all work items in a cycle
-description: List all work items in a cycle via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, cycles, sprints, iterations
+description: List all work items in a cycle via Plane API. HTTP request format, parameters, scopes, and example responses for list all work items in a cycle.
+keywords: plane, plane api, rest api, api integration, cycle, list all work items in a cycle
---
# List all work items in a cycle
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/cycles/{cycle_id}/cycle-issues/
+ /api/v1/workspaces/{slug}/projects/{project_id}/cycles/{cycle_id}/cycle-issues/
-Returns a list of all work items in a cycle.
+Retrieve all work items assigned to a cycle.
@@ -22,21 +22,42 @@ Returns a list of all work items in a cycle.
-
+
-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`.
+Cycle id.
-The unique identifier of the project.
+Project ID
-
+
+
+Workspace slug
+
+
+
+
+
+
+
-The unique identifier for the cycle.
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
+
+
+
+
+
+Number of results per page (default: 20, max: 100)
@@ -47,11 +68,12 @@ The unique identifier for the cycle.
### Scopes
-`projects.cycles:read` `projects.work_items:read`
+`projects.cycles:read`
+
@@ -59,7 +81,7 @@ The unique identifier for the cycle.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/cycle-issues/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/cycle-issues/?cursor=20:1:0&per_page=20" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +93,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/cycle-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/cycle-issues/?cursor=20:1:0&per_page=20",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +104,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/cycle-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/cycle-issues/?cursor=20:1:0&per_page=20",
{
method: "GET",
headers: {
@@ -100,15 +122,31 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "cycle": "550e8400-e29b-41d4-a716-446655440000",
+ "issue": "550e8400-e29b-41d4-a716-446655440000",
+ "sub_issues_count": 3,
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/cycle/list-cycles.md b/docs/api-reference/cycle/list-cycles.md
index 27f71a5..978cf75 100644
--- a/docs/api-reference/cycle/list-cycles.md
+++ b/docs/api-reference/cycle/list-cycles.md
@@ -1,20 +1,20 @@
---
title: List all cycles
-description: List all cycles via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, cycles, sprints, iterations
+description: List all cycles via Plane API. HTTP request format, parameters, scopes, and example responses for list all cycles.
+keywords: plane, plane api, rest api, api integration, cycle, list all cycles
---
# List all cycles
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/cycles/
+ /api/v1/workspaces/{slug}/projects/{project_id}/cycles/
-Returns a list of all cycles in a project.
+Retrieve all cycles in a project. Supports filtering by cycle status like current, upcoming, completed, or draft.
@@ -22,15 +22,60 @@ Returns a list of all cycles in a project.
-
+
-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
-
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
+
+
+
+
-The unique identifier of the project.
+Filter cycles by status
+
+
+
+
+
+Comma-separated list of related fields to expand in response
+
+
+
+
+
+Comma-separated list of fields to include in response
+
+
+
+
+
+Field to order results by. Prefix with '-' for descending order
+
+
+
+
+
+Number of results per page (default: 20, max: 100)
@@ -46,6 +91,7 @@ The unique identifier of the project.
+
@@ -53,7 +99,7 @@ The unique identifier of the project.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/?cursor=20:1:0&cycle_view=all" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +111,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/?cursor=20:1:0&cycle_view=all",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +121,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/?cursor=20:1:0&cycle_view=all",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -91,15 +140,32 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01T00:00:00Z",
+ "end_date": "2024-01-01T00:00:00Z",
+ "status": "current"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/cycle/remove-cycle-work-item.md b/docs/api-reference/cycle/remove-cycle-work-item.md
index 22ad6fe..7dbd1f4 100644
--- a/docs/api-reference/cycle/remove-cycle-work-item.md
+++ b/docs/api-reference/cycle/remove-cycle-work-item.md
@@ -1,20 +1,20 @@
---
title: Remove work item from cycle
-description: Delete work item from cycle via Plane API. HTTP DELETE request for removing resources.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, cycles, sprints, iterations
+description: Remove work item from cycle via Plane API. HTTP request format, parameters, scopes, and example responses for remove work item from cycle.
+keywords: plane, plane api, rest api, api integration, cycle, remove work item from cycle
---
# Remove work item from cycle
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/cycles/{cycle_id}/cycle-issues/{issue_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/cycles/{cycle_id}/cycle-issues/{issue_id}/
-Removes a work item from a cycle.
+Remove a work item from a cycle while keeping the work item in the project.
@@ -22,27 +22,27 @@ Removes a work item from a cycle.
-
+
-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`.
+Cycle id.
-
+
-The unique identifier of the project.
+Issue id.
-
+
-The unique identifier for the cycle.
+Project ID
-
+
-The unique identifier for the work item.
+Workspace slug
@@ -58,6 +58,7 @@ The unique identifier for the work item.
+
@@ -65,7 +66,7 @@ The unique identifier for the work item.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/cycle-issues/issue-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/cycle-issues/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,10 +78,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/cycle-issues/issue-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/cycle-issues/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/cycle-issues/issue-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/cycle-issues/550e8400-e29b-41d4-a716-446655440001/",
{
method: "DELETE",
headers: {
@@ -96,7 +97,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -104,11 +105,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/cycle/transfer-cycle-work-items.md b/docs/api-reference/cycle/transfer-cycle-work-items.md
index 74937ca..754f91d 100644
--- a/docs/api-reference/cycle/transfer-cycle-work-items.md
+++ b/docs/api-reference/cycle/transfer-cycle-work-items.md
@@ -1,20 +1,20 @@
---
title: Transfer cycle work items
-description: Transfer cycle work items API endpoint. Request format, parameters, and response examples for Plane REST API.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, cycles, sprints, iterations
+description: Transfer cycle work items via Plane API. HTTP request format, parameters, scopes, and example responses for transfer cycle work items.
+keywords: plane, plane api, rest api, api integration, cycle, transfer cycle work items
---
# Transfer cycle work items
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/cycles/{cycle_id}/transfer-issues/
+ /api/v1/workspaces/{slug}/projects/{project_id}/cycles/{cycle_id}/transfer-issues/
-Transfers all work items from one cycle to another.
+Move incomplete work items from the current cycle to a new target cycle. Captures progress snapshot and transfers only unfinished work items.
@@ -22,21 +22,21 @@ Transfers all work items from one cycle to another.
-
+
-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`.
+Cycle id.
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the cycle.
+Workspace slug
@@ -51,7 +51,7 @@ The unique identifier for the cycle.
-ID of the target cycle to transfer work items to.
+ID of the target cycle to transfer issues to
@@ -67,6 +67,7 @@ ID of the target cycle to transfer work items to.
+
@@ -74,12 +75,12 @@ ID of the target cycle to transfer work items to.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/transfer-issues/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/transfer-issues/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "new_cycle_id": "example-new_cycle_id"
+ "new_cycle_id": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -90,11 +91,11 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/transfer-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/transfer-issues/",
headers={"X-API-Key": "your-api-key"},
json={
- 'new_cycle_id': 'example-new_cycle_id'
-}
+ "new_cycle_id": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -104,7 +105,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/transfer-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440001/transfer-issues/",
{
method: "POST",
headers: {
@@ -112,7 +113,7 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- new_cycle_id: "example-new_cycle_id",
+ new_cycle_id: "550e8400-e29b-41d4-a716-446655440000",
}),
}
);
@@ -122,19 +123,16 @@ const data = await response.json();
-
+
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "message": "Success"
}
```
+
diff --git a/docs/api-reference/cycle/unarchive-cycle.md b/docs/api-reference/cycle/unarchive-cycle.md
index 0b35f4d..8ea4b33 100644
--- a/docs/api-reference/cycle/unarchive-cycle.md
+++ b/docs/api-reference/cycle/unarchive-cycle.md
@@ -1,20 +1,20 @@
---
title: Restore a cycle
-description: Restore a cycle API endpoint. Request format, parameters, and response examples for Plane REST API.
-keywords: plane, plane api, rest api, api integration, cycles, sprints, iterations
+description: Restore a cycle via Plane API. HTTP request format, parameters, scopes, and example responses for restore a cycle.
+keywords: plane, plane api, rest api, api integration, cycle, restore a cycle
---
# Restore a cycle
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/archived-cycles/{cycle_id}/unarchive/
+ /api/v1/workspaces/{slug}/projects/{project_id}/archived-cycles/{cycle_id}/unarchive/
-Restores an archived cycle back to the active cycles list.
+Restore an archived cycle to active status, making it available for regular use.
@@ -22,21 +22,21 @@ Restores an archived cycle back to the active cycles list.
-
+
-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`.
+Cycle id.
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the cycle.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the cycle.
+
@@ -59,7 +60,7 @@ The unique identifier for the cycle.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/archived-cycles/cycle-uuid/unarchive/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archived-cycles/550e8400-e29b-41d4-a716-446655440001/unarchive/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,10 +72,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/archived-cycles/cycle-uuid/unarchive/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archived-cycles/550e8400-e29b-41d4-a716-446655440001/unarchive/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/archived-cycles/cycle-uuid/unarchive/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archived-cycles/550e8400-e29b-41d4-a716-446655440001/unarchive/",
{
method: "DELETE",
headers: {
@@ -90,7 +91,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -98,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/cycle/update-cycle-detail.md b/docs/api-reference/cycle/update-cycle-detail.md
index 5a116ea..ef789ea 100644
--- a/docs/api-reference/cycle/update-cycle-detail.md
+++ b/docs/api-reference/cycle/update-cycle-detail.md
@@ -1,20 +1,20 @@
---
title: Update a cycle
-description: Update a cycle via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, cycles, sprints, iterations
+description: Update a cycle via Plane API. HTTP request format, parameters, scopes, and example responses for update a cycle.
+keywords: plane, plane api, rest api, api integration, cycle, update a cycle
---
# Update a cycle
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/cycles/{cycle_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/cycles/{pk}/
-Updates an existing cycle by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Modify an existing cycle's properties like name, description, or date range. Completed cycles can only have their sort order changed.
@@ -22,21 +22,21 @@ Updates an existing cycle by setting the values of the parameters passed. Any pa
-
+
-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`.
+Pk.
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the cycle.
+Workspace slug
@@ -49,51 +49,483 @@ The unique identifier for the cycle.
-
+
-Name of the cycle.
+Name.
-
+
-Description of the cycle.
+Description.
-
+
-Start date of the cycle in YYYY-MM-DD format.
+Start date.
-
+
-End date of the cycle in YYYY-MM-DD format.
+End date.
-
+
-ID of the user who owns the cycle.
+User who owns the cycle. If not provided, defaults to the current user.
-
+
-External source identifier.
+External source.
-
+
-External ID from the external source.
+External id.
-
-
-Timezone for the cycle.
+
+
+- `Africa/Abidjan` - Africa/Abidjan
+- `Africa/Accra` - Africa/Accra
+- `Africa/Addis_Ababa` - Africa/Addis_Ababa
+- `Africa/Algiers` - Africa/Algiers
+- `Africa/Asmara` - Africa/Asmara
+- `Africa/Bamako` - Africa/Bamako
+- `Africa/Bangui` - Africa/Bangui
+- `Africa/Banjul` - Africa/Banjul
+- `Africa/Bissau` - Africa/Bissau
+- `Africa/Blantyre` - Africa/Blantyre
+- `Africa/Brazzaville` - Africa/Brazzaville
+- `Africa/Bujumbura` - Africa/Bujumbura
+- `Africa/Cairo` - Africa/Cairo
+- `Africa/Casablanca` - Africa/Casablanca
+- `Africa/Ceuta` - Africa/Ceuta
+- `Africa/Conakry` - Africa/Conakry
+- `Africa/Dakar` - Africa/Dakar
+- `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam
+- `Africa/Djibouti` - Africa/Djibouti
+- `Africa/Douala` - Africa/Douala
+- `Africa/El_Aaiun` - Africa/El_Aaiun
+- `Africa/Freetown` - Africa/Freetown
+- `Africa/Gaborone` - Africa/Gaborone
+- `Africa/Harare` - Africa/Harare
+- `Africa/Johannesburg` - Africa/Johannesburg
+- `Africa/Juba` - Africa/Juba
+- `Africa/Kampala` - Africa/Kampala
+- `Africa/Khartoum` - Africa/Khartoum
+- `Africa/Kigali` - Africa/Kigali
+- `Africa/Kinshasa` - Africa/Kinshasa
+- `Africa/Lagos` - Africa/Lagos
+- `Africa/Libreville` - Africa/Libreville
+- `Africa/Lome` - Africa/Lome
+- `Africa/Luanda` - Africa/Luanda
+- `Africa/Lubumbashi` - Africa/Lubumbashi
+- `Africa/Lusaka` - Africa/Lusaka
+- `Africa/Malabo` - Africa/Malabo
+- `Africa/Maputo` - Africa/Maputo
+- `Africa/Maseru` - Africa/Maseru
+- `Africa/Mbabane` - Africa/Mbabane
+- `Africa/Mogadishu` - Africa/Mogadishu
+- `Africa/Monrovia` - Africa/Monrovia
+- `Africa/Nairobi` - Africa/Nairobi
+- `Africa/Ndjamena` - Africa/Ndjamena
+- `Africa/Niamey` - Africa/Niamey
+- `Africa/Nouakchott` - Africa/Nouakchott
+- `Africa/Ouagadougou` - Africa/Ouagadougou
+- `Africa/Porto-Novo` - Africa/Porto-Novo
+- `Africa/Sao_Tome` - Africa/Sao_Tome
+- `Africa/Tripoli` - Africa/Tripoli
+- `Africa/Tunis` - Africa/Tunis
+- `Africa/Windhoek` - Africa/Windhoek
+- `America/Adak` - America/Adak
+- `America/Anchorage` - America/Anchorage
+- `America/Anguilla` - America/Anguilla
+- `America/Antigua` - America/Antigua
+- `America/Araguaina` - America/Araguaina
+- `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires
+- `America/Argentina/Catamarca` - America/Argentina/Catamarca
+- `America/Argentina/Cordoba` - America/Argentina/Cordoba
+- `America/Argentina/Jujuy` - America/Argentina/Jujuy
+- `America/Argentina/La_Rioja` - America/Argentina/La_Rioja
+- `America/Argentina/Mendoza` - America/Argentina/Mendoza
+- `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos
+- `America/Argentina/Salta` - America/Argentina/Salta
+- `America/Argentina/San_Juan` - America/Argentina/San_Juan
+- `America/Argentina/San_Luis` - America/Argentina/San_Luis
+- `America/Argentina/Tucuman` - America/Argentina/Tucuman
+- `America/Argentina/Ushuaia` - America/Argentina/Ushuaia
+- `America/Aruba` - America/Aruba
+- `America/Asuncion` - America/Asuncion
+- `America/Atikokan` - America/Atikokan
+- `America/Bahia` - America/Bahia
+- `America/Bahia_Banderas` - America/Bahia_Banderas
+- `America/Barbados` - America/Barbados
+- `America/Belem` - America/Belem
+- `America/Belize` - America/Belize
+- `America/Blanc-Sablon` - America/Blanc-Sablon
+- `America/Boa_Vista` - America/Boa_Vista
+- `America/Bogota` - America/Bogota
+- `America/Boise` - America/Boise
+- `America/Cambridge_Bay` - America/Cambridge_Bay
+- `America/Campo_Grande` - America/Campo_Grande
+- `America/Cancun` - America/Cancun
+- `America/Caracas` - America/Caracas
+- `America/Cayenne` - America/Cayenne
+- `America/Cayman` - America/Cayman
+- `America/Chicago` - America/Chicago
+- `America/Chihuahua` - America/Chihuahua
+- `America/Ciudad_Juarez` - America/Ciudad_Juarez
+- `America/Costa_Rica` - America/Costa_Rica
+- `America/Creston` - America/Creston
+- `America/Cuiaba` - America/Cuiaba
+- `America/Curacao` - America/Curacao
+- `America/Danmarkshavn` - America/Danmarkshavn
+- `America/Dawson` - America/Dawson
+- `America/Dawson_Creek` - America/Dawson_Creek
+- `America/Denver` - America/Denver
+- `America/Detroit` - America/Detroit
+- `America/Dominica` - America/Dominica
+- `America/Edmonton` - America/Edmonton
+- `America/Eirunepe` - America/Eirunepe
+- `America/El_Salvador` - America/El_Salvador
+- `America/Fort_Nelson` - America/Fort_Nelson
+- `America/Fortaleza` - America/Fortaleza
+- `America/Glace_Bay` - America/Glace_Bay
+- `America/Goose_Bay` - America/Goose_Bay
+- `America/Grand_Turk` - America/Grand_Turk
+- `America/Grenada` - America/Grenada
+- `America/Guadeloupe` - America/Guadeloupe
+- `America/Guatemala` - America/Guatemala
+- `America/Guayaquil` - America/Guayaquil
+- `America/Guyana` - America/Guyana
+- `America/Halifax` - America/Halifax
+- `America/Havana` - America/Havana
+- `America/Hermosillo` - America/Hermosillo
+- `America/Indiana/Indianapolis` - America/Indiana/Indianapolis
+- `America/Indiana/Knox` - America/Indiana/Knox
+- `America/Indiana/Marengo` - America/Indiana/Marengo
+- `America/Indiana/Petersburg` - America/Indiana/Petersburg
+- `America/Indiana/Tell_City` - America/Indiana/Tell_City
+- `America/Indiana/Vevay` - America/Indiana/Vevay
+- `America/Indiana/Vincennes` - America/Indiana/Vincennes
+- `America/Indiana/Winamac` - America/Indiana/Winamac
+- `America/Inuvik` - America/Inuvik
+- `America/Iqaluit` - America/Iqaluit
+- `America/Jamaica` - America/Jamaica
+- `America/Juneau` - America/Juneau
+- `America/Kentucky/Louisville` - America/Kentucky/Louisville
+- `America/Kentucky/Monticello` - America/Kentucky/Monticello
+- `America/Kralendijk` - America/Kralendijk
+- `America/La_Paz` - America/La_Paz
+- `America/Lima` - America/Lima
+- `America/Los_Angeles` - America/Los_Angeles
+- `America/Lower_Princes` - America/Lower_Princes
+- `America/Maceio` - America/Maceio
+- `America/Managua` - America/Managua
+- `America/Manaus` - America/Manaus
+- `America/Marigot` - America/Marigot
+- `America/Martinique` - America/Martinique
+- `America/Matamoros` - America/Matamoros
+- `America/Mazatlan` - America/Mazatlan
+- `America/Menominee` - America/Menominee
+- `America/Merida` - America/Merida
+- `America/Metlakatla` - America/Metlakatla
+- `America/Mexico_City` - America/Mexico_City
+- `America/Miquelon` - America/Miquelon
+- `America/Moncton` - America/Moncton
+- `America/Monterrey` - America/Monterrey
+- `America/Montevideo` - America/Montevideo
+- `America/Montserrat` - America/Montserrat
+- `America/Nassau` - America/Nassau
+- `America/New_York` - America/New_York
+- `America/Nome` - America/Nome
+- `America/Noronha` - America/Noronha
+- `America/North_Dakota/Beulah` - America/North_Dakota/Beulah
+- `America/North_Dakota/Center` - America/North_Dakota/Center
+- `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem
+- `America/Nuuk` - America/Nuuk
+- `America/Ojinaga` - America/Ojinaga
+- `America/Panama` - America/Panama
+- `America/Paramaribo` - America/Paramaribo
+- `America/Phoenix` - America/Phoenix
+- `America/Port-au-Prince` - America/Port-au-Prince
+- `America/Port_of_Spain` - America/Port_of_Spain
+- `America/Porto_Velho` - America/Porto_Velho
+- `America/Puerto_Rico` - America/Puerto_Rico
+- `America/Punta_Arenas` - America/Punta_Arenas
+- `America/Rankin_Inlet` - America/Rankin_Inlet
+- `America/Recife` - America/Recife
+- `America/Regina` - America/Regina
+- `America/Resolute` - America/Resolute
+- `America/Rio_Branco` - America/Rio_Branco
+- `America/Santarem` - America/Santarem
+- `America/Santiago` - America/Santiago
+- `America/Santo_Domingo` - America/Santo_Domingo
+- `America/Sao_Paulo` - America/Sao_Paulo
+- `America/Scoresbysund` - America/Scoresbysund
+- `America/Sitka` - America/Sitka
+- `America/St_Barthelemy` - America/St_Barthelemy
+- `America/St_Johns` - America/St_Johns
+- `America/St_Kitts` - America/St_Kitts
+- `America/St_Lucia` - America/St_Lucia
+- `America/St_Thomas` - America/St_Thomas
+- `America/St_Vincent` - America/St_Vincent
+- `America/Swift_Current` - America/Swift_Current
+- `America/Tegucigalpa` - America/Tegucigalpa
+- `America/Thule` - America/Thule
+- `America/Tijuana` - America/Tijuana
+- `America/Toronto` - America/Toronto
+- `America/Tortola` - America/Tortola
+- `America/Vancouver` - America/Vancouver
+- `America/Whitehorse` - America/Whitehorse
+- `America/Winnipeg` - America/Winnipeg
+- `America/Yakutat` - America/Yakutat
+- `Antarctica/Casey` - Antarctica/Casey
+- `Antarctica/Davis` - Antarctica/Davis
+- `Antarctica/DumontDUrville` - Antarctica/DumontDUrville
+- `Antarctica/Macquarie` - Antarctica/Macquarie
+- `Antarctica/Mawson` - Antarctica/Mawson
+- `Antarctica/McMurdo` - Antarctica/McMurdo
+- `Antarctica/Palmer` - Antarctica/Palmer
+- `Antarctica/Rothera` - Antarctica/Rothera
+- `Antarctica/Syowa` - Antarctica/Syowa
+- `Antarctica/Troll` - Antarctica/Troll
+- `Antarctica/Vostok` - Antarctica/Vostok
+- `Arctic/Longyearbyen` - Arctic/Longyearbyen
+- `Asia/Aden` - Asia/Aden
+- `Asia/Almaty` - Asia/Almaty
+- `Asia/Amman` - Asia/Amman
+- `Asia/Anadyr` - Asia/Anadyr
+- `Asia/Aqtau` - Asia/Aqtau
+- `Asia/Aqtobe` - Asia/Aqtobe
+- `Asia/Ashgabat` - Asia/Ashgabat
+- `Asia/Atyrau` - Asia/Atyrau
+- `Asia/Baghdad` - Asia/Baghdad
+- `Asia/Bahrain` - Asia/Bahrain
+- `Asia/Baku` - Asia/Baku
+- `Asia/Bangkok` - Asia/Bangkok
+- `Asia/Barnaul` - Asia/Barnaul
+- `Asia/Beirut` - Asia/Beirut
+- `Asia/Bishkek` - Asia/Bishkek
+- `Asia/Brunei` - Asia/Brunei
+- `Asia/Chita` - Asia/Chita
+- `Asia/Choibalsan` - Asia/Choibalsan
+- `Asia/Colombo` - Asia/Colombo
+- `Asia/Damascus` - Asia/Damascus
+- `Asia/Dhaka` - Asia/Dhaka
+- `Asia/Dili` - Asia/Dili
+- `Asia/Dubai` - Asia/Dubai
+- `Asia/Dushanbe` - Asia/Dushanbe
+- `Asia/Famagusta` - Asia/Famagusta
+- `Asia/Gaza` - Asia/Gaza
+- `Asia/Hebron` - Asia/Hebron
+- `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh
+- `Asia/Hong_Kong` - Asia/Hong_Kong
+- `Asia/Hovd` - Asia/Hovd
+- `Asia/Irkutsk` - Asia/Irkutsk
+- `Asia/Jakarta` - Asia/Jakarta
+- `Asia/Jayapura` - Asia/Jayapura
+- `Asia/Jerusalem` - Asia/Jerusalem
+- `Asia/Kabul` - Asia/Kabul
+- `Asia/Kamchatka` - Asia/Kamchatka
+- `Asia/Karachi` - Asia/Karachi
+- `Asia/Kathmandu` - Asia/Kathmandu
+- `Asia/Khandyga` - Asia/Khandyga
+- `Asia/Kolkata` - Asia/Kolkata
+- `Asia/Krasnoyarsk` - Asia/Krasnoyarsk
+- `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur
+- `Asia/Kuching` - Asia/Kuching
+- `Asia/Kuwait` - Asia/Kuwait
+- `Asia/Macau` - Asia/Macau
+- `Asia/Magadan` - Asia/Magadan
+- `Asia/Makassar` - Asia/Makassar
+- `Asia/Manila` - Asia/Manila
+- `Asia/Muscat` - Asia/Muscat
+- `Asia/Nicosia` - Asia/Nicosia
+- `Asia/Novokuznetsk` - Asia/Novokuznetsk
+- `Asia/Novosibirsk` - Asia/Novosibirsk
+- `Asia/Omsk` - Asia/Omsk
+- `Asia/Oral` - Asia/Oral
+- `Asia/Phnom_Penh` - Asia/Phnom_Penh
+- `Asia/Pontianak` - Asia/Pontianak
+- `Asia/Pyongyang` - Asia/Pyongyang
+- `Asia/Qatar` - Asia/Qatar
+- `Asia/Qostanay` - Asia/Qostanay
+- `Asia/Qyzylorda` - Asia/Qyzylorda
+- `Asia/Riyadh` - Asia/Riyadh
+- `Asia/Sakhalin` - Asia/Sakhalin
+- `Asia/Samarkand` - Asia/Samarkand
+- `Asia/Seoul` - Asia/Seoul
+- `Asia/Shanghai` - Asia/Shanghai
+- `Asia/Singapore` - Asia/Singapore
+- `Asia/Srednekolymsk` - Asia/Srednekolymsk
+- `Asia/Taipei` - Asia/Taipei
+- `Asia/Tashkent` - Asia/Tashkent
+- `Asia/Tbilisi` - Asia/Tbilisi
+- `Asia/Tehran` - Asia/Tehran
+- `Asia/Thimphu` - Asia/Thimphu
+- `Asia/Tokyo` - Asia/Tokyo
+- `Asia/Tomsk` - Asia/Tomsk
+- `Asia/Ulaanbaatar` - Asia/Ulaanbaatar
+- `Asia/Urumqi` - Asia/Urumqi
+- `Asia/Ust-Nera` - Asia/Ust-Nera
+- `Asia/Vientiane` - Asia/Vientiane
+- `Asia/Vladivostok` - Asia/Vladivostok
+- `Asia/Yakutsk` - Asia/Yakutsk
+- `Asia/Yangon` - Asia/Yangon
+- `Asia/Yekaterinburg` - Asia/Yekaterinburg
+- `Asia/Yerevan` - Asia/Yerevan
+- `Atlantic/Azores` - Atlantic/Azores
+- `Atlantic/Bermuda` - Atlantic/Bermuda
+- `Atlantic/Canary` - Atlantic/Canary
+- `Atlantic/Cape_Verde` - Atlantic/Cape_Verde
+- `Atlantic/Faroe` - Atlantic/Faroe
+- `Atlantic/Madeira` - Atlantic/Madeira
+- `Atlantic/Reykjavik` - Atlantic/Reykjavik
+- `Atlantic/South_Georgia` - Atlantic/South_Georgia
+- `Atlantic/St_Helena` - Atlantic/St_Helena
+- `Atlantic/Stanley` - Atlantic/Stanley
+- `Australia/Adelaide` - Australia/Adelaide
+- `Australia/Brisbane` - Australia/Brisbane
+- `Australia/Broken_Hill` - Australia/Broken_Hill
+- `Australia/Darwin` - Australia/Darwin
+- `Australia/Eucla` - Australia/Eucla
+- `Australia/Hobart` - Australia/Hobart
+- `Australia/Lindeman` - Australia/Lindeman
+- `Australia/Lord_Howe` - Australia/Lord_Howe
+- `Australia/Melbourne` - Australia/Melbourne
+- `Australia/Perth` - Australia/Perth
+- `Australia/Sydney` - Australia/Sydney
+- `Canada/Atlantic` - Canada/Atlantic
+- `Canada/Central` - Canada/Central
+- `Canada/Eastern` - Canada/Eastern
+- `Canada/Mountain` - Canada/Mountain
+- `Canada/Newfoundland` - Canada/Newfoundland
+- `Canada/Pacific` - Canada/Pacific
+- `Europe/Amsterdam` - Europe/Amsterdam
+- `Europe/Andorra` - Europe/Andorra
+- `Europe/Astrakhan` - Europe/Astrakhan
+- `Europe/Athens` - Europe/Athens
+- `Europe/Belgrade` - Europe/Belgrade
+- `Europe/Berlin` - Europe/Berlin
+- `Europe/Bratislava` - Europe/Bratislava
+- `Europe/Brussels` - Europe/Brussels
+- `Europe/Bucharest` - Europe/Bucharest
+- `Europe/Budapest` - Europe/Budapest
+- `Europe/Busingen` - Europe/Busingen
+- `Europe/Chisinau` - Europe/Chisinau
+- `Europe/Copenhagen` - Europe/Copenhagen
+- `Europe/Dublin` - Europe/Dublin
+- `Europe/Gibraltar` - Europe/Gibraltar
+- `Europe/Guernsey` - Europe/Guernsey
+- `Europe/Helsinki` - Europe/Helsinki
+- `Europe/Isle_of_Man` - Europe/Isle_of_Man
+- `Europe/Istanbul` - Europe/Istanbul
+- `Europe/Jersey` - Europe/Jersey
+- `Europe/Kaliningrad` - Europe/Kaliningrad
+- `Europe/Kirov` - Europe/Kirov
+- `Europe/Kyiv` - Europe/Kyiv
+- `Europe/Lisbon` - Europe/Lisbon
+- `Europe/Ljubljana` - Europe/Ljubljana
+- `Europe/London` - Europe/London
+- `Europe/Luxembourg` - Europe/Luxembourg
+- `Europe/Madrid` - Europe/Madrid
+- `Europe/Malta` - Europe/Malta
+- `Europe/Mariehamn` - Europe/Mariehamn
+- `Europe/Minsk` - Europe/Minsk
+- `Europe/Monaco` - Europe/Monaco
+- `Europe/Moscow` - Europe/Moscow
+- `Europe/Oslo` - Europe/Oslo
+- `Europe/Paris` - Europe/Paris
+- `Europe/Podgorica` - Europe/Podgorica
+- `Europe/Prague` - Europe/Prague
+- `Europe/Riga` - Europe/Riga
+- `Europe/Rome` - Europe/Rome
+- `Europe/Samara` - Europe/Samara
+- `Europe/San_Marino` - Europe/San_Marino
+- `Europe/Sarajevo` - Europe/Sarajevo
+- `Europe/Saratov` - Europe/Saratov
+- `Europe/Simferopol` - Europe/Simferopol
+- `Europe/Skopje` - Europe/Skopje
+- `Europe/Sofia` - Europe/Sofia
+- `Europe/Stockholm` - Europe/Stockholm
+- `Europe/Tallinn` - Europe/Tallinn
+- `Europe/Tirane` - Europe/Tirane
+- `Europe/Ulyanovsk` - Europe/Ulyanovsk
+- `Europe/Vaduz` - Europe/Vaduz
+- `Europe/Vatican` - Europe/Vatican
+- `Europe/Vienna` - Europe/Vienna
+- `Europe/Vilnius` - Europe/Vilnius
+- `Europe/Volgograd` - Europe/Volgograd
+- `Europe/Warsaw` - Europe/Warsaw
+- `Europe/Zagreb` - Europe/Zagreb
+- `Europe/Zurich` - Europe/Zurich
+- `GMT` - GMT
+- `Indian/Antananarivo` - Indian/Antananarivo
+- `Indian/Chagos` - Indian/Chagos
+- `Indian/Christmas` - Indian/Christmas
+- `Indian/Cocos` - Indian/Cocos
+- `Indian/Comoro` - Indian/Comoro
+- `Indian/Kerguelen` - Indian/Kerguelen
+- `Indian/Mahe` - Indian/Mahe
+- `Indian/Maldives` - Indian/Maldives
+- `Indian/Mauritius` - Indian/Mauritius
+- `Indian/Mayotte` - Indian/Mayotte
+- `Indian/Reunion` - Indian/Reunion
+- `Pacific/Apia` - Pacific/Apia
+- `Pacific/Auckland` - Pacific/Auckland
+- `Pacific/Bougainville` - Pacific/Bougainville
+- `Pacific/Chatham` - Pacific/Chatham
+- `Pacific/Chuuk` - Pacific/Chuuk
+- `Pacific/Easter` - Pacific/Easter
+- `Pacific/Efate` - Pacific/Efate
+- `Pacific/Fakaofo` - Pacific/Fakaofo
+- `Pacific/Fiji` - Pacific/Fiji
+- `Pacific/Funafuti` - Pacific/Funafuti
+- `Pacific/Galapagos` - Pacific/Galapagos
+- `Pacific/Gambier` - Pacific/Gambier
+- `Pacific/Guadalcanal` - Pacific/Guadalcanal
+- `Pacific/Guam` - Pacific/Guam
+- `Pacific/Honolulu` - Pacific/Honolulu
+- `Pacific/Kanton` - Pacific/Kanton
+- `Pacific/Kiritimati` - Pacific/Kiritimati
+- `Pacific/Kosrae` - Pacific/Kosrae
+- `Pacific/Kwajalein` - Pacific/Kwajalein
+- `Pacific/Majuro` - Pacific/Majuro
+- `Pacific/Marquesas` - Pacific/Marquesas
+- `Pacific/Midway` - Pacific/Midway
+- `Pacific/Nauru` - Pacific/Nauru
+- `Pacific/Niue` - Pacific/Niue
+- `Pacific/Norfolk` - Pacific/Norfolk
+- `Pacific/Noumea` - Pacific/Noumea
+- `Pacific/Pago_Pago` - Pacific/Pago_Pago
+- `Pacific/Palau` - Pacific/Palau
+- `Pacific/Pitcairn` - Pacific/Pitcairn
+- `Pacific/Pohnpei` - Pacific/Pohnpei
+- `Pacific/Port_Moresby` - Pacific/Port_Moresby
+- `Pacific/Rarotonga` - Pacific/Rarotonga
+- `Pacific/Saipan` - Pacific/Saipan
+- `Pacific/Tahiti` - Pacific/Tahiti
+- `Pacific/Tarawa` - Pacific/Tarawa
+- `Pacific/Tongatapu` - Pacific/Tongatapu
+- `Pacific/Wake` - Pacific/Wake
+- `Pacific/Wallis` - Pacific/Wallis
+- `US/Alaska` - US/Alaska
+- `US/Arizona` - US/Arizona
+- `US/Central` - US/Central
+- `US/Eastern` - US/Eastern
+- `US/Hawaii` - US/Hawaii
+- `US/Mountain` - US/Mountain
+- `US/Pacific` - US/Pacific
+- `UTC` - UTC
@@ -109,6 +541,7 @@ Timezone for the cycle.
+
@@ -116,19 +549,17 @@ Timezone for the cycle.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description",
- "start_date": "example-start_date",
- "end_date": "example-end_date",
- "owned_by": "example-owned_by",
- "external_source": "example-external_source",
- "external_id": "example-external_id",
- "timezone": "example-timezone"
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01T00:00:00Z",
+ "end_date": "2024-01-01T00:00:00Z",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -139,18 +570,16 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description',
- 'start_date': 'example-start_date',
- 'end_date': 'example-end_date',
- 'owned_by': 'example-owned_by',
- 'external_source': 'example-external_source',
- 'external_id': 'example-external_id',
- 'timezone': 'example-timezone'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01T00:00:00Z",
+ "end_date": "2024-01-01T00:00:00Z",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -160,7 +589,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/cycles/cycle-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/cycles/550e8400-e29b-41d4-a716-446655440000/",
{
method: "PATCH",
headers: {
@@ -168,14 +597,12 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- start_date: "example-start_date",
- end_date: "example-end_date",
- owned_by: "example-owned_by",
- external_source: "example-external_source",
- external_id: "example-external_id",
- timezone: "example-timezone",
+ name: "Example Name",
+ description: "Example description",
+ start_date: "2024-01-01T00:00:00Z",
+ end_date: "2024-01-01T00:00:00Z",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -189,15 +616,25 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01T00:00:00Z",
+ "end_date": "2024-01-01T00:00:00Z",
+ "status": "current",
+ "total_issues": 15,
+ "completed_issues": 8,
+ "cancelled_issues": 1,
+ "started_issues": 4,
+ "unstarted_issues": 2,
+ "backlog_issues": 0,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/epics/get-epic-detail.md b/docs/api-reference/epics/get-epic-detail.md
index 7cadca2..c43d7e0 100644
--- a/docs/api-reference/epics/get-epic-detail.md
+++ b/docs/api-reference/epics/get-epic-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve an epic
-description: Get retrieve an epic details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, epics, features, stories
+description: Retrieve an epic via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve an epic.
+keywords: plane, plane api, rest api, api integration, epics, retrieve an epic
---
# Retrieve an epic
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/epics/{epic_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/epics/{pk}/
-Retrieves the details of an existing epic by its ID.
+Retrieve an epic by id
@@ -22,21 +22,36 @@ Retrieves the details of an existing epic by its ID.
-
+
-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`.
+Pk.
-The unique identifier for the project.
+Project ID
-
+
-The unique identifier for the epic.
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Comma-separated list of fields to include in response
@@ -52,6 +67,7 @@ The unique identifier for the epic.
+
@@ -59,7 +75,7 @@ The unique identifier for the epic.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/epics/{epic_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/epics/550e8400-e29b-41d4-a716-446655440000/?fields=id,name,description" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +87,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/epics/{epic_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/epics/550e8400-e29b-41d4-a716-446655440000/?fields=id,name,description",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +98,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/epics/{epic_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/epics/550e8400-e29b-41d4-a716-446655440000/?fields=id,name,description",
{
method: "GET",
headers: {
@@ -100,10 +116,9 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
"created_at": "2024-01-01T00:00:00Z"
}
```
@@ -111,4 +126,5 @@ const data = await response.json();
+
diff --git a/docs/api-reference/epics/list-epics.md b/docs/api-reference/epics/list-epics.md
index bc7d191..12dca05 100644
--- a/docs/api-reference/epics/list-epics.md
+++ b/docs/api-reference/epics/list-epics.md
@@ -1,20 +1,20 @@
---
title: List all epics
-description: List all epics via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, epics, features, stories
+description: List all epics via Plane API. HTTP request format, parameters, scopes, and example responses for list all epics.
+keywords: plane, plane api, rest api, api integration, epics, list all epics
---
# List all epics
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/epics/
+ /api/v1/workspaces/{slug}/projects/{project_id}/epics/
-Returns a list of all epics in a project.
+List epics
@@ -22,15 +22,15 @@ Returns a list of all epics in a project.
-
+
-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
-
+
-The unique identifier for the project.
+Workspace slug
@@ -43,15 +43,15 @@ The unique identifier for the project.
-
+
-Number of results to return per page.
+Pagination cursor for getting next set of results
-
+
-Number of results to skip for pagination.
+Number of results per page (default: 20, max: 100)
@@ -67,6 +67,7 @@ Number of results to skip for pagination.
+
@@ -74,7 +75,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/epics/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/epics/?cursor=20:1:0&per_page=20" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -86,7 +87,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/epics/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/epics/?cursor=20:1:0&per_page=20",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -96,12 +97,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/epics/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/epics/?cursor=20:1:0&per_page=20",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -112,15 +116,30 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/estimate/add-estimate-points.md b/docs/api-reference/estimate/add-estimate-points.md
new file mode 100644
index 0000000..75b35ad
--- /dev/null
+++ b/docs/api-reference/estimate/add-estimate-points.md
@@ -0,0 +1,179 @@
+---
+title: Create estimate points
+description: Create estimate points via Plane API. HTTP request format, parameters, scopes, and example responses for create estimate points.
+keywords: plane, plane api, rest api, api integration, estimate points, create estimate points
+---
+
+# Create estimate points
+
+
+ POST
+ /api/v1/workspaces/{slug}/projects/{project_id}/estimates/{estimate_id}/estimate-points/
+
+
+
+
+
+Create estimate points for a project estimate. You can send a JSON array directly or wrap it inside `estimate_points`.
+
+
+
+### Path Parameters
+
+
+
+
+
+Estimate ID
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Array of estimate point objects. Each object can include: `value` (string, required, max 20 chars), `key` (integer),
+`description` (string), `external_id` (string), and `external_source` (string).
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.estimates:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/550e8400-e29b-41d4-a716-446655440000/estimate-points/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '[
+ {
+ "key": 1,
+ "value": "1",
+ "description": "Tiny"
+ },
+ {
+ "key": 2,
+ "value": "2",
+ "description": "Small"
+ }
+ ]'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.post(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/550e8400-e29b-41d4-a716-446655440000/estimate-points/",
+ headers={"X-API-Key": "your-api-key"},
+ json=[
+ {"key": 1, "value": "1", "description": "Tiny"},
+ {"key": 2, "value": "2", "description": "Small"},
+ ],
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/550e8400-e29b-41d4-a716-446655440000/estimate-points/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify([
+ { key: 1, value: "1", description: "Tiny" },
+ { key: 2, value: "2", description: "Small" },
+ ]),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+[
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440010",
+ "created_at": "2024-01-15T10:40:00Z",
+ "updated_at": "2024-01-20T12:15:00Z",
+ "estimate": "550e8400-e29b-41d4-a716-446655440000",
+ "key": 1,
+ "value": "1",
+ "description": "Tiny",
+ "external_id": null,
+ "external_source": null,
+ "created_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "updated_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "project": "4af68566-94a4-4eb3-94aa-50dc9427067b",
+ "workspace": "cd4ab5a2-1a5f-4516-a6c6-8da1a9fa5be4"
+ },
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440011",
+ "created_at": "2024-01-15T10:41:00Z",
+ "updated_at": "2024-01-20T12:16:00Z",
+ "estimate": "550e8400-e29b-41d4-a716-446655440000",
+ "key": 2,
+ "value": "2",
+ "description": "Small",
+ "external_id": null,
+ "external_source": null,
+ "created_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "updated_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "project": "4af68566-94a4-4eb3-94aa-50dc9427067b",
+ "workspace": "cd4ab5a2-1a5f-4516-a6c6-8da1a9fa5be4"
+ }
+]
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/estimate/add-estimate.md b/docs/api-reference/estimate/add-estimate.md
new file mode 100644
index 0000000..15bdeb1
--- /dev/null
+++ b/docs/api-reference/estimate/add-estimate.md
@@ -0,0 +1,180 @@
+---
+title: Create an estimate
+description: Create an estimate via Plane API. HTTP request format, parameters, scopes, and example responses for create an estimate.
+keywords: plane, plane api, rest api, api integration, estimates, create an estimate
+---
+
+# Create an estimate
+
+
+ POST
+ /api/v1/workspaces/{slug}/projects/{project_id}/estimates/
+
+
+
+
+
+Create a new estimate for the project.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Name of the estimate.
+
+
+
+
+
+Description of the estimate.
+
+
+
+
+
+Type of estimate. Possible values: `categories`, `points`, `time`.
+
+
+
+
+
+Whether this estimate is the most recently used estimate for the project.
+
+
+
+
+
+External ID from an external system.
+
+
+
+
+
+External source identifier.
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.estimates:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "Story Points",
+ "description": "Standard story point scale",
+ "type": "points"
+ }'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.post(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "name": "Story Points",
+ "description": "Standard story point scale",
+ "type": "points",
+ },
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Story Points",
+ description: "Standard story point scale",
+ type: "points",
+ }),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-15T10:30:00Z",
+ "updated_at": "2024-01-20T12:10:00Z",
+ "name": "Story Points",
+ "description": "Standard story point scale",
+ "type": "points",
+ "last_used": true,
+ "external_id": null,
+ "external_source": null,
+ "created_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "updated_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "project": "4af68566-94a4-4eb3-94aa-50dc9427067b",
+ "workspace": "cd4ab5a2-1a5f-4516-a6c6-8da1a9fa5be4"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/estimate/delete-estimate-point.md b/docs/api-reference/estimate/delete-estimate-point.md
new file mode 100644
index 0000000..7066abf
--- /dev/null
+++ b/docs/api-reference/estimate/delete-estimate-point.md
@@ -0,0 +1,114 @@
+---
+title: Delete an estimate point
+description: Delete an estimate point via Plane API. HTTP request format, parameters, scopes, and example responses for delete an estimate point.
+keywords: plane, plane api, rest api, api integration, estimate points, delete an estimate point
+---
+
+# Delete an estimate point
+
+
+ DELETE
+ /api/v1/workspaces/{slug}/projects/{project_id}/estimates/{estimate_id}/estimate-points/{estimate_point_id}/
+
+
+
+
+
+Delete a single estimate point from a project estimate.
+
+
+
+### Path Parameters
+
+
+
+
+
+Estimate point ID
+
+
+
+
+
+Estimate ID
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.estimates:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/550e8400-e29b-41d4-a716-446655440000/estimate-points/550e8400-e29b-41d4-a716-446655440010/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.delete(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/550e8400-e29b-41d4-a716-446655440000/estimate-points/550e8400-e29b-41d4-a716-446655440010/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/550e8400-e29b-41d4-a716-446655440000/estimate-points/550e8400-e29b-41d4-a716-446655440010/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/estimate/delete-estimate.md b/docs/api-reference/estimate/delete-estimate.md
new file mode 100644
index 0000000..97da4a7
--- /dev/null
+++ b/docs/api-reference/estimate/delete-estimate.md
@@ -0,0 +1,102 @@
+---
+title: Delete an estimate
+description: Delete an estimate via Plane API. HTTP request format, parameters, scopes, and example responses for delete an estimate.
+keywords: plane, plane api, rest api, api integration, estimates, delete an estimate
+---
+
+# Delete an estimate
+
+
+ DELETE
+ /api/v1/workspaces/{slug}/projects/{project_id}/estimates/
+
+
+
+
+
+Delete the estimate configured for a project.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.estimates:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.delete(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/estimate/get-estimate.md b/docs/api-reference/estimate/get-estimate.md
new file mode 100644
index 0000000..518b78b
--- /dev/null
+++ b/docs/api-reference/estimate/get-estimate.md
@@ -0,0 +1,118 @@
+---
+title: Get an estimate
+description: Get an estimate via Plane API. HTTP request format, parameters, scopes, and example responses for get an estimate.
+keywords: plane, plane api, rest api, api integration, estimates, get an estimate
+---
+
+# Get an estimate
+
+
+ GET
+ /api/v1/workspaces/{slug}/projects/{project_id}/estimates/
+
+
+
+
+
+Retrieve the estimate configured for a project.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.estimates:read`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-15T10:30:00Z",
+ "updated_at": "2024-01-20T12:10:00Z",
+ "name": "Story Points",
+ "description": "Standard story point scale",
+ "type": "points",
+ "last_used": true,
+ "external_id": null,
+ "external_source": null,
+ "created_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "updated_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "project": "4af68566-94a4-4eb3-94aa-50dc9427067b",
+ "workspace": "cd4ab5a2-1a5f-4516-a6c6-8da1a9fa5be4"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/estimate/list-estimate-points.md b/docs/api-reference/estimate/list-estimate-points.md
new file mode 100644
index 0000000..57f0287
--- /dev/null
+++ b/docs/api-reference/estimate/list-estimate-points.md
@@ -0,0 +1,141 @@
+---
+title: List estimate points
+description: List estimate points via Plane API. HTTP request format, parameters, scopes, and example responses for list estimate points.
+keywords: plane, plane api, rest api, api integration, estimate points, list estimate points
+---
+
+# List estimate points
+
+
+ GET
+ /api/v1/workspaces/{slug}/projects/{project_id}/estimates/{estimate_id}/estimate-points/
+
+
+
+
+
+Retrieve all estimate points for a project estimate.
+
+
+
+### Path Parameters
+
+
+
+
+
+Estimate ID
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.estimates:read`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/550e8400-e29b-41d4-a716-446655440000/estimate-points/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/550e8400-e29b-41d4-a716-446655440000/estimate-points/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/550e8400-e29b-41d4-a716-446655440000/estimate-points/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+[
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440010",
+ "created_at": "2024-01-15T10:40:00Z",
+ "updated_at": "2024-01-20T12:15:00Z",
+ "estimate": "550e8400-e29b-41d4-a716-446655440000",
+ "key": 1,
+ "value": "1",
+ "description": "Tiny",
+ "external_id": null,
+ "external_source": null,
+ "created_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "updated_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "project": "4af68566-94a4-4eb3-94aa-50dc9427067b",
+ "workspace": "cd4ab5a2-1a5f-4516-a6c6-8da1a9fa5be4"
+ },
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440011",
+ "created_at": "2024-01-15T10:41:00Z",
+ "updated_at": "2024-01-20T12:16:00Z",
+ "estimate": "550e8400-e29b-41d4-a716-446655440000",
+ "key": 2,
+ "value": "2",
+ "description": "Small",
+ "external_id": null,
+ "external_source": null,
+ "created_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "updated_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "project": "4af68566-94a4-4eb3-94aa-50dc9427067b",
+ "workspace": "cd4ab5a2-1a5f-4516-a6c6-8da1a9fa5be4"
+ }
+]
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/estimate/overview.md b/docs/api-reference/estimate/overview.md
new file mode 100644
index 0000000..b64787b
--- /dev/null
+++ b/docs/api-reference/estimate/overview.md
@@ -0,0 +1,160 @@
+---
+title: Overview
+description: Plane Estimate API overview. Learn about estimate objects, estimate points, and how to work with estimates via REST API.
+keywords: plane, plane api, rest api, api integration, estimates, estimate points
+---
+
+# Overview
+
+Estimates define how work is sized in a project. An estimate represents the scale (categories, points, or time), and
+estimate points represent the allowed values on work items.
+
+
+
+
+## The Estimate Object
+
+### Attributes
+
+- `name` _string_ **(required)**
+
+ Name of the estimate
+
+- `description` _string_
+
+ Description of the estimate
+
+- `type` _string_
+
+ Type of estimate. Possible values: `categories`, `points`, `time`
+
+- `last_used` _boolean_
+
+ Whether this estimate is the most recently used estimate for the project
+
+- `external_id` _string_ or _null_
+
+ External ID from an external system
+
+- `external_source` _string_ or _null_
+
+ External source identifier
+
+- `created_at`, `updated_at` _timestamp_
+
+ Timestamps when the estimate was created and last updated
+
+- `created_by`, `updated_by` _uuid_
+
+ IDs of the users who created and last updated the estimate
+
+- `project` _uuid_
+
+ Project ID associated with the estimate
+
+- `workspace` _uuid_
+
+ Workspace ID associated with the estimate
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-15T10:30:00Z",
+ "updated_at": "2024-01-20T12:10:00Z",
+ "name": "Story Points",
+ "description": "Standard story point scale",
+ "type": "points",
+ "last_used": true,
+ "external_id": "sp-001",
+ "external_source": "jira",
+ "created_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "updated_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "project": "4af68566-94a4-4eb3-94aa-50dc9427067b",
+ "workspace": "cd4ab5a2-1a5f-4516-a6c6-8da1a9fa5be4"
+}
+```
+
+
+
+
+
+
+
+
+
+## The Estimate Point Object
+
+### Attributes
+
+- `estimate` _uuid_ **(required)**
+
+ Estimate ID this point belongs to
+
+- `key` _integer_
+
+ Numeric key used for ordering and display
+
+- `value` _string_ **(required)**
+
+ Display value for the estimate point (max 20 characters)
+
+- `description` _string_
+
+ Description of the estimate point
+
+- `external_id` _string_ or _null_
+
+ External ID from an external system
+
+- `external_source` _string_ or _null_
+
+ External source identifier
+
+- `created_at`, `updated_at` _timestamp_
+
+ Timestamps when the estimate point was created and last updated
+
+- `created_by`, `updated_by` _uuid_
+
+ IDs of the users who created and last updated the estimate point
+
+- `project` _uuid_
+
+ Project ID associated with the estimate point
+
+- `workspace` _uuid_
+
+ Workspace ID associated with the estimate point
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440010",
+ "created_at": "2024-01-15T10:40:00Z",
+ "updated_at": "2024-01-20T12:15:00Z",
+ "estimate": "550e8400-e29b-41d4-a716-446655440000",
+ "key": 3,
+ "value": "3",
+ "description": "Small",
+ "external_id": "sp-3",
+ "external_source": "jira",
+ "created_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "updated_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "project": "4af68566-94a4-4eb3-94aa-50dc9427067b",
+ "workspace": "cd4ab5a2-1a5f-4516-a6c6-8da1a9fa5be4"
+}
+```
+
+
+
+
+
diff --git a/docs/api-reference/estimate/update-estimate-point.md b/docs/api-reference/estimate/update-estimate-point.md
new file mode 100644
index 0000000..624c6a7
--- /dev/null
+++ b/docs/api-reference/estimate/update-estimate-point.md
@@ -0,0 +1,180 @@
+---
+title: Update an estimate point
+description: Update an estimate point via Plane API. HTTP request format, parameters, scopes, and example responses for update an estimate point.
+keywords: plane, plane api, rest api, api integration, estimate points, update an estimate point
+---
+
+# Update an estimate point
+
+
+ PATCH
+ /api/v1/workspaces/{slug}/projects/{project_id}/estimates/{estimate_id}/estimate-points/{estimate_point_id}/
+
+
+
+
+
+Update a single estimate point for a project estimate.
+
+
+
+### Path Parameters
+
+
+
+
+
+Estimate point ID
+
+
+
+
+
+Estimate ID
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Numeric key used for ordering and display.
+
+
+
+
+
+Display value for the estimate point (max 20 characters).
+
+
+
+
+
+Description of the estimate point.
+
+
+
+
+
+External ID from an external system.
+
+
+
+
+
+External source identifier.
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.estimates:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X PATCH \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/550e8400-e29b-41d4-a716-446655440000/estimate-points/550e8400-e29b-41d4-a716-446655440010/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "value": "3",
+ "description": "Small"
+ }'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.patch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/550e8400-e29b-41d4-a716-446655440000/estimate-points/550e8400-e29b-41d4-a716-446655440010/",
+ headers={"X-API-Key": "your-api-key"},
+ json={"value": "3", "description": "Small"},
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/550e8400-e29b-41d4-a716-446655440000/estimate-points/550e8400-e29b-41d4-a716-446655440010/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ value: "3",
+ description: "Small",
+ }),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440010",
+ "created_at": "2024-01-15T10:40:00Z",
+ "updated_at": "2024-01-21T09:45:00Z",
+ "estimate": "550e8400-e29b-41d4-a716-446655440000",
+ "key": 3,
+ "value": "3",
+ "description": "Small",
+ "external_id": null,
+ "external_source": null,
+ "created_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "updated_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "project": "4af68566-94a4-4eb3-94aa-50dc9427067b",
+ "workspace": "cd4ab5a2-1a5f-4516-a6c6-8da1a9fa5be4"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/estimate/update-estimate.md b/docs/api-reference/estimate/update-estimate.md
new file mode 100644
index 0000000..42c734f
--- /dev/null
+++ b/docs/api-reference/estimate/update-estimate.md
@@ -0,0 +1,160 @@
+---
+title: Update an estimate
+description: Update an estimate via Plane API. HTTP request format, parameters, scopes, and example responses for update an estimate.
+keywords: plane, plane api, rest api, api integration, estimates, update an estimate
+---
+
+# Update an estimate
+
+
+ PATCH
+ /api/v1/workspaces/{slug}/projects/{project_id}/estimates/
+
+
+
+
+
+Update the estimate for a project. Only fields provided in the request will be updated.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Name of the estimate.
+
+
+
+
+
+Description of the estimate.
+
+
+
+
+
+External ID from an external system.
+
+
+
+
+
+External source identifier.
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.estimates:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X PATCH \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "description": "Updated story point scale"
+ }'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.patch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/",
+ headers={"X-API-Key": "your-api-key"},
+ json={"description": "Updated story point scale"},
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/estimates/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ description: "Updated story point scale",
+ }),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-15T10:30:00Z",
+ "updated_at": "2024-01-21T09:30:00Z",
+ "name": "Story Points",
+ "description": "Updated story point scale",
+ "type": "points",
+ "last_used": true,
+ "external_id": null,
+ "external_source": null,
+ "created_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "updated_by": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
+ "project": "4af68566-94a4-4eb3-94aa-50dc9427067b",
+ "workspace": "cd4ab5a2-1a5f-4516-a6c6-8da1a9fa5be4"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/initiative/add-epics-to-initiative.md b/docs/api-reference/initiative/add-epics-to-initiative.md
index 13cc777..546542f 100644
--- a/docs/api-reference/initiative/add-epics-to-initiative.md
+++ b/docs/api-reference/initiative/add-epics-to-initiative.md
@@ -1,20 +1,20 @@
---
title: Add epics to initiative
-description: Create epics to initiative via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, initiatives, roadmap, planning, epics, features, stories
+description: Add epics to initiative via Plane API. HTTP request format, parameters, scopes, and example responses for add epics to initiative.
+keywords: plane, plane api, rest api, api integration, initiative, add epics to initiative
---
# Add epics to initiative
POST
- /api/v1/workspaces/{workspace_slug}/initiatives/{initiative_id}/epics/
+ /api/v1/workspaces/{slug}/initiatives/{initiative_id}/epics/
-Adds one or more epics to an initiative.
+Add epics to an initiative by its ID
@@ -22,15 +22,15 @@ Adds one or more epics to an initiative.
-
+
-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`.
+Initiative ID
-
+
-The unique identifier for the initiative.
+Workspace slug
@@ -43,9 +43,9 @@ The unique identifier for the initiative.
-
+
-Array of epic IDs to add to the initiative.
+Epic ids.
@@ -61,6 +61,7 @@ Array of epic IDs to add to the initiative.
+
@@ -68,12 +69,14 @@ Array of epic IDs to add to the initiative.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/epics/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/epics/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "epic_ids": "example-epic_ids"
+ "epic_ids": [
+ "550e8400-e29b-41d4-a716-446655440000"
+ ]
}'
```
@@ -84,11 +87,13 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/epics/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/epics/",
headers={"X-API-Key": "your-api-key"},
json={
- 'epic_ids': 'example-epic_ids'
-}
+ "epic_ids": [
+"550e8400-e29b-41d4-a716-446655440000"
+ ]
+ }
)
print(response.json())
```
@@ -97,32 +102,37 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/epics/", {
- method: "POST",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- epic_ids: "example-epic_ids",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/epics/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ epic_ids: ["550e8400-e29b-41d4-a716-446655440000"],
+ }),
+ }
+);
const data = await response.json();
```
-
+
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description"
}
```
+
diff --git a/docs/api-reference/initiative/add-initiative-label.md b/docs/api-reference/initiative/add-initiative-label.md
index 7d08909..c8dff09 100644
--- a/docs/api-reference/initiative/add-initiative-label.md
+++ b/docs/api-reference/initiative/add-initiative-label.md
@@ -1,20 +1,20 @@
---
title: Create an initiative label
-description: Create an initiative label via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization, initiatives, roadmap, planning
+description: Create an initiative label via Plane API. HTTP request format, parameters, scopes, and example responses for create an initiative label.
+keywords: plane, plane api, rest api, api integration, initiative, create an initiative label
---
# Create an initiative label
POST
- /api/v1/workspaces/{workspace_slug}/initiatives/labels/
+ /api/v1/workspaces/{slug}/initiatives/labels/
-Creates a new label for categorizing initiatives in a workspace.
+Create a new initiative label in the workspace
@@ -22,9 +22,9 @@ Creates a new label for categorizing initiatives in a workspace.
-
+
-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`.
+Workspace slug
@@ -39,25 +39,25 @@ The workspace_slug represents the unique workspace identifier for a workspace in
-Name of the initiative label.
+Name.
-
+
-Description of the initiative label.
+Description.
-
+
-Hex color code for the initiative label (e.g., "#eb5757").
+Color.
-
+
-Sort order for display purposes.
+Sort order.
@@ -73,6 +73,7 @@ Sort order for display purposes.
+
@@ -85,9 +86,9 @@ curl -X POST \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description",
- "color": "example-color",
+ "name": "Example Name",
+ "description": "Example description",
+ "color": "Example Name",
"sort_order": 1
}'
```
@@ -102,11 +103,11 @@ response = requests.post(
"https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description',
- 'color': 'example-color',
- 'sort_order': 1
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "color": "Example Name",
+ "sort_order": 1
+ }
)
print(response.json())
```
@@ -122,9 +123,9 @@ const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspac
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- color: "example-color",
+ name: "Example Name",
+ description: "Example description",
+ color: "Example Name",
sort_order: 1,
}),
});
@@ -138,7 +139,9 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
"created_at": "2024-01-01T00:00:00Z"
}
```
@@ -146,4 +149,5 @@ const data = await response.json();
+
diff --git a/docs/api-reference/initiative/add-initiative.md b/docs/api-reference/initiative/add-initiative.md
index aab5d2e..c36d363 100644
--- a/docs/api-reference/initiative/add-initiative.md
+++ b/docs/api-reference/initiative/add-initiative.md
@@ -1,20 +1,20 @@
---
title: Create an initiative
-description: Create an initiative via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, initiatives, roadmap, planning
+description: Create an initiative via Plane API. HTTP request format, parameters, scopes, and example responses for create an initiative.
+keywords: plane, plane api, rest api, api integration, initiative, create an initiative
---
# Create an initiative
POST
- /api/v1/workspaces/{workspace_slug}/initiatives/
+ /api/v1/workspaces/{slug}/initiatives/
-Creates a new initiative in a workspace.
+Create a new initiative in the workspace
@@ -22,9 +22,9 @@ Creates a new initiative in a workspace.
-
+
-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`.
+Workspace slug
@@ -39,61 +39,77 @@ The workspace_slug represents the unique workspace identifier for a workspace in
-Name of the initiative.
+Name.
-
+
-Plain text description of the initiative.
+Description.
-
+
-HTML-formatted description of the initiative.
+Description html.
-
+
-Stripped version of the HTML description.
+Description stripped.
-
+
-Binary representation of the description.
+Start date.
-
+
-ID of the user who leads the initiative.
+End date.
-
+
-Start date in YYYY-MM-DD format.
+Logo props.
-
+
-End date in YYYY-MM-DD format.
+- `DRAFT` - Draft
+- `PLANNED` - Planned
+- `ACTIVE` - Active
+- `COMPLETED` - Completed
+- `CLOSED` - Closed
-
+
-Logo properties for the initiative
+Archived at.
-
+
-Current state of the initiative. Possible values: `DRAFT`, `PLANNED`, `ACTIVE`, `COMPLETED`, `CLOSED`.
+Created by.
+
+
+
+
+
+Updated by.
+
+
+
+
+
+Lead.
@@ -109,6 +125,7 @@ Current state of the initiative. Possible values: `DRAFT`, `PLANNED`, `ACTIVE`,
+
@@ -121,16 +138,18 @@ curl -X POST \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description",
- "description_html": "example-description_html",
- "description_stripped": "example-description_stripped",
- "description_binary": "example-description_binary",
- "lead": "example-lead",
- "start_date": "example-start_date",
- "end_date": "example-end_date",
- "logo_props": "example-logo_props",
- "state": "example-state"
+ "name": "Example Name",
+ "description": "Example description",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "start_date": "2024-01-01T00:00:00Z",
+ "end_date": "2024-01-01T00:00:00Z",
+ "logo_props": "example-value",
+ "state": "DRAFT",
+ "archived_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "lead": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -144,17 +163,19 @@ response = requests.post(
"https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description',
- 'description_html': 'example-description_html',
- 'description_stripped': 'example-description_stripped',
- 'description_binary': 'example-description_binary',
- 'lead': 'example-lead',
- 'start_date': 'example-start_date',
- 'end_date': 'example-end_date',
- 'logo_props': 'example-logo_props',
- 'state': 'example-state'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "start_date": "2024-01-01T00:00:00Z",
+ "end_date": "2024-01-01T00:00:00Z",
+ "logo_props": "example-value",
+ "state": "DRAFT",
+ "archived_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "lead": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -170,16 +191,18 @@ const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspac
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- description_html: "example-description_html",
- description_stripped: "example-description_stripped",
- description_binary: "example-description_binary",
- lead: "example-lead",
- start_date: "example-start_date",
- end_date: "example-end_date",
- logo_props: "example-logo_props",
- state: "example-state",
+ name: "Example Name",
+ description: "Example description",
+ description_html: "Example content
",
+ description_stripped: "Example description",
+ start_date: "2024-01-01T00:00:00Z",
+ end_date: "2024-01-01T00:00:00Z",
+ logo_props: "example-value",
+ state: "DRAFT",
+ archived_at: "2024-01-01T00:00:00Z",
+ created_by: "550e8400-e29b-41d4-a716-446655440000",
+ updated_by: "550e8400-e29b-41d4-a716-446655440000",
+ lead: "550e8400-e29b-41d4-a716-446655440000",
}),
});
const data = await response.json();
@@ -192,12 +215,14 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description"
}
```
+
diff --git a/docs/api-reference/initiative/add-labels-to-initiative.md b/docs/api-reference/initiative/add-labels-to-initiative.md
index c593d85..237f4be 100644
--- a/docs/api-reference/initiative/add-labels-to-initiative.md
+++ b/docs/api-reference/initiative/add-labels-to-initiative.md
@@ -1,20 +1,20 @@
---
title: Add labels to initiative
-description: Create labels to initiative via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization, initiatives, roadmap, planning
+description: Add labels to initiative via Plane API. HTTP request format, parameters, scopes, and example responses for add labels to initiative.
+keywords: plane, plane api, rest api, api integration, initiative, add labels to initiative
---
# Add labels to initiative
POST
- /api/v1/workspaces/{workspace_slug}/initiatives/{initiative_id}/labels/
+ /api/v1/workspaces/{slug}/initiatives/{initiative_id}/labels/
-Adds one or more labels to an initiative.
+Add labels to an initiative by its ID
@@ -22,15 +22,15 @@ Adds one or more labels to an initiative.
-
+
-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`.
+Initiative ID
-
+
-The unique identifier for the initiative.
+Workspace slug
@@ -43,9 +43,9 @@ The unique identifier for the initiative.
-
+
-Array of initiative label IDs to add to the initiative.
+Label ids.
@@ -56,11 +56,12 @@ Array of initiative label IDs to add to the initiative.
### Scopes
-`initiatives:write`
+`initiatives.labels:write`
+
@@ -68,12 +69,14 @@ Array of initiative label IDs to add to the initiative.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/labels/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/labels/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "label_ids": "example-label_ids"
+ "label_ids": [
+ "550e8400-e29b-41d4-a716-446655440000"
+ ]
}'
```
@@ -84,11 +87,13 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/labels/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/labels/",
headers={"X-API-Key": "your-api-key"},
json={
- 'label_ids': 'example-label_ids'
-}
+ "label_ids": [
+"550e8400-e29b-41d4-a716-446655440000"
+ ]
+ }
)
print(response.json())
```
@@ -98,7 +103,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/labels/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/labels/",
{
method: "POST",
headers: {
@@ -106,7 +111,7 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- label_ids: "example-label_ids",
+ label_ids: ["550e8400-e29b-41d4-a716-446655440000"],
}),
}
);
@@ -116,11 +121,13 @@ const data = await response.json();
-
+
```json
{
- "id": "resource-uuid",
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
"created_at": "2024-01-01T00:00:00Z"
}
```
@@ -128,4 +135,5 @@ const data = await response.json();
+
diff --git a/docs/api-reference/initiative/add-projects-to-initiative.md b/docs/api-reference/initiative/add-projects-to-initiative.md
index 17073e6..2aa0a9c 100644
--- a/docs/api-reference/initiative/add-projects-to-initiative.md
+++ b/docs/api-reference/initiative/add-projects-to-initiative.md
@@ -1,20 +1,20 @@
---
title: Add projects to initiative
-description: Create projects to initiative via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, projects, project management, initiatives, roadmap, planning
+description: Add projects to initiative via Plane API. HTTP request format, parameters, scopes, and example responses for add projects to initiative.
+keywords: plane, plane api, rest api, api integration, initiative, add projects to initiative
---
# Add projects to initiative
POST
- /api/v1/workspaces/{workspace_slug}/initiatives/{initiative_id}/projects/
+ /api/v1/workspaces/{slug}/initiatives/{initiative_id}/projects/
-Adds one or more projects to an initiative.
+Add projects to an initiative by its ID
@@ -22,15 +22,15 @@ Adds one or more projects to an initiative.
-
+
-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`.
+Initiative ID
-
+
-The unique identifier for the initiative.
+Workspace slug
@@ -43,9 +43,9 @@ The unique identifier for the initiative.
-
+
-Array of project IDs to add to the initiative.
+Project ids.
@@ -61,6 +61,7 @@ Array of project IDs to add to the initiative.
+
@@ -68,12 +69,14 @@ Array of project IDs to add to the initiative.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/projects/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/projects/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "project_ids": "example-project_ids"
+ "project_ids": [
+ "550e8400-e29b-41d4-a716-446655440000"
+ ]
}'
```
@@ -84,11 +87,13 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/projects/",
headers={"X-API-Key": "your-api-key"},
json={
- 'project_ids': 'example-project_ids'
-}
+ "project_ids": [
+"550e8400-e29b-41d4-a716-446655440000"
+ ]
+ }
)
print(response.json())
```
@@ -98,7 +103,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/projects/",
{
method: "POST",
headers: {
@@ -106,7 +111,7 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- project_ids: "example-project_ids",
+ project_ids: ["550e8400-e29b-41d4-a716-446655440000"],
}),
}
);
@@ -116,19 +121,23 @@ const data = await response.json();
-
+
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "identifier": "PROJ-123",
+ "network": 2,
+ "project_lead": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/initiative/delete-initiative-label.md b/docs/api-reference/initiative/delete-initiative-label.md
index 3cbc1d2..2b57018 100644
--- a/docs/api-reference/initiative/delete-initiative-label.md
+++ b/docs/api-reference/initiative/delete-initiative-label.md
@@ -1,20 +1,20 @@
---
title: Delete an initiative label
-description: Delete an initiative label via Plane API. HTTP DELETE request for removing resources.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization, initiatives, roadmap, planning
+description: Delete an initiative label via Plane API. HTTP request format, parameters, scopes, and example responses for delete an initiative label.
+keywords: plane, plane api, rest api, api integration, initiative, delete an initiative label
---
# Delete an initiative label
DELETE
- /api/v1/workspaces/{workspace_slug}/initiatives/labels/{label_id}/
+ /api/v1/workspaces/{slug}/initiatives/labels/{pk}/
-Permanently deletes an initiative label from a workspace. This action cannot be undone.
+Delete an initiative label by its ID
@@ -22,15 +22,21 @@ Permanently deletes an initiative label from a workspace. This action cannot be
-
+
-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`.
+Initiative label ID
-
+
-The unique identifier for the initiative label.
+Pk.
+
+
+
+
+
+Workspace slug
@@ -46,6 +52,7 @@ The unique identifier for the initiative label.
+
@@ -53,7 +60,7 @@ The unique identifier for the initiative label.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/label-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,23 +72,26 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/label-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/label-uuid/", {
- method: "DELETE",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
-const data = await response.json();
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
```
@@ -89,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/initiative/delete-initiative.md b/docs/api-reference/initiative/delete-initiative.md
index 152e766..c071553 100644
--- a/docs/api-reference/initiative/delete-initiative.md
+++ b/docs/api-reference/initiative/delete-initiative.md
@@ -1,20 +1,20 @@
---
title: Delete an initiative
-description: Permanently delete an initiative via Plane API. Removes the initiative and disassociates linked epics, projects, and labels. Returns 204 on success.
-keywords: plane, plane api, rest api, api integration, initiatives, roadmap, planning
+description: Delete an initiative via Plane API. HTTP request format, parameters, scopes, and example responses for delete an initiative.
+keywords: plane, plane api, rest api, api integration, initiative, delete an initiative
---
# Delete an initiative
DELETE
- /api/v1/workspaces/{workspace_slug}/initiatives/{initiative_id}/
+ /api/v1/workspaces/{slug}/initiatives/{pk}/
-Permanently deletes an initiative from a workspace. This action cannot be undone.
+Delete an initiative by its ID
@@ -22,15 +22,21 @@ Permanently deletes an initiative from a workspace. This action cannot be undone
-
+
-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`.
+Initiative ID
-
+
-The unique identifier for the initiative.
+Pk.
+
+
+
+
+
+Workspace slug
@@ -46,6 +52,7 @@ The unique identifier for the initiative.
+
@@ -53,7 +60,7 @@ The unique identifier for the initiative.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,23 +72,26 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/", {
- method: "DELETE",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
-const data = await response.json();
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
```
@@ -89,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/initiative/get-initiative-detail.md b/docs/api-reference/initiative/get-initiative-detail.md
index 1ff845c..a18e6cf 100644
--- a/docs/api-reference/initiative/get-initiative-detail.md
+++ b/docs/api-reference/initiative/get-initiative-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve an initiative
-description: Get retrieve an initiative details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, initiatives, roadmap, planning
+description: Retrieve an initiative via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve an initiative.
+keywords: plane, plane api, rest api, api integration, initiative, retrieve an initiative
---
# Retrieve an initiative
GET
- /api/v1/workspaces/{workspace_slug}/initiatives/{initiative_id}/
+ /api/v1/workspaces/{slug}/initiatives/{pk}/
-Retrieves the details of an existing initiative by its ID.
+Retrieve an initiative by its ID
@@ -22,15 +22,21 @@ Retrieves the details of an existing initiative by its ID.
-
+
-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`.
+Initiative ID
-
+
+
+Pk.
+
+
+
+
-The unique identifier for the initiative.
+Workspace slug
@@ -46,6 +52,7 @@ The unique identifier for the initiative.
+
@@ -53,7 +60,7 @@ The unique identifier for the initiative.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +82,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -91,12 +101,14 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description"
}
```
+
diff --git a/docs/api-reference/initiative/get-initiative-label-detail.md b/docs/api-reference/initiative/get-initiative-label-detail.md
index c6decd3..bac4271 100644
--- a/docs/api-reference/initiative/get-initiative-label-detail.md
+++ b/docs/api-reference/initiative/get-initiative-label-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve an initiative label
-description: Get retrieve an initiative label details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization, initiatives, roadmap, planning
+description: Retrieve an initiative label via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve an initiative label.
+keywords: plane, plane api, rest api, api integration, initiative, retrieve an initiative label
---
# Retrieve an initiative label
GET
- /api/v1/workspaces/{workspace_slug}/initiatives/labels/{label_id}/
+ /api/v1/workspaces/{slug}/initiatives/labels/{pk}/
-Retrieves the details of an existing initiative label by its ID.
+Retrieve an initiative label by its ID
@@ -22,15 +22,21 @@ Retrieves the details of an existing initiative label by its ID.
-
+
-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`.
+Initiative label ID
-
+
-The unique identifier for the initiative label.
+Pk.
+
+
+
+
+
+Workspace slug
@@ -46,6 +52,7 @@ The unique identifier for the initiative label.
+
@@ -53,7 +60,7 @@ The unique identifier for the initiative label.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/label-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/label-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +82,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/label-uuid/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -91,7 +101,9 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
"created_at": "2024-01-01T00:00:00Z"
}
```
@@ -99,4 +111,5 @@ const data = await response.json();
+
diff --git a/docs/api-reference/initiative/list-initiative-epics.md b/docs/api-reference/initiative/list-initiative-epics.md
index 42b1ddd..be387e8 100644
--- a/docs/api-reference/initiative/list-initiative-epics.md
+++ b/docs/api-reference/initiative/list-initiative-epics.md
@@ -1,20 +1,20 @@
---
title: List all epics for an initiative
-description: List all epics for an initiative via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, initiatives, roadmap, planning, epics, features, stories
+description: List all epics for an initiative via Plane API. HTTP request format, parameters, scopes, and example responses for list all epics for an initiative.
+keywords: plane, plane api, rest api, api integration, initiative, list all epics for an initiative
---
# List all epics for an initiative
GET
- /api/v1/workspaces/{workspace_slug}/initiatives/{initiative_id}/epics/
+ /api/v1/workspaces/{slug}/initiatives/{initiative_id}/epics/
-Returns a list of all epics associated with an initiative.
+List all epics associated with an initiative
@@ -22,15 +22,15 @@ Returns a list of all epics associated with an initiative.
-
+
-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`.
+Initiative ID
-
+
-The unique identifier for the initiative.
+Workspace slug
@@ -43,15 +43,15 @@ The unique identifier for the initiative.
-
+
-Number of results to return per page.
+Pagination cursor for getting next set of results
-
+
-Number of results to skip for pagination.
+Number of results per page (default: 20, max: 100)
@@ -67,6 +67,7 @@ Number of results to skip for pagination.
+
@@ -74,7 +75,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/epics/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/epics/?cursor=20:1:0&per_page=20" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -86,7 +87,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/epics/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/epics/?cursor=20:1:0&per_page=20",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -96,12 +97,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/epics/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/epics/?cursor=20:1:0&per_page=20",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -112,12 +116,39 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "priority": "high",
+ "sequence_id": 123,
+ "state": {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "group": "started"
+ },
+ "assignees": [],
+ "labels": [],
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/initiative/list-initiative-labels-for-initiative.md b/docs/api-reference/initiative/list-initiative-labels-for-initiative.md
index 7152f62..6e2fdcf 100644
--- a/docs/api-reference/initiative/list-initiative-labels-for-initiative.md
+++ b/docs/api-reference/initiative/list-initiative-labels-for-initiative.md
@@ -1,20 +1,20 @@
---
title: List all labels for an initiative
-description: List all labels for an initiative via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization, initiatives, roadmap, planning
+description: List all labels for an initiative via Plane API. HTTP request format, parameters, scopes, and example responses for list all labels for an initiative.
+keywords: plane, plane api, rest api, api integration, initiative, list all labels for an initiative
---
# List all labels for an initiative
GET
- /api/v1/workspaces/{workspace_slug}/initiatives/{initiative_id}/labels/
+ /api/v1/workspaces/{slug}/initiatives/{initiative_id}/labels/
-Returns a list of all labels associated with an initiative.
+List all labels associated with an initiative
@@ -22,15 +22,15 @@ Returns a list of all labels associated with an initiative.
-
+
-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`.
+Initiative ID
-
+
-The unique identifier for the initiative.
+Workspace slug
@@ -43,15 +43,15 @@ The unique identifier for the initiative.
-
+
-Number of results to return per page.
+Pagination cursor for getting next set of results
-
+
-Number of results to skip for pagination.
+Number of results per page (default: 20, max: 100)
@@ -62,11 +62,12 @@ Number of results to skip for pagination.
### Scopes
-`initiatives:read`
+`initiatives.labels:read`
+
@@ -74,7 +75,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/labels/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/labels/?cursor=20:1:0&per_page=20" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -86,7 +87,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/labels/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/labels/?cursor=20:1:0&per_page=20",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -97,7 +98,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/labels/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/labels/?cursor=20:1:0&per_page=20",
{
method: "GET",
headers: {
@@ -115,12 +116,30 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/initiative/list-initiative-labels.md b/docs/api-reference/initiative/list-initiative-labels.md
index c32209b..97b20d8 100644
--- a/docs/api-reference/initiative/list-initiative-labels.md
+++ b/docs/api-reference/initiative/list-initiative-labels.md
@@ -1,20 +1,20 @@
---
title: List all initiative labels
-description: List all initiative labels via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization, initiatives, roadmap, planning
+description: List all initiative labels via Plane API. HTTP request format, parameters, scopes, and example responses for list all initiative labels.
+keywords: plane, plane api, rest api, api integration, initiative, list all initiative labels
---
# List all initiative labels
GET
- /api/v1/workspaces/{workspace_slug}/initiatives/labels/
+ /api/v1/workspaces/{slug}/initiatives/labels/
-Returns a list of all initiative labels in a workspace.
+List all initiative labels in the workspace
@@ -22,9 +22,9 @@ Returns a list of all initiative labels in a workspace.
-
+
-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`.
+Workspace slug
@@ -37,15 +37,15 @@ The workspace_slug represents the unique workspace identifier for a workspace in
-
+
-Number of results to return per page.
+Pagination cursor for getting next set of results
-
+
-Number of results to skip for pagination.
+Number of results per page (default: 20, max: 100)
@@ -61,6 +61,7 @@ Number of results to skip for pagination.
+
@@ -68,7 +69,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/?cursor=20:1:0&per_page=20" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -80,7 +81,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/?cursor=20:1:0&per_page=20",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -90,12 +91,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/?cursor=20:1:0&per_page=20",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -105,13 +109,33 @@ const data = await response.json();
```json
-{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ {
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
+ }
+]
```
+
diff --git a/docs/api-reference/initiative/list-initiative-projects.md b/docs/api-reference/initiative/list-initiative-projects.md
index 95d9a9e..aac3d6c 100644
--- a/docs/api-reference/initiative/list-initiative-projects.md
+++ b/docs/api-reference/initiative/list-initiative-projects.md
@@ -1,20 +1,20 @@
---
title: List all projects in an initiative
-description: List all projects in an initiative via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, projects, project management, initiatives, roadmap, planning
+description: List all projects in an initiative via Plane API. HTTP request format, parameters, scopes, and example responses for list all projects in an initiative.
+keywords: plane, plane api, rest api, api integration, initiative, list all projects in an initiative
---
# List all projects in an initiative
GET
- /api/v1/workspaces/{workspace_slug}/initiatives/{initiative_id}/projects/
+ /api/v1/workspaces/{slug}/initiatives/{initiative_id}/projects/
-Returns a list of all projects associated with an initiative.
+List all projects associated with an initiative
@@ -22,15 +22,15 @@ Returns a list of all projects associated with an initiative.
-
+
-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`.
+Initiative ID
-
+
-The unique identifier for the initiative.
+Workspace slug
@@ -43,15 +43,15 @@ The unique identifier for the initiative.
-
+
-Number of results to return per page.
+Pagination cursor for getting next set of results
-
+
-Number of results to skip for pagination.
+Number of results per page (default: 20, max: 100)
@@ -67,6 +67,7 @@ Number of results to skip for pagination.
+
@@ -74,7 +75,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/projects/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/projects/?cursor=20:1:0&per_page=20" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -86,7 +87,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/projects/?cursor=20:1:0&per_page=20",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -97,7 +98,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/projects/?cursor=20:1:0&per_page=20",
{
method: "GET",
headers: {
@@ -115,15 +116,31 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "identifier": "PROJ-123",
+ "network": 2
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/initiative/list-initiatives.md b/docs/api-reference/initiative/list-initiatives.md
index 64b2bcf..b93d5a3 100644
--- a/docs/api-reference/initiative/list-initiatives.md
+++ b/docs/api-reference/initiative/list-initiatives.md
@@ -1,20 +1,20 @@
---
title: List all initiatives
-description: List all initiatives via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, initiatives, roadmap, planning
+description: List all initiatives via Plane API. HTTP request format, parameters, scopes, and example responses for list all initiatives.
+keywords: plane, plane api, rest api, api integration, initiative, list all initiatives
---
# List all initiatives
GET
- /api/v1/workspaces/{workspace_slug}/initiatives/
+ /api/v1/workspaces/{slug}/initiatives/
-Returns a list of all initiatives in a workspace.
+List all initiatives in the workspace
@@ -22,9 +22,9 @@ Returns a list of all initiatives in a workspace.
-
+
-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`.
+Workspace slug
@@ -37,15 +37,15 @@ The workspace_slug represents the unique workspace identifier for a workspace in
-
+
-Number of results to return per page.
+Pagination cursor for getting next set of results
-
+
-Number of results to skip for pagination.
+Number of results per page (default: 20, max: 100)
@@ -61,6 +61,7 @@ Number of results to skip for pagination.
+
@@ -68,7 +69,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/?cursor=20:1:0&per_page=20" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -80,7 +81,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/?cursor=20:1:0&per_page=20",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -90,12 +91,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/?cursor=20:1:0&per_page=20",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -105,13 +109,33 @@ const data = await response.json();
```json
-{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ {
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
+ }
+]
```
+
diff --git a/docs/api-reference/initiative/remove-epics-from-initiative.md b/docs/api-reference/initiative/remove-epics-from-initiative.md
index 55313e8..3f8bd7b 100644
--- a/docs/api-reference/initiative/remove-epics-from-initiative.md
+++ b/docs/api-reference/initiative/remove-epics-from-initiative.md
@@ -1,20 +1,20 @@
---
title: Remove epics from initiative
-description: Delete epics from initiative via Plane API. HTTP DELETE request for removing resources.
-keywords: plane, plane api, rest api, api integration, initiatives, roadmap, planning, epics, features, stories
+description: Remove epics from initiative via Plane API. HTTP request format, parameters, scopes, and example responses for remove epics from initiative.
+keywords: plane, plane api, rest api, api integration, initiative, remove epics from initiative
---
# Remove epics from initiative
DELETE
- /api/v1/workspaces/{workspace_slug}/initiatives/{initiative_id}/epics/
+ /api/v1/workspaces/{slug}/initiatives/{initiative_id}/epics/
-Removes one or more epics from an initiative.
+Remove epics from an initiative by its ID
@@ -22,30 +22,15 @@ Removes one or more epics from an initiative.
-
-
-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`.
-
-
-
-The unique identifier for the initiative.
+Initiative ID
-
-
-
-
+
-### Body Parameters
-
-
-
-
-
-Array of epic IDs to remove from the initiative.
+Workspace slug
@@ -61,6 +46,7 @@ Array of epic IDs to remove from the initiative.
+
@@ -68,7 +54,7 @@ Array of epic IDs to remove from the initiative.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/epics/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/epics/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -80,23 +66,26 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/epics/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/epics/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/epics/", {
- method: "DELETE",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
-const data = await response.json();
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/epics/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
```
@@ -104,11 +93,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/initiative/remove-labels-from-initiative.md b/docs/api-reference/initiative/remove-labels-from-initiative.md
index 8bee044..48aee1c 100644
--- a/docs/api-reference/initiative/remove-labels-from-initiative.md
+++ b/docs/api-reference/initiative/remove-labels-from-initiative.md
@@ -1,20 +1,20 @@
---
title: Remove labels from initiative
-description: Delete labels from initiative via Plane API. HTTP DELETE request for removing resources.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization, initiatives, roadmap, planning
+description: Remove labels from initiative via Plane API. HTTP request format, parameters, scopes, and example responses for remove labels from initiative.
+keywords: plane, plane api, rest api, api integration, initiative, remove labels from initiative
---
# Remove labels from initiative
DELETE
- /api/v1/workspaces/{workspace_slug}/initiatives/{initiative_id}/labels/
+ /api/v1/workspaces/{slug}/initiatives/{initiative_id}/labels/
-Removes one or more labels from an initiative.
+Remove labels from an initiative by its ID
@@ -22,30 +22,15 @@ Removes one or more labels from an initiative.
-
-
-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`.
-
-
-
-The unique identifier for the initiative.
+Initiative ID
-
-
-
-
+
-### Body Parameters
-
-
-
-
-
-Array of initiative label IDs to remove from the initiative.
+Workspace slug
@@ -56,11 +41,12 @@ Array of initiative label IDs to remove from the initiative.
### Scopes
-`initiatives:write`
+`initiatives.labels:write`
+
@@ -68,7 +54,7 @@ Array of initiative label IDs to remove from the initiative.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/labels/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/labels/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -80,10 +66,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/labels/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/labels/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -91,7 +77,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/labels/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/labels/",
{
method: "DELETE",
headers: {
@@ -99,7 +85,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -107,11 +93,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/initiative/remove-projects-from-initiative.md b/docs/api-reference/initiative/remove-projects-from-initiative.md
index 22a444e..c016eed 100644
--- a/docs/api-reference/initiative/remove-projects-from-initiative.md
+++ b/docs/api-reference/initiative/remove-projects-from-initiative.md
@@ -1,20 +1,20 @@
---
title: Remove projects from initiative
-description: Delete projects from initiative via Plane API. HTTP DELETE request for removing resources.
-keywords: plane, plane api, rest api, api integration, projects, project management, initiatives, roadmap, planning
+description: Remove projects from initiative via Plane API. HTTP request format, parameters, scopes, and example responses for remove projects from initiative.
+keywords: plane, plane api, rest api, api integration, initiative, remove projects from initiative
---
# Remove projects from initiative
DELETE
- /api/v1/workspaces/{workspace_slug}/initiatives/{initiative_id}/projects/
+ /api/v1/workspaces/{slug}/initiatives/{initiative_id}/projects/
-Removes one or more projects from an initiative.
+Remove projects from an initiative by its ID
@@ -22,30 +22,15 @@ Removes one or more projects from an initiative.
-
-
-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`.
-
-
-
-The unique identifier for the initiative.
+Initiative ID
-
-
-
-
+
-### Body Parameters
-
-
-
-
-
-Array of project IDs to remove from the initiative.
+Workspace slug
@@ -61,6 +46,7 @@ Array of project IDs to remove from the initiative.
+
@@ -68,7 +54,7 @@ Array of project IDs to remove from the initiative.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/projects/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/projects/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -80,10 +66,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/projects/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -91,7 +77,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440001/projects/",
{
method: "DELETE",
headers: {
@@ -99,7 +85,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -107,11 +93,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/initiative/update-initiative-detail.md b/docs/api-reference/initiative/update-initiative-detail.md
index e8320c3..a232217 100644
--- a/docs/api-reference/initiative/update-initiative-detail.md
+++ b/docs/api-reference/initiative/update-initiative-detail.md
@@ -1,20 +1,20 @@
---
title: Update an initiative
-description: Update an initiative via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, initiatives, roadmap, planning
+description: Update an initiative via Plane API. HTTP request format, parameters, scopes, and example responses for update an initiative.
+keywords: plane, plane api, rest api, api integration, initiative, update an initiative
---
# Update an initiative
PATCH
- /api/v1/workspaces/{workspace_slug}/initiatives/{initiative_id}/
+ /api/v1/workspaces/{slug}/initiatives/{pk}/
-Updates an existing initiative by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Update an initiative by its ID
@@ -22,15 +22,21 @@ Updates an existing initiative by setting the values of the parameters passed. A
-
+
-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`.
+Initiative ID
-
+
-The unique identifier for the initiative.
+Pk.
+
+
+
+
+
+Workspace slug
@@ -43,63 +49,79 @@ The unique identifier for the initiative.
-
+
-Name of the initiative.
+Name.
-
+
-Plain text description of the initiative.
+Description.
-
+
-HTML-formatted description of the initiative.
+Description html.
-
+
-Stripped version of the HTML description.
+Description stripped.
-
+
-Binary representation of the description.
+Start date.
-
+
-ID of the user who leads the initiative.
+End date.
-
+
-Start date in YYYY-MM-DD format.
+Logo props.
-
+
-End date in YYYY-MM-DD format.
+- `DRAFT` - Draft
+- `PLANNED` - Planned
+- `ACTIVE` - Active
+- `COMPLETED` - Completed
+- `CLOSED` - Closed
-
+
-Logo properties for the initiative
+Archived at.
-
+
-Current state of the initiative. Possible values: `DRAFT`, `PLANNED`, `ACTIVE`, `COMPLETED`, `CLOSED`.
+Created by.
+
+
+
+
+
+Updated by.
+
+
+
+
+
+Lead.
@@ -115,6 +137,7 @@ Current state of the initiative. Possible values: `DRAFT`, `PLANNED`, `ACTIVE`,
+
@@ -122,21 +145,23 @@ Current state of the initiative. Possible values: `DRAFT`, `PLANNED`, `ACTIVE`,
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description",
- "description_html": "example-description_html",
- "description_stripped": "example-description_stripped",
- "description_binary": "example-description_binary",
- "lead": "example-lead",
- "start_date": "example-start_date",
- "end_date": "example-end_date",
- "logo_props": "example-logo_props",
- "state": "example-state"
+ "name": "Example Name",
+ "description": "Example description",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "start_date": "2024-01-01T00:00:00Z",
+ "end_date": "2024-01-01T00:00:00Z",
+ "logo_props": "example-value",
+ "state": "DRAFT",
+ "archived_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "lead": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -147,20 +172,22 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description',
- 'description_html': 'example-description_html',
- 'description_stripped': 'example-description_stripped',
- 'description_binary': 'example-description_binary',
- 'lead': 'example-lead',
- 'start_date': 'example-start_date',
- 'end_date': 'example-end_date',
- 'logo_props': 'example-logo_props',
- 'state': 'example-state'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "start_date": "2024-01-01T00:00:00Z",
+ "end_date": "2024-01-01T00:00:00Z",
+ "logo_props": "example-value",
+ "state": "DRAFT",
+ "archived_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "lead": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -169,25 +196,30 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/{initiative_id}/", {
- method: "PATCH",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- description_html: "example-description_html",
- description_stripped: "example-description_stripped",
- description_binary: "example-description_binary",
- lead: "example-lead",
- start_date: "example-start_date",
- end_date: "example-end_date",
- logo_props: "example-logo_props",
- state: "example-state",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ description: "Example description",
+ description_html: "Example content
",
+ description_stripped: "Example description",
+ start_date: "2024-01-01T00:00:00Z",
+ end_date: "2024-01-01T00:00:00Z",
+ logo_props: "example-value",
+ state: "DRAFT",
+ archived_at: "2024-01-01T00:00:00Z",
+ created_by: "550e8400-e29b-41d4-a716-446655440000",
+ updated_by: "550e8400-e29b-41d4-a716-446655440000",
+ lead: "550e8400-e29b-41d4-a716-446655440000",
+ }),
+ }
+);
const data = await response.json();
```
@@ -198,12 +230,14 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description"
}
```
+
diff --git a/docs/api-reference/initiative/update-initiative-label-detail.md b/docs/api-reference/initiative/update-initiative-label-detail.md
index 05fe259..e8a1990 100644
--- a/docs/api-reference/initiative/update-initiative-label-detail.md
+++ b/docs/api-reference/initiative/update-initiative-label-detail.md
@@ -1,20 +1,20 @@
---
title: Update an initiative label
-description: Update an initiative label via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization, initiatives, roadmap, planning
+description: Update an initiative label via Plane API. HTTP request format, parameters, scopes, and example responses for update an initiative label.
+keywords: plane, plane api, rest api, api integration, initiative, update an initiative label
---
# Update an initiative label
PATCH
- /api/v1/workspaces/{workspace_slug}/initiatives/labels/{label_id}/
+ /api/v1/workspaces/{slug}/initiatives/labels/{pk}/
-Updates an existing initiative label by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Update an initiative label by its ID
@@ -22,15 +22,21 @@ Updates an existing initiative label by setting the values of the parameters pas
-
+
-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`.
+Initiative label ID
-
+
-The unique identifier for the initiative label.
+Pk.
+
+
+
+
+
+Workspace slug
@@ -43,27 +49,27 @@ The unique identifier for the initiative label.
-
+
-Name of the initiative label.
+Name.
-
+
-Description of the initiative label.
+Description.
-
+
-Hex color code for the initiative label (e.g., "#eb5757").
+Color.
-
+
-Sort order for display purposes.
+Sort order.
@@ -79,6 +85,7 @@ Sort order for display purposes.
+
@@ -86,14 +93,14 @@ Sort order for display purposes.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/label-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description",
- "color": "example-color",
+ "name": "Example Name",
+ "description": "Example description",
+ "color": "Example Name",
"sort_order": 1
}'
```
@@ -105,14 +112,14 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/label-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description',
- 'color': 'example-color',
- 'sort_order': 1
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "color": "Example Name",
+ "sort_order": 1
+ }
)
print(response.json())
```
@@ -121,19 +128,22 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/label-uuid/", {
- method: "PATCH",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- color: "example-color",
- sort_order: 1,
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/initiatives/labels/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ description: "Example description",
+ color: "Example Name",
+ sort_order: 1,
+ }),
+ }
+);
const data = await response.json();
```
@@ -144,7 +154,9 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
"created_at": "2024-01-01T00:00:00Z"
}
```
@@ -152,4 +164,5 @@ const data = await response.json();
+
diff --git a/docs/api-reference/intake-issue/add-intake-issue.md b/docs/api-reference/intake-issue/add-intake-issue.md
index 96c8a2a..9656f9d 100644
--- a/docs/api-reference/intake-issue/add-intake-issue.md
+++ b/docs/api-reference/intake-issue/add-intake-issue.md
@@ -1,20 +1,20 @@
---
title: Create an intake work item
-description: Create an intake work item via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, intake, triage, submissions
+description: Create an intake work item via Plane API. HTTP request format, parameters, scopes, and example responses for create an intake work item.
+keywords: plane, plane api, rest api, api integration, intake issue, create an intake work item
---
# Create an intake work item
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/intake-issues/
+ /api/v1/workspaces/{slug}/projects/{project_id}/intake-issues/
-Creates a new intake work item in a project.
+Submit a new work item to the project's intake queue for review and triage. Automatically creates the work item with default triage state and tracks activity.
@@ -22,15 +22,15 @@ Creates a new intake work item in a project.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
@@ -45,7 +45,7 @@ The unique identifier of the project.
-An object containing the intake issue details, including a required `name` field for the intake issue name.
+Issue data for the intake issue
@@ -61,6 +61,7 @@ An object containing the intake issue details, including a required `name` field
+
@@ -68,12 +69,16 @@ An object containing the intake issue details, including a required `name` field
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "issue": "example-issue"
+ "issue": {
+ "name": "Example Name",
+ "description": "Example description",
+ "priority": "medium"
+ }
}'
```
@@ -84,11 +89,15 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/",
headers={"X-API-Key": "your-api-key"},
json={
- 'issue': 'example-issue'
-}
+ "issue": {
+"name": "Example Name",
+"description": "Example description",
+"priority": "medium"
+ }
+ }
)
print(response.json())
```
@@ -98,7 +107,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/",
{
method: "POST",
headers: {
@@ -106,7 +115,11 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- issue: "example-issue",
+ issue: {
+ name: "Example Name",
+ description: "Example description",
+ priority: "medium",
+ },
}),
}
);
@@ -120,15 +133,23 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "status": 0,
+ "source": "in_app",
+ "issue": {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "priority": "medium",
+ "sequence_id": 124
+ },
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/intake-issue/delete-intake-issue.md b/docs/api-reference/intake-issue/delete-intake-issue.md
index 0b17cc3..200f0cb 100644
--- a/docs/api-reference/intake-issue/delete-intake-issue.md
+++ b/docs/api-reference/intake-issue/delete-intake-issue.md
@@ -1,20 +1,20 @@
---
title: Delete an intake work item
-description: Delete an intake work item via Plane API. Permanently removes the submission from the intake queue. Returns 204 on success.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, intake, triage, submissions
+description: Delete an intake work item via Plane API. HTTP request format, parameters, scopes, and example responses for delete an intake work item.
+keywords: plane, plane api, rest api, api integration, intake issue, delete an intake work item
---
# Delete an intake work item
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/intake-issues/{issue_id}
+ /api/v1/workspaces/{slug}/projects/{project_id}/intake-issues/{issue_id}/
-Permanently deletes an intake work item from a project. This action cannot be undone.
+Permanently remove an intake work item from the triage queue. Also deletes the underlying work item if it hasn't been accepted yet.
@@ -22,27 +22,21 @@ Permanently deletes an intake work item from a project. This action cannot be un
-
+
-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`.
+Issue ID
-The unique identifier of the project
+Project ID
-
+
-The unique identifier of the work item
-
-
-
-
-
-The unique identifier for the intake work item.
+Workspace slug
@@ -58,6 +52,7 @@ The unique identifier for the intake work item.
+
@@ -65,7 +60,7 @@ The unique identifier for the intake work item.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/issue-uuid" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,10 +72,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/issue-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -88,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/issue-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/550e8400-e29b-41d4-a716-446655440001/",
{
method: "DELETE",
headers: {
@@ -96,7 +91,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -104,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/intake-issue/get-intake-issue-detail.md b/docs/api-reference/intake-issue/get-intake-issue-detail.md
index 04de8f0..f16c307 100644
--- a/docs/api-reference/intake-issue/get-intake-issue-detail.md
+++ b/docs/api-reference/intake-issue/get-intake-issue-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve an intake work item
-description: Get retrieve an intake work item details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, intake, triage, submissions
+description: Retrieve an intake work item via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve an intake work item.
+keywords: plane, plane api, rest api, api integration, intake issue, retrieve an intake work item
---
# Retrieve an intake work item
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/intake-issues/{issue_id}
+ /api/v1/workspaces/{slug}/projects/{project_id}/intake-issues/{issue_id}/
-Retrieves the details of an existing intake work item by its ID.
+Retrieve details of a specific intake work item.
@@ -22,21 +22,21 @@ Retrieves the details of an existing intake work item by its ID.
-
+
-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`.
+Issue ID
-The unique identifier of the project
+Project ID
-
+
-The unique identifier of the work item
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier of the work item
+
@@ -59,7 +60,7 @@ The unique identifier of the work item
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/issue-uuid" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/issue-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/issue-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/550e8400-e29b-41d4-a716-446655440001/",
{
method: "GET",
headers: {
@@ -100,15 +101,23 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "status": 0,
+ "source": "in_app",
+ "issue": {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "priority": "medium",
+ "sequence_id": 124
+ },
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/intake-issue/list-intake-issues.md b/docs/api-reference/intake-issue/list-intake-issues.md
index 2f579b7..b26c02c 100644
--- a/docs/api-reference/intake-issue/list-intake-issues.md
+++ b/docs/api-reference/intake-issue/list-intake-issues.md
@@ -1,20 +1,20 @@
---
title: List all intake work items
-description: List all intake work items via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, intake, triage, submissions
+description: List all intake work items via Plane API. HTTP request format, parameters, scopes, and example responses for list all intake work items.
+keywords: plane, plane api, rest api, api integration, intake issue, list all intake work items
---
# List all intake work items
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/intake-issues/
+ /api/v1/workspaces/{slug}/projects/{project_id}/intake-issues/
-Returns a list of all intake work items in a project.
+Retrieve all work items in the project's intake queue. Returns paginated results when listing all intake work items.
@@ -22,15 +22,48 @@ Returns a list of all intake work items in a project.
-
+
-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
-
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
-The unique identifier of the project
+Pagination cursor for getting next set of results
+
+
+
+
+
+Comma-separated list of related fields to expand in response
+
+
+
+
+
+Comma-separated list of fields to include in response
+
+
+
+
+
+Number of results per page (default: 20, max: 100)
@@ -46,6 +79,7 @@ The unique identifier of the project
+
@@ -53,7 +87,7 @@ The unique identifier of the project
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/?cursor=20:1:0&expand=assignees" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +99,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -76,7 +110,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/?cursor=20:1:0&expand=assignees",
{
method: "GET",
headers: {
@@ -94,15 +128,29 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/intake-issue/update-intake-issue-detail.md b/docs/api-reference/intake-issue/update-intake-issue-detail.md
index c385332..9709ca9 100644
--- a/docs/api-reference/intake-issue/update-intake-issue-detail.md
+++ b/docs/api-reference/intake-issue/update-intake-issue-detail.md
@@ -1,20 +1,20 @@
---
title: Update an intake work item
-description: Update an intake work item via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, intake, triage, submissions
+description: Update an intake work item via Plane API. HTTP request format, parameters, scopes, and example responses for update an intake work item.
+keywords: plane, plane api, rest api, api integration, intake issue, update an intake work item
---
# Update an intake work item
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/intake-issues/{issue_id}
+ /api/v1/workspaces/{slug}/projects/{project_id}/intake-issues/{issue_id}/
-Updates an existing intake work item by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Modify an existing intake work item's properties or status for triage processing. Supports status changes like accept, reject, or mark as duplicate.
@@ -22,21 +22,21 @@ Updates an existing intake work item by setting the values of the parameters pas
-
+
-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`.
+Issue ID
-The unique identifier of the project
+Project ID
-
+
-The unique identifier of the work item
+Workspace slug
@@ -49,9 +49,43 @@ The unique identifier of the work item
-
+
-An object containing the intake work item details to update, including an optional `name` field.
+- `-2` - Pending
+- `-1` - Rejected
+- `0` - Snoozed
+- `1` - Accepted
+- `2` - Duplicate
+
+
+
+
+
+Snoozed till.
+
+
+
+
+
+Duplicate to.
+
+
+
+
+
+Source.
+
+
+
+
+
+Source email.
+
+
+
+
+
+Issue data to update in the intake issue
@@ -67,6 +101,7 @@ An object containing the intake work item details to update, including an option
+
@@ -74,12 +109,17 @@ An object containing the intake work item details to update, including an option
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/issue-uuid" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "issue": "example-issue"
+ "status": 1,
+ "issue": {
+ "name": "Example Name",
+ "description": "Example description",
+ "priority": "high"
+ }
}'
```
@@ -90,11 +130,16 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/issue-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"},
json={
- 'issue': 'example-issue'
-}
+ "status": 1,
+ "issue": {
+"name": "Example Name",
+"description": "Example description",
+"priority": "high"
+ }
+ }
)
print(response.json())
```
@@ -104,7 +149,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/intake-issues/issue-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/intake-issues/550e8400-e29b-41d4-a716-446655440001/",
{
method: "PATCH",
headers: {
@@ -112,7 +157,12 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- issue: "example-issue",
+ status: 1,
+ issue: {
+ name: "Example Name",
+ description: "Example description",
+ priority: "high",
+ },
}),
}
);
@@ -126,15 +176,23 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "status": 0,
+ "source": "in_app",
+ "issue": {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "priority": "medium",
+ "sequence_id": 124
+ },
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/issue-activity/get-issue-activity-detail.md b/docs/api-reference/issue-activity/get-issue-activity-detail.md
index 54779c8..45afdaf 100644
--- a/docs/api-reference/issue-activity/get-issue-activity-detail.md
+++ b/docs/api-reference/issue-activity/get-issue-activity-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a work item activity
-description: Get retrieve a work item activity details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Retrieve a work item activity via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a work item activity.
+keywords: plane, plane api, rest api, api integration, issue activity, retrieve a work item activity
---
# Retrieve a work item activity
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/activities/{activity_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/activities/{pk}/
-Retrieves the details of an existing work item activity by its ID.
+Retrieve details of a specific activity.
@@ -22,27 +22,66 @@ Retrieves the details of an existing work item activity by its ID.
-
+
-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`.
+Issue ID
+
+
+
+
+
+Activity ID
-The unique identifier of the project.
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
-
+
-The unique identifier for the work item.
+Comma-separated list of related fields to expand in response
-
+
-The unique identifier for the activity.
+Comma-separated list of fields to include in response
+
+
+
+
+
+Field to order results by. Prefix with '-' for descending order
+
+
+
+
+
+Number of results per page (default: 20, max: 100)
@@ -58,6 +97,7 @@ The unique identifier for the activity.
+
@@ -65,7 +105,7 @@ The unique identifier for the activity.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/activities/{activity_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/activities/550e8400-e29b-41d4-a716-446655440000/?cursor=20:1:0&expand=assignees" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,7 +117,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/activities/{activity_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/activities/550e8400-e29b-41d4-a716-446655440000/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -88,7 +128,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/activities/{activity_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/activities/550e8400-e29b-41d4-a716-446655440000/?cursor=20:1:0&expand=assignees",
{
method: "GET",
headers: {
@@ -106,15 +146,29 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/issue-activity/list-issue-activities.md b/docs/api-reference/issue-activity/list-issue-activities.md
index d2f908a..d00477c 100644
--- a/docs/api-reference/issue-activity/list-issue-activities.md
+++ b/docs/api-reference/issue-activity/list-issue-activities.md
@@ -1,20 +1,20 @@
---
title: List all work item activity
-description: List all work item activity via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: List all work item activity via Plane API. HTTP request format, parameters, scopes, and example responses for list all work item activity.
+keywords: plane, plane api, rest api, api integration, issue activity, list all work item activity
---
# List all work item activity
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/activities/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/activities/
-Returns a list of all activities for a work item, ordered chronologically.
+Retrieve all activities for a work item. Supports filtering by activity type and date range.
@@ -22,21 +22,60 @@ Returns a list of all activities for a work item, ordered chronologically.
-
+
-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`.
+Issue ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the work item.
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
+
+
+
+
+
+Comma-separated list of related fields to expand in response
+
+
+
+
+
+Comma-separated list of fields to include in response
+
+
+
+
+
+Field to order results by. Prefix with '-' for descending order
+
+
+
+
+
+Number of results per page (default: 20, max: 100)
@@ -52,6 +91,7 @@ The unique identifier for the work item.
+
@@ -59,7 +99,7 @@ The unique identifier for the work item.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/activities/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/activities/?cursor=20:1:0&expand=assignees" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +111,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/activities/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/activities/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +122,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/activities/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/activities/?cursor=20:1:0&expand=assignees",
{
method: "GET",
headers: {
@@ -100,15 +140,29 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/issue-attachments/complete-upload.md b/docs/api-reference/issue-attachments/complete-upload.md
index 7bed283..2da081b 100644
--- a/docs/api-reference/issue-attachments/complete-upload.md
+++ b/docs/api-reference/issue-attachments/complete-upload.md
@@ -1,20 +1,20 @@
---
title: Complete upload
-description: Complete upload API endpoint. Request format, parameters, and response examples for Plane REST API.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, attachments, files, uploads
+description: Complete upload via Plane API. HTTP request format, parameters, scopes, and example responses for complete upload.
+keywords: plane, plane api, rest api, api integration, issue attachments, complete upload
---
# Complete upload
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/attachments/{asset_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/attachments/{pk}/
-Notifies the server that an attachment has been successfully uploaded to S3. This endpoint should be called after you've [uploaded the file](/api-reference/issue-attachments/upload-file).
+Mark an attachment as uploaded after successful file transfer to storage.
@@ -22,27 +22,42 @@ Notifies the server that an attachment has been successfully uploaded to S3. Thi
-
+
-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`.
+Issue id.
+
+
+
+
+
+Attachment ID
-The unique identifier of the project
+Project ID
-
+
-The unique identifier of the work item
+Workspace slug
-
+
+
+
+
-The unique identifier of the attachment generated by the [Get upload credentials](/api-reference/issue-attachments/get-upload-credentials) endpoint.
+### Body Parameters
+
+
+
+
+
+Mark attachment as uploaded
@@ -58,6 +73,7 @@ The unique identifier of the attachment generated by the [Get upload credentials
+
@@ -65,9 +81,13 @@ The unique identifier of the attachment generated by the [Get upload credentials
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/{asset_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "is_uploaded": true
+}'
```
@@ -77,10 +97,13 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/{asset_id}/",
- headers={"X-API-Key": "your-api-key"}
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/550e8400-e29b-41d4-a716-446655440000/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "is_uploaded": true
+ }
)
-print(response.json())
+print(response.status_code)
```
@@ -88,33 +111,30 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/{asset_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/550e8400-e29b-41d4-a716-446655440000/",
{
method: "PATCH",
headers: {
"X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
},
+ body: JSON.stringify({
+ is_uploaded: true,
+ }),
}
);
-const data = await response.json();
+console.log(response.status);
```
-
+
-```json
-{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
-}
-```
+No response body.
+
diff --git a/docs/api-reference/issue-attachments/delete-attachment.md b/docs/api-reference/issue-attachments/delete-attachment.md
index 701fe91..ab49c32 100644
--- a/docs/api-reference/issue-attachments/delete-attachment.md
+++ b/docs/api-reference/issue-attachments/delete-attachment.md
@@ -1,20 +1,20 @@
---
title: Delete an attachment
-description: Delete a file attachment from a work item via Plane API. Permanently removes the uploaded file. Returns 204 on success.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, attachments, files, uploads
+description: Delete an attachment via Plane API. HTTP request format, parameters, scopes, and example responses for delete an attachment.
+keywords: plane, plane api, rest api, api integration, issue attachments, delete an attachment
---
# Delete an attachment
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/attachments/{attachment_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/attachments/{pk}/
-Permanently deletes an attachment from a work item. This action cannot be undone.
+Permanently remove an attachment from a work item. Records deletion activity for audit purposes.
@@ -22,27 +22,27 @@ Permanently deletes an attachment from a work item. This action cannot be undone
-
+
-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`.
+Issue id.
-
+
-The unique identifier of the project.
+Attachment ID
-
+
-The unique identifier of the work item.
+Project ID
-
+
-The unique identifier of the attachment.
+Workspace slug
@@ -58,6 +58,7 @@ The unique identifier of the attachment.
+
@@ -65,7 +66,7 @@ The unique identifier of the attachment.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/{attachment_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,10 +78,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/{attachment_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/{attachment_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/550e8400-e29b-41d4-a716-446655440000/",
{
method: "DELETE",
headers: {
@@ -96,7 +97,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -104,11 +105,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/issue-attachments/get-attachment-detail.md b/docs/api-reference/issue-attachments/get-attachment-detail.md
index 3a259fb..d641d69 100644
--- a/docs/api-reference/issue-attachments/get-attachment-detail.md
+++ b/docs/api-reference/issue-attachments/get-attachment-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve an attachment
-description: Get retrieve an attachment details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, attachments, files, uploads
+description: Retrieve an attachment via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve an attachment.
+keywords: plane, plane api, rest api, api integration, issue attachments, retrieve an attachment
---
# Retrieve an attachment
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/attachments/{attachment_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/attachments/{pk}/
-Retrieves the details of an existing attachment by its ID.
+Download attachment file. Returns a redirect to the presigned download URL.
@@ -22,27 +22,27 @@ Retrieves the details of an existing attachment by its ID.
-
+
-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`.
+Issue id.
-
+
-The unique identifier of the project
+Attachment ID
-
+
-The unique identifier of the work item
+Project ID
-
+
-The unique identifier of the attachment
+Workspace slug
@@ -56,6 +56,7 @@ The unique identifier of the attachment
`projects.work_items.attachments:read`
+
@@ -65,7 +66,7 @@ The unique identifier of the attachment
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/{attachment_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,7 +78,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/{attachment_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/{attachment_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/550e8400-e29b-41d4-a716-446655440000/",
{
method: "GET",
headers: {
@@ -102,19 +103,16 @@ const data = await response.json();
-
+
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "detail": "Authentication credentials were not provided or are invalid."
}
```
+
diff --git a/docs/api-reference/issue-attachments/get-attachments.md b/docs/api-reference/issue-attachments/get-attachments.md
index f78fc2d..50fb9ac 100644
--- a/docs/api-reference/issue-attachments/get-attachments.md
+++ b/docs/api-reference/issue-attachments/get-attachments.md
@@ -1,20 +1,20 @@
---
title: List all attachments
-description: List all attachments via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, attachments, files, uploads
+description: List all attachments via Plane API. HTTP request format, parameters, scopes, and example responses for list all attachments.
+keywords: plane, plane api, rest api, api integration, issue attachments, list all attachments
---
# List all attachments
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/attachments/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/attachments/
-Returns a list of all attachments for a work item.
+Retrieve all attachments for a work item.
@@ -22,60 +22,21 @@ Returns a list of all attachments for a work item.
-
+
-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`.
+Issue ID
-The unique identifier of the project
+Project ID
-
+
-The unique identifier of the work item
-
-
-
-
-
-
-
-
-### Query Parameters
-
-
-
-
-
-Filter by work item ID.
-
-
-
-
-
-Filter by project ID.
-
-
-
-
-
-Filter by workspace ID.
-
-
-
-
-
-Number of results to return per page.
-
-
-
-
-
-Number of results to skip for pagination.
+Workspace slug
@@ -91,6 +52,7 @@ Number of results to skip for pagination.
+
@@ -98,7 +60,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -110,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -121,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/",
{
method: "GET",
headers: {
@@ -139,15 +101,22 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "size": 1024000,
+ "asset_url": "https://example.com/resource",
+ "attributes": {
+ "name": "Example Name",
+ "type": "image/png",
+ "size": 1024000
+ },
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/issue-attachments/get-upload-credentials.md b/docs/api-reference/issue-attachments/get-upload-credentials.md
index be83acb..d63974f 100644
--- a/docs/api-reference/issue-attachments/get-upload-credentials.md
+++ b/docs/api-reference/issue-attachments/get-upload-credentials.md
@@ -1,20 +1,20 @@
---
title: Get upload credentials
-description: List upload credentials via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, attachments, files, uploads
+description: Get upload credentials via Plane API. HTTP request format, parameters, scopes, and example responses for get upload credentials.
+keywords: plane, plane api, rest api, api integration, issue attachments, get upload credentials
---
# Get upload credentials
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/attachments/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_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.
+Generate presigned URL for uploading file attachments to a work item.
@@ -22,21 +22,21 @@ Creates a pre-signed POST form data for uploading an attachment directly to S3.
-
+
-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`.
+Issue ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier of the work item.
+Workspace slug
@@ -51,31 +51,31 @@ The unique identifier of the work item.
-Original filename of the attachment.
+Original filename of the asset
-
+
-MIME type of the file (e.g., `image/png`, `application/pdf`).
+MIME type of the file
-Size of the file in bytes.
+File size in bytes
-
+
-External identifier for the asset (for integration tracking).
+External identifier for the asset (for integration tracking)
-
+
-External source system (for integration tracking).
+External source system (for integration tracking)
@@ -91,6 +91,7 @@ External source system (for integration tracking).
+
@@ -98,16 +99,16 @@ External source system (for integration tracking).
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/" \
-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": "example-type",
- "size": 1,
- "external_id": "example-external_id",
- "external_source": "example-external_source"
+ "name": "Example Name",
+ "type": "application/pdf",
+ "size": 1024000,
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -118,15 +119,15 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'type': 'example-type',
- 'size': 1,
- 'external_id': 'example-external_id',
- 'external_source': 'example-external_source'
-}
+ "name": "Example Name",
+ "type": "application/pdf",
+ "size": 1024000,
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -136,7 +137,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/",
{
method: "POST",
headers: {
@@ -144,11 +145,11 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- type: "example-type",
- size: 1,
- external_id: "example-external_id",
- external_source: "example-external_source",
+ name: "Example Name",
+ type: "application/pdf",
+ size: 1024000,
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -158,19 +159,16 @@ const data = await response.json();
-
+
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "detail": "Presigned download URL generated successfully"
}
```
+
diff --git a/docs/api-reference/issue-attachments/update-attachment.md b/docs/api-reference/issue-attachments/update-attachment.md
index 86632c8..0018fdb 100644
--- a/docs/api-reference/issue-attachments/update-attachment.md
+++ b/docs/api-reference/issue-attachments/update-attachment.md
@@ -1,20 +1,20 @@
---
title: Update an attachment
-description: Update an attachment via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, attachments, files, uploads
+description: Update an attachment via Plane API. HTTP request format, parameters, scopes, and example responses for update an attachment.
+keywords: plane, plane api, rest api, api integration, issue attachments, update an attachment
---
# Update an attachment
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/attachments/{attachment_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/attachments/{pk}/
-Updates an existing attachment by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Mark an attachment as uploaded after successful file transfer to storage.
@@ -22,27 +22,27 @@ Updates an existing attachment by setting the values of the parameters passed. A
-
+
-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`.
+Issue id.
-
+
-The unique identifier of the project.
+Attachment ID
-
+
-The unique identifier of the work item.
+Project ID
-
+
-The unique identifier of the attachment.
+Workspace slug
@@ -55,69 +55,9 @@ The unique identifier of the attachment.
-
-
-File metadata object containing name, size, and type.
-
-
-
-
+
-Storage path/identifier for the attachment file.
-
-
-
-
-
-Entity type of the attachment.
-
-
-
-
-
-Entity identifier for the attachment.
-
-
-
-
-
-Whether the attachment has been deleted.
-
-
-
-
-
-Whether the attachment has been archived.
-
-
-
-
-
-External identifier if the attachment is imported to Plane.
-
-
-
-
-
-Name of the source if the attachment is imported to Plane.
-
-
-
-
-
-File size in bytes.
-
-
-
-
-
-Whether the file has been successfully uploaded.
-
-
-
-
-
-Cloud storage metadata.
+Mark attachment as uploaded
@@ -133,6 +73,7 @@ Cloud storage metadata.
+
@@ -140,22 +81,12 @@ Cloud storage metadata.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/{attachment_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "attributes": "example-attributes",
- "asset": "example-asset",
- "entity_type": "example-entity_type",
- "entity_identifier": "example-entity_identifier",
- "is_deleted": true,
- "is_archived": true,
- "external_id": "example-external_id",
- "external_source": "example-external_source",
- "size": 1,
- "is_uploaded": true,
- "storage_metadata": "example-storage_metadata"
+ "is_uploaded": true
}'
```
@@ -166,23 +97,13 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/{attachment_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'attributes': 'example-attributes',
- 'asset': 'example-asset',
- 'entity_type': 'example-entity_type',
- 'entity_identifier': 'example-entity_identifier',
- 'is_deleted': true,
- 'is_archived': true,
- 'external_id': 'example-external_id',
- 'external_source': 'example-external_source',
- 'size': 1,
- 'is_uploaded': true,
- 'storage_metadata': 'example-storage_metadata'
-}
+ "is_uploaded": true
+ }
)
-print(response.json())
+print(response.status_code)
```
@@ -190,7 +111,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/attachments/{attachment_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/attachments/550e8400-e29b-41d4-a716-446655440000/",
{
method: "PATCH",
headers: {
@@ -198,39 +119,22 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- attributes: "example-attributes",
- asset: "example-asset",
- entity_type: "example-entity_type",
- entity_identifier: "example-entity_identifier",
- is_deleted: true,
- is_archived: true,
- external_id: "example-external_id",
- external_source: "example-external_source",
- size: 1,
is_uploaded: true,
- storage_metadata: "example-storage_metadata",
}),
}
);
-const data = await response.json();
+console.log(response.status);
```
-
+
-```json
-{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
-}
-```
+No response body.
+
diff --git a/docs/api-reference/issue-attachments/upload-file.md b/docs/api-reference/issue-attachments/upload-file.md
index c0bb421..bfebf6a 100644
--- a/docs/api-reference/issue-attachments/upload-file.md
+++ b/docs/api-reference/issue-attachments/upload-file.md
@@ -1,7 +1,7 @@
---
title: Upload file
-description: Upload file API endpoint. Request format, parameters, and response examples for Plane REST API.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, attachments, files, uploads
+description: Upload a file to the presigned storage URL returned by Plane. Includes the required multipart form fields for attachment uploads.
+keywords: plane, plane api, rest api, api integration, attachments, uploads, s3
---
# Upload file
@@ -14,7 +14,7 @@ keywords: plane, plane api, rest api, api integration, work items, issues, tasks
-Upload the file using the credentials generated by the [Get upload credentials](/api-reference/issue-attachments/get-upload-credentials) endpoint.
+Use the presigned form fields returned by the attachment upload-credentials endpoint to upload the binary file directly to object storage.
@@ -24,49 +24,31 @@ Upload the file using the credentials generated by the [Get upload credentials](
-The MIME type of the file
+MIME type of the file being uploaded.
-The target path/filename in S3
-
-
-
-
-
-AWS signature algorithm (AWS4-HMAC-SHA256)
-
-
-
-
-
-AWS signature algorithm (AWS4-HMAC-SHA256)
-
-
-
-
-
-Request timestamp
+Storage key returned by Plane for this upload.
-Base64-encoded policy document
+Base64-encoded upload policy returned by Plane.
-Request signature
+AWS signature returned by Plane.
-The file to be uploaded
+Binary file contents to upload.
@@ -82,19 +64,11 @@ The file to be uploaded
```bash
curl -X POST \
"https://planefs-uploads.s3.amazonaws.com/" \
- -H "X-API-Key: $PLANE_API_KEY" \
- # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
- -H "Content-Type: application/json" \
- -d '{
- "Content-Type": "example-Content-Type",
- "key": "example-key",
- "x-amz-algorithm": "example-x-amz-algorithm",
- "x-amz-credential": "example-x-amz-credential",
- "x-amz-date": "example-x-amz-date",
- "policy": "example-policy",
- "x-amz-signature": "example-x-amz-signature",
- "file": "example-file"
-}'
+ -F "Content-Type=image/png" \
+ -F "key=attachments/550e8400-e29b-41d4-a716-446655440000/example-image.png" \
+ -F "policy=example-policy" \
+ -F "x-amz-signature=example-signature" \
+ -F "file=@./example-image.png"
```
@@ -103,58 +77,43 @@ curl -X POST \
```python
import requests
-response = requests.post(
- "https://api.plane.sohttps://planefs-uploads.s3.amazonaws.com/",
- headers={"X-API-Key": "your-api-key"},
- json={
- 'Content-Type': 'example-Content-Type',
- 'key': 'example-key',
- 'x-amz-algorithm': 'example-x-amz-algorithm',
- 'x-amz-credential': 'example-x-amz-credential',
- 'x-amz-date': 'example-x-amz-date',
- 'policy': 'example-policy',
- 'x-amz-signature': 'example-x-amz-signature',
- 'file': 'example-file'
-}
-)
-print(response.json())
+with open("example-image.png", "rb") as file_handle:
+ response = requests.post(
+"https://planefs-uploads.s3.amazonaws.com/",
+files={"file": file_handle},
+data={
+ "Content-Type": "image/png",
+ "key": "attachments/550e8400-e29b-41d4-a716-446655440000/example-image.png",
+ "policy": "example-policy",
+ "x-amz-signature": "example-signature",
+},
+ )
+print(response.status_code)
```
```javascript
-const response = await fetch("https://api.plane.sohttps://planefs-uploads.s3.amazonaws.com/", {
+const formData = new FormData();
+formData.append("Content-Type", "image/png");
+formData.append("key", "attachments/550e8400-e29b-41d4-a716-446655440000/example-image.png");
+formData.append("policy", "example-policy");
+formData.append("x-amz-signature", "example-signature");
+formData.append("file", fileInput.files[0]);
+
+const response = await fetch("https://planefs-uploads.s3.amazonaws.com/", {
method: "POST",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- "Content-Type": "example-Content-Type",
- key: "example-key",
- "x-amz-algorithm": "example-x-amz-algorithm",
- "x-amz-credential": "example-x-amz-credential",
- "x-amz-date": "example-x-amz-date",
- policy: "example-policy",
- "x-amz-signature": "example-x-amz-signature",
- file: "example-file",
- }),
+ body: formData,
});
-const data = await response.json();
```
-
+
-```json
-{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
-}
-```
+No response body.
diff --git a/docs/api-reference/issue-comment/add-issue-comment.md b/docs/api-reference/issue-comment/add-issue-comment.md
index 4337c11..8a7f853 100644
--- a/docs/api-reference/issue-comment/add-issue-comment.md
+++ b/docs/api-reference/issue-comment/add-issue-comment.md
@@ -1,20 +1,20 @@
---
title: Create a work item comment
-description: Create a work item comment via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, comments, discussion, collaboration
+description: Create a work item comment via Plane API. HTTP request format, parameters, scopes, and example responses for create a work item comment.
+keywords: plane, plane api, rest api, api integration, issue comment, create a work item comment
---
# Create a work item comment
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/comments/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/comments/
-Creates a new comment on a work item.
+Add a new comment to a work item with HTML content.
@@ -22,21 +22,21 @@ Creates a new comment on a work item.
-
+
-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`.
+Issue ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the work item.
+Workspace slug
@@ -49,33 +49,40 @@ The unique identifier for the work item.
-
+
-HTML-formatted version of the comment.
+Comment json.
-
+
-JSON representation of the comment structure.
+Comment html.
-
+
-Visibility level of the comment. Possible values: `INTERNAL`, `EXTERNAL`.
+- `INTERNAL` - INTERNAL
+- `EXTERNAL` - EXTERNAL
-
+
-Identifier for the external source.
+External source.
-
+
-ID from the external source.
+External id.
+
+
+
+
+
+Parent.
@@ -91,6 +98,7 @@ ID from the external source.
+
@@ -98,16 +106,14 @@ ID from the external source.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "comment_html": "example-comment_html",
- "comment_json": "example-comment_json",
- "access": "example-access",
- "external_source": "example-external_source",
- "external_id": "example-external_id"
+ "comment_html": "Example content
",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -118,15 +124,13 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/",
headers={"X-API-Key": "your-api-key"},
json={
- 'comment_html': 'example-comment_html',
- 'comment_json': 'example-comment_json',
- 'access': 'example-access',
- 'external_source': 'example-external_source',
- 'external_id': 'example-external_id'
-}
+ "comment_html": "Example content
",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -136,7 +140,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/",
{
method: "POST",
headers: {
@@ -144,11 +148,9 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- comment_html: "example-comment_html",
- comment_json: "example-comment_json",
- access: "example-access",
- external_source: "example-external_source",
- external_id: "example-external_id",
+ comment_html: "Example content
",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -162,15 +164,36 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "comment_html": "Example content
",
+ "comment_json": {
+ "type": "doc",
+ "content": [
+ {
+ "type": "paragraph",
+ "content": [
+ {
+ "type": "text",
+ "text": "This issue has been resolved by implementing OAuth 2.0 flow."
+ }
+ ]
+ }
+ ]
+ },
+ "actor": {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "first_name": "John",
+ "last_name": "Doe",
+ "display_name": "Example Name",
+ "avatar": "https://example.com/assets/example-image.png"
+ },
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/issue-comment/delete-issue-comment.md b/docs/api-reference/issue-comment/delete-issue-comment.md
index 3389ae9..b4df58a 100644
--- a/docs/api-reference/issue-comment/delete-issue-comment.md
+++ b/docs/api-reference/issue-comment/delete-issue-comment.md
@@ -1,20 +1,20 @@
---
title: Delete a work item comment
-description: Delete a comment from a work item via Plane API. Permanently removes the comment and its content. Returns 204 on success.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, comments, discussion, collaboration
+description: Delete a work item comment via Plane API. HTTP request format, parameters, scopes, and example responses for delete a work item comment.
+keywords: plane, plane api, rest api, api integration, issue comment, delete a work item comment
---
# Delete a work item comment
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/comments/{comment_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/comments/{pk}/
-Permanently deletes a comment from a work item. This action cannot be undone.
+Permanently remove a comment from a work item. Records deletion activity for audit purposes.
@@ -22,27 +22,27 @@ Permanently deletes a comment from a work item. This action cannot be undone.
-
+
-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`.
+Issue ID
-
+
-The unique identifier of the project.
+Comment ID
-
+
-The unique identifier for the work item.
+Project ID
-
+
-The unique identifier for the comment.
+Workspace slug
@@ -58,6 +58,7 @@ The unique identifier for the comment.
+
@@ -65,7 +66,7 @@ The unique identifier for the comment.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/comment-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,10 +78,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/comment-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/comment-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/550e8400-e29b-41d4-a716-446655440000/",
{
method: "DELETE",
headers: {
@@ -96,7 +97,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -104,11 +105,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/issue-comment/get-issue-comment-detail.md b/docs/api-reference/issue-comment/get-issue-comment-detail.md
index 376bfb3..6a31c87 100644
--- a/docs/api-reference/issue-comment/get-issue-comment-detail.md
+++ b/docs/api-reference/issue-comment/get-issue-comment-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a work item comment
-description: Get retrieve a work item comment details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, comments, discussion, collaboration
+description: Retrieve a work item comment via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a work item comment.
+keywords: plane, plane api, rest api, api integration, issue comment, retrieve a work item comment
---
# Retrieve a work item comment
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/comments/{comment_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/comments/{pk}/
-Retrieves the details of an existing work item comment by its ID.
+Retrieve details of a specific comment.
@@ -22,27 +22,27 @@ Retrieves the details of an existing work item comment by its ID.
-
+
-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`.
+Issue ID
-
+
-The unique identifier of the project.
+Comment ID
-
+
-The unique identifier for the work item.
+Project ID
-
+
-The unique identifier for the comment.
+Workspace slug
@@ -58,6 +58,7 @@ The unique identifier for the comment.
+
@@ -65,7 +66,7 @@ The unique identifier for the comment.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/comment-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,7 +78,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/comment-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/comment-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/550e8400-e29b-41d4-a716-446655440000/",
{
method: "GET",
headers: {
@@ -106,15 +107,36 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "comment_html": "Example content
",
+ "comment_json": {
+ "type": "doc",
+ "content": [
+ {
+ "type": "paragraph",
+ "content": [
+ {
+ "type": "text",
+ "text": "This issue has been resolved by implementing OAuth 2.0 flow."
+ }
+ ]
+ }
+ ]
+ },
+ "actor": {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "first_name": "John",
+ "last_name": "Doe",
+ "display_name": "Example Name",
+ "avatar": "https://example.com/assets/example-image.png"
+ },
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/issue-comment/list-issue-comments.md b/docs/api-reference/issue-comment/list-issue-comments.md
index 1737dbe..a4c0bc8 100644
--- a/docs/api-reference/issue-comment/list-issue-comments.md
+++ b/docs/api-reference/issue-comment/list-issue-comments.md
@@ -1,20 +1,20 @@
---
title: List all work item comments
-description: List all work item comments via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, comments, discussion, collaboration
+description: List all work item comments via Plane API. HTTP request format, parameters, scopes, and example responses for list all work item comments.
+keywords: plane, plane api, rest api, api integration, issue comment, list all work item comments
---
# List all work item comments
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/comments/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/comments/
-Returns a list of all comments on a work item, ordered chronologically.
+Retrieve all comments for a work item.
@@ -22,21 +22,21 @@ Returns a list of all comments on a work item, ordered chronologically.
-
+
-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`.
+Issue ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the work item.
+Workspace slug
@@ -49,33 +49,33 @@ The unique identifier for the work item.
-
+
-Filter by work item ID.
+Pagination cursor for getting next set of results
-
+
-Filter by project ID.
+Comma-separated list of related fields to expand in response
-
+
-Filter by workspace ID.
+Comma-separated list of fields to include in response
-
+
-Number of results to return per page.
+Field to order results by. Prefix with '-' for descending order
-
+
-Number of results to skip for pagination.
+Number of results per page (default: 20, max: 100)
@@ -91,6 +91,7 @@ Number of results to skip for pagination.
+
@@ -98,7 +99,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/?cursor=20:1:0&expand=assignees" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -110,7 +111,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -121,7 +122,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/?cursor=20:1:0&expand=assignees",
{
method: "GET",
headers: {
@@ -139,15 +140,29 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/issue-comment/update-issue-comment-detail.md b/docs/api-reference/issue-comment/update-issue-comment-detail.md
index 5927b9d..f55ea72 100644
--- a/docs/api-reference/issue-comment/update-issue-comment-detail.md
+++ b/docs/api-reference/issue-comment/update-issue-comment-detail.md
@@ -1,20 +1,20 @@
---
title: Update a work item comment
-description: Update a work item comment via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, comments, discussion, collaboration
+description: Update a work item comment via Plane API. HTTP request format, parameters, scopes, and example responses for update a work item comment.
+keywords: plane, plane api, rest api, api integration, issue comment, update a work item comment
---
# Update a work item comment
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/comments/{comment_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/comments/{pk}/
-Updates an existing work item comment by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Modify the content of an existing comment on a work item.
@@ -22,27 +22,27 @@ Updates an existing work item comment by setting the values of the parameters pa
-
+
-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`.
+Issue ID
-
+
-The unique identifier of the project.
+Comment ID
-
+
-The unique identifier for the work item.
+Project ID
-
+
-The unique identifier for the comment.
+Workspace slug
@@ -55,33 +55,40 @@ The unique identifier for the comment.
-
+
-HTML-formatted version of the comment.
+Comment json.
-
+
-JSON representation of the comment structure.
+Comment html.
-
+
-Visibility level of the comment. Possible values: `INTERNAL`, `EXTERNAL`.
+- `INTERNAL` - INTERNAL
+- `EXTERNAL` - EXTERNAL
-
+
-Identifier for the external source.
+External source.
-
+
-ID from the external source.
+External id.
+
+
+
+
+
+Parent.
@@ -97,6 +104,7 @@ ID from the external source.
+
@@ -104,16 +112,14 @@ ID from the external source.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/comment-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "comment_html": "example-comment_html",
- "comment_json": "example-comment_json",
- "access": "example-access",
- "external_source": "example-external_source",
- "external_id": "example-external_id"
+ "comment_html": "Example content
",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -124,15 +130,13 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/comment-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'comment_html': 'example-comment_html',
- 'comment_json': 'example-comment_json',
- 'access': 'example-access',
- 'external_source': 'example-external_source',
- 'external_id': 'example-external_id'
-}
+ "comment_html": "Example content
",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -142,7 +146,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/comments/comment-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/comments/550e8400-e29b-41d4-a716-446655440000/",
{
method: "PATCH",
headers: {
@@ -150,11 +154,9 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- comment_html: "example-comment_html",
- comment_json: "example-comment_json",
- access: "example-access",
- external_source: "example-external_source",
- external_id: "example-external_id",
+ comment_html: "Example content
",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -168,15 +170,36 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "comment_html": "Example content
",
+ "comment_json": {
+ "type": "doc",
+ "content": [
+ {
+ "type": "paragraph",
+ "content": [
+ {
+ "type": "text",
+ "text": "This issue has been resolved by implementing OAuth 2.0 flow."
+ }
+ ]
+ }
+ ]
+ },
+ "actor": {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "first_name": "John",
+ "last_name": "Doe",
+ "display_name": "Example Name",
+ "avatar": "https://example.com/assets/example-image.png"
+ },
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/issue-types/options/add-dropdown-options.md b/docs/api-reference/issue-types/options/add-dropdown-options.md
index 1030788..fad105a 100644
--- a/docs/api-reference/issue-types/options/add-dropdown-options.md
+++ b/docs/api-reference/issue-types/options/add-dropdown-options.md
@@ -1,20 +1,20 @@
---
title: Add dropdown options
-description: Create dropdown options via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Add dropdown options via Plane API. HTTP request format, parameters, scopes, and example responses for add dropdown options.
+keywords: plane, plane api, rest api, api integration, issue types, options, add dropdown options
---
# Add dropdown options
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-properties/{property_id}/options/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-properties/{property_id}/options/
-Allows you to define a list of options for the dropdown property type.
+Create a new issue property option
@@ -22,21 +22,21 @@ Allows you to define a list of options for the dropdown property type.
-
+
-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
-
+
-The unique identifier of the project.
+Property ID
-
+
-The unique identifier for the custom property.
+Workspace slug
@@ -51,29 +51,43 @@ The unique identifier for the custom property.
-Name of the option.
+Name.
+
+
+
+
+
+Description.
+
+
+
+
+
+Is active.
-
+
-Description of the option.
+Is default.
-
+
-Whether this is the default option for the property.
+External source.
-
+
-Whether this option is currently active.
+External id.
-
+
+
+Parent.
@@ -89,6 +103,7 @@ Whether this option is currently active.
+
@@ -96,16 +111,15 @@ Whether this option is currently active.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description",
- "is_default": true,
- "is_active": true,
- "parent": "example-parent"
+ "name": "Example Name",
+ "description": "Example description",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -116,15 +130,14 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description',
- 'is_default': true,
- 'is_active': true,
- 'parent': 'example-parent'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -134,7 +147,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/",
{
method: "POST",
headers: {
@@ -142,11 +155,10 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- is_default: true,
- is_active: true,
- parent: "example-parent",
+ name: "Example Name",
+ description: "Example description",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -160,15 +172,23 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "Example description",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "sort_order": 1,
+ "logo_props": "example-value",
+ "is_active": true,
+ "is_default": true,
+ "external_source": "github",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000"
}
```
+
diff --git a/docs/api-reference/issue-types/options/delete-dropdown-options.md b/docs/api-reference/issue-types/options/delete-dropdown-options.md
index 296ceeb..e05819a 100644
--- a/docs/api-reference/issue-types/options/delete-dropdown-options.md
+++ b/docs/api-reference/issue-types/options/delete-dropdown-options.md
@@ -1,20 +1,20 @@
---
title: Delete dropdown options
-description: Delete dropdown options via Plane API. HTTP DELETE request for removing resources.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Delete dropdown options via Plane API. HTTP request format, parameters, scopes, and example responses for delete dropdown options.
+keywords: plane, plane api, rest api, api integration, issue types, options, delete dropdown options
---
# Delete dropdown options
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-properties/{property_id}/options/{option_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-properties/{property_id}/options/{option_id}/
-Enables you to remove specific options from a dropdown custom property.
+Delete an issue property option
@@ -22,27 +22,27 @@ Enables you to remove specific options from a dropdown custom property.
-
+
-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`.
+Option id.
-The unique identifier of the project.
+Project ID
-The unique identifier for the custom property.
+Property ID
-
+
-The unique identifier for the option.
+Workspace slug
@@ -58,6 +58,7 @@ The unique identifier for the option.
+
@@ -65,7 +66,7 @@ The unique identifier for the option.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/{option_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/550e8400-e29b-41d4-a716-446655440002/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,10 +78,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/{option_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/550e8400-e29b-41d4-a716-446655440002/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/{option_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/550e8400-e29b-41d4-a716-446655440002/",
{
method: "DELETE",
headers: {
@@ -96,7 +97,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -104,11 +105,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/issue-types/options/get-option-details.md b/docs/api-reference/issue-types/options/get-option-details.md
index 3f1939a..45427d7 100644
--- a/docs/api-reference/issue-types/options/get-option-details.md
+++ b/docs/api-reference/issue-types/options/get-option-details.md
@@ -1,20 +1,20 @@
---
title: Retrieve option details
-description: Get retrieve option details details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Retrieve option details via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve option details.
+keywords: plane, plane api, rest api, api integration, issue types, options, retrieve option details
---
# Retrieve option details
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-properties/{property_id}/options/{option_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-properties/{property_id}/options/{option_id}/
-Retrieves information about a specific option within a dropdown property.
+Get issue property option by id
@@ -22,27 +22,27 @@ Retrieves information about a specific option within a dropdown property.
-
+
-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`.
+Option id.
-The unique identifier of the project.
+Project ID
-The unique identifier for the custom property.
+Property ID
-
+
-The unique identifier for the option.
+Workspace slug
@@ -58,6 +58,7 @@ The unique identifier for the option.
+
@@ -65,7 +66,7 @@ The unique identifier for the option.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/{option_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/550e8400-e29b-41d4-a716-446655440002/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,7 +78,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/{option_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/550e8400-e29b-41d4-a716-446655440002/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/{option_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/550e8400-e29b-41d4-a716-446655440002/",
{
method: "GET",
headers: {
@@ -106,15 +107,23 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "Example description",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "sort_order": 1,
+ "logo_props": "example-value",
+ "is_active": true,
+ "is_default": true,
+ "external_source": "github",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000"
}
```
+
diff --git a/docs/api-reference/issue-types/options/list-dropdown-options.md b/docs/api-reference/issue-types/options/list-dropdown-options.md
index d51a45b..c2fba59 100644
--- a/docs/api-reference/issue-types/options/list-dropdown-options.md
+++ b/docs/api-reference/issue-types/options/list-dropdown-options.md
@@ -1,20 +1,20 @@
---
title: List all dropdown options
-description: List all dropdown options via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: List all dropdown options via Plane API. HTTP request format, parameters, scopes, and example responses for list all dropdown options.
+keywords: plane, plane api, rest api, api integration, issue types, options, list all dropdown options
---
# List all dropdown options
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-properties/{property_id}/options/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-properties/{property_id}/options/
-Retrieves all available options for a specific dropdown custom property.
+List issue property options
@@ -22,21 +22,21 @@ Retrieves all available options for a specific dropdown custom property.
-
+
-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
-
+
-The unique identifier of the project.
+Property ID
-
+
-The unique identifier for the custom property.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the custom property.
+
@@ -59,7 +60,7 @@ The unique identifier for the custom property.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/",
{
method: "GET",
headers: {
@@ -99,16 +100,26 @@ const data = await response.json();
```json
-{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "Example description",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "sort_order": 1,
+ "logo_props": "example-value",
+ "is_active": true,
+ "is_default": true,
+ "external_source": "github",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000"
+ }
+]
```
+
diff --git a/docs/api-reference/issue-types/options/update-dropdown-options.md b/docs/api-reference/issue-types/options/update-dropdown-options.md
index e4d9d61..316f8c2 100644
--- a/docs/api-reference/issue-types/options/update-dropdown-options.md
+++ b/docs/api-reference/issue-types/options/update-dropdown-options.md
@@ -1,20 +1,20 @@
---
title: Update dropdown options
-description: Update dropdown options via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Update dropdown options via Plane API. HTTP request format, parameters, scopes, and example responses for update dropdown options.
+keywords: plane, plane api, rest api, api integration, issue types, options, update dropdown options
---
# Update dropdown options
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-properties/{property_id}/options/{option_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-properties/{property_id}/options/{option_id}/
-Lets you modify existing options within a dropdown property.
+Update an issue property option
@@ -22,27 +22,27 @@ Lets you modify existing options within a dropdown property.
-
+
-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`.
+Option id.
-The unique identifier of the project.
+Project ID
-The unique identifier for the custom property.
+Property ID
-
+
-The unique identifier for the option.
+Workspace slug
@@ -55,31 +55,45 @@ The unique identifier for the option.
-
+
+
+Name.
+
+
+
+
+
+Description.
+
+
+
+
-Name of the option.
+Is active.
-
+
-Description of the option.
+Is default.
-
+
-Whether this is the default option for the property.
+External source.
-
+
-Whether this option is currently active.
+External id.
-
+
+
+Parent.
@@ -95,6 +109,7 @@ Whether this option is currently active.
+
@@ -102,16 +117,15 @@ Whether this option is currently active.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/{option_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/550e8400-e29b-41d4-a716-446655440002/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description",
- "is_default": true,
- "is_active": true,
- "parent": "example-parent"
+ "name": "Example Name",
+ "description": "Example description",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -122,15 +136,14 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/{option_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/550e8400-e29b-41d4-a716-446655440002/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description',
- 'is_default': true,
- 'is_active': true,
- 'parent': 'example-parent'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -140,7 +153,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-properties/{property_id}/options/{option_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-properties/550e8400-e29b-41d4-a716-446655440001/options/550e8400-e29b-41d4-a716-446655440002/",
{
method: "PATCH",
headers: {
@@ -148,11 +161,10 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- is_default: true,
- is_active: true,
- parent: "example-parent",
+ name: "Example Name",
+ description: "Example description",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -166,15 +178,23 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "Example description",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "sort_order": 1,
+ "logo_props": "example-value",
+ "is_active": true,
+ "is_default": true,
+ "external_source": "github",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000"
}
```
+
diff --git a/docs/api-reference/issue-types/properties/add-property.md b/docs/api-reference/issue-types/properties/add-property.md
index eea10b8..b61b4cf 100644
--- a/docs/api-reference/issue-types/properties/add-property.md
+++ b/docs/api-reference/issue-types/properties/add-property.md
@@ -1,20 +1,20 @@
---
title: Create a custom property
-description: Create a custom property via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Create a custom property via Plane API. HTTP request format, parameters, scopes, and example responses for create a custom property.
+keywords: plane, plane api, rest api, api integration, issue types, properties, create a custom property
---
# Create a custom property
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/
-Creates a new custom property for a work item type.
+Create a new issue property
@@ -22,21 +22,21 @@ Creates a new custom property for a work item type.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
-The unique identifier for the work item type.
+Type ID
@@ -49,61 +49,97 @@ The unique identifier for the work item type.
+
+
+- `ISSUE` - Issue
+- `USER` - User
+
+
+
+
+
+List of options to create when property_type is OPTION. Each option should have 'name', optionally 'description', 'is_default', 'external_id', and 'external_source'.
+
+
+
-Display name shown in the UI.
+Display name.
-
+
-Description of the custom property.
+Description.
-
+
-Default value(s) for the property.
+- `TEXT` - Text
+- `DATETIME` - Datetime
+- `DECIMAL` - Decimal
+- `BOOLEAN` - Boolean
+- `OPTION` - Option
+- `RELATION` - Relation
+- `URL` - URL
+- `EMAIL` - Email
+- `FILE` - File
+- `FORMULA` - Formula
-
+
-Validation rules applied to property values.
+Is required.
-
+
-Whether this property is required when creating work items.
+Default value.
-
+
-Whether this property is currently active.
+Settings.
-
+
-Whether this property allows multiple values.
+Is active.
-
+
-Array of option objects for OPTION type properties. This field can be used while creating a property with type OPTION to set options on the custom property during creation itself. Each option object can contain:
+Is multi.
-- `name` (string): Name of the option
-- `description` (string): Description of the option
-- `is_active` (boolean): Whether the option is active
-- `sort_order` (number): Sort order for the option
-- `parent` (string): Parent option ID for hierarchical options
-- `is_default` (boolean): Whether this is the default option
-- `logo_props` (object): Logo properties for the option
+
-To add or update options on an OPTION property after creation, you can use the APIs from [`issue-types/options/add-dropdown-options`](/api-reference/issue-types/options/add-dropdown-options).
+
+
+Validation rules.
+
+
+
+
+
+External source.
+
+
+
+
+
+External id.
+
+
+
+
+
+Formula config.
@@ -119,6 +155,7 @@ To add or update options on an OPTION property after creation, you can use the A
+
@@ -126,19 +163,16 @@ To add or update options on an OPTION property after creation, you can use the A
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "display_name": "example-display_name",
- "description": "example-description",
- "default_value": "example-default_value",
- "validation_rules": "example-validation_rules",
- "is_required": true,
- "is_active": true,
- "is_multi": true,
- "options": "example-options"
+ "name": "Example Name",
+ "description": "Example description",
+ "property_type": "OPTION",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -149,18 +183,15 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/",
headers={"X-API-Key": "your-api-key"},
json={
- 'display_name': 'example-display_name',
- 'description': 'example-description',
- 'default_value': 'example-default_value',
- 'validation_rules': 'example-validation_rules',
- 'is_required': true,
- 'is_active': true,
- 'is_multi': true,
- 'options': 'example-options'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "property_type": "OPTION",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -170,7 +201,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/",
{
method: "POST",
headers: {
@@ -178,14 +209,11 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- display_name: "example-display_name",
- description: "example-description",
- default_value: "example-default_value",
- validation_rules: "example-validation_rules",
- is_required: true,
- is_active: true,
- is_multi: true,
- options: "example-options",
+ name: "Example Name",
+ description: "Example description",
+ property_type: "OPTION",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -199,15 +227,23 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "display_name": "Example Name",
+ "description": "Example description",
+ "property_type": "TEXT",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "relation_type": "ISSUE",
+ "logo_props": "example-value",
+ "sort_order": 1,
+ "is_required": true
}
```
+
diff --git a/docs/api-reference/issue-types/properties/delete-property.md b/docs/api-reference/issue-types/properties/delete-property.md
index 92fe84b..379eab3 100644
--- a/docs/api-reference/issue-types/properties/delete-property.md
+++ b/docs/api-reference/issue-types/properties/delete-property.md
@@ -1,20 +1,20 @@
---
title: Delete a custom property
-description: Delete a custom property via Plane API. HTTP DELETE request for removing resources.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Delete a custom property via Plane API. HTTP request format, parameters, scopes, and example responses for delete a custom property.
+keywords: plane, plane api, rest api, api integration, issue types, properties, delete a custom property
---
# Delete a custom property
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/
-Permanently deletes a custom property from a work item type. This action cannot be undone.
+Delete an issue property
@@ -22,27 +22,27 @@ Permanently deletes a custom property from a work item type. This action cannot
-
+
-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
-
+
-The unique identifier of the project.
+Property id.
-
+
-The unique identifier for the work item type.
+Workspace slug
-
+
-The unique identifier for the custom property.
+Type ID
@@ -58,6 +58,7 @@ The unique identifier for the custom property.
+
@@ -65,7 +66,7 @@ The unique identifier for the custom property.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/{property_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,10 +78,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/",
{
method: "DELETE",
headers: {
@@ -96,7 +97,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -104,11 +105,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/issue-types/properties/get-property-details.md b/docs/api-reference/issue-types/properties/get-property-details.md
index 01711d9..2f141cc 100644
--- a/docs/api-reference/issue-types/properties/get-property-details.md
+++ b/docs/api-reference/issue-types/properties/get-property-details.md
@@ -1,20 +1,20 @@
---
title: Retrieve a custom property
-description: Get retrieve a custom property details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Retrieve a custom property via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a custom property.
+keywords: plane, plane api, rest api, api integration, issue types, properties, retrieve a custom property
---
# Retrieve a custom property
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/
-Retrieves the details of an existing custom property by its ID.
+Get issue property by id
@@ -22,27 +22,27 @@ Retrieves the details of an existing custom property by its ID.
-
+
-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
-
+
-The unique identifier of the project.
+Property id.
-
+
-The unique identifier for the work item type.
+Workspace slug
-
+
-The unique identifier for the custom property.
+Type ID
@@ -58,6 +58,7 @@ The unique identifier for the custom property.
+
@@ -65,7 +66,7 @@ The unique identifier for the custom property.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/{property_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,7 +78,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/",
{
method: "GET",
headers: {
@@ -106,15 +107,23 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "display_name": "Example Name",
+ "description": "Example description",
+ "property_type": "TEXT",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "relation_type": "ISSUE",
+ "logo_props": "example-value",
+ "sort_order": 1,
+ "is_required": true
}
```
+
diff --git a/docs/api-reference/issue-types/properties/list-properties.md b/docs/api-reference/issue-types/properties/list-properties.md
index 1ed6178..4eaf258 100644
--- a/docs/api-reference/issue-types/properties/list-properties.md
+++ b/docs/api-reference/issue-types/properties/list-properties.md
@@ -1,20 +1,20 @@
---
title: List custom properties
-description: List custom properties via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: List custom properties via Plane API. HTTP request format, parameters, scopes, and example responses for list custom properties.
+keywords: plane, plane api, rest api, api integration, issue types, properties, list custom properties
---
# List custom properties
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/
-Returns a list of all custom properties for a work item type.
+List issue properties
@@ -22,21 +22,21 @@ Returns a list of all custom properties for a work item type.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
-The unique identifier for the work item type.
+Type ID
@@ -52,6 +52,7 @@ The unique identifier for the work item type.
+
@@ -59,7 +60,7 @@ The unique identifier for the work item type.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/",
{
method: "GET",
headers: {
@@ -99,16 +100,26 @@ const data = await response.json();
```json
-{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "display_name": "Example Name",
+ "description": "Example description",
+ "property_type": "TEXT",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "relation_type": "ISSUE",
+ "logo_props": "example-value",
+ "sort_order": 1,
+ "is_required": true
+ }
+]
```
+
diff --git a/docs/api-reference/issue-types/properties/update-property.md b/docs/api-reference/issue-types/properties/update-property.md
index 23e0207..2b786f9 100644
--- a/docs/api-reference/issue-types/properties/update-property.md
+++ b/docs/api-reference/issue-types/properties/update-property.md
@@ -1,20 +1,20 @@
---
title: Update a custom property
-description: Update a custom property via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Update a custom property via Plane API. HTTP request format, parameters, scopes, and example responses for update a custom property.
+keywords: plane, plane api, rest api, api integration, issue types, properties, update a custom property
---
# Update a custom property
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/
-Updates an existing custom property by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Update an issue property
@@ -22,27 +22,27 @@ Updates an existing custom property by setting the values of the parameters pass
-
+
-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
-
+
-The unique identifier of the project.
+Property id.
-
+
-The unique identifier for the work item type.
+Workspace slug
-
+
-The unique identifier for the custom property.
+Type ID
@@ -55,45 +55,97 @@ The unique identifier for the custom property.
-
+
+
+- `ISSUE` - Issue
+- `USER` - User
+
+
+
+
-Display name shown in the UI.
+List of options to create when property_type is OPTION. Each option should have 'name', optionally 'description', 'is_default', 'external_id', and 'external_source'.
-
+
-Description of the custom property.
+Display name.
-
+
-Default value(s) for the property.
+Description.
-
+
-Validation rules applied to property values.
+- `TEXT` - Text
+- `DATETIME` - Datetime
+- `DECIMAL` - Decimal
+- `BOOLEAN` - Boolean
+- `OPTION` - Option
+- `RELATION` - Relation
+- `URL` - URL
+- `EMAIL` - Email
+- `FILE` - File
+- `FORMULA` - Formula
-
+
-Whether this property is required when creating work items.
+Is required.
-
+
-Whether this property is currently active.
+Default value.
-
+
-Whether this property allows multiple values.
+Settings.
+
+
+
+
+
+Is active.
+
+
+
+
+
+Is multi.
+
+
+
+
+
+Validation rules.
+
+
+
+
+
+External source.
+
+
+
+
+
+External id.
+
+
+
+
+
+Formula config.
@@ -109,6 +161,7 @@ Whether this property allows multiple values.
+
@@ -116,18 +169,16 @@ Whether this property allows multiple values.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/{property_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "display_name": "example-display_name",
- "description": "example-description",
- "default_value": "example-default_value",
- "validation_rules": "example-validation_rules",
- "is_required": true,
- "is_active": true,
- "is_multi": true
+ "name": "Example Name",
+ "description": "Example description",
+ "property_type": "OPTION",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -138,17 +189,15 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"},
json={
- 'display_name': 'example-display_name',
- 'description': 'example-description',
- 'default_value': 'example-default_value',
- 'validation_rules': 'example-validation_rules',
- 'is_required': true,
- 'is_active': true,
- 'is_multi': true
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "property_type": "OPTION",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -158,7 +207,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/work-item-properties/{property_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/",
{
method: "PATCH",
headers: {
@@ -166,13 +215,11 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- display_name: "example-display_name",
- description: "example-description",
- default_value: "example-default_value",
- validation_rules: "example-validation_rules",
- is_required: true,
- is_active: true,
- is_multi: true,
+ name: "Example Name",
+ description: "Example description",
+ property_type: "OPTION",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -186,15 +233,23 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "display_name": "Example Name",
+ "description": "Example description",
+ "property_type": "TEXT",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "relation_type": "ISSUE",
+ "logo_props": "example-value",
+ "sort_order": 1,
+ "is_required": true
}
```
+
diff --git a/docs/api-reference/issue-types/types/add-issue-type.md b/docs/api-reference/issue-types/types/add-issue-type.md
index 82b03f2..5f9ce23 100644
--- a/docs/api-reference/issue-types/types/add-issue-type.md
+++ b/docs/api-reference/issue-types/types/add-issue-type.md
@@ -1,20 +1,20 @@
---
title: Create a work item type
-description: Create a work item type via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Create a work item type via Plane API. HTTP request format, parameters, scopes, and example responses for create a work item type.
+keywords: plane, plane api, rest api, api integration, issue types, types, create a work item type
---
# Create a work item type
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-types/
-Creates a new work item type in a project.
+Create a new issue type for a project
@@ -22,15 +22,15 @@ Creates a new work item type in a project.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
@@ -43,45 +43,39 @@ The unique identifier of the project.
-
+
-Name of the work item type.
+Name.
-
+
-Description of the work item type.
+Description.
-
+
-Logo properties for the work item type.
+Is epic.
-
+
-Whether this work item type is an epic.
+Is active.
-
+
-Whether this is the default work item type.
+External source.
-
+
-Whether this work item type is active.
-
-
-
-
-
-Hierarchical level of the work item type.
+External id.
@@ -97,6 +91,7 @@ Hierarchical level of the work item type.
+
@@ -104,18 +99,15 @@ Hierarchical level of the work item type.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description",
- "logo_props": "example-logo_props",
- "is_epic": true,
- "is_default": true,
- "is_active": true,
- "level": 1
+ "name": "Example Name",
+ "description": "Example description",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -126,17 +118,14 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description',
- 'logo_props': 'example-logo_props',
- 'is_epic': true,
- 'is_default': true,
- 'is_active': true,
- 'level': 1
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -146,7 +135,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/",
{
method: "POST",
headers: {
@@ -154,13 +143,10 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- logo_props: "example-logo_props",
- is_epic: true,
- is_default: true,
- is_active: true,
- level: 1,
+ name: "Example Name",
+ description: "Example description",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -174,15 +160,23 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "Example description",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "project_ids": ["550e8400-e29b-41d4-a716-446655440000"],
+ "logo_props": "example-value",
+ "is_epic": true,
+ "is_default": true,
+ "is_active": true,
+ "level": 1
}
```
+
diff --git a/docs/api-reference/issue-types/types/delete-issue-type.md b/docs/api-reference/issue-types/types/delete-issue-type.md
index 5e33407..5c0a191 100644
--- a/docs/api-reference/issue-types/types/delete-issue-type.md
+++ b/docs/api-reference/issue-types/types/delete-issue-type.md
@@ -1,20 +1,20 @@
---
title: Delete a work item type
-description: Delete a work item type via Plane API. HTTP DELETE request for removing resources.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Delete a work item type via Plane API. HTTP request format, parameters, scopes, and example responses for delete a work item type.
+keywords: plane, plane api, rest api, api integration, issue types, types, delete a work item type
---
# Delete a work item type
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-types/{type_id}/
-Permanently deletes a work item type from a project. This action cannot be undone.
+Delete an issue type
@@ -22,21 +22,21 @@ Permanently deletes a work item type from a project. This action cannot be undon
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
-The unique identifier for the work item type.
+Type id.
@@ -52,6 +52,7 @@ The unique identifier for the work item type.
+
@@ -59,7 +60,7 @@ The unique identifier for the work item type.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,10 +72,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/",
{
method: "DELETE",
headers: {
@@ -90,7 +91,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -98,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/issue-types/types/get-issue-type-details.md b/docs/api-reference/issue-types/types/get-issue-type-details.md
index 19afe73..159c2b1 100644
--- a/docs/api-reference/issue-types/types/get-issue-type-details.md
+++ b/docs/api-reference/issue-types/types/get-issue-type-details.md
@@ -1,20 +1,20 @@
---
title: Retrieve a work item type
-description: Get retrieve a work item type details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Retrieve a work item type via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a work item type.
+keywords: plane, plane api, rest api, api integration, issue types, types, retrieve a work item type
---
# Retrieve a work item type
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-types/{type_id}/
-Retrieves the details of an existing work item type by its ID.
+Retrieve an issue type by id
@@ -22,21 +22,21 @@ Retrieves the details of an existing work item type by its ID.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
-The unique identifier for the work item type.
+Type id.
@@ -52,6 +52,7 @@ The unique identifier for the work item type.
+
@@ -59,7 +60,7 @@ The unique identifier for the work item type.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/",
{
method: "GET",
headers: {
@@ -100,15 +101,23 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "Example description",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "project_ids": ["550e8400-e29b-41d4-a716-446655440000"],
+ "logo_props": "example-value",
+ "is_epic": true,
+ "is_default": true,
+ "is_active": true,
+ "level": 1
}
```
+
diff --git a/docs/api-reference/issue-types/types/get-work-item-type-schema.md b/docs/api-reference/issue-types/types/get-work-item-type-schema.md
new file mode 100644
index 0000000..a1ba0fc
--- /dev/null
+++ b/docs/api-reference/issue-types/types/get-work-item-type-schema.md
@@ -0,0 +1,198 @@
+---
+title: Get work item type schema
+description: Get work item type schema via Plane API. HTTP request format, parameters, scopes, and example responses for get work item type schema.
+keywords: plane, plane api, rest api, api integration, issue types, types, get work item type schema
+---
+
+# Get work item type schema
+
+
+ GET
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-types/schema/
+
+
+
+
+
+Returns the complete schema for a work item type including all standard fields
+and custom properties with their available options inline.
+
+This endpoint enables LLMs and MCP integrations to understand what fields are available
+when creating/updating work items.
+
+**Standard fields** are always included:
+
+- name, description_html, priority, state_id, assignee_ids, label_ids, start_date, target_date, parent_id
+
+**Custom fields** are included when:
+
+- ISSUE_TYPES feature is enabled AND
+- A type_id is provided or a default type exists for the project
+
+**Options behavior:**
+
+- state_id options are always included
+- priority options are always included
+- assignee_ids and label_ids options require `?include=members,labels`
+- estimate_point_id options are included when project has estimates configured
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Comma-separated list of additional options to include: members, labels
+
+
+
+
+
+Work item type ID. If not provided, returns schema for default type (when types enabled) or standard fields only.
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.work_item_types:read`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/schema/?include=members&type_id=550e8400-e29b-41d4-a716-446655440000" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/schema/?include=members&type_id=550e8400-e29b-41d4-a716-446655440000",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/schema/?include=members&type_id=550e8400-e29b-41d4-a716-446655440000",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "type_id": "550e8400-e29b-41d4-a716-446655440000",
+ "type_name": "Bug",
+ "type_description": "Example description",
+ "type_logo_props": {},
+ "fields": {
+ "name": {
+ "type": "string",
+ "required": true,
+ "max_length": 255
+ },
+ "priority": {
+ "type": "option",
+ "required": false,
+ "options": [
+ {
+ "value": "urgent",
+ "label": "Urgent"
+ },
+ {
+ "value": "high",
+ "label": "High"
+ }
+ ]
+ },
+ "state_id": {
+ "type": "uuid",
+ "required": false,
+ "options": [
+ {
+ "id": "...",
+ "name": "Example Name",
+ "group": "backlog"
+ }
+ ]
+ }
+ },
+ "custom_fields": {
+ "custom_field_severity": {
+ "id": "...",
+ "type": "OPTION",
+ "name": "Example Name",
+ "display_name": "Example Name",
+ "required": true,
+ "is_multi": false,
+ "options": [
+ {
+ "id": "...",
+ "name": "Example Name"
+ }
+ ]
+ }
+ }
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/issue-types/types/list-issue-types.md b/docs/api-reference/issue-types/types/list-issue-types.md
index 3b59d7c..9ed36da 100644
--- a/docs/api-reference/issue-types/types/list-issue-types.md
+++ b/docs/api-reference/issue-types/types/list-issue-types.md
@@ -1,20 +1,20 @@
---
title: List all work item types
-description: List all work item types via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: List all work item types via Plane API. HTTP request format, parameters, scopes, and example responses for list all work item types.
+keywords: plane, plane api, rest api, api integration, issue types, types, list all work item types
---
# List all work item types
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-types/
-Returns a list of all work item types in a project.
+List all issue types for a project
@@ -22,42 +22,15 @@ Returns a list of all work item types in a project.
-
-
-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`.
-
-
-
-The unique identifier of the project.
-
-
-
-
-
-
-
-
-### Query Parameters
-
-
-
-
-
-Filter by project ID.
-
-
-
-
-
-Number of results to return per page.
+Project ID
-
+
-Number of results to skip for pagination.
+Workspace slug
@@ -73,6 +46,7 @@ Number of results to skip for pagination.
+
@@ -80,7 +54,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -92,7 +66,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -103,7 +77,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/",
{
method: "GET",
headers: {
@@ -120,16 +94,26 @@ const data = await response.json();
```json
-{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "Example description",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "project_ids": ["550e8400-e29b-41d4-a716-446655440000"],
+ "logo_props": "example-value",
+ "is_epic": true,
+ "is_default": true,
+ "is_active": true,
+ "level": 1
+ }
+]
```
+
diff --git a/docs/api-reference/issue-types/types/update-issue-types.md b/docs/api-reference/issue-types/types/update-issue-types.md
index 6dd02cc..3f6d697 100644
--- a/docs/api-reference/issue-types/types/update-issue-types.md
+++ b/docs/api-reference/issue-types/types/update-issue-types.md
@@ -1,20 +1,20 @@
---
title: Update a work item type
-description: Update a work item type via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Update a work item type via Plane API. HTTP request format, parameters, scopes, and example responses for update a work item type.
+keywords: plane, plane api, rest api, api integration, issue types, types, update a work item type
---
# Update a work item type
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-item-types/{type_id}/
-Updates an existing work item type by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Update an issue type
@@ -22,21 +22,21 @@ Updates an existing work item type by setting the values of the parameters passe
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
-The unique identifier for the work item type.
+Type id.
@@ -49,45 +49,39 @@ The unique identifier for the work item type.
-
+
-Name of the work item type
+Name.
-
+
-Description of the work item type.
+Description.
-
+
-Logo properties for the work item type.
+Is epic.
-
+
-Whether this work item type is an epic.
+Is active.
-
+
-Whether this is the default work item type.
+External source.
-
+
-Whether this work item type is active.
-
-
-
-
-
-Hierarchical level of the work item type.
+External id.
@@ -103,6 +97,7 @@ Hierarchical level of the work item type.
+
@@ -110,18 +105,15 @@ Hierarchical level of the work item type.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description",
- "logo_props": "example-logo_props",
- "is_epic": true,
- "is_default": true,
- "is_active": true,
- "level": 1
+ "name": "Example Name",
+ "description": "Example description",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -132,17 +124,14 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description',
- 'logo_props': 'example-logo_props',
- 'is_epic': true,
- 'is_default': true,
- 'is_active': true,
- 'level': 1
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -152,7 +141,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/{type_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/550e8400-e29b-41d4-a716-446655440001/",
{
method: "PATCH",
headers: {
@@ -160,13 +149,10 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- logo_props: "example-logo_props",
- is_epic: true,
- is_default: true,
- is_active: true,
- level: 1,
+ name: "Example Name",
+ description: "Example description",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -180,15 +166,23 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "Example description",
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "project_ids": ["550e8400-e29b-41d4-a716-446655440000"],
+ "logo_props": "example-value",
+ "is_epic": true,
+ "is_default": true,
+ "is_active": true,
+ "level": 1
}
```
+
diff --git a/docs/api-reference/issue-types/values/add-property-values.md b/docs/api-reference/issue-types/values/add-property-values.md
index c772e95..ebcd2b9 100644
--- a/docs/api-reference/issue-types/values/add-property-values.md
+++ b/docs/api-reference/issue-types/values/add-property-values.md
@@ -1,20 +1,20 @@
---
title: Add custom property values
-description: Create custom property values via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Add custom property values via Plane API. HTTP request format, parameters, scopes, and example responses for add custom property values.
+keywords: plane, plane api, rest api, api integration, issue types, values, add custom property values
---
# Add custom property values
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/work-item-properties/{property_id}/values/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{work_item_id}/work-item-properties/{property_id}/values/
-Allows you to specify the values for a custom property.
+Create or update the property value for a work item. Acts as an upsert operation since only one value is allowed per work item/property combination.
@@ -22,27 +22,27 @@ Allows you to specify the values for a custom property.
-
+
-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
-
+
-The unique identifier of the project.
+Property ID
-
+
-The unique identifier for the work item.
+Workspace slug
-
+
-The unique identifier for the custom property.
+Work item id.
@@ -55,26 +55,21 @@ The unique identifier for the custom property.
-
+
-The value type depends on the property type:
+The value to set for the property. Type depends on property type: string for text/url/email/file fields, string (UUID) or list of UUIDs for relations/options (list only when is_multi=True), string (YYYY-MM-DD) for dates, number for decimals, boolean for booleans
-- TEXT/URL/EMAIL/FILE: string
-- DATETIME: string (YYYY-MM-DD or YYYY-MM-DD HH:MM:SS)
-- DECIMAL: number (int or float)
-- BOOLEAN: boolean (true/false)
-- OPTION/RELATION (single): string (UUID)
-- OPTION/RELATION (multi, when is_multi=True): list of strings (UUIDs) or single string
+
+
+
-For multi-value properties (is_multi=True):
+Optional external identifier for syncing with external systems
-- Accept either a single UUID string or a list of UUID strings
-- Multiple records are created
-- Response will be a list of values
+
-For single-value properties:
+
-- Only one value is allowed per work item/property combination
+Optional external source identifier (e.g., 'github', 'jira')
@@ -90,6 +85,7 @@ For single-value properties:
+
@@ -97,12 +93,14 @@ For single-value properties:
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/work-item-properties/{property_id}/values/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "value": "example-value"
+ "value": "example text value",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -113,11 +111,13 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/work-item-properties/{property_id}/values/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/",
headers={"X-API-Key": "your-api-key"},
json={
- 'value': 'example-value'
-}
+ "value": "example text value",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -127,7 +127,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/work-item-properties/{property_id}/values/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/",
{
method: "POST",
headers: {
@@ -135,7 +135,9 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- value: "example-value",
+ value: "example text value",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -145,19 +147,24 @@ const data = await response.json();
-
+
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "property_id": "550e8400-e29b-41d4-a716-446655440000",
+ "issue_id": "550e8400-e29b-41d4-a716-446655440000",
+ "value": "Example Name",
+ "value_type": "Example Name",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/issue-types/values/delete-property-value.md b/docs/api-reference/issue-types/values/delete-property-value.md
new file mode 100644
index 0000000..89ef089
--- /dev/null
+++ b/docs/api-reference/issue-types/values/delete-property-value.md
@@ -0,0 +1,114 @@
+---
+title: Delete property value
+description: Delete property value via Plane API. HTTP request format, parameters, scopes, and example responses for delete property value.
+keywords: plane, plane api, rest api, api integration, issue types, values, delete property value
+---
+
+# Delete property value
+
+
+ DELETE
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{work_item_id}/work-item-properties/{property_id}/values/
+
+
+
+
+
+Delete the property value(s) for a work item. For multi-value properties, deletes all values.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Property ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+Work item id.
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.work_item_property_values:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.delete(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/issue-types/values/get-property-value-detail.md b/docs/api-reference/issue-types/values/get-property-value-detail.md
new file mode 100644
index 0000000..3020813
--- /dev/null
+++ b/docs/api-reference/issue-types/values/get-property-value-detail.md
@@ -0,0 +1,126 @@
+---
+title: Get property value
+description: Get property value via Plane API. HTTP request format, parameters, scopes, and example responses for get property value.
+keywords: plane, plane api, rest api, api integration, issue types, values, get property value
+---
+
+# Get property value
+
+
+ GET
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{work_item_id}/work-item-properties/{property_id}/values/
+
+
+
+
+
+Retrieve the property value(s) for a specific work item property. Returns a single value for non-multi properties, or a list for multi-value properties.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Property ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+Work item id.
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.work_item_property_values:read`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "property_id": "550e8400-e29b-41d4-a716-446655440000",
+ "issue_id": "550e8400-e29b-41d4-a716-446655440000",
+ "value": "Example Name",
+ "value_type": "Example Name",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/issue-types/values/list-property-values.md b/docs/api-reference/issue-types/values/list-property-values.md
index e6a6585..df55213 100644
--- a/docs/api-reference/issue-types/values/list-property-values.md
+++ b/docs/api-reference/issue-types/values/list-property-values.md
@@ -1,20 +1,20 @@
---
title: List all custom property values
-description: List all custom property values via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: List all custom property values via Plane API. HTTP request format, parameters, scopes, and example responses for list all custom property values.
+keywords: plane, plane api, rest api, api integration, issue types, values, list all custom property values
---
# List all custom property values
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/work-item-properties/{property_id}/values/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{work_item_id}/work-item-properties/{property_id}/values/
-Returns a list of all values for a custom property on a work item.
+Retrieve the property value(s) for a specific work item property. Returns a single value for non-multi properties, or a list for multi-value properties.
@@ -22,27 +22,27 @@ Returns a list of all values for a custom property on a work item.
-
+
-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
-
+
-The unique identifier of the project.
+Property ID
-
+
-The unique identifier for the work item.
+Workspace slug
-
+
-The unique identifier for the custom property.
+Work item id.
@@ -58,6 +58,7 @@ The unique identifier for the custom property.
+
@@ -65,7 +66,7 @@ The unique identifier for the custom property.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/work-item-properties/{property_id}/values/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,7 +78,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/work-item-properties/{property_id}/values/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/work-item-properties/{property_id}/values/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/",
{
method: "GET",
headers: {
@@ -106,15 +107,20 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "property_id": "550e8400-e29b-41d4-a716-446655440000",
+ "issue_id": "550e8400-e29b-41d4-a716-446655440000",
+ "value": "Example Name",
+ "value_type": "Example Name",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/issue-types/values/update-property-value.md b/docs/api-reference/issue-types/values/update-property-value.md
new file mode 100644
index 0000000..9000acc
--- /dev/null
+++ b/docs/api-reference/issue-types/values/update-property-value.md
@@ -0,0 +1,164 @@
+---
+title: Update property value
+description: Update property value via Plane API. HTTP request format, parameters, scopes, and example responses for update property value.
+keywords: plane, plane api, rest api, api integration, issue types, values, update property value
+---
+
+# Update property value
+
+
+ PATCH
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{work_item_id}/work-item-properties/{property_id}/values/
+
+
+
+
+
+Update an existing property value for a work item (partial update)
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Property ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+Work item id.
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+The value to set for the property. Type depends on property type: string for text/url/email/file fields, string (UUID) or list of UUIDs for relations/options (list only when is_multi=True), string (YYYY-MM-DD) for dates, number for decimals, boolean for booleans
+
+
+
+
+
+Optional external identifier for syncing with external systems
+
+
+
+
+
+Optional external source identifier (e.g., 'github', 'jira')
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.work_item_property_values:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X PATCH \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "value": "updated text value"
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.patch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "value": "updated text value"
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/work-item-properties/550e8400-e29b-41d4-a716-446655440001/values/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ value: "updated text value",
+ }),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "property_id": "550e8400-e29b-41d4-a716-446655440000",
+ "issue_id": "550e8400-e29b-41d4-a716-446655440000",
+ "value": "Example Name",
+ "value_type": "Example Name",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/issue/add-issue.md b/docs/api-reference/issue/add-issue.md
index b870af8..1a468b8 100644
--- a/docs/api-reference/issue/add-issue.md
+++ b/docs/api-reference/issue/add-issue.md
@@ -1,20 +1,20 @@
---
title: Create a work item
-description: Create a work item via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Create a work item via Plane API. HTTP request format, parameters, scopes, and example responses for create a work item.
+keywords: plane, plane api, rest api, api integration, issue, create a work item
---
# Create a work item
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/
-Creates a new work item in a project.
+Create a new work item in the specified project with the provided details.
@@ -22,15 +22,15 @@ Creates a new work item in a project.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
@@ -43,75 +43,151 @@ The unique identifier of the project.
+
+
+Assignees.
+
+
+
+
+
+Labels.
+
+
+
+
+
+Type id.
+
+
+
+
+
+Parent.
+
+
+
+
+
+Deleted at.
+
+
+
+
+
+Point.
+
+
+
-Name of the work item.
+Name.
-
+
-HTML-formatted description of the work item.
+Description html.
-
+
-ID of the state for the work item.
+Description stripped.
-
+
-Array of user IDs to assign to the work item.
+- `urgent` - Urgent
+- `high` - High
+- `medium` - Medium
+- `low` - Low
+- `none` - None
-
+
-Priority level. Possible values: `none`, `urgent`, `high`, `medium`, `low`.
+Start date.
-
+
-Array of label IDs to apply to the work item.
+Target date.
-
+
-ID of the parent work item.
+Sequence id.
-
+
-Estimate points for the work item (0-7).
+Sort order.
-
+
-ID of the work item type.
+Completed at.
-
+
-ID of the module the work item belongs to.
+Archived at.
-
+
-Start date in YYYY-MM-DD format.
+Last activity at.
-
+
-Target completion date in YYYY-MM-DD format.
+Is draft.
+
+
+
+
+
+External source.
+
+
+
+
+
+External id.
+
+
+
+
+
+Created by.
+
+
+
+
+
+State.
+
+
+
+
+
+Estimate point.
+
+
+
+
+
+Type.
@@ -127,6 +203,7 @@ Target completion date in YYYY-MM-DD format.
+
@@ -134,23 +211,23 @@ Target completion date in YYYY-MM-DD format.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description_html": "example-description_html",
- "state": "example-state",
- "assignees": "example-assignees",
- "priority": "example-priority",
- "labels": "example-labels",
- "parent": "example-parent",
- "estimate_point": "example-estimate_point",
- "type": "example-type",
- "module": "example-module",
- "start_date": "example-start_date",
- "target_date": "example-target_date"
+ "name": "Example Name",
+ "description": "Example description",
+ "priority": "medium",
+ "state": "550e8400-e29b-41d4-a716-446655440000",
+ "assignees": [
+ "550e8400-e29b-41d4-a716-446655440000"
+ ],
+ "labels": [
+ "550e8400-e29b-41d4-a716-446655440000"
+ ],
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -161,22 +238,22 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description_html': 'example-description_html',
- 'state': 'example-state',
- 'assignees': 'example-assignees',
- 'priority': 'example-priority',
- 'labels': 'example-labels',
- 'parent': 'example-parent',
- 'estimate_point': 'example-estimate_point',
- 'type': 'example-type',
- 'module': 'example-module',
- 'start_date': 'example-start_date',
- 'target_date': 'example-target_date'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "priority": "medium",
+ "state": "550e8400-e29b-41d4-a716-446655440000",
+ "assignees": [
+"550e8400-e29b-41d4-a716-446655440000"
+ ],
+ "labels": [
+"550e8400-e29b-41d4-a716-446655440000"
+ ],
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -185,27 +262,26 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/", {
- method: "POST",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- description_html: "example-description_html",
- state: "example-state",
- assignees: "example-assignees",
- priority: "example-priority",
- labels: "example-labels",
- parent: "example-parent",
- estimate_point: "example-estimate_point",
- type: "example-type",
- module: "example-module",
- start_date: "example-start_date",
- target_date: "example-target_date",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ description: "Example description",
+ priority: "medium",
+ state: "550e8400-e29b-41d4-a716-446655440000",
+ assignees: ["550e8400-e29b-41d4-a716-446655440000"],
+ labels: ["550e8400-e29b-41d4-a716-446655440000"],
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
+ }),
+ }
+);
const data = await response.json();
```
@@ -216,15 +292,20 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "sequence_id": 1,
+ "priority": "high",
+ "assignees": ["550e8400-e29b-41d4-a716-446655440000"],
+ "labels": ["550e8400-e29b-41d4-a716-446655440000"],
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/issue/advanced-search-work-items.md b/docs/api-reference/issue/advanced-search-work-items.md
new file mode 100644
index 0000000..4232ded
--- /dev/null
+++ b/docs/api-reference/issue/advanced-search-work-items.md
@@ -0,0 +1,180 @@
+---
+title: Advanced search work items
+description: Advanced search work items via Plane API. HTTP request format, parameters, scopes, and example responses for advanced search work items.
+keywords: plane, plane api, rest api, api integration, issue, advanced search work items
+---
+
+# Advanced search work items
+
+
+ POST
+ /api/v1/workspaces/{slug}/work-items/advanced-search/
+
+
+
+
+
+Search for work items with advanced filters and search query.
+
+
+
+### Path Parameters
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Search query string for text-based search across issue fields
+
+
+
+
+
+Filter JSON passed through to IssueFilterSet for validation and application
+
+
+
+
+
+Maximum number of results to return
+
+
+
+
+
+Whether to search across all projects in the workspace
+
+
+
+
+
+Optional project ID to filter results to a specific project
+
+
+
+
+
+
+
+
+### Scopes
+
+API key authentication or an OAuth token with equivalent access.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/work-items/advanced-search/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "query": "login",
+ "project_id": "550e8400-e29b-41d4-a716-446655440000",
+ "limit": 10
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.post(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/work-items/advanced-search/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "query": "login",
+ "project_id": "550e8400-e29b-41d4-a716-446655440000",
+ "limit": 10
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/work-items/advanced-search/", {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ query: "login",
+ project_id: "550e8400-e29b-41d4-a716-446655440000",
+ limit: 10,
+ }),
+});
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+[
+ [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "sequence_id": 102,
+ "project_identifier": "WEB",
+ "project_id": "550e8400-e29b-41d4-a716-446655440000",
+ "workspace_id": "550e8400-e29b-41d4-a716-446655440000",
+ "type_id": "550e8400-e29b-41d4-a716-446655440000",
+ "state_id": "550e8400-e29b-41d4-a716-446655440000",
+ "priority": "high",
+ "target_date": "2024-01-01",
+ "start_date": "2024-01-01"
+ },
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "sequence_id": 245,
+ "project_identifier": "API",
+ "project_id": "550e8400-e29b-41d4-a716-446655440000",
+ "workspace_id": "550e8400-e29b-41d4-a716-446655440000",
+ "type_id": "550e8400-e29b-41d4-a716-446655440000",
+ "state_id": "550e8400-e29b-41d4-a716-446655440000",
+ "priority": "medium",
+ "target_date": null,
+ "start_date": "2024-01-01"
+ }
+ ]
+]
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/issue/delete-issue.md b/docs/api-reference/issue/delete-issue.md
index f37e621..adeaabc 100644
--- a/docs/api-reference/issue/delete-issue.md
+++ b/docs/api-reference/issue/delete-issue.md
@@ -1,20 +1,20 @@
---
title: Delete a work item
-description: Permanently delete a work item via Plane API. Removes the issue and its associated comments, links, and attachments. Returns 204 on success.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Delete a work item via Plane API. HTTP request format, parameters, scopes, and example responses for delete a work item.
+keywords: plane, plane api, rest api, api integration, issue, delete a work item
---
# Delete a work item
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{pk}/
-Permanently deletes a work item from a project. This action cannot be undone.
+Permanently delete an existing work item from the project. Only admins or the item creator can perform this action.
@@ -22,21 +22,21 @@ Permanently deletes a work item from a project. This action cannot be undone.
-
+
-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`.
+Pk.
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the work item.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the work item.
+
@@ -59,7 +60,7 @@ The unique identifier for the work item.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,10 +72,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440000/",
{
method: "DELETE",
headers: {
@@ -90,7 +91,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -98,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/issue/get-issue-detail.md b/docs/api-reference/issue/get-issue-detail.md
index 92b24ac..2a7f36f 100644
--- a/docs/api-reference/issue/get-issue-detail.md
+++ b/docs/api-reference/issue/get-issue-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a work item by ID
-description: Get retrieve a work item by id details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Retrieve a work item by ID via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a work item by id.
+keywords: plane, plane api, rest api, api integration, issue, retrieve a work item by id
---
# Retrieve a work item by ID
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{pk}/
-Retrieves the details of an existing work item by its ID.
+Retrieve details of a specific work item.
@@ -22,21 +22,21 @@ Retrieves the details of an existing work item by its ID.
-
+
-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`.
+Pk.
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the work item.
+Workspace slug
@@ -49,9 +49,33 @@ The unique identifier for the work item.
-
+
-Comma-separated list of fields to expand. Possible values: `type`, `module`, `labels`, `assignees`, `state`, `project`.
+Comma-separated list of related fields to expand in response
+
+
+
+
+
+External system identifier for filtering or lookup
+
+
+
+
+
+External system source name for filtering or lookup
+
+
+
+
+
+Comma-separated list of fields to include in response
+
+
+
+
+
+Field to order results by. Prefix with '-' for descending order
@@ -67,6 +91,7 @@ Comma-separated list of fields to expand. Possible values: `type`, `module`, `la
+
@@ -74,7 +99,7 @@ Comma-separated list of fields to expand. Possible values: `type`, `module`, `la
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440000/?expand=assignees&external_id=1234567890" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -86,7 +111,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440000/?expand=assignees&external_id=1234567890",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -97,7 +122,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440000/?expand=assignees&external_id=1234567890",
{
method: "GET",
headers: {
@@ -115,15 +140,20 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "sequence_id": 1,
+ "priority": "high",
+ "assignees": ["550e8400-e29b-41d4-a716-446655440000"],
+ "labels": ["550e8400-e29b-41d4-a716-446655440000"],
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/issue/get-issue-sequence-id.md b/docs/api-reference/issue/get-issue-sequence-id.md
index 7b7a152..cb51d5f 100644
--- a/docs/api-reference/issue/get-issue-sequence-id.md
+++ b/docs/api-reference/issue/get-issue-sequence-id.md
@@ -1,20 +1,20 @@
---
title: Retrieve a work item by identifier
-description: List retrieve a work item by identifier via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Retrieve a work item by identifier via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a work item by identifier.
+keywords: plane, plane api, rest api, api integration, issue, retrieve a work item by identifier
---
# Retrieve a work item by identifier
GET
- /api/v1/workspaces/{workspace_slug}/work-items/{identifier}/
+ /api/v1/workspaces/{slug}/work-items/{project_identifier}-{issue_identifier}/
-Retrieves the details of a work item using its readable identifier (e.g., PROJ-123).
+Retrieve a specific work item using workspace slug, project identifier, and issue identifier.
@@ -22,30 +22,21 @@ Retrieves the details of a work item using its readable identifier (e.g., PROJ-1
-
+
-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`.
+Issue sequence ID (numeric identifier within project)
-
+
-Work item identifier in the format PROJECT-123 (e.g., ENG-123)
+Project identifier (unique string within workspace)
-
-
-
-
-
-### Query Parameters
+
-
-
-
-
-Comma-separated list of fields to expand. Possible values: `type`, `module`, `labels`, `assignees`, `state`, `project`.
+Workspace slug
@@ -61,6 +52,7 @@ Comma-separated list of fields to expand. Possible values: `type`, `module`, `la
+
@@ -68,7 +60,7 @@ Comma-separated list of fields to expand. Possible values: `type`, `module`, `la
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/work-items/{identifier}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/work-items/PROJ-123/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -80,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/work-items/{identifier}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/work-items/PROJ-123/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -90,7 +82,7 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/work-items/{identifier}/", {
+const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/work-items/PROJ-123/", {
method: "GET",
headers: {
"X-API-Key": "your-api-key",
@@ -106,15 +98,20 @@ const data = await response.json();
```json
{
- "id": "work-item-uuid",
- "name": "Work Item Title",
- "state": "state-uuid",
- "priority": 2,
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "sequence_id": 1,
+ "priority": "high",
+ "assignees": ["550e8400-e29b-41d4-a716-446655440000"],
+ "labels": ["550e8400-e29b-41d4-a716-446655440000"],
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/issue/list-issues.md b/docs/api-reference/issue/list-issues.md
index 671c9b3..baacd4a 100644
--- a/docs/api-reference/issue/list-issues.md
+++ b/docs/api-reference/issue/list-issues.md
@@ -1,20 +1,20 @@
---
title: List all work items
-description: List all work items via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: List all work items via Plane API. HTTP request format, parameters, scopes, and example responses for list all work items.
+keywords: plane, plane api, rest api, api integration, issue, list all work items
---
# List all work items
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/
-Returns a list of all work items in a project.
+Retrieve a paginated list of all work items in a project. Supports filtering, ordering, and field selection through query parameters.
@@ -22,15 +22,15 @@ Returns a list of all work items in a project.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
@@ -43,39 +43,45 @@ The unique identifier of the project.
-
+
+
+Pagination cursor for getting next set of results
+
+
+
+
-Filter by project ID.
+Comma-separated list of related fields to expand in response
-
+
-Filter by state ID.
+External system identifier for filtering or lookup
-
+
-Filter by assignee user ID.
+External system source name for filtering or lookup
-
+
-Number of results to return per page.
+Comma-separated list of fields to include in response
-
+
-Number of results to skip for pagination.
+Field to order results by. Prefix with '-' for descending order
-
+
-Comma-separated list of fields to expand. Possible values: `type`, `module`, `labels`, `assignees`, `state`, `project`.
+Number of results per page (default: 20, max: 100)
@@ -91,6 +97,7 @@ Comma-separated list of fields to expand. Possible values: `type`, `module`, `la
+
@@ -98,7 +105,7 @@ Comma-separated list of fields to expand. Possible values: `type`, `module`, `la
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/?cursor=20:1:0&expand=assignees" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -110,7 +117,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -120,12 +127,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/?cursor=20:1:0&expand=assignees",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -136,15 +146,39 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "priority": "high",
+ "sequence_id": 123,
+ "state": {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "group": "started"
+ },
+ "assignees": [],
+ "labels": [],
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/issue/search-issues.md b/docs/api-reference/issue/search-issues.md
index 0d6a31c..cba5eb5 100644
--- a/docs/api-reference/issue/search-issues.md
+++ b/docs/api-reference/issue/search-issues.md
@@ -1,20 +1,20 @@
---
title: Search work items
-description: Search work items via Plane API. Full-text search with filters and advanced query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Search work items via Plane API. HTTP request format, parameters, scopes, and example responses for search work items.
+keywords: plane, plane api, rest api, api integration, issue, search work items
---
# Search work items
GET
- /api/v1/workspaces/{workspace_slug}/work-items/search/
+ /api/v1/workspaces/{slug}/work-items/search/
-Searches for work items across a workspace by text query.
+Perform semantic search across issue names, sequence IDs, and project identifiers.
@@ -22,9 +22,9 @@ Searches for work items across a workspace by text query.
-
+
-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`.
+Workspace slug
@@ -37,15 +37,27 @@ The workspace_slug represents the unique workspace identifier for a workspace in
+
+
+Maximum number of results to return
+
+
+
+
+
+Project ID for filtering results within a specific project
+
+
+
-Text query to search for in work item names and descriptions.
+Search query to filter results by name, description, or identifier
-
+
-Filter results to a specific project by ID.
+Whether to search across entire workspace or within specific project
@@ -61,6 +73,7 @@ Filter results to a specific project by ID.
+
@@ -68,7 +81,7 @@ Filter results to a specific project by ID.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/work-items/search/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/work-items/search/?limit=10&project_id=550e8400-e29b-41d4-a716-446655440000" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -80,7 +93,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/work-items/search/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/work-items/search/?limit=10&project_id=550e8400-e29b-41d4-a716-446655440000",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -90,12 +103,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/work-items/search/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/work-items/search/?limit=10&project_id=550e8400-e29b-41d4-a716-446655440000",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -106,15 +122,29 @@ const data = await response.json();
```json
{
- "id": "work-item-uuid",
- "name": "Work Item Title",
- "state": "state-uuid",
- "priority": 2,
- "created_at": "2024-01-01T00:00:00Z"
+ "issues": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "sequence_id": 123,
+ "project__identifier": "MAB",
+ "project_id": "550e8400-e29b-41d4-a716-446655440000",
+ "workspace__slug": "my-workspace"
+ },
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "sequence_id": 124,
+ "project__identifier": "MAB",
+ "project_id": "550e8400-e29b-41d4-a716-446655440000",
+ "workspace__slug": "my-workspace"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/issue/update-issue-detail.md b/docs/api-reference/issue/update-issue-detail.md
index ea946c0..2109ea9 100644
--- a/docs/api-reference/issue/update-issue-detail.md
+++ b/docs/api-reference/issue/update-issue-detail.md
@@ -1,20 +1,20 @@
---
title: Update a work item
-description: Update a work item via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks
+description: Update a work item via Plane API. HTTP request format, parameters, scopes, and example responses for update a work item.
+keywords: plane, plane api, rest api, api integration, issue, update a work item
---
# Update a work item
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{pk}/
-Updates an existing work item by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Partially update an existing work item with the provided fields. Supports external ID validation to prevent conflicts.
@@ -22,21 +22,21 @@ Updates an existing work item by setting the values of the parameters passed. An
-
+
-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`.
+Pk.
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the work item.
+Workspace slug
@@ -49,75 +49,151 @@ The unique identifier for the work item.
-
+
-Name of the work item.
+Assignees.
-
+
-HTML-formatted description of the work item.
+Labels.
-
+
-ID of the state for the work item.
+Type id.
-
+
-Priority level. Possible values: `none`, `urgent`, `high`, `medium`, `low`.
+Parent.
-
+
-Array of user IDs to assign to the work item.
+Deleted at.
-
+
-Array of label IDs to apply to the work item.
+Point.
-
+
-ID of the parent work item.
+Name.
-
+
-Estimate points for the work item (0-7).
+Description html.
-
+
-ID of the work item type.
+Description stripped.
-
+
-ID of the module the work item belongs to.
+- `urgent` - Urgent
+- `high` - High
+- `medium` - Medium
+- `low` - Low
+- `none` - None
-
+
-Start date in YYYY-MM-DD format.
+Start date.
-
+
-Target completion date in YYYY-MM-DD format.
+Target date.
+
+
+
+
+
+Sequence id.
+
+
+
+
+
+Sort order.
+
+
+
+
+
+Completed at.
+
+
+
+
+
+Archived at.
+
+
+
+
+
+Last activity at.
+
+
+
+
+
+Is draft.
+
+
+
+
+
+External source.
+
+
+
+
+
+External id.
+
+
+
+
+
+Created by.
+
+
+
+
+
+State.
+
+
+
+
+
+Estimate point.
+
+
+
+
+
+Type.
@@ -133,6 +209,7 @@ Target completion date in YYYY-MM-DD format.
+
@@ -140,23 +217,21 @@ Target completion date in YYYY-MM-DD format.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description_html": "example-description_html",
- "state": "example-state",
- "priority": "example-priority",
- "assignees": "example-assignees",
- "labels": "example-labels",
- "parent": "example-parent",
- "estimate_point": "example-estimate_point",
- "type": "example-type",
- "module": "example-module",
- "start_date": "example-start_date",
- "target_date": "example-target_date"
+ "name": "Example Name",
+ "description": "Example description",
+ "priority": "medium",
+ "state": "550e8400-e29b-41d4-a716-446655440000",
+ "assignees": [
+ "550e8400-e29b-41d4-a716-446655440000"
+ ],
+ "labels": [
+ "550e8400-e29b-41d4-a716-446655440000"
+ ]
}'
```
@@ -167,22 +242,20 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description_html': 'example-description_html',
- 'state': 'example-state',
- 'priority': 'example-priority',
- 'assignees': 'example-assignees',
- 'labels': 'example-labels',
- 'parent': 'example-parent',
- 'estimate_point': 'example-estimate_point',
- 'type': 'example-type',
- 'module': 'example-module',
- 'start_date': 'example-start_date',
- 'target_date': 'example-target_date'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "priority": "medium",
+ "state": "550e8400-e29b-41d4-a716-446655440000",
+ "assignees": [
+"550e8400-e29b-41d4-a716-446655440000"
+ ],
+ "labels": [
+"550e8400-e29b-41d4-a716-446655440000"
+ ]
+ }
)
print(response.json())
```
@@ -192,7 +265,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440000/",
{
method: "PATCH",
headers: {
@@ -200,18 +273,12 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- description_html: "example-description_html",
- state: "example-state",
- priority: "example-priority",
- assignees: "example-assignees",
- labels: "example-labels",
- parent: "example-parent",
- estimate_point: "example-estimate_point",
- type: "example-type",
- module: "example-module",
- start_date: "example-start_date",
- target_date: "example-target_date",
+ name: "Example Name",
+ description: "Example description",
+ priority: "medium",
+ state: "550e8400-e29b-41d4-a716-446655440000",
+ assignees: ["550e8400-e29b-41d4-a716-446655440000"],
+ labels: ["550e8400-e29b-41d4-a716-446655440000"],
}),
}
);
@@ -225,15 +292,20 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "sequence_id": 1,
+ "priority": "high",
+ "assignees": ["550e8400-e29b-41d4-a716-446655440000"],
+ "labels": ["550e8400-e29b-41d4-a716-446655440000"],
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/label/add-label.md b/docs/api-reference/label/add-label.md
index d785757..dcdcb0b 100644
--- a/docs/api-reference/label/add-label.md
+++ b/docs/api-reference/label/add-label.md
@@ -1,20 +1,20 @@
---
title: Create a label
-description: Create a label via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization
+description: Create a label via Plane API. HTTP request format, parameters, scopes, and example responses for create a label.
+keywords: plane, plane api, rest api, api integration, label, create a label
---
# Create a label
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/labels/
+ /api/v1/workspaces/{slug}/projects/{project_id}/labels/
-Creates a new label in a project.
+Create a new label in the specified project with name, color, and description.
@@ -22,15 +22,15 @@ Creates a new label in a project.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
@@ -45,7 +45,43 @@ The unique identifier of the project.
-Name of the label.
+Name.
+
+
+
+
+
+Color.
+
+
+
+
+
+Description.
+
+
+
+
+
+External source.
+
+
+
+
+
+External id.
+
+
+
+
+
+Parent.
+
+
+
+
+
+Sort order.
@@ -61,6 +97,7 @@ Name of the label.
+
@@ -68,12 +105,16 @@ Name of the label.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name"
+ "name": "Example Name",
+ "color": "#ff0000",
+ "description": "Example description",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -84,11 +125,15 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name'
-}
+ "name": "Example Name",
+ "color": "#ff0000",
+ "description": "Example description",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -97,16 +142,23 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/", {
- method: "POST",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ color: "#ff0000",
+ description: "Example description",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
+ }),
+ }
+);
const data = await response.json();
```
@@ -117,15 +169,17 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "color": "#ff4444",
+ "description": "Example description",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/label/delete-label.md b/docs/api-reference/label/delete-label.md
index ce68d7e..295ed37 100644
--- a/docs/api-reference/label/delete-label.md
+++ b/docs/api-reference/label/delete-label.md
@@ -1,20 +1,20 @@
---
title: Delete a label
-description: Delete a label from a project via Plane API. Removes the label and disassociates it from all work items. Returns 204 on success.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization
+description: Delete a label via Plane API. HTTP request format, parameters, scopes, and example responses for delete a label.
+keywords: plane, plane api, rest api, api integration, label, delete a label
---
# Delete a label
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/labels/{label_id}
+ /api/v1/workspaces/{slug}/projects/{project_id}/labels/{pk}/
-Permanently deletes a label from a project. This action cannot be undone.
+Permanently remove a label from the project. This action cannot be undone.
@@ -22,21 +22,21 @@ Permanently deletes a label from a project. This action cannot be undone.
-
+
-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`.
+Label ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the label.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the label.
+
@@ -59,7 +60,7 @@ The unique identifier for the label.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/label-uuid" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,10 +72,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/label-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/label-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/550e8400-e29b-41d4-a716-446655440000/",
{
method: "DELETE",
headers: {
@@ -90,7 +91,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -98,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/label/get-label-detail.md b/docs/api-reference/label/get-label-detail.md
index f113070..ebc13ea 100644
--- a/docs/api-reference/label/get-label-detail.md
+++ b/docs/api-reference/label/get-label-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a label
-description: Get retrieve a label details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization
+description: Retrieve a label via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a label.
+keywords: plane, plane api, rest api, api integration, label, retrieve a label
---
# Retrieve a label
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/labels/{label_id}
+ /api/v1/workspaces/{slug}/projects/{project_id}/labels/{pk}/
-Retrieves the details of an existing label by its ID.
+Retrieve details of a specific label.
@@ -22,21 +22,21 @@ Retrieves the details of an existing label by its ID.
-
+
-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`.
+Label ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the label.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the label.
+
@@ -59,7 +60,7 @@ The unique identifier for the label.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/label-uuid" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/label-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/label-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/550e8400-e29b-41d4-a716-446655440000/",
{
method: "GET",
headers: {
@@ -100,15 +101,17 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "color": "#ff4444",
+ "description": "Example description",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/label/list-labels.md b/docs/api-reference/label/list-labels.md
index 3c849cc..2323103 100644
--- a/docs/api-reference/label/list-labels.md
+++ b/docs/api-reference/label/list-labels.md
@@ -1,20 +1,20 @@
---
title: List all labels
-description: List all labels via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization
+description: List all labels via Plane API. HTTP request format, parameters, scopes, and example responses for list all labels.
+keywords: plane, plane api, rest api, api integration, label, list all labels
---
# List all labels
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/labels/
+ /api/v1/workspaces/{slug}/projects/{project_id}/labels/
-Returns a list of all labels in a project. Labels are returned in sort order.
+Retrieve all labels in a project. Supports filtering by name and color.
@@ -22,15 +22,54 @@ Returns a list of all labels in a project. Labels are returned in sort order.
-
+
-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
-
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
+
+
+
+
+
+Comma-separated list of related fields to expand in response
+
+
+
+
+
+Comma-separated list of fields to include in response
+
+
+
+
+
+Field to order results by. Prefix with '-' for descending order
+
+
+
+
-The unique identifier of the project.
+Number of results per page (default: 20, max: 100)
@@ -46,6 +85,7 @@ The unique identifier of the project.
+
@@ -53,7 +93,7 @@ The unique identifier of the project.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/?cursor=20:1:0&expand=assignees" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +105,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +115,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/?cursor=20:1:0&expand=assignees",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -91,15 +134,30 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "color": "#ff4444",
+ "description": "Example description"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/label/update-label-detail.md b/docs/api-reference/label/update-label-detail.md
index 285c2c8..1a9e970 100644
--- a/docs/api-reference/label/update-label-detail.md
+++ b/docs/api-reference/label/update-label-detail.md
@@ -1,20 +1,20 @@
---
title: Update a label
-description: Update a label via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, labels, tags, categorization
+description: Update a label via Plane API. HTTP request format, parameters, scopes, and example responses for update a label.
+keywords: plane, plane api, rest api, api integration, label, update a label
---
# Update a label
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/labels/{label_id}
+ /api/v1/workspaces/{slug}/projects/{project_id}/labels/{pk}/
-Updates an existing label by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Partially update an existing label's properties like name, color, or description.
@@ -22,21 +22,21 @@ Updates an existing label by setting the values of the parameters passed. Any pa
-
+
-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`.
+Label ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the label.
+Workspace slug
@@ -49,9 +49,45 @@ The unique identifier for the label.
-
+
-Name of the label.
+Name.
+
+
+
+
+
+Color.
+
+
+
+
+
+Description.
+
+
+
+
+
+External source.
+
+
+
+
+
+External id.
+
+
+
+
+
+Parent.
+
+
+
+
+
+Sort order.
@@ -67,6 +103,7 @@ Name of the label.
+
@@ -74,12 +111,16 @@ Name of the label.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/label-uuid" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name"
+ "name": "Example Name",
+ "color": "#00ff00",
+ "description": "Example description",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -90,11 +131,15 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/label-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name'
-}
+ "name": "Example Name",
+ "color": "#00ff00",
+ "description": "Example description",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -104,7 +149,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/labels/label-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/labels/550e8400-e29b-41d4-a716-446655440000/",
{
method: "PATCH",
headers: {
@@ -112,7 +157,11 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
+ name: "Example Name",
+ color: "#00ff00",
+ description: "Example description",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -126,15 +175,17 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "color": "#ff4444",
+ "description": "Example description",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/link/add-link.md b/docs/api-reference/link/add-link.md
index a922d33..3f79c4b 100644
--- a/docs/api-reference/link/add-link.md
+++ b/docs/api-reference/link/add-link.md
@@ -1,20 +1,20 @@
---
title: Create a link
-description: Create a link via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane api, create link, add url reference, work item link, issue link, rest api, api integration
+description: Create a link via Plane API. HTTP request format, parameters, scopes, and example responses for create a link.
+keywords: plane, plane api, rest api, api integration, link, create a link
---
# Create a link
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/links/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/links/
-Creates a new link attached to a work item.
+Add a new external link to a work item with URL, title, and metadata.
@@ -22,21 +22,21 @@ Creates a new link attached to a work item.
-
+
-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`.
+Issue ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the work item.
+Workspace slug
@@ -49,15 +49,15 @@ The unique identifier for the work item.
-
+
-Title or description of the link.
+Title.
-URL of the external resource.
+Url.
@@ -73,6 +73,7 @@ URL of the external resource.
+
@@ -80,13 +81,13 @@ URL of the external resource.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "title": "example-title",
- "url": "example-url"
+ "url": "https://example.com/resource",
+ "title": "Example Name"
}'
```
@@ -97,12 +98,12 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/",
headers={"X-API-Key": "your-api-key"},
json={
- 'title': 'example-title',
- 'url': 'example-url'
-}
+ "url": "https://example.com/resource",
+ "title": "Example Name"
+ }
)
print(response.json())
```
@@ -112,7 +113,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/",
{
method: "POST",
headers: {
@@ -120,8 +121,8 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- title: "example-title",
- url: "example-url",
+ url: "https://example.com/resource",
+ title: "Example Name",
}),
}
);
@@ -135,15 +136,21 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "url": "https://example.com/resource",
+ "title": "Example Name",
+ "metadata": {
+ "title": "Example Name",
+ "description": "Example description",
+ "image": "https://example.com/assets/example-image.png"
+ },
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/link/delete-link.md b/docs/api-reference/link/delete-link.md
index 00877f5..faddad6 100644
--- a/docs/api-reference/link/delete-link.md
+++ b/docs/api-reference/link/delete-link.md
@@ -1,20 +1,20 @@
---
title: Delete a link
-description: Remove a URL link from a work item via Plane API. Deletes the link reference without affecting the target URL. Returns 204 on success.
-keywords: plane api, delete link, remove link, work item link, issue link, rest api, api integration
+description: Delete a link via Plane API. HTTP request format, parameters, scopes, and example responses for delete a link.
+keywords: plane, plane api, rest api, api integration, link, delete a link
---
# Delete a link
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/links/{link_id}
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/links/{pk}/
-Permanently deletes a link from a work item. This action cannot be undone.
+Permanently remove an external link from a work item.
@@ -22,27 +22,27 @@ Permanently deletes a link from a work item. This action cannot be undone.
-
+
-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`.
+Issue ID
-
+
-The unique identifier of the project.
+Link ID
-
+
-The unique identifier for the work item.
+Project ID
-
+
-The unique identifier for the link.
+Workspace slug
@@ -58,6 +58,7 @@ The unique identifier for the link.
+
@@ -65,7 +66,7 @@ The unique identifier for the link.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/{link_id}" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,10 +78,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/{link_id}",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/{link_id}",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/550e8400-e29b-41d4-a716-446655440000/",
{
method: "DELETE",
headers: {
@@ -96,7 +97,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -104,11 +105,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/link/get-link-detail.md b/docs/api-reference/link/get-link-detail.md
index a0f6bf5..e9abd0f 100644
--- a/docs/api-reference/link/get-link-detail.md
+++ b/docs/api-reference/link/get-link-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a link
-description: Get retrieve a link details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane api, get link detail, retrieve link, work item link, issue link, rest api, api integration
+description: Retrieve a link via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a link.
+keywords: plane, plane api, rest api, api integration, link, retrieve a link
---
# Retrieve a link
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/links/{link_id}
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/links/{pk}/
-Retrieves the details of an existing link by its ID.
+Retrieve details of a specific work item link.
@@ -22,27 +22,60 @@ Retrieves the details of an existing link by its ID.
-
+
-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`.
+Issue ID
+
+
+
+
+
+Link ID
-The unique identifier of the project.
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
-
+
-The unique identifier for the work item.
+Comma-separated list of related fields to expand in response
-
+
-The unique identifier for the link.
+Comma-separated list of fields to include in response
+
+
+
+
+
+Number of results per page (default: 20, max: 100)
@@ -58,6 +91,7 @@ The unique identifier for the link.
+
@@ -65,7 +99,7 @@ The unique identifier for the link.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/{link_id}" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/550e8400-e29b-41d4-a716-446655440000/?cursor=20:1:0&expand=assignees" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,7 +111,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/{link_id}",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/550e8400-e29b-41d4-a716-446655440000/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -88,7 +122,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/{link_id}",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/550e8400-e29b-41d4-a716-446655440000/?cursor=20:1:0&expand=assignees",
{
method: "GET",
headers: {
@@ -106,15 +140,29 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/link/list-links.md b/docs/api-reference/link/list-links.md
index 916525b..21c755d 100644
--- a/docs/api-reference/link/list-links.md
+++ b/docs/api-reference/link/list-links.md
@@ -1,20 +1,20 @@
---
title: List all links
-description: List all links via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane api, list links, get all links, work item links, issue links, rest api, api integration
+description: List all links via Plane API. HTTP request format, parameters, scopes, and example responses for list all links.
+keywords: plane, plane api, rest api, api integration, link, list all links
---
# List all links
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/links/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/links/
-Returns a list of all links attached to a work item.
+Retrieve all links associated with a work item. Supports filtering by URL, title, and metadata.
@@ -22,21 +22,60 @@ Returns a list of all links attached to a work item.
-
+
-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`.
+Issue ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the work item.
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
+
+
+
+
+
+Comma-separated list of related fields to expand in response
+
+
+
+
+
+Comma-separated list of fields to include in response
+
+
+
+
+
+Field to order results by. Prefix with '-' for descending order
+
+
+
+
+
+Number of results per page (default: 20, max: 100)
@@ -52,6 +91,7 @@ The unique identifier for the work item.
+
@@ -59,7 +99,7 @@ The unique identifier for the work item.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/?cursor=20:1:0&expand=assignees" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +111,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +122,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/?cursor=20:1:0&expand=assignees",
{
method: "GET",
headers: {
@@ -100,15 +140,29 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/link/update-link-detail.md b/docs/api-reference/link/update-link-detail.md
index b39fa22..bd5073e 100644
--- a/docs/api-reference/link/update-link-detail.md
+++ b/docs/api-reference/link/update-link-detail.md
@@ -1,20 +1,20 @@
---
title: Update a link
-description: Update a link via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane api, update link, modify link, work item link, issue link, rest api, api integration
+description: Update a link via Plane API. HTTP request format, parameters, scopes, and example responses for update a link.
+keywords: plane, plane api, rest api, api integration, link, update a link
---
# Update a link
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/links/{link_id}
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/links/{pk}/
-Updates an existing link by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Modify the URL, title, or metadata of an existing issue link.
@@ -22,27 +22,27 @@ Updates an existing link by setting the values of the parameters passed. Any par
-
+
-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`.
+Issue ID
-
+
-The unique identifier of the project.
+Link ID
-
+
-The unique identifier for the work item.
+Project ID
-
+
-The unique identifier for the link.
+Workspace slug
@@ -55,15 +55,15 @@ The unique identifier for the link.
-
+
-Title or description of the link.
+Title.
-
+
-URL of the external resource.
+Url.
@@ -79,6 +79,7 @@ URL of the external resource.
+
@@ -86,13 +87,13 @@ URL of the external resource.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/{link_id}" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "url": "example-url"
+ "url": "https://example.com/resource",
+ "title": "Example Name"
}'
```
@@ -103,12 +104,12 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/{link_id}",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'url': 'example-url'
-}
+ "url": "https://example.com/resource",
+ "title": "Example Name"
+ }
)
print(response.json())
```
@@ -118,7 +119,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/links/{link_id}",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/links/550e8400-e29b-41d4-a716-446655440000/",
{
method: "PATCH",
headers: {
@@ -126,8 +127,8 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- url: "example-url",
+ url: "https://example.com/resource",
+ title: "Example Name",
}),
}
);
@@ -141,15 +142,21 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "url": "https://example.com/resource",
+ "title": "Example Name",
+ "metadata": {
+ "title": "Example Name",
+ "description": "Example description",
+ "image": "https://example.com/assets/example-image.png"
+ },
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/members/add-project-member.md b/docs/api-reference/members/add-project-member.md
new file mode 100644
index 0000000..9f7cad0
--- /dev/null
+++ b/docs/api-reference/members/add-project-member.md
@@ -0,0 +1,145 @@
+---
+title: Create project member
+description: Create project member via Plane API. HTTP request format, parameters, scopes, and example responses for create project member.
+keywords: plane, plane api, rest api, api integration, members, create project member
+---
+
+# Create project member
+
+
+ POST
+ /api/v1/workspaces/{slug}/projects/{project_id}/project-members/
+
+
+
+
+
+Create a new project member
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Member.
+
+
+
+
+
+- `20` - Admin
+- `15` - Member
+- `5` - Guest
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.members:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "member": "550e8400-e29b-41d4-a716-446655440000",
+ "role": 20
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.post(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "member": "550e8400-e29b-41d4-a716-446655440000",
+ "role": 20
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ member: "550e8400-e29b-41d4-a716-446655440000",
+ role: 20,
+ }),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "member": "550e8400-e29b-41d4-a716-446655440000",
+ "role": 20
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/members/delete-project-member.md b/docs/api-reference/members/delete-project-member.md
new file mode 100644
index 0000000..ab0e8a8
--- /dev/null
+++ b/docs/api-reference/members/delete-project-member.md
@@ -0,0 +1,108 @@
+---
+title: Delete project member
+description: Delete project member via Plane API. HTTP request format, parameters, scopes, and example responses for delete project member.
+keywords: plane, plane api, rest api, api integration, members, delete project member
+---
+
+# Delete project member
+
+
+ DELETE
+ /api/v1/workspaces/{slug}/projects/{project_id}/project-members/{pk}/
+
+
+
+
+
+Delete a project member
+
+
+
+### Path Parameters
+
+
+
+
+
+Pk.
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.members:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.delete(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/550e8400-e29b-41d4-a716-446655440000/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/members/get-project-member-detail.md b/docs/api-reference/members/get-project-member-detail.md
new file mode 100644
index 0000000..50dee43
--- /dev/null
+++ b/docs/api-reference/members/get-project-member-detail.md
@@ -0,0 +1,114 @@
+---
+title: Get project member
+description: Get project member via Plane API. HTTP request format, parameters, scopes, and example responses for get project member.
+keywords: plane, plane api, rest api, api integration, members, get project member
+---
+
+# Get project member
+
+
+ GET
+ /api/v1/workspaces/{slug}/projects/{project_id}/project-members/{pk}/
+
+
+
+
+
+Retrieve a project member by ID.
+
+
+
+### Path Parameters
+
+
+
+
+
+Pk.
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.members:read`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/550e8400-e29b-41d4-a716-446655440000/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "member": "550e8400-e29b-41d4-a716-446655440000",
+ "role": 20
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/members/get-project-members.md b/docs/api-reference/members/get-project-members.md
index a218784..456dda3 100644
--- a/docs/api-reference/members/get-project-members.md
+++ b/docs/api-reference/members/get-project-members.md
@@ -1,20 +1,20 @@
---
title: List all project members
-description: List all project members via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane api, project members, list project members, member roles, project management, user management, rest api, api integration
+description: List all project members via Plane API. HTTP request format, parameters, scopes, and example responses for list all project members.
+keywords: plane, plane api, rest api, api integration, members, list all project members
---
# List all project members
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/members/
+ /api/v1/workspaces/{slug}/projects/{project_id}/project-members/
-Returns a list of all members in a project.
+Retrieve all users who are members of the specified project.
@@ -22,15 +22,15 @@ Returns a list of all members in a project.
-
+
-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
-
+
-The unique identifier of the project
+Workspace slug
@@ -46,6 +46,7 @@ The unique identifier of the project
+
@@ -53,7 +54,7 @@ The unique identifier of the project
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/members/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +66,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/members/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +76,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/members/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -90,16 +94,30 @@ const data = await response.json();
```json
-{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "first_name": "John",
+ "last_name": "Doe",
+ "display_name": "Example Name",
+ "email": "user@example.com",
+ "avatar": "https://example.com/assets/example-image.png"
+ },
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "first_name": "Jane",
+ "last_name": "Smith",
+ "display_name": "Example Name",
+ "email": "user@example.com",
+ "avatar": "https://example.com/assets/example-image.png"
+ }
+ ]
+]
```
+
diff --git a/docs/api-reference/members/get-workspace-members.md b/docs/api-reference/members/get-workspace-members.md
index cc33bf3..7029db0 100644
--- a/docs/api-reference/members/get-workspace-members.md
+++ b/docs/api-reference/members/get-workspace-members.md
@@ -1,20 +1,20 @@
---
title: Get all workspace members
-description: List all workspace members via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane api, workspace members, list members, member roles, user management, rest api, api integration
+description: Get all workspace members via Plane API. HTTP request format, parameters, scopes, and example responses for get all workspace members.
+keywords: plane, plane api, rest api, api integration, members, get all workspace members
---
# Get all workspace members
GET
- /api/v1/workspaces/{workspace_slug}/members/
+ /api/v1/workspaces/{slug}/members/
-Returns a list of all members in a workspace.
+Retrieve all users who are members of the specified workspace.
@@ -22,9 +22,9 @@ Returns a list of all members in a workspace.
-
+
-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`.
+Workspace slug
@@ -40,6 +40,7 @@ The workspace_slug represents the unique workspace identifier for a workspace in
+
@@ -84,13 +85,30 @@ const data = await response.json();
```json
-{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "first_name": "John",
+ "last_name": "Doe",
+ "display_name": "Example Name",
+ "email": "user@example.com",
+ "avatar": "https://example.com/assets/example-image.png",
+ "role": 20
+ },
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "first_name": "Jane",
+ "last_name": "Smith",
+ "display_name": "Example Name",
+ "email": "user@example.com",
+ "avatar": "https://example.com/assets/example-image.png",
+ "role": 15
+ }
+]
```
+
diff --git a/docs/api-reference/members/remove-workspace-member.md b/docs/api-reference/members/remove-workspace-member.md
index 767ad00..5de4a9a 100644
--- a/docs/api-reference/members/remove-workspace-member.md
+++ b/docs/api-reference/members/remove-workspace-member.md
@@ -1,7 +1,7 @@
---
title: Remove workspace member
-description: Remove a member from a workspace via Plane API. HTTP POST request to deactivate users across projects and teamspaces.
-keywords: plane api, remove member, delete member, workspace members, user management, rest api, api integration
+description: Remove workspace member via Plane API. HTTP request format, parameters, scopes, and example responses for remove workspace member.
+keywords: plane, plane api, rest api, api integration, members, remove workspace member
---
# Remove workspace member
@@ -14,38 +14,17 @@ keywords: plane api, remove member, delete member, workspace members, user manag
-Removes a member from a workspace. This deactivates them across all projects, removes them from teamspaces and pages, and optionally reduces seat count.
+Remove a member from the workspace, deactivate them from all projects, and reduce the seat count.
-### Path parameters
+### Path Parameters
-The unique identifier (slug) for the workspace.
-
-
-
-
-
-
-
-
-### Body Parameters
-
-
-
-
-
-Email address of the member to remove.
-
-
-
-
-
-Reduce purchased seat count by 1. Defaults to `false`.
+Workspace slug
@@ -56,40 +35,12 @@ Reduce purchased seat count by 1. Defaults to `false`.
### Scopes
-`write` or `workspaces:members:write`
+`workspaces.members:write`
-
-
-### Responses
-
-| Status | Description |
-| ------ | -------------------------------------- |
-| 204 | Member removed successfully (no body) |
-| 400 | Validation error (see below) |
-| 403 | You are not a member of this workspace |
-| 404 | Workspace or member not found |
-
-**400 Validation Errors:**
-
-- `email` field is required.
-- Cannot remove yourself. You'll need leave the workspace from the application.
-- Cannot remove a member with a higher role than yours.
-- Member is the sole admin of one or more projects — promote another admin first.
-
-
-
-### What happens
-
-- Member is deactivated in all projects.
-- Member is removed from all teamspaces and shared pages
-- If `remove_seat` is `true` and unused seats exist, one seat is removed from your plan.
-
-
-
@@ -100,11 +51,6 @@ curl -X POST \
"https://api.plane.so/api/v1/workspaces/my-workspace/members/remove/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
- -H "Content-Type: application/json" \
- -d '{
- "email": "jane@example.com",
- "remove_seat": true
-}'
```
@@ -115,13 +61,9 @@ import requests
response = requests.post(
"https://api.plane.so/api/v1/workspaces/my-workspace/members/remove/",
- headers={"X-API-Key": "your-api-key"},
- json={
- "email": "jane@example.com",
- "remove_seat": True
- }
+ headers={"X-API-Key": "your-api-key"}
)
-print(response.status_code) # 204 on success
+print(response.status_code)
```
@@ -132,14 +74,9 @@ const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspac
method: "POST",
headers: {
"X-API-Key": "your-api-key",
- "Content-Type": "application/json",
},
- body: JSON.stringify({
- email: "jane@example.com",
- remove_seat: true,
- }),
});
-console.log(response.status); // 204 on success
+console.log(response.status);
```
@@ -147,11 +84,10 @@ console.log(response.status); // 204 on success
-```json
-No Content
-```
+No response body.
+
diff --git a/docs/api-reference/members/update-project-member.md b/docs/api-reference/members/update-project-member.md
new file mode 100644
index 0000000..bfff7c9
--- /dev/null
+++ b/docs/api-reference/members/update-project-member.md
@@ -0,0 +1,151 @@
+---
+title: Update project member
+description: Update project member via Plane API. HTTP request format, parameters, scopes, and example responses for update project member.
+keywords: plane, plane api, rest api, api integration, members, update project member
+---
+
+# Update project member
+
+
+ PATCH
+ /api/v1/workspaces/{slug}/projects/{project_id}/project-members/{pk}/
+
+
+
+
+
+Update a project member
+
+
+
+### Path Parameters
+
+
+
+
+
+Pk.
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Member.
+
+
+
+
+
+- `20` - Admin
+- `15` - Member
+- `5` - Guest
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.members:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X PATCH \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "member": "550e8400-e29b-41d4-a716-446655440000",
+ "role": 20
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.patch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/550e8400-e29b-41d4-a716-446655440000/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "member": "550e8400-e29b-41d4-a716-446655440000",
+ "role": 20
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/project-members/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ member: "550e8400-e29b-41d4-a716-446655440000",
+ role: 20,
+ }),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "member": "550e8400-e29b-41d4-a716-446655440000",
+ "role": 20
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/milestones/add-milestone.md b/docs/api-reference/milestones/add-milestone.md
new file mode 100644
index 0000000..dc42cec
--- /dev/null
+++ b/docs/api-reference/milestones/add-milestone.md
@@ -0,0 +1,165 @@
+---
+title: Create milestone
+description: Create milestone via Plane API. HTTP request format, parameters, scopes, and example responses for create milestone.
+keywords: plane, plane api, rest api, api integration, milestones, create milestone
+---
+
+# Create milestone
+
+
+ POST
+ /api/v1/workspaces/{slug}/projects/{project_id}/milestones/
+
+
+
+
+
+Create a new milestone in a project.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project id.
+
+
+
+
+
+Slug.
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Title.
+
+
+
+
+
+Target date.
+
+
+
+
+
+External id.
+
+
+
+
+
+External source.
+
+
+
+
+
+
+
+
+### Scopes
+
+API key authentication or an OAuth token with equivalent access.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "title": "Example Name",
+ "target_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.post(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "title": "Example Name",
+ "target_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ title: "Example Name",
+ target_date: "2024-01-01",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
+ }),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "title": "Example Name",
+ "target_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/milestones/delete-milestone.md b/docs/api-reference/milestones/delete-milestone.md
new file mode 100644
index 0000000..f7cbb73
--- /dev/null
+++ b/docs/api-reference/milestones/delete-milestone.md
@@ -0,0 +1,108 @@
+---
+title: Delete milestone
+description: Delete milestone via Plane API. HTTP request format, parameters, scopes, and example responses for delete milestone.
+keywords: plane, plane api, rest api, api integration, milestones, delete milestone
+---
+
+# Delete milestone
+
+
+ DELETE
+ /api/v1/workspaces/{slug}/projects/{project_id}/milestones/{milestone_id}/
+
+
+
+
+
+Delete a specific milestone by its ID.
+
+
+
+### Path Parameters
+
+
+
+
+
+Milestone id.
+
+
+
+
+
+Project id.
+
+
+
+
+
+Slug.
+
+
+
+
+
+
+
+
+### Scopes
+
+API key authentication or an OAuth token with equivalent access.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/550e8400-e29b-41d4-a716-446655440001/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.delete(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/550e8400-e29b-41d4-a716-446655440001/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/550e8400-e29b-41d4-a716-446655440001/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/milestones/get-milestone-detail.md b/docs/api-reference/milestones/get-milestone-detail.md
new file mode 100644
index 0000000..b13d653
--- /dev/null
+++ b/docs/api-reference/milestones/get-milestone-detail.md
@@ -0,0 +1,118 @@
+---
+title: Get milestone
+description: Get milestone via Plane API. HTTP request format, parameters, scopes, and example responses for get milestone.
+keywords: plane, plane api, rest api, api integration, milestones, get milestone
+---
+
+# Get milestone
+
+
+ GET
+ /api/v1/workspaces/{slug}/projects/{project_id}/milestones/{milestone_id}/
+
+
+
+
+
+Retrieve a specific milestone by its ID.
+
+
+
+### Path Parameters
+
+
+
+
+
+Milestone id.
+
+
+
+
+
+Project id.
+
+
+
+
+
+Slug.
+
+
+
+
+
+
+
+
+### Scopes
+
+API key authentication or an OAuth token with equivalent access.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/550e8400-e29b-41d4-a716-446655440001/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/550e8400-e29b-41d4-a716-446655440001/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/550e8400-e29b-41d4-a716-446655440001/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "title": "Example Name",
+ "target_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/milestones/list-milestone-work-items.md b/docs/api-reference/milestones/list-milestone-work-items.md
new file mode 100644
index 0000000..f7a2094
--- /dev/null
+++ b/docs/api-reference/milestones/list-milestone-work-items.md
@@ -0,0 +1,116 @@
+---
+title: List milestone work items
+description: List milestone work items via Plane API. HTTP request format, parameters, scopes, and example responses for list milestone work items.
+keywords: plane, plane api, rest api, api integration, milestones, list milestone work items
+---
+
+# List milestone work items
+
+
+ GET
+ /api/v1/workspaces/{slug}/projects/{project_id}/milestones/{milestone_id}/work-items/
+
+
+
+
+
+List all work items for a milestone.
+
+
+
+### Path Parameters
+
+
+
+
+
+Milestone id.
+
+
+
+
+
+Project id.
+
+
+
+
+
+Slug.
+
+
+
+
+
+
+
+
+### Scopes
+
+API key authentication or an OAuth token with equivalent access.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/550e8400-e29b-41d4-a716-446655440001/work-items/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/550e8400-e29b-41d4-a716-446655440001/work-items/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/550e8400-e29b-41d4-a716-446655440001/work-items/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+[
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "issue": "550e8400-e29b-41d4-a716-446655440000",
+ "milestone": "550e8400-e29b-41d4-a716-446655440000"
+ }
+]
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/milestones/list-milestones.md b/docs/api-reference/milestones/list-milestones.md
new file mode 100644
index 0000000..6e4b318
--- /dev/null
+++ b/docs/api-reference/milestones/list-milestones.md
@@ -0,0 +1,114 @@
+---
+title: List milestones
+description: List milestones via Plane API. HTTP request format, parameters, scopes, and example responses for list milestones.
+keywords: plane, plane api, rest api, api integration, milestones, list milestones
+---
+
+# List milestones
+
+
+ GET
+ /api/v1/workspaces/{slug}/projects/{project_id}/milestones/
+
+
+
+
+
+List all milestones in a project.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project id.
+
+
+
+
+
+Slug.
+
+
+
+
+
+
+
+
+### Scopes
+
+API key authentication or an OAuth token with equivalent access.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+[
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "title": "Example Name",
+ "target_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
+ }
+]
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/milestones/overview.md b/docs/api-reference/milestones/overview.md
new file mode 100644
index 0000000..eaba379
--- /dev/null
+++ b/docs/api-reference/milestones/overview.md
@@ -0,0 +1,68 @@
+---
+title: Overview
+description: Plane Milestones API overview. Learn how to manage milestones and milestone work items through the Plane API.
+keywords: plane, plane api, rest api, api integration, milestones, project planning
+---
+
+# Overview
+
+Milestones help teams group work items around important dates, releases, and delivery checkpoints inside a project.
+
+[Learn more about Projects](https://docs.plane.so/core-concepts/projects/overview)
+
+
+
+
+## The Milestone Object
+
+### Attributes
+
+- `id` _string_
+
+ Id.
+
+- `title` _string_
+
+ Title.
+
+- `target_date` _string_
+
+ Target date.
+
+- `external_id` _string_
+
+ External id.
+
+- `external_source` _string_
+
+ External source.
+
+- `created_at` _string_
+
+ Created at.
+
+- `updated_at` _string_
+
+ Updated at.
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "title": "Example Name",
+ "target_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
+}
+```
+
+
+
+
+
diff --git a/docs/api-reference/milestones/update-milestone-detail.md b/docs/api-reference/milestones/update-milestone-detail.md
new file mode 100644
index 0000000..97dbb00
--- /dev/null
+++ b/docs/api-reference/milestones/update-milestone-detail.md
@@ -0,0 +1,171 @@
+---
+title: Update milestone
+description: Update milestone via Plane API. HTTP request format, parameters, scopes, and example responses for update milestone.
+keywords: plane, plane api, rest api, api integration, milestones, update milestone
+---
+
+# Update milestone
+
+
+ PATCH
+ /api/v1/workspaces/{slug}/projects/{project_id}/milestones/{milestone_id}/
+
+
+
+
+
+Update a specific milestone by its ID.
+
+
+
+### Path Parameters
+
+
+
+
+
+Milestone id.
+
+
+
+
+
+Project id.
+
+
+
+
+
+Slug.
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Title.
+
+
+
+
+
+Target date.
+
+
+
+
+
+External id.
+
+
+
+
+
+External source.
+
+
+
+
+
+
+
+
+### Scopes
+
+API key authentication or an OAuth token with equivalent access.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X PATCH \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/550e8400-e29b-41d4-a716-446655440001/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "title": "Example Name",
+ "target_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.patch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/550e8400-e29b-41d4-a716-446655440001/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "title": "Example Name",
+ "target_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/milestones/550e8400-e29b-41d4-a716-446655440001/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ title: "Example Name",
+ target_date: "2024-01-01",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
+ }),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "title": "Example Name",
+ "target_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/module/add-module-work-items.md b/docs/api-reference/module/add-module-work-items.md
index bf6fd9e..b9ec389 100644
--- a/docs/api-reference/module/add-module-work-items.md
+++ b/docs/api-reference/module/add-module-work-items.md
@@ -1,20 +1,20 @@
---
title: Add work items to module
-description: Create work items to module via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, modules, features
+description: Add work items to module via Plane API. HTTP request format, parameters, scopes, and example responses for add work items to module.
+keywords: plane, plane api, rest api, api integration, module, add work items to module
---
# Add work items to module
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/module-issues/
+ /api/v1/workspaces/{slug}/projects/{project_id}/modules/{module_id}/module-issues/
-Adds one or more work items to a module.
+Assign multiple work items to a module or move them from another module. Automatically handles bulk creation and updates with activity tracking.
@@ -22,21 +22,21 @@ Adds one or more work items to a module.
-
+
-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`.
+Module ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the module.
+Workspace slug
@@ -49,9 +49,9 @@ The unique identifier for the module.
-
+
-Array of work item IDs to add to the module.
+List of issue IDs to add to the module
@@ -67,6 +67,7 @@ Array of work item IDs to add to the module.
+
@@ -74,12 +75,15 @@ Array of work item IDs to add to the module.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/module-issues/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440001/module-issues/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "issues": "example-issues"
+ "issues": [
+ "550e8400-e29b-41d4-a716-446655440000",
+ "550e8400-e29b-41d4-a716-446655440000"
+ ]
}'
```
@@ -90,11 +94,14 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/module-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440001/module-issues/",
headers={"X-API-Key": "your-api-key"},
json={
- 'issues': 'example-issues'
-}
+ "issues": [
+"550e8400-e29b-41d4-a716-446655440000",
+"550e8400-e29b-41d4-a716-446655440000"
+ ]
+ }
)
print(response.json())
```
@@ -104,7 +111,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/module-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440001/module-issues/",
{
method: "POST",
headers: {
@@ -112,7 +119,7 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- issues: "example-issues",
+ issues: ["550e8400-e29b-41d4-a716-446655440000", "550e8400-e29b-41d4-a716-446655440000"],
}),
}
);
@@ -122,19 +129,23 @@ const data = await response.json();
-
+
```json
-{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "module": "550e8400-e29b-41d4-a716-446655440000",
+ "issue": "550e8400-e29b-41d4-a716-446655440000",
+ "sub_issues_count": 2,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
+ }
+]
```
+
diff --git a/docs/api-reference/module/add-module.md b/docs/api-reference/module/add-module.md
index 2f7d6fc..b876cc3 100644
--- a/docs/api-reference/module/add-module.md
+++ b/docs/api-reference/module/add-module.md
@@ -1,20 +1,20 @@
---
title: Create a module
-description: Create a module via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, modules, features
+description: Create a module via Plane API. HTTP request format, parameters, scopes, and example responses for create a module.
+keywords: plane, plane api, rest api, api integration, module, create a module
---
# Create a module
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/
+ /api/v1/workspaces/{slug}/projects/{project_id}/modules/
-Creates a new module in a project.
+Create a new project module with specified name, description, and timeline.
@@ -22,15 +22,15 @@ Creates a new module in a project.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
@@ -45,55 +45,60 @@ The unique identifier of the project.
-Name of the module.
+Name.
-
+
-Description of the module.
+Description.
-
+
-Start date of the module in YYYY-MM-DD format.
+Start date.
-
+
-Target date of the module in YYYY-MM-DD format.
+Target date.
-
+
-Status of the module. Possible values: `backlog`, `planned`, `in-progress`, `paused`, `completed`, `cancelled`.
+- `backlog` - Backlog
+- `planned` - Planned
+- `in-progress` - In Progress
+- `paused` - Paused
+- `completed` - Completed
+- `cancelled` - Cancelled
-
+
-ID of the user who leads the module.
+Lead.
-
+
-Array of member user IDs to assign to the module.
+Members.
-
+
-External source identifier.
+External source.
-
+
-External ID from the external source.
+External id.
@@ -109,6 +114,7 @@ External ID from the external source.
+
@@ -116,20 +122,17 @@ External ID from the external source.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description",
- "start_date": "example-start_date",
- "target_date": "example-target_date",
- "status": "example-status",
- "lead": "example-lead",
- "members": "example-members",
- "external_source": "example-external_source",
- "external_id": "example-external_id"
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01",
+ "end_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -140,19 +143,16 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description',
- 'start_date': 'example-start_date',
- 'target_date': 'example-target_date',
- 'status': 'example-status',
- 'lead': 'example-lead',
- 'members': 'example-members',
- 'external_source': 'example-external_source',
- 'external_id': 'example-external_id'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01",
+ "end_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -161,24 +161,24 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/", {
- method: "POST",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- start_date: "example-start_date",
- target_date: "example-target_date",
- status: "example-status",
- lead: "example-lead",
- members: "example-members",
- external_source: "example-external_source",
- external_id: "example-external_id",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ description: "Example description",
+ start_date: "2024-01-01",
+ end_date: "2024-01-01",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
+ }),
+ }
+);
const data = await response.json();
```
@@ -189,15 +189,25 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01",
+ "target_date": "2024-01-01",
+ "status": "in-progress",
+ "total_issues": 12,
+ "completed_issues": 5,
+ "cancelled_issues": 0,
+ "started_issues": 4,
+ "unstarted_issues": 3,
+ "backlog_issues": 0,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/module/archive-module.md b/docs/api-reference/module/archive-module.md
index 38377c3..343e69a 100644
--- a/docs/api-reference/module/archive-module.md
+++ b/docs/api-reference/module/archive-module.md
@@ -1,20 +1,20 @@
---
title: Archive a module
-description: Archive a module API endpoint. Request format, parameters, and response examples for Plane REST API.
-keywords: plane, plane api, rest api, api integration, modules, features
+description: Archive a module via Plane API. HTTP request format, parameters, scopes, and example responses for archive a module.
+keywords: plane, plane api, rest api, api integration, module, archive a module
---
# Archive a module
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/archive/
+ /api/v1/workspaces/{slug}/projects/{project_id}/modules/{pk}/archive/
-Archives a module, while preserving its data.
+Move a module to archived status for historical tracking.
@@ -22,21 +22,21 @@ Archives a module, while preserving its data.
-
+
-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`.
+Module ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the module.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the module.
+
@@ -59,7 +60,7 @@ The unique identifier for the module.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/archive/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440000/archive/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,10 +72,10 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/archive/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440000/archive/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/archive/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440000/archive/",
{
method: "POST",
headers: {
@@ -90,25 +91,18 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
-
+
-```json
-{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
-}
-```
+No response body.
+
diff --git a/docs/api-reference/module/delete-module.md b/docs/api-reference/module/delete-module.md
index e694721..aec8791 100644
--- a/docs/api-reference/module/delete-module.md
+++ b/docs/api-reference/module/delete-module.md
@@ -1,20 +1,20 @@
---
title: Delete a module
-description: Permanently delete a module via Plane API. Removes the module and disassociates its work items. Returns 204 on success.
-keywords: plane, plane api, rest api, api integration, modules, features
+description: Delete a module via Plane API. HTTP request format, parameters, scopes, and example responses for delete a module.
+keywords: plane, plane api, rest api, api integration, module, delete a module
---
# Delete a module
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/modules/{pk}/
-Permanently deletes a module from a project. This action cannot be undone.
+Permanently remove a module and all its associated issue relationships.
@@ -22,21 +22,21 @@ Permanently deletes a module from a project. This action cannot be undone.
-
+
-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`.
+Module ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the module.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the module.
+
@@ -59,7 +60,7 @@ The unique identifier for the module.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,10 +72,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440000/",
{
method: "DELETE",
headers: {
@@ -90,7 +91,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -98,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/module/get-module-detail.md b/docs/api-reference/module/get-module-detail.md
index e3f89d7..2741d17 100644
--- a/docs/api-reference/module/get-module-detail.md
+++ b/docs/api-reference/module/get-module-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a module
-description: Get retrieve a module details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, modules, features
+description: Retrieve a module via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a module.
+keywords: plane, plane api, rest api, api integration, module, retrieve a module
---
# Retrieve a module
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/modules/{pk}/
-Retrieves the details of an existing module by its ID.
+Retrieve details of a specific module.
@@ -22,21 +22,21 @@ Retrieves the details of an existing module by its ID.
-
+
-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`.
+Module ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the module.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the module.
+
@@ -59,7 +60,7 @@ The unique identifier for the module.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440000/",
{
method: "GET",
headers: {
@@ -100,15 +101,25 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01",
+ "target_date": "2024-01-01",
+ "status": "in-progress",
+ "total_issues": 12,
+ "completed_issues": 5,
+ "cancelled_issues": 0,
+ "started_issues": 4,
+ "unstarted_issues": 3,
+ "backlog_issues": 0,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/module/list-archived-modules.md b/docs/api-reference/module/list-archived-modules.md
index f31feaa..616c34f 100644
--- a/docs/api-reference/module/list-archived-modules.md
+++ b/docs/api-reference/module/list-archived-modules.md
@@ -1,20 +1,20 @@
---
title: List all archived modules
-description: List all archived modules via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, modules, features
+description: List all archived modules via Plane API. HTTP request format, parameters, scopes, and example responses for list all archived modules.
+keywords: plane, plane api, rest api, api integration, module, list all archived modules
---
# List all archived modules
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/archived/
+ /api/v1/workspaces/{slug}/projects/{project_id}/archived-modules/
-Returns a list of all archived modules in a project.
+Retrieve all modules that have been archived in the project.
@@ -22,15 +22,54 @@ Returns a list of all archived modules in a project.
-
+
-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
-
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
+
+
+
+
+
+Comma-separated list of related fields to expand in response
+
+
+
+
+
+Comma-separated list of fields to include in response
+
+
+
+
+
+Field to order results by. Prefix with '-' for descending order
+
+
+
+
-The unique identifier of the project.
+Number of results per page (default: 20, max: 100)
@@ -46,6 +85,7 @@ The unique identifier of the project.
+
@@ -53,7 +93,7 @@ The unique identifier of the project.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/archived/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archived-modules/?cursor=20:1:0&expand=assignees" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +105,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/archived/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archived-modules/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -76,7 +116,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/archived/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archived-modules/?cursor=20:1:0&expand=assignees",
{
method: "GET",
headers: {
@@ -94,15 +134,29 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/module/list-module-work-items.md b/docs/api-reference/module/list-module-work-items.md
index 24a6232..389c309 100644
--- a/docs/api-reference/module/list-module-work-items.md
+++ b/docs/api-reference/module/list-module-work-items.md
@@ -1,20 +1,20 @@
---
title: List all work items in a module
-description: List all work items in a module via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, modules, features
+description: List all work items in a module via Plane API. HTTP request format, parameters, scopes, and example responses for list all work items in a module.
+keywords: plane, plane api, rest api, api integration, module, list all work items in a module
---
# List all work items in a module
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/module-issues/
+ /api/v1/workspaces/{slug}/projects/{project_id}/modules/{module_id}/module-issues/
-Returns a list of all work items in a module.
+Retrieve all work items assigned to a module with detailed information.
@@ -22,21 +22,60 @@ Returns a list of all work items in a module.
-
+
-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`.
+Module ID
-The unique identifier of the project.
+Project ID
-
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
+
+
+
+
+
+Comma-separated list of related fields to expand in response
+
+
+
+
+
+Comma-separated list of fields to include in response
+
+
+
+
+
+Field to order results by. Prefix with '-' for descending order
+
+
+
+
-The unique identifier for the module.
+Number of results per page (default: 20, max: 100)
@@ -47,11 +86,12 @@ The unique identifier for the module.
### Scopes
-`projects.modules:read` `projects.work_items:read`
+`projects.modules:read`
+
@@ -59,7 +99,7 @@ The unique identifier for the module.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/module-issues/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440001/module-issues/?cursor=20:1:0&expand=assignees" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +111,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/module-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440001/module-issues/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +122,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/module-issues/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440001/module-issues/?cursor=20:1:0&expand=assignees",
{
method: "GET",
headers: {
@@ -100,15 +140,29 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/module/list-modules.md b/docs/api-reference/module/list-modules.md
index 660b0b1..cd49051 100644
--- a/docs/api-reference/module/list-modules.md
+++ b/docs/api-reference/module/list-modules.md
@@ -1,20 +1,20 @@
---
title: List all modules
-description: List all modules via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, modules, features
+description: List all modules via Plane API. HTTP request format, parameters, scopes, and example responses for list all modules.
+keywords: plane, plane api, rest api, api integration, module, list all modules
---
# List all modules
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/
+ /api/v1/workspaces/{slug}/projects/{project_id}/modules/
-Returns a list of all modules in a project.
+Retrieve all modules in a project.
@@ -22,15 +22,54 @@ Returns a list of all modules in a project.
-
+
-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
-
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
+
+
+
+
+
+Comma-separated list of related fields to expand in response
+
+
+
+
+
+Comma-separated list of fields to include in response
+
+
+
+
+
+Field to order results by. Prefix with '-' for descending order
+
+
+
+
-The unique identifier of the project.
+Number of results per page (default: 20, max: 100)
@@ -46,6 +85,7 @@ The unique identifier of the project.
+
@@ -53,7 +93,7 @@ The unique identifier of the project.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/?cursor=20:1:0&expand=assignees" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +105,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +115,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/?cursor=20:1:0&expand=assignees",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -91,15 +134,32 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01",
+ "target_date": "2024-01-01",
+ "status": "in_progress"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/module/remove-module-work-item.md b/docs/api-reference/module/remove-module-work-item.md
index 276b289..9de2c0e 100644
--- a/docs/api-reference/module/remove-module-work-item.md
+++ b/docs/api-reference/module/remove-module-work-item.md
@@ -1,20 +1,20 @@
---
title: Remove work item from module
-description: Delete work item from module via Plane API. HTTP DELETE request for removing resources.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, modules, features
+description: Remove work item from module via Plane API. HTTP request format, parameters, scopes, and example responses for remove work item from module.
+keywords: plane, plane api, rest api, api integration, module, remove work item from module
---
# Remove work item from module
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/module-issues/{issue_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/modules/{module_id}/module-issues/{issue_id}/
-Removes a work item from a module.
+Remove a work item from a module while keeping the work item in the project.
@@ -22,27 +22,27 @@ Removes a work item from a module.
-
+
-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`.
+Issue ID
-
+
-The unique identifier of the project.
+Module ID
-
+
-The unique identifier for the module.
+Project ID
-
+
-The unique identifier for the work item.
+Workspace slug
@@ -58,6 +58,7 @@ The unique identifier for the work item.
+
@@ -65,7 +66,7 @@ The unique identifier for the work item.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/module-issues/issue-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440001/module-issues/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,10 +78,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/module-issues/issue-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440001/module-issues/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/module-issues/issue-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440001/module-issues/550e8400-e29b-41d4-a716-446655440001/",
{
method: "DELETE",
headers: {
@@ -96,7 +97,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -104,11 +105,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/module/unarchive-module.md b/docs/api-reference/module/unarchive-module.md
index b3975ed..82b83ac 100644
--- a/docs/api-reference/module/unarchive-module.md
+++ b/docs/api-reference/module/unarchive-module.md
@@ -1,20 +1,20 @@
---
title: Restore a module
-description: Restore a module API endpoint. Request format, parameters, and response examples for Plane REST API.
-keywords: plane, plane api, rest api, api integration, modules, features
+description: Restore a module via Plane API. HTTP request format, parameters, scopes, and example responses for restore a module.
+keywords: plane, plane api, rest api, api integration, module, restore a module
---
# Restore a module
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/unarchive/
+ /api/v1/workspaces/{slug}/projects/{project_id}/archived-modules/{pk}/unarchive/
-Restores an archived module back to the modules list.
+Restore an archived module to active status, making it available for regular use.
@@ -22,21 +22,21 @@ Restores an archived module back to the modules list.
-
+
-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`.
+Module ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the module.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the module.
+
@@ -59,7 +60,7 @@ The unique identifier for the module.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/unarchive/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archived-modules/550e8400-e29b-41d4-a716-446655440000/unarchive/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,10 +72,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/unarchive/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archived-modules/550e8400-e29b-41d4-a716-446655440000/unarchive/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/unarchive/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archived-modules/550e8400-e29b-41d4-a716-446655440000/unarchive/",
{
method: "DELETE",
headers: {
@@ -90,7 +91,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -98,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/module/update-module-detail.md b/docs/api-reference/module/update-module-detail.md
index 52fc72a..64ea24d 100644
--- a/docs/api-reference/module/update-module-detail.md
+++ b/docs/api-reference/module/update-module-detail.md
@@ -1,20 +1,20 @@
---
title: Update module details
-description: Update module details via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, modules, features
+description: Update module details via Plane API. HTTP request format, parameters, scopes, and example responses for update module details.
+keywords: plane, plane api, rest api, api integration, module, update module details
---
# Update module details
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/modules/{pk}/
-Updates the details of a module
+Modify an existing module's properties like name, description, status, or timeline.
@@ -22,21 +22,21 @@ Updates the details of a module
-
+
-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`.
+Module ID
-The unique identifier of the project.
+Project ID
-
+
-The unique identifier for the module.
+Workspace slug
@@ -49,57 +49,62 @@ The unique identifier for the module.
-
+
-Name of the module.
+Name.
-
+
-Description of the module.
+Description.
-
+
-Start date of the module in YYYY-MM-DD format.
+Start date.
-
+
-Target date of the module in YYYY-MM-DD format.
+Target date.
-
+
-Current status of the module. Possible values: `backlog`, `planned`, `in-progress`, `paused`, `completed`, `cancelled`.
+- `backlog` - Backlog
+- `planned` - Planned
+- `in-progress` - In Progress
+- `paused` - Paused
+- `completed` - Completed
+- `cancelled` - Cancelled
-
+
-ID of the user who leads the module.
+Lead.
-
+
-Array of member user IDs assigned to the module.
+Members.
-
+
-External source identifier.
+External source.
-
+
-External ID from the external source.
+External id.
@@ -115,6 +120,7 @@ External ID from the external source.
+
@@ -122,20 +128,17 @@ External ID from the external source.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description",
- "start_date": "example-start_date",
- "target_date": "example-target_date",
- "status": "example-status",
- "lead": "example-lead",
- "members": "example-members",
- "external_source": "example-external_source",
- "external_id": "example-external_id"
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01",
+ "end_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -146,19 +149,16 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description',
- 'start_date': 'example-start_date',
- 'target_date': 'example-target_date',
- 'status': 'example-status',
- 'lead': 'example-lead',
- 'members': 'example-members',
- 'external_source': 'example-external_source',
- 'external_id': 'example-external_id'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01",
+ "end_date": "2024-01-01",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -168,7 +168,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/modules/module-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/modules/550e8400-e29b-41d4-a716-446655440000/",
{
method: "PATCH",
headers: {
@@ -176,15 +176,12 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- start_date: "example-start_date",
- target_date: "example-target_date",
- status: "example-status",
- lead: "example-lead",
- members: "example-members",
- external_source: "example-external_source",
- external_id: "example-external_id",
+ name: "Example Name",
+ description: "Example description",
+ start_date: "2024-01-01",
+ end_date: "2024-01-01",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -198,15 +195,25 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "start_date": "2024-01-01",
+ "target_date": "2024-01-01",
+ "status": "in-progress",
+ "total_issues": 12,
+ "completed_issues": 5,
+ "cancelled_issues": 0,
+ "started_issues": 4,
+ "unstarted_issues": 3,
+ "backlog_issues": 0,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/page/add-project-page.md b/docs/api-reference/page/add-project-page.md
index 9a51065..1b69ea4 100644
--- a/docs/api-reference/page/add-project-page.md
+++ b/docs/api-reference/page/add-project-page.md
@@ -1,20 +1,20 @@
---
title: Create a project page
-description: Create a project page via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, projects, project management, pages, documentation, notes
+description: Create a project page via Plane API. HTTP request format, parameters, scopes, and example responses for create a project page.
+keywords: plane, plane api, rest api, api integration, page, create a project page
---
# Create a project page
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/pages/
+ /api/v1/workspaces/{slug}/projects/{project_id}/pages/
-Creates a new page at the project level, specific to a single project.
+Create a project page
@@ -22,15 +22,15 @@ Creates a new page at the project level, specific to a single project.
-
+
-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
-
+
-The unique identifier for the project.
+Workspace slug
@@ -43,15 +43,64 @@ The unique identifier for the project.
-
+
+
+Name.
+
+
+
+
+
+- `0` - Public
+- `1` - Private
+
+
+
+
-Name of the page.
+Color.
-
+
-HTML-formatted content of the page.
+Is locked.
+
+
+
+
+
+Archived at.
+
+
+
+
+
+View props.
+
+
+
+
+
+Logo props.
+
+
+
+
+
+External id.
+
+
+
+
+
+External source.
+
+
+
+
+
+Description html.
@@ -67,6 +116,7 @@ HTML-formatted content of the page.
+
@@ -74,13 +124,21 @@ HTML-formatted content of the page.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/pages/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/pages/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description_html": "example-description_html"
+ "name": "Example Name",
+ "access": 0,
+ "color": "Example Name",
+ "is_locked": true,
+ "archived_at": "2024-01-01",
+ "view_props": "example-value",
+ "logo_props": "example-value",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "description_html": "Example content
"
}'
```
@@ -91,12 +149,20 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/pages/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/pages/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description_html': 'example-description_html'
-}
+ "name": "Example Name",
+ "access": 0,
+ "color": "Example Name",
+ "is_locked": true,
+ "archived_at": "2024-01-01",
+ "view_props": "example-value",
+ "logo_props": "example-value",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "description_html": "Example content
"
+ }
)
print(response.json())
```
@@ -105,17 +171,28 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/pages/", {
- method: "POST",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- description_html: "example-description_html",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/pages/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ access: 0,
+ color: "Example Name",
+ is_locked: true,
+ archived_at: "2024-01-01",
+ view_props: "example-value",
+ logo_props: "example-value",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
+ description_html: "Example content
",
+ }),
+ }
+);
const data = await response.json();
```
@@ -126,15 +203,24 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "description_html": "Example content
",
+ "owned_by": "550e8400-e29b-41d4-a716-446655440000",
+ "access": 0,
+ "color": "Example Name",
+ "is_locked": true,
+ "archived_at": "2024-01-01",
+ "workspace": "550e8400-e29b-41d4-a716-446655440000",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
}
```
+
diff --git a/docs/api-reference/page/add-workspace-page.md b/docs/api-reference/page/add-workspace-page.md
index d7cd58b..50404bf 100644
--- a/docs/api-reference/page/add-workspace-page.md
+++ b/docs/api-reference/page/add-workspace-page.md
@@ -1,20 +1,20 @@
---
title: Create a wiki page
-description: Create a wiki page via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, pages, documentation, notes
+description: Create a wiki page via Plane API. HTTP request format, parameters, scopes, and example responses for create a wiki page.
+keywords: plane, plane api, rest api, api integration, page, create a wiki page
---
# Create a wiki page
POST
- /api/v1/workspaces/{workspace_slug}/pages/
+ /api/v1/workspaces/{slug}/pages/
-Creates a new page at the workspace level.
+Create a workspace page
@@ -22,9 +22,9 @@ Creates a new page at the workspace level.
-
+
-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`.
+Workspace slug
@@ -37,15 +37,64 @@ The workspace_slug represents the unique workspace identifier for a workspace in
-
+
-Name of the page.
+Name.
-
+
-HTML-formatted content of the page.
+- `0` - Public
+- `1` - Private
+
+
+
+
+
+Color.
+
+
+
+
+
+Is locked.
+
+
+
+
+
+Archived at.
+
+
+
+
+
+View props.
+
+
+
+
+
+Logo props.
+
+
+
+
+
+External id.
+
+
+
+
+
+External source.
+
+
+
+
+
+Description html.
@@ -61,6 +110,7 @@ HTML-formatted content of the page.
+
@@ -73,8 +123,16 @@ curl -X POST \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description_html": "example-description_html"
+ "name": "Example Name",
+ "access": 0,
+ "color": "Example Name",
+ "is_locked": true,
+ "archived_at": "2024-01-01",
+ "view_props": "example-value",
+ "logo_props": "example-value",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "description_html": "Example content
"
}'
```
@@ -88,9 +146,17 @@ response = requests.post(
"https://api.plane.so/api/v1/workspaces/my-workspace/pages/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description_html': 'example-description_html'
-}
+ "name": "Example Name",
+ "access": 0,
+ "color": "Example Name",
+ "is_locked": true,
+ "archived_at": "2024-01-01",
+ "view_props": "example-value",
+ "logo_props": "example-value",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github",
+ "description_html": "Example content
"
+ }
)
print(response.json())
```
@@ -106,8 +172,16 @@ const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspac
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- description_html: "example-description_html",
+ name: "Example Name",
+ access: 0,
+ color: "Example Name",
+ is_locked: true,
+ archived_at: "2024-01-01",
+ view_props: "example-value",
+ logo_props: "example-value",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
+ description_html: "Example content
",
}),
});
const data = await response.json();
@@ -120,12 +194,24 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "description_html": "Example content
",
+ "owned_by": "550e8400-e29b-41d4-a716-446655440000",
+ "access": 0,
+ "color": "Example Name",
+ "is_locked": true,
+ "archived_at": "2024-01-01",
+ "workspace": "550e8400-e29b-41d4-a716-446655440000",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
}
```
+
diff --git a/docs/api-reference/page/get-project-page.md b/docs/api-reference/page/get-project-page.md
index ddbef2e..968c235 100644
--- a/docs/api-reference/page/get-project-page.md
+++ b/docs/api-reference/page/get-project-page.md
@@ -1,20 +1,20 @@
---
title: Retrieve a project page
-description: List retrieve a project page via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, projects, project management, pages, documentation, notes
+description: Retrieve a project page via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a project page.
+keywords: plane, plane api, rest api, api integration, page, retrieve a project page
---
# Retrieve a project page
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/pages/{page_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/pages/{pk}/
-Retrieves the details of an existing project page by its ID.
+Get a project page by ID
@@ -22,21 +22,21 @@ Retrieves the details of an existing project page by its ID.
-
+
-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`.
+Page ID
-The unique identifier for the project.
+Project ID
-
+
-The unique identifier for the page.
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier for the page.
+
@@ -59,7 +60,7 @@ The unique identifier for the page.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/pages/page-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/pages/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/pages/page-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/pages/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/pages/page-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/pages/550e8400-e29b-41d4-a716-446655440000/",
{
method: "GET",
headers: {
@@ -100,10 +101,9 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
"created_at": "2024-01-01T00:00:00Z"
}
```
@@ -111,4 +111,5 @@ const data = await response.json();
+
diff --git a/docs/api-reference/page/get-workspace-page.md b/docs/api-reference/page/get-workspace-page.md
index 60bcf5a..6725cf6 100644
--- a/docs/api-reference/page/get-workspace-page.md
+++ b/docs/api-reference/page/get-workspace-page.md
@@ -1,20 +1,20 @@
---
title: Retrieve a wiki page
-description: List retrieve a wiki page via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, pages, documentation, notes
+description: Retrieve a wiki page via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a wiki page.
+keywords: plane, plane api, rest api, api integration, page, retrieve a wiki page
---
# Retrieve a wiki page
GET
- /api/v1/workspaces/{workspace_slug}/pages/{page_id}/
+ /api/v1/workspaces/{slug}/pages/{pk}/
-Retrieves the details of an existing workspace page by its ID.
+Get a workspace page by ID
@@ -22,15 +22,15 @@ Retrieves the details of an existing workspace page by its ID.
-
+
-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`.
+Page ID
-
+
-The unique identifier for the page.
+Workspace slug
@@ -46,6 +46,7 @@ The unique identifier for the page.
+
@@ -53,7 +54,7 @@ The unique identifier for the page.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/pages/page-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/pages/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +66,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/pages/page-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/pages/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +76,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/pages/page-uuid/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/pages/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -91,7 +95,9 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
"created_at": "2024-01-01T00:00:00Z"
}
```
@@ -99,4 +105,5 @@ const data = await response.json();
+
diff --git a/docs/api-reference/project-features/get-project-features.md b/docs/api-reference/project-features/get-project-features.md
new file mode 100644
index 0000000..1283e3f
--- /dev/null
+++ b/docs/api-reference/project-features/get-project-features.md
@@ -0,0 +1,112 @@
+---
+title: Get project features
+description: Get project features via Plane API. HTTP request format, parameters, scopes, and example responses for get project features.
+keywords: plane, plane api, rest api, api integration, project features, get project features
+---
+
+# Get project features
+
+
+ GET
+ /api/v1/workspaces/{slug}/projects/{project_id}/features/
+
+
+
+
+
+Get the features of a project
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.features:read`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/features/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/features/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/features/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "epics": true,
+ "modules": true,
+ "cycles": true,
+ "views": true,
+ "pages": true,
+ "intakes": true,
+ "work_item_types": true
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/project-features/overview.md b/docs/api-reference/project-features/overview.md
new file mode 100644
index 0000000..e739480
--- /dev/null
+++ b/docs/api-reference/project-features/overview.md
@@ -0,0 +1,68 @@
+---
+title: Overview
+description: Plane Project Features API overview. Learn how to inspect and update project feature flags with the Plane API.
+keywords: plane, plane api, rest api, api integration, project features, feature flags
+---
+
+# Overview
+
+Project features control which project-level capabilities are enabled for an individual project.
+
+[Learn more about Projects](https://docs.plane.so/core-concepts/projects/overview)
+
+
+
+
+## The Project Feature Object
+
+### Attributes
+
+- `epics` _boolean_
+
+ Epics.
+
+- `modules` _boolean_
+
+ Modules.
+
+- `cycles` _boolean_
+
+ Cycles.
+
+- `views` _boolean_
+
+ Views.
+
+- `pages` _boolean_
+
+ Pages.
+
+- `intakes` _boolean_
+
+ Intakes.
+
+- `work_item_types` _boolean_
+
+ Work item types.
+
+
+
+
+
+
+```json
+{
+ "epics": true,
+ "modules": true,
+ "cycles": true,
+ "views": true,
+ "pages": true,
+ "intakes": true,
+ "work_item_types": true
+}
+```
+
+
+
+
+
diff --git a/docs/api-reference/project-features/update-project-features.md b/docs/api-reference/project-features/update-project-features.md
new file mode 100644
index 0000000..96e91a3
--- /dev/null
+++ b/docs/api-reference/project-features/update-project-features.md
@@ -0,0 +1,192 @@
+---
+title: Update project features
+description: Update project features via Plane API. HTTP request format, parameters, scopes, and example responses for update project features.
+keywords: plane, plane api, rest api, api integration, project features, update project features
+---
+
+# Update project features
+
+
+ PATCH
+ /api/v1/workspaces/{slug}/projects/{project_id}/features/
+
+
+
+
+
+Update the features of a project
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Epics.
+
+
+
+
+
+Modules.
+
+
+
+
+
+Cycles.
+
+
+
+
+
+Views.
+
+
+
+
+
+Pages.
+
+
+
+
+
+Intakes.
+
+
+
+
+
+Work item types.
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.features:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X PATCH \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/features/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "epics": true,
+ "modules": true,
+ "cycles": true,
+ "views": true,
+ "pages": true,
+ "intakes": true,
+ "work_item_types": true
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.patch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/features/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "epics": true,
+ "modules": true,
+ "cycles": true,
+ "views": true,
+ "pages": true,
+ "intakes": true,
+ "work_item_types": true
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/features/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ epics: true,
+ modules: true,
+ cycles: true,
+ views: true,
+ pages: true,
+ intakes: true,
+ work_item_types: true,
+ }),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "epics": true,
+ "modules": true,
+ "cycles": true,
+ "views": true,
+ "pages": true,
+ "intakes": true,
+ "work_item_types": true
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/project-labels/add-project-label.md b/docs/api-reference/project-labels/add-project-label.md
new file mode 100644
index 0000000..7a77b92
--- /dev/null
+++ b/docs/api-reference/project-labels/add-project-label.md
@@ -0,0 +1,156 @@
+---
+title: Create project label
+description: Create project label via Plane API. HTTP request format, parameters, scopes, and example responses for create project label.
+keywords: plane, plane api, rest api, api integration, project labels, create project label
+---
+
+# Create project label
+
+
+ POST
+ /api/v1/workspaces/{slug}/project-labels/
+
+
+
+
+
+Create a new project label in the workspace with name, color, and description.
+
+
+
+### Path Parameters
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Name.
+
+
+
+
+
+Description.
+
+
+
+
+
+Color.
+
+
+
+
+
+Sort order.
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.labels:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "Example Name",
+ "color": "#ff0000",
+ "description": "Example description"
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.post(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "name": "Example Name",
+ "color": "#ff0000",
+ "description": "Example description"
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/", {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ color: "#ff0000",
+ description: "Example description",
+ }),
+});
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "color": "#f39c12",
+ "description": "Example description",
+ "sort_order": 65535,
+ "workspace": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/project-labels/delete-project-label.md b/docs/api-reference/project-labels/delete-project-label.md
new file mode 100644
index 0000000..0c35686
--- /dev/null
+++ b/docs/api-reference/project-labels/delete-project-label.md
@@ -0,0 +1,102 @@
+---
+title: Delete project label
+description: Delete project label via Plane API. HTTP request format, parameters, scopes, and example responses for delete project label.
+keywords: plane, plane api, rest api, api integration, project labels, delete project label
+---
+
+# Delete project label
+
+
+ DELETE
+ /api/v1/workspaces/{slug}/project-labels/{pk}/
+
+
+
+
+
+Permanently delete an existing project label from the workspace.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project Label ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.labels:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.delete(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/550e8400-e29b-41d4-a716-446655440000/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/project-labels/get-project-label-detail.md b/docs/api-reference/project-labels/get-project-label-detail.md
new file mode 100644
index 0000000..61f424f
--- /dev/null
+++ b/docs/api-reference/project-labels/get-project-label-detail.md
@@ -0,0 +1,115 @@
+---
+title: Get project label
+description: Get project label via Plane API. HTTP request format, parameters, scopes, and example responses for get project label.
+keywords: plane, plane api, rest api, api integration, project labels, get project label
+---
+
+# Get project label
+
+
+ GET
+ /api/v1/workspaces/{slug}/project-labels/{pk}/
+
+
+
+
+
+Retrieve details of a specific project label.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project Label ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.labels:read`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/550e8400-e29b-41d4-a716-446655440000/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "color": "#f39c12",
+ "description": "Example description",
+ "sort_order": 65535,
+ "workspace": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/project-labels/list-project-labels.md b/docs/api-reference/project-labels/list-project-labels.md
new file mode 100644
index 0000000..032c155
--- /dev/null
+++ b/docs/api-reference/project-labels/list-project-labels.md
@@ -0,0 +1,156 @@
+---
+title: List project labels
+description: List project labels via Plane API. HTTP request format, parameters, scopes, and example responses for list project labels.
+keywords: plane, plane api, rest api, api integration, project labels, list project labels
+---
+
+# List project labels
+
+
+ GET
+ /api/v1/workspaces/{slug}/project-labels/
+
+
+
+
+
+Retrieve all project labels in a workspace.
+
+
+
+### Path Parameters
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
+
+
+
+
+
+Comma-separated list of related fields to expand in response
+
+
+
+
+
+Comma-separated list of fields to include in response
+
+
+
+
+
+Field to order results by. Prefix with '-' for descending order
+
+
+
+
+
+Number of results per page (default: 20, max: 100)
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.labels:read`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/?cursor=20:1:0&expand=assignees" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/?cursor=20:1:0&expand=assignees",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/?cursor=20:1:0&expand=assignees",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/project-labels/overview.md b/docs/api-reference/project-labels/overview.md
new file mode 100644
index 0000000..e5f2922
--- /dev/null
+++ b/docs/api-reference/project-labels/overview.md
@@ -0,0 +1,83 @@
+---
+title: Overview
+description: Plane Project Labels API overview. Learn how to manage workspace-level project labels with the Plane API.
+keywords: plane, plane api, rest api, api integration, project labels, workspace labels
+---
+
+# Overview
+
+Project labels define reusable classifications that can be attached to projects across a workspace.
+
+[Learn more about Projects](https://developers.plane.so/api-reference/project/overview)
+
+
+
+
+## The Project Label Object
+
+### Attributes
+
+- `id` _string_
+
+ Id.
+
+- `name` _string_
+
+ Name.
+
+- `description` _string_
+
+ Description.
+
+- `color` _string_
+
+ Color.
+
+- `sort_order` _number_
+
+ Sort order.
+
+- `workspace` _string_
+
+ Workspace.
+
+- `created_at` _string_
+
+ Created at.
+
+- `updated_at` _string_
+
+ Updated at.
+
+- `created_by` _string_
+
+ Created by.
+
+- `updated_by` _string_
+
+ Updated by.
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "color": "#f39c12",
+ "description": "Example description",
+ "sort_order": 65535,
+ "workspace": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
+}
+```
+
+
+
+
+
diff --git a/docs/api-reference/project-labels/update-project-label-detail.md b/docs/api-reference/project-labels/update-project-label-detail.md
new file mode 100644
index 0000000..d10d241
--- /dev/null
+++ b/docs/api-reference/project-labels/update-project-label-detail.md
@@ -0,0 +1,165 @@
+---
+title: Update project label
+description: Update project label via Plane API. HTTP request format, parameters, scopes, and example responses for update project label.
+keywords: plane, plane api, rest api, api integration, project labels, update project label
+---
+
+# Update project label
+
+
+ PATCH
+ /api/v1/workspaces/{slug}/project-labels/{pk}/
+
+
+
+
+
+Partially update an existing project label's properties like name, color, or description.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project Label ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Name.
+
+
+
+
+
+Description.
+
+
+
+
+
+Color.
+
+
+
+
+
+Sort order.
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects.labels:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X PATCH \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "Example Name",
+ "color": "#00ff00",
+ "description": "Example description"
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.patch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/550e8400-e29b-41d4-a716-446655440000/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "name": "Example Name",
+ "color": "#00ff00",
+ "description": "Example description"
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/project-labels/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ color: "#00ff00",
+ description: "Example description",
+ }),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "color": "#f39c12",
+ "description": "Example description",
+ "sort_order": 65535,
+ "workspace": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/project/add-project.md b/docs/api-reference/project/add-project.md
index f1fea8a..34c97aa 100644
--- a/docs/api-reference/project/add-project.md
+++ b/docs/api-reference/project/add-project.md
@@ -1,20 +1,20 @@
---
title: Create a project
-description: Create a project via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, projects, project management
+description: Create a project via Plane API. HTTP request format, parameters, scopes, and example responses for create a project.
+keywords: plane, plane api, rest api, api integration, project, create a project
---
# Create a project
POST
- /api/v1/workspaces/{workspace_slug}/projects/
+ /api/v1/workspaces/{slug}/projects/
-Creates a new project in a workspace.
+Create a new project in the workspace with default states and member assignments.
@@ -22,9 +22,9 @@ Creates a new project in a workspace.
-
+
-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`.
+Workspace slug
@@ -39,19 +39,559 @@ The workspace_slug represents the unique workspace identifier for a workspace in
-Name of the project.
+Name.
+
+
+
+
+
+Description.
+
+
+
+
+
+Project lead.
+
+
+
+
+
+Default assignee.
-Short identifier used in work item IDs.
+Identifier.
+
+
+
+
+
+Icon prop.
+
+
+
+
+
+Emoji.
+
+
+
+
+
+Cover image.
+
+
+
+
+
+Module view.
+
+
+
+
+
+Cycle view.
+
+
+
+
+
+Issue views view.
-
+
-Description of the project.
+Page view.
+
+
+
+
+
+Intake view.
+
+
+
+
+
+Guest view all features.
+
+
+
+
+
+Archive in.
+
+
+
+
+
+Close in.
+
+
+
+
+
+- `Africa/Abidjan` - Africa/Abidjan
+- `Africa/Accra` - Africa/Accra
+- `Africa/Addis_Ababa` - Africa/Addis_Ababa
+- `Africa/Algiers` - Africa/Algiers
+- `Africa/Asmara` - Africa/Asmara
+- `Africa/Bamako` - Africa/Bamako
+- `Africa/Bangui` - Africa/Bangui
+- `Africa/Banjul` - Africa/Banjul
+- `Africa/Bissau` - Africa/Bissau
+- `Africa/Blantyre` - Africa/Blantyre
+- `Africa/Brazzaville` - Africa/Brazzaville
+- `Africa/Bujumbura` - Africa/Bujumbura
+- `Africa/Cairo` - Africa/Cairo
+- `Africa/Casablanca` - Africa/Casablanca
+- `Africa/Ceuta` - Africa/Ceuta
+- `Africa/Conakry` - Africa/Conakry
+- `Africa/Dakar` - Africa/Dakar
+- `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam
+- `Africa/Djibouti` - Africa/Djibouti
+- `Africa/Douala` - Africa/Douala
+- `Africa/El_Aaiun` - Africa/El_Aaiun
+- `Africa/Freetown` - Africa/Freetown
+- `Africa/Gaborone` - Africa/Gaborone
+- `Africa/Harare` - Africa/Harare
+- `Africa/Johannesburg` - Africa/Johannesburg
+- `Africa/Juba` - Africa/Juba
+- `Africa/Kampala` - Africa/Kampala
+- `Africa/Khartoum` - Africa/Khartoum
+- `Africa/Kigali` - Africa/Kigali
+- `Africa/Kinshasa` - Africa/Kinshasa
+- `Africa/Lagos` - Africa/Lagos
+- `Africa/Libreville` - Africa/Libreville
+- `Africa/Lome` - Africa/Lome
+- `Africa/Luanda` - Africa/Luanda
+- `Africa/Lubumbashi` - Africa/Lubumbashi
+- `Africa/Lusaka` - Africa/Lusaka
+- `Africa/Malabo` - Africa/Malabo
+- `Africa/Maputo` - Africa/Maputo
+- `Africa/Maseru` - Africa/Maseru
+- `Africa/Mbabane` - Africa/Mbabane
+- `Africa/Mogadishu` - Africa/Mogadishu
+- `Africa/Monrovia` - Africa/Monrovia
+- `Africa/Nairobi` - Africa/Nairobi
+- `Africa/Ndjamena` - Africa/Ndjamena
+- `Africa/Niamey` - Africa/Niamey
+- `Africa/Nouakchott` - Africa/Nouakchott
+- `Africa/Ouagadougou` - Africa/Ouagadougou
+- `Africa/Porto-Novo` - Africa/Porto-Novo
+- `Africa/Sao_Tome` - Africa/Sao_Tome
+- `Africa/Tripoli` - Africa/Tripoli
+- `Africa/Tunis` - Africa/Tunis
+- `Africa/Windhoek` - Africa/Windhoek
+- `America/Adak` - America/Adak
+- `America/Anchorage` - America/Anchorage
+- `America/Anguilla` - America/Anguilla
+- `America/Antigua` - America/Antigua
+- `America/Araguaina` - America/Araguaina
+- `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires
+- `America/Argentina/Catamarca` - America/Argentina/Catamarca
+- `America/Argentina/Cordoba` - America/Argentina/Cordoba
+- `America/Argentina/Jujuy` - America/Argentina/Jujuy
+- `America/Argentina/La_Rioja` - America/Argentina/La_Rioja
+- `America/Argentina/Mendoza` - America/Argentina/Mendoza
+- `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos
+- `America/Argentina/Salta` - America/Argentina/Salta
+- `America/Argentina/San_Juan` - America/Argentina/San_Juan
+- `America/Argentina/San_Luis` - America/Argentina/San_Luis
+- `America/Argentina/Tucuman` - America/Argentina/Tucuman
+- `America/Argentina/Ushuaia` - America/Argentina/Ushuaia
+- `America/Aruba` - America/Aruba
+- `America/Asuncion` - America/Asuncion
+- `America/Atikokan` - America/Atikokan
+- `America/Bahia` - America/Bahia
+- `America/Bahia_Banderas` - America/Bahia_Banderas
+- `America/Barbados` - America/Barbados
+- `America/Belem` - America/Belem
+- `America/Belize` - America/Belize
+- `America/Blanc-Sablon` - America/Blanc-Sablon
+- `America/Boa_Vista` - America/Boa_Vista
+- `America/Bogota` - America/Bogota
+- `America/Boise` - America/Boise
+- `America/Cambridge_Bay` - America/Cambridge_Bay
+- `America/Campo_Grande` - America/Campo_Grande
+- `America/Cancun` - America/Cancun
+- `America/Caracas` - America/Caracas
+- `America/Cayenne` - America/Cayenne
+- `America/Cayman` - America/Cayman
+- `America/Chicago` - America/Chicago
+- `America/Chihuahua` - America/Chihuahua
+- `America/Ciudad_Juarez` - America/Ciudad_Juarez
+- `America/Costa_Rica` - America/Costa_Rica
+- `America/Creston` - America/Creston
+- `America/Cuiaba` - America/Cuiaba
+- `America/Curacao` - America/Curacao
+- `America/Danmarkshavn` - America/Danmarkshavn
+- `America/Dawson` - America/Dawson
+- `America/Dawson_Creek` - America/Dawson_Creek
+- `America/Denver` - America/Denver
+- `America/Detroit` - America/Detroit
+- `America/Dominica` - America/Dominica
+- `America/Edmonton` - America/Edmonton
+- `America/Eirunepe` - America/Eirunepe
+- `America/El_Salvador` - America/El_Salvador
+- `America/Fort_Nelson` - America/Fort_Nelson
+- `America/Fortaleza` - America/Fortaleza
+- `America/Glace_Bay` - America/Glace_Bay
+- `America/Goose_Bay` - America/Goose_Bay
+- `America/Grand_Turk` - America/Grand_Turk
+- `America/Grenada` - America/Grenada
+- `America/Guadeloupe` - America/Guadeloupe
+- `America/Guatemala` - America/Guatemala
+- `America/Guayaquil` - America/Guayaquil
+- `America/Guyana` - America/Guyana
+- `America/Halifax` - America/Halifax
+- `America/Havana` - America/Havana
+- `America/Hermosillo` - America/Hermosillo
+- `America/Indiana/Indianapolis` - America/Indiana/Indianapolis
+- `America/Indiana/Knox` - America/Indiana/Knox
+- `America/Indiana/Marengo` - America/Indiana/Marengo
+- `America/Indiana/Petersburg` - America/Indiana/Petersburg
+- `America/Indiana/Tell_City` - America/Indiana/Tell_City
+- `America/Indiana/Vevay` - America/Indiana/Vevay
+- `America/Indiana/Vincennes` - America/Indiana/Vincennes
+- `America/Indiana/Winamac` - America/Indiana/Winamac
+- `America/Inuvik` - America/Inuvik
+- `America/Iqaluit` - America/Iqaluit
+- `America/Jamaica` - America/Jamaica
+- `America/Juneau` - America/Juneau
+- `America/Kentucky/Louisville` - America/Kentucky/Louisville
+- `America/Kentucky/Monticello` - America/Kentucky/Monticello
+- `America/Kralendijk` - America/Kralendijk
+- `America/La_Paz` - America/La_Paz
+- `America/Lima` - America/Lima
+- `America/Los_Angeles` - America/Los_Angeles
+- `America/Lower_Princes` - America/Lower_Princes
+- `America/Maceio` - America/Maceio
+- `America/Managua` - America/Managua
+- `America/Manaus` - America/Manaus
+- `America/Marigot` - America/Marigot
+- `America/Martinique` - America/Martinique
+- `America/Matamoros` - America/Matamoros
+- `America/Mazatlan` - America/Mazatlan
+- `America/Menominee` - America/Menominee
+- `America/Merida` - America/Merida
+- `America/Metlakatla` - America/Metlakatla
+- `America/Mexico_City` - America/Mexico_City
+- `America/Miquelon` - America/Miquelon
+- `America/Moncton` - America/Moncton
+- `America/Monterrey` - America/Monterrey
+- `America/Montevideo` - America/Montevideo
+- `America/Montserrat` - America/Montserrat
+- `America/Nassau` - America/Nassau
+- `America/New_York` - America/New_York
+- `America/Nome` - America/Nome
+- `America/Noronha` - America/Noronha
+- `America/North_Dakota/Beulah` - America/North_Dakota/Beulah
+- `America/North_Dakota/Center` - America/North_Dakota/Center
+- `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem
+- `America/Nuuk` - America/Nuuk
+- `America/Ojinaga` - America/Ojinaga
+- `America/Panama` - America/Panama
+- `America/Paramaribo` - America/Paramaribo
+- `America/Phoenix` - America/Phoenix
+- `America/Port-au-Prince` - America/Port-au-Prince
+- `America/Port_of_Spain` - America/Port_of_Spain
+- `America/Porto_Velho` - America/Porto_Velho
+- `America/Puerto_Rico` - America/Puerto_Rico
+- `America/Punta_Arenas` - America/Punta_Arenas
+- `America/Rankin_Inlet` - America/Rankin_Inlet
+- `America/Recife` - America/Recife
+- `America/Regina` - America/Regina
+- `America/Resolute` - America/Resolute
+- `America/Rio_Branco` - America/Rio_Branco
+- `America/Santarem` - America/Santarem
+- `America/Santiago` - America/Santiago
+- `America/Santo_Domingo` - America/Santo_Domingo
+- `America/Sao_Paulo` - America/Sao_Paulo
+- `America/Scoresbysund` - America/Scoresbysund
+- `America/Sitka` - America/Sitka
+- `America/St_Barthelemy` - America/St_Barthelemy
+- `America/St_Johns` - America/St_Johns
+- `America/St_Kitts` - America/St_Kitts
+- `America/St_Lucia` - America/St_Lucia
+- `America/St_Thomas` - America/St_Thomas
+- `America/St_Vincent` - America/St_Vincent
+- `America/Swift_Current` - America/Swift_Current
+- `America/Tegucigalpa` - America/Tegucigalpa
+- `America/Thule` - America/Thule
+- `America/Tijuana` - America/Tijuana
+- `America/Toronto` - America/Toronto
+- `America/Tortola` - America/Tortola
+- `America/Vancouver` - America/Vancouver
+- `America/Whitehorse` - America/Whitehorse
+- `America/Winnipeg` - America/Winnipeg
+- `America/Yakutat` - America/Yakutat
+- `Antarctica/Casey` - Antarctica/Casey
+- `Antarctica/Davis` - Antarctica/Davis
+- `Antarctica/DumontDUrville` - Antarctica/DumontDUrville
+- `Antarctica/Macquarie` - Antarctica/Macquarie
+- `Antarctica/Mawson` - Antarctica/Mawson
+- `Antarctica/McMurdo` - Antarctica/McMurdo
+- `Antarctica/Palmer` - Antarctica/Palmer
+- `Antarctica/Rothera` - Antarctica/Rothera
+- `Antarctica/Syowa` - Antarctica/Syowa
+- `Antarctica/Troll` - Antarctica/Troll
+- `Antarctica/Vostok` - Antarctica/Vostok
+- `Arctic/Longyearbyen` - Arctic/Longyearbyen
+- `Asia/Aden` - Asia/Aden
+- `Asia/Almaty` - Asia/Almaty
+- `Asia/Amman` - Asia/Amman
+- `Asia/Anadyr` - Asia/Anadyr
+- `Asia/Aqtau` - Asia/Aqtau
+- `Asia/Aqtobe` - Asia/Aqtobe
+- `Asia/Ashgabat` - Asia/Ashgabat
+- `Asia/Atyrau` - Asia/Atyrau
+- `Asia/Baghdad` - Asia/Baghdad
+- `Asia/Bahrain` - Asia/Bahrain
+- `Asia/Baku` - Asia/Baku
+- `Asia/Bangkok` - Asia/Bangkok
+- `Asia/Barnaul` - Asia/Barnaul
+- `Asia/Beirut` - Asia/Beirut
+- `Asia/Bishkek` - Asia/Bishkek
+- `Asia/Brunei` - Asia/Brunei
+- `Asia/Chita` - Asia/Chita
+- `Asia/Choibalsan` - Asia/Choibalsan
+- `Asia/Colombo` - Asia/Colombo
+- `Asia/Damascus` - Asia/Damascus
+- `Asia/Dhaka` - Asia/Dhaka
+- `Asia/Dili` - Asia/Dili
+- `Asia/Dubai` - Asia/Dubai
+- `Asia/Dushanbe` - Asia/Dushanbe
+- `Asia/Famagusta` - Asia/Famagusta
+- `Asia/Gaza` - Asia/Gaza
+- `Asia/Hebron` - Asia/Hebron
+- `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh
+- `Asia/Hong_Kong` - Asia/Hong_Kong
+- `Asia/Hovd` - Asia/Hovd
+- `Asia/Irkutsk` - Asia/Irkutsk
+- `Asia/Jakarta` - Asia/Jakarta
+- `Asia/Jayapura` - Asia/Jayapura
+- `Asia/Jerusalem` - Asia/Jerusalem
+- `Asia/Kabul` - Asia/Kabul
+- `Asia/Kamchatka` - Asia/Kamchatka
+- `Asia/Karachi` - Asia/Karachi
+- `Asia/Kathmandu` - Asia/Kathmandu
+- `Asia/Khandyga` - Asia/Khandyga
+- `Asia/Kolkata` - Asia/Kolkata
+- `Asia/Krasnoyarsk` - Asia/Krasnoyarsk
+- `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur
+- `Asia/Kuching` - Asia/Kuching
+- `Asia/Kuwait` - Asia/Kuwait
+- `Asia/Macau` - Asia/Macau
+- `Asia/Magadan` - Asia/Magadan
+- `Asia/Makassar` - Asia/Makassar
+- `Asia/Manila` - Asia/Manila
+- `Asia/Muscat` - Asia/Muscat
+- `Asia/Nicosia` - Asia/Nicosia
+- `Asia/Novokuznetsk` - Asia/Novokuznetsk
+- `Asia/Novosibirsk` - Asia/Novosibirsk
+- `Asia/Omsk` - Asia/Omsk
+- `Asia/Oral` - Asia/Oral
+- `Asia/Phnom_Penh` - Asia/Phnom_Penh
+- `Asia/Pontianak` - Asia/Pontianak
+- `Asia/Pyongyang` - Asia/Pyongyang
+- `Asia/Qatar` - Asia/Qatar
+- `Asia/Qostanay` - Asia/Qostanay
+- `Asia/Qyzylorda` - Asia/Qyzylorda
+- `Asia/Riyadh` - Asia/Riyadh
+- `Asia/Sakhalin` - Asia/Sakhalin
+- `Asia/Samarkand` - Asia/Samarkand
+- `Asia/Seoul` - Asia/Seoul
+- `Asia/Shanghai` - Asia/Shanghai
+- `Asia/Singapore` - Asia/Singapore
+- `Asia/Srednekolymsk` - Asia/Srednekolymsk
+- `Asia/Taipei` - Asia/Taipei
+- `Asia/Tashkent` - Asia/Tashkent
+- `Asia/Tbilisi` - Asia/Tbilisi
+- `Asia/Tehran` - Asia/Tehran
+- `Asia/Thimphu` - Asia/Thimphu
+- `Asia/Tokyo` - Asia/Tokyo
+- `Asia/Tomsk` - Asia/Tomsk
+- `Asia/Ulaanbaatar` - Asia/Ulaanbaatar
+- `Asia/Urumqi` - Asia/Urumqi
+- `Asia/Ust-Nera` - Asia/Ust-Nera
+- `Asia/Vientiane` - Asia/Vientiane
+- `Asia/Vladivostok` - Asia/Vladivostok
+- `Asia/Yakutsk` - Asia/Yakutsk
+- `Asia/Yangon` - Asia/Yangon
+- `Asia/Yekaterinburg` - Asia/Yekaterinburg
+- `Asia/Yerevan` - Asia/Yerevan
+- `Atlantic/Azores` - Atlantic/Azores
+- `Atlantic/Bermuda` - Atlantic/Bermuda
+- `Atlantic/Canary` - Atlantic/Canary
+- `Atlantic/Cape_Verde` - Atlantic/Cape_Verde
+- `Atlantic/Faroe` - Atlantic/Faroe
+- `Atlantic/Madeira` - Atlantic/Madeira
+- `Atlantic/Reykjavik` - Atlantic/Reykjavik
+- `Atlantic/South_Georgia` - Atlantic/South_Georgia
+- `Atlantic/St_Helena` - Atlantic/St_Helena
+- `Atlantic/Stanley` - Atlantic/Stanley
+- `Australia/Adelaide` - Australia/Adelaide
+- `Australia/Brisbane` - Australia/Brisbane
+- `Australia/Broken_Hill` - Australia/Broken_Hill
+- `Australia/Darwin` - Australia/Darwin
+- `Australia/Eucla` - Australia/Eucla
+- `Australia/Hobart` - Australia/Hobart
+- `Australia/Lindeman` - Australia/Lindeman
+- `Australia/Lord_Howe` - Australia/Lord_Howe
+- `Australia/Melbourne` - Australia/Melbourne
+- `Australia/Perth` - Australia/Perth
+- `Australia/Sydney` - Australia/Sydney
+- `Canada/Atlantic` - Canada/Atlantic
+- `Canada/Central` - Canada/Central
+- `Canada/Eastern` - Canada/Eastern
+- `Canada/Mountain` - Canada/Mountain
+- `Canada/Newfoundland` - Canada/Newfoundland
+- `Canada/Pacific` - Canada/Pacific
+- `Europe/Amsterdam` - Europe/Amsterdam
+- `Europe/Andorra` - Europe/Andorra
+- `Europe/Astrakhan` - Europe/Astrakhan
+- `Europe/Athens` - Europe/Athens
+- `Europe/Belgrade` - Europe/Belgrade
+- `Europe/Berlin` - Europe/Berlin
+- `Europe/Bratislava` - Europe/Bratislava
+- `Europe/Brussels` - Europe/Brussels
+- `Europe/Bucharest` - Europe/Bucharest
+- `Europe/Budapest` - Europe/Budapest
+- `Europe/Busingen` - Europe/Busingen
+- `Europe/Chisinau` - Europe/Chisinau
+- `Europe/Copenhagen` - Europe/Copenhagen
+- `Europe/Dublin` - Europe/Dublin
+- `Europe/Gibraltar` - Europe/Gibraltar
+- `Europe/Guernsey` - Europe/Guernsey
+- `Europe/Helsinki` - Europe/Helsinki
+- `Europe/Isle_of_Man` - Europe/Isle_of_Man
+- `Europe/Istanbul` - Europe/Istanbul
+- `Europe/Jersey` - Europe/Jersey
+- `Europe/Kaliningrad` - Europe/Kaliningrad
+- `Europe/Kirov` - Europe/Kirov
+- `Europe/Kyiv` - Europe/Kyiv
+- `Europe/Lisbon` - Europe/Lisbon
+- `Europe/Ljubljana` - Europe/Ljubljana
+- `Europe/London` - Europe/London
+- `Europe/Luxembourg` - Europe/Luxembourg
+- `Europe/Madrid` - Europe/Madrid
+- `Europe/Malta` - Europe/Malta
+- `Europe/Mariehamn` - Europe/Mariehamn
+- `Europe/Minsk` - Europe/Minsk
+- `Europe/Monaco` - Europe/Monaco
+- `Europe/Moscow` - Europe/Moscow
+- `Europe/Oslo` - Europe/Oslo
+- `Europe/Paris` - Europe/Paris
+- `Europe/Podgorica` - Europe/Podgorica
+- `Europe/Prague` - Europe/Prague
+- `Europe/Riga` - Europe/Riga
+- `Europe/Rome` - Europe/Rome
+- `Europe/Samara` - Europe/Samara
+- `Europe/San_Marino` - Europe/San_Marino
+- `Europe/Sarajevo` - Europe/Sarajevo
+- `Europe/Saratov` - Europe/Saratov
+- `Europe/Simferopol` - Europe/Simferopol
+- `Europe/Skopje` - Europe/Skopje
+- `Europe/Sofia` - Europe/Sofia
+- `Europe/Stockholm` - Europe/Stockholm
+- `Europe/Tallinn` - Europe/Tallinn
+- `Europe/Tirane` - Europe/Tirane
+- `Europe/Ulyanovsk` - Europe/Ulyanovsk
+- `Europe/Vaduz` - Europe/Vaduz
+- `Europe/Vatican` - Europe/Vatican
+- `Europe/Vienna` - Europe/Vienna
+- `Europe/Vilnius` - Europe/Vilnius
+- `Europe/Volgograd` - Europe/Volgograd
+- `Europe/Warsaw` - Europe/Warsaw
+- `Europe/Zagreb` - Europe/Zagreb
+- `Europe/Zurich` - Europe/Zurich
+- `GMT` - GMT
+- `Indian/Antananarivo` - Indian/Antananarivo
+- `Indian/Chagos` - Indian/Chagos
+- `Indian/Christmas` - Indian/Christmas
+- `Indian/Cocos` - Indian/Cocos
+- `Indian/Comoro` - Indian/Comoro
+- `Indian/Kerguelen` - Indian/Kerguelen
+- `Indian/Mahe` - Indian/Mahe
+- `Indian/Maldives` - Indian/Maldives
+- `Indian/Mauritius` - Indian/Mauritius
+- `Indian/Mayotte` - Indian/Mayotte
+- `Indian/Reunion` - Indian/Reunion
+- `Pacific/Apia` - Pacific/Apia
+- `Pacific/Auckland` - Pacific/Auckland
+- `Pacific/Bougainville` - Pacific/Bougainville
+- `Pacific/Chatham` - Pacific/Chatham
+- `Pacific/Chuuk` - Pacific/Chuuk
+- `Pacific/Easter` - Pacific/Easter
+- `Pacific/Efate` - Pacific/Efate
+- `Pacific/Fakaofo` - Pacific/Fakaofo
+- `Pacific/Fiji` - Pacific/Fiji
+- `Pacific/Funafuti` - Pacific/Funafuti
+- `Pacific/Galapagos` - Pacific/Galapagos
+- `Pacific/Gambier` - Pacific/Gambier
+- `Pacific/Guadalcanal` - Pacific/Guadalcanal
+- `Pacific/Guam` - Pacific/Guam
+- `Pacific/Honolulu` - Pacific/Honolulu
+- `Pacific/Kanton` - Pacific/Kanton
+- `Pacific/Kiritimati` - Pacific/Kiritimati
+- `Pacific/Kosrae` - Pacific/Kosrae
+- `Pacific/Kwajalein` - Pacific/Kwajalein
+- `Pacific/Majuro` - Pacific/Majuro
+- `Pacific/Marquesas` - Pacific/Marquesas
+- `Pacific/Midway` - Pacific/Midway
+- `Pacific/Nauru` - Pacific/Nauru
+- `Pacific/Niue` - Pacific/Niue
+- `Pacific/Norfolk` - Pacific/Norfolk
+- `Pacific/Noumea` - Pacific/Noumea
+- `Pacific/Pago_Pago` - Pacific/Pago_Pago
+- `Pacific/Palau` - Pacific/Palau
+- `Pacific/Pitcairn` - Pacific/Pitcairn
+- `Pacific/Pohnpei` - Pacific/Pohnpei
+- `Pacific/Port_Moresby` - Pacific/Port_Moresby
+- `Pacific/Rarotonga` - Pacific/Rarotonga
+- `Pacific/Saipan` - Pacific/Saipan
+- `Pacific/Tahiti` - Pacific/Tahiti
+- `Pacific/Tarawa` - Pacific/Tarawa
+- `Pacific/Tongatapu` - Pacific/Tongatapu
+- `Pacific/Wake` - Pacific/Wake
+- `Pacific/Wallis` - Pacific/Wallis
+- `US/Alaska` - US/Alaska
+- `US/Arizona` - US/Arizona
+- `US/Central` - US/Central
+- `US/Eastern` - US/Eastern
+- `US/Hawaii` - US/Hawaii
+- `US/Mountain` - US/Mountain
+- `US/Pacific` - US/Pacific
+- `UTC` - UTC
+
+
+
+
+
+External source.
+
+
+
+
+
+External id.
+
+
+
+
+
+Is issue type enabled.
+
+
+
+
+
+Is time tracking enabled.
@@ -80,9 +620,10 @@ curl -X POST \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "identifier": "example-identifier",
- "description": "example-description"
+ "name": "Example Name",
+ "description": "Example description",
+ "identifier": "PROJ-123",
+ "project_lead": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -96,10 +637,11 @@ response = requests.post(
"https://api.plane.so/api/v1/workspaces/my-workspace/projects/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'identifier': 'example-identifier',
- 'description': 'example-description'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "identifier": "PROJ-123",
+ "project_lead": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -115,9 +657,10 @@ const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspac
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- identifier: "example-identifier",
- description: "example-description",
+ name: "Example Name",
+ description: "Example description",
+ identifier: "PROJ-123",
+ project_lead: "550e8400-e29b-41d4-a716-446655440000",
}),
});
const data = await response.json();
@@ -130,11 +673,14 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "identifier": "PROJ-123",
+ "network": 2,
+ "project_lead": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
diff --git a/docs/api-reference/project/archive-project.md b/docs/api-reference/project/archive-project.md
new file mode 100644
index 0000000..04fdf32
--- /dev/null
+++ b/docs/api-reference/project/archive-project.md
@@ -0,0 +1,102 @@
+---
+title: Archive project
+description: Archive project via Plane API. HTTP request format, parameters, scopes, and example responses for archive project.
+keywords: plane, plane api, rest api, api integration, project, archive project
+---
+
+# Archive project
+
+
+ POST
+ /api/v1/workspaces/{slug}/projects/{project_id}/archive/
+
+
+
+
+
+Move a project to archived status, hiding it from active project lists.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archive/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.post(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archive/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archive/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/project/delete-project.md b/docs/api-reference/project/delete-project.md
index e11a0ce..6a40669 100644
--- a/docs/api-reference/project/delete-project.md
+++ b/docs/api-reference/project/delete-project.md
@@ -1,20 +1,20 @@
---
title: Delete a project
-description: Permanently delete a project and all its data via Plane API. This action is irreversible and removes all work items, cycles, and modules within the project.
-keywords: plane, plane api, rest api, api integration, projects, project management
+description: Delete a project via Plane API. HTTP request format, parameters, scopes, and example responses for delete a project.
+keywords: plane, plane api, rest api, api integration, project, delete a project
---
# Delete a project
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}
+ /api/v1/workspaces/{slug}/projects/{pk}/
-Permanently deletes a project and all its associated data. This action cannot be undone.
+Permanently remove a project and all its associated data from the workspace.
@@ -22,15 +22,15 @@ Permanently deletes a project and all its associated data. This action cannot be
-
+
-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
-
+
-The unique identifier of the project
+Workspace slug
@@ -46,6 +46,7 @@ The unique identifier of the project
+
@@ -53,7 +54,7 @@ The unique identifier of the project
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,23 +66,26 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid", {
- method: "DELETE",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
-const data = await response.json();
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
```
@@ -89,11 +93,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/project/get-project-detail.md b/docs/api-reference/project/get-project-detail.md
index d5a733c..03a2f9d 100644
--- a/docs/api-reference/project/get-project-detail.md
+++ b/docs/api-reference/project/get-project-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a project
-description: Get retrieve a project details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, projects, project management
+description: Retrieve a project via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a project.
+keywords: plane, plane api, rest api, api integration, project, retrieve a project
---
# Retrieve a project
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/
+ /api/v1/workspaces/{slug}/projects/{pk}/
-Retrieves the details of an existing project
+Retrieve details of a specific project.
@@ -22,15 +22,15 @@ Retrieves the details of an existing project
-
+
-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
-
+
-The unique identifier of the project
+Workspace slug
@@ -46,6 +46,7 @@ The unique identifier of the project
+
@@ -53,7 +54,7 @@ The unique identifier of the project
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +66,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +76,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -91,15 +95,19 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "identifier": "PROJ-123",
+ "network": 2,
+ "project_lead": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/project/list-projects.md b/docs/api-reference/project/list-projects.md
index 9bad88e..45315bb 100644
--- a/docs/api-reference/project/list-projects.md
+++ b/docs/api-reference/project/list-projects.md
@@ -1,20 +1,20 @@
---
title: List all projects
-description: List all projects via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, projects, project management
+description: List all projects via Plane API. HTTP request format, parameters, scopes, and example responses for list all projects.
+keywords: plane, plane api, rest api, api integration, project, list all projects
---
# List all projects
GET
- /api/v1/workspaces/{workspace_slug}/projects/
+ /api/v1/workspaces/{slug}/projects/
-Returns a list of all projects in a workspace. Projects are returned in order of creation, with the most recently created projects appearing first.
+Retrieve all projects in a workspace or get details of a specific project.
@@ -22,9 +22,48 @@ Returns a list of all projects in a workspace. Projects are returned in order of
-
+
-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`.
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
+
+
+
+
+
+Comma-separated list of related fields to expand in response
+
+
+
+
+
+Comma-separated list of fields to include in response
+
+
+
+
+
+Field to order results by. Prefix with '-' for descending order
+
+
+
+
+
+Number of results per page (default: 20, max: 100)
@@ -40,6 +79,7 @@ The workspace_slug represents the unique workspace identifier for a workspace in
+
@@ -47,8 +87,8 @@ The workspace_slug represents the unique workspace identifier for a workspace in
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/?cursor=20:1:0&expand=assignees" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -59,7 +99,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -69,12 +109,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/?cursor=20:1:0&expand=assignees",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -85,15 +128,31 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "identifier": "PROJ-123",
+ "network": 2
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/project/unarchive-project.md b/docs/api-reference/project/unarchive-project.md
new file mode 100644
index 0000000..7c6efd8
--- /dev/null
+++ b/docs/api-reference/project/unarchive-project.md
@@ -0,0 +1,102 @@
+---
+title: Unarchive project
+description: Unarchive project via Plane API. HTTP request format, parameters, scopes, and example responses for unarchive project.
+keywords: plane, plane api, rest api, api integration, project, unarchive project
+---
+
+# Unarchive project
+
+
+ DELETE
+ /api/v1/workspaces/{slug}/projects/{project_id}/archive/
+
+
+
+
+
+Restore an archived project to active status, making it available in regular workflows.
+
+
+
+### Path Parameters
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`projects:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archive/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.delete(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archive/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/archive/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/project/update-project-detail.md b/docs/api-reference/project/update-project-detail.md
index 339ce5d..bca81e0 100644
--- a/docs/api-reference/project/update-project-detail.md
+++ b/docs/api-reference/project/update-project-detail.md
@@ -1,20 +1,20 @@
---
title: Update a project
-description: Update a project via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, projects, project management
+description: Update a project via Plane API. HTTP request format, parameters, scopes, and example responses for update a project.
+keywords: plane, plane api, rest api, api integration, project, update a project
---
# Update a project
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}
+ /api/v1/workspaces/{slug}/projects/{pk}/
-Updates an existing project by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Partially update an existing project's properties like name, description, or settings.
@@ -22,15 +22,15 @@ Updates an existing project by setting the values of the parameters passed. Any
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
@@ -43,15 +43,573 @@ The unique identifier of the project.
-
+
-Name of the project.
+Name.
-
+
-Description of the project.
+Description.
+
+
+
+
+
+Project lead.
+
+
+
+
+
+Default assignee.
+
+
+
+
+
+Identifier.
+
+
+
+
+
+Icon prop.
+
+
+
+
+
+Emoji.
+
+
+
+
+
+Cover image.
+
+
+
+
+
+Module view.
+
+
+
+
+
+Cycle view.
+
+
+
+
+
+Issue views view.
+
+
+
+
+
+Page view.
+
+
+
+
+
+Intake view.
+
+
+
+
+
+Guest view all features.
+
+
+
+
+
+Archive in.
+
+
+
+
+
+Close in.
+
+
+
+
+
+- `Africa/Abidjan` - Africa/Abidjan
+- `Africa/Accra` - Africa/Accra
+- `Africa/Addis_Ababa` - Africa/Addis_Ababa
+- `Africa/Algiers` - Africa/Algiers
+- `Africa/Asmara` - Africa/Asmara
+- `Africa/Bamako` - Africa/Bamako
+- `Africa/Bangui` - Africa/Bangui
+- `Africa/Banjul` - Africa/Banjul
+- `Africa/Bissau` - Africa/Bissau
+- `Africa/Blantyre` - Africa/Blantyre
+- `Africa/Brazzaville` - Africa/Brazzaville
+- `Africa/Bujumbura` - Africa/Bujumbura
+- `Africa/Cairo` - Africa/Cairo
+- `Africa/Casablanca` - Africa/Casablanca
+- `Africa/Ceuta` - Africa/Ceuta
+- `Africa/Conakry` - Africa/Conakry
+- `Africa/Dakar` - Africa/Dakar
+- `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam
+- `Africa/Djibouti` - Africa/Djibouti
+- `Africa/Douala` - Africa/Douala
+- `Africa/El_Aaiun` - Africa/El_Aaiun
+- `Africa/Freetown` - Africa/Freetown
+- `Africa/Gaborone` - Africa/Gaborone
+- `Africa/Harare` - Africa/Harare
+- `Africa/Johannesburg` - Africa/Johannesburg
+- `Africa/Juba` - Africa/Juba
+- `Africa/Kampala` - Africa/Kampala
+- `Africa/Khartoum` - Africa/Khartoum
+- `Africa/Kigali` - Africa/Kigali
+- `Africa/Kinshasa` - Africa/Kinshasa
+- `Africa/Lagos` - Africa/Lagos
+- `Africa/Libreville` - Africa/Libreville
+- `Africa/Lome` - Africa/Lome
+- `Africa/Luanda` - Africa/Luanda
+- `Africa/Lubumbashi` - Africa/Lubumbashi
+- `Africa/Lusaka` - Africa/Lusaka
+- `Africa/Malabo` - Africa/Malabo
+- `Africa/Maputo` - Africa/Maputo
+- `Africa/Maseru` - Africa/Maseru
+- `Africa/Mbabane` - Africa/Mbabane
+- `Africa/Mogadishu` - Africa/Mogadishu
+- `Africa/Monrovia` - Africa/Monrovia
+- `Africa/Nairobi` - Africa/Nairobi
+- `Africa/Ndjamena` - Africa/Ndjamena
+- `Africa/Niamey` - Africa/Niamey
+- `Africa/Nouakchott` - Africa/Nouakchott
+- `Africa/Ouagadougou` - Africa/Ouagadougou
+- `Africa/Porto-Novo` - Africa/Porto-Novo
+- `Africa/Sao_Tome` - Africa/Sao_Tome
+- `Africa/Tripoli` - Africa/Tripoli
+- `Africa/Tunis` - Africa/Tunis
+- `Africa/Windhoek` - Africa/Windhoek
+- `America/Adak` - America/Adak
+- `America/Anchorage` - America/Anchorage
+- `America/Anguilla` - America/Anguilla
+- `America/Antigua` - America/Antigua
+- `America/Araguaina` - America/Araguaina
+- `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires
+- `America/Argentina/Catamarca` - America/Argentina/Catamarca
+- `America/Argentina/Cordoba` - America/Argentina/Cordoba
+- `America/Argentina/Jujuy` - America/Argentina/Jujuy
+- `America/Argentina/La_Rioja` - America/Argentina/La_Rioja
+- `America/Argentina/Mendoza` - America/Argentina/Mendoza
+- `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos
+- `America/Argentina/Salta` - America/Argentina/Salta
+- `America/Argentina/San_Juan` - America/Argentina/San_Juan
+- `America/Argentina/San_Luis` - America/Argentina/San_Luis
+- `America/Argentina/Tucuman` - America/Argentina/Tucuman
+- `America/Argentina/Ushuaia` - America/Argentina/Ushuaia
+- `America/Aruba` - America/Aruba
+- `America/Asuncion` - America/Asuncion
+- `America/Atikokan` - America/Atikokan
+- `America/Bahia` - America/Bahia
+- `America/Bahia_Banderas` - America/Bahia_Banderas
+- `America/Barbados` - America/Barbados
+- `America/Belem` - America/Belem
+- `America/Belize` - America/Belize
+- `America/Blanc-Sablon` - America/Blanc-Sablon
+- `America/Boa_Vista` - America/Boa_Vista
+- `America/Bogota` - America/Bogota
+- `America/Boise` - America/Boise
+- `America/Cambridge_Bay` - America/Cambridge_Bay
+- `America/Campo_Grande` - America/Campo_Grande
+- `America/Cancun` - America/Cancun
+- `America/Caracas` - America/Caracas
+- `America/Cayenne` - America/Cayenne
+- `America/Cayman` - America/Cayman
+- `America/Chicago` - America/Chicago
+- `America/Chihuahua` - America/Chihuahua
+- `America/Ciudad_Juarez` - America/Ciudad_Juarez
+- `America/Costa_Rica` - America/Costa_Rica
+- `America/Creston` - America/Creston
+- `America/Cuiaba` - America/Cuiaba
+- `America/Curacao` - America/Curacao
+- `America/Danmarkshavn` - America/Danmarkshavn
+- `America/Dawson` - America/Dawson
+- `America/Dawson_Creek` - America/Dawson_Creek
+- `America/Denver` - America/Denver
+- `America/Detroit` - America/Detroit
+- `America/Dominica` - America/Dominica
+- `America/Edmonton` - America/Edmonton
+- `America/Eirunepe` - America/Eirunepe
+- `America/El_Salvador` - America/El_Salvador
+- `America/Fort_Nelson` - America/Fort_Nelson
+- `America/Fortaleza` - America/Fortaleza
+- `America/Glace_Bay` - America/Glace_Bay
+- `America/Goose_Bay` - America/Goose_Bay
+- `America/Grand_Turk` - America/Grand_Turk
+- `America/Grenada` - America/Grenada
+- `America/Guadeloupe` - America/Guadeloupe
+- `America/Guatemala` - America/Guatemala
+- `America/Guayaquil` - America/Guayaquil
+- `America/Guyana` - America/Guyana
+- `America/Halifax` - America/Halifax
+- `America/Havana` - America/Havana
+- `America/Hermosillo` - America/Hermosillo
+- `America/Indiana/Indianapolis` - America/Indiana/Indianapolis
+- `America/Indiana/Knox` - America/Indiana/Knox
+- `America/Indiana/Marengo` - America/Indiana/Marengo
+- `America/Indiana/Petersburg` - America/Indiana/Petersburg
+- `America/Indiana/Tell_City` - America/Indiana/Tell_City
+- `America/Indiana/Vevay` - America/Indiana/Vevay
+- `America/Indiana/Vincennes` - America/Indiana/Vincennes
+- `America/Indiana/Winamac` - America/Indiana/Winamac
+- `America/Inuvik` - America/Inuvik
+- `America/Iqaluit` - America/Iqaluit
+- `America/Jamaica` - America/Jamaica
+- `America/Juneau` - America/Juneau
+- `America/Kentucky/Louisville` - America/Kentucky/Louisville
+- `America/Kentucky/Monticello` - America/Kentucky/Monticello
+- `America/Kralendijk` - America/Kralendijk
+- `America/La_Paz` - America/La_Paz
+- `America/Lima` - America/Lima
+- `America/Los_Angeles` - America/Los_Angeles
+- `America/Lower_Princes` - America/Lower_Princes
+- `America/Maceio` - America/Maceio
+- `America/Managua` - America/Managua
+- `America/Manaus` - America/Manaus
+- `America/Marigot` - America/Marigot
+- `America/Martinique` - America/Martinique
+- `America/Matamoros` - America/Matamoros
+- `America/Mazatlan` - America/Mazatlan
+- `America/Menominee` - America/Menominee
+- `America/Merida` - America/Merida
+- `America/Metlakatla` - America/Metlakatla
+- `America/Mexico_City` - America/Mexico_City
+- `America/Miquelon` - America/Miquelon
+- `America/Moncton` - America/Moncton
+- `America/Monterrey` - America/Monterrey
+- `America/Montevideo` - America/Montevideo
+- `America/Montserrat` - America/Montserrat
+- `America/Nassau` - America/Nassau
+- `America/New_York` - America/New_York
+- `America/Nome` - America/Nome
+- `America/Noronha` - America/Noronha
+- `America/North_Dakota/Beulah` - America/North_Dakota/Beulah
+- `America/North_Dakota/Center` - America/North_Dakota/Center
+- `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem
+- `America/Nuuk` - America/Nuuk
+- `America/Ojinaga` - America/Ojinaga
+- `America/Panama` - America/Panama
+- `America/Paramaribo` - America/Paramaribo
+- `America/Phoenix` - America/Phoenix
+- `America/Port-au-Prince` - America/Port-au-Prince
+- `America/Port_of_Spain` - America/Port_of_Spain
+- `America/Porto_Velho` - America/Porto_Velho
+- `America/Puerto_Rico` - America/Puerto_Rico
+- `America/Punta_Arenas` - America/Punta_Arenas
+- `America/Rankin_Inlet` - America/Rankin_Inlet
+- `America/Recife` - America/Recife
+- `America/Regina` - America/Regina
+- `America/Resolute` - America/Resolute
+- `America/Rio_Branco` - America/Rio_Branco
+- `America/Santarem` - America/Santarem
+- `America/Santiago` - America/Santiago
+- `America/Santo_Domingo` - America/Santo_Domingo
+- `America/Sao_Paulo` - America/Sao_Paulo
+- `America/Scoresbysund` - America/Scoresbysund
+- `America/Sitka` - America/Sitka
+- `America/St_Barthelemy` - America/St_Barthelemy
+- `America/St_Johns` - America/St_Johns
+- `America/St_Kitts` - America/St_Kitts
+- `America/St_Lucia` - America/St_Lucia
+- `America/St_Thomas` - America/St_Thomas
+- `America/St_Vincent` - America/St_Vincent
+- `America/Swift_Current` - America/Swift_Current
+- `America/Tegucigalpa` - America/Tegucigalpa
+- `America/Thule` - America/Thule
+- `America/Tijuana` - America/Tijuana
+- `America/Toronto` - America/Toronto
+- `America/Tortola` - America/Tortola
+- `America/Vancouver` - America/Vancouver
+- `America/Whitehorse` - America/Whitehorse
+- `America/Winnipeg` - America/Winnipeg
+- `America/Yakutat` - America/Yakutat
+- `Antarctica/Casey` - Antarctica/Casey
+- `Antarctica/Davis` - Antarctica/Davis
+- `Antarctica/DumontDUrville` - Antarctica/DumontDUrville
+- `Antarctica/Macquarie` - Antarctica/Macquarie
+- `Antarctica/Mawson` - Antarctica/Mawson
+- `Antarctica/McMurdo` - Antarctica/McMurdo
+- `Antarctica/Palmer` - Antarctica/Palmer
+- `Antarctica/Rothera` - Antarctica/Rothera
+- `Antarctica/Syowa` - Antarctica/Syowa
+- `Antarctica/Troll` - Antarctica/Troll
+- `Antarctica/Vostok` - Antarctica/Vostok
+- `Arctic/Longyearbyen` - Arctic/Longyearbyen
+- `Asia/Aden` - Asia/Aden
+- `Asia/Almaty` - Asia/Almaty
+- `Asia/Amman` - Asia/Amman
+- `Asia/Anadyr` - Asia/Anadyr
+- `Asia/Aqtau` - Asia/Aqtau
+- `Asia/Aqtobe` - Asia/Aqtobe
+- `Asia/Ashgabat` - Asia/Ashgabat
+- `Asia/Atyrau` - Asia/Atyrau
+- `Asia/Baghdad` - Asia/Baghdad
+- `Asia/Bahrain` - Asia/Bahrain
+- `Asia/Baku` - Asia/Baku
+- `Asia/Bangkok` - Asia/Bangkok
+- `Asia/Barnaul` - Asia/Barnaul
+- `Asia/Beirut` - Asia/Beirut
+- `Asia/Bishkek` - Asia/Bishkek
+- `Asia/Brunei` - Asia/Brunei
+- `Asia/Chita` - Asia/Chita
+- `Asia/Choibalsan` - Asia/Choibalsan
+- `Asia/Colombo` - Asia/Colombo
+- `Asia/Damascus` - Asia/Damascus
+- `Asia/Dhaka` - Asia/Dhaka
+- `Asia/Dili` - Asia/Dili
+- `Asia/Dubai` - Asia/Dubai
+- `Asia/Dushanbe` - Asia/Dushanbe
+- `Asia/Famagusta` - Asia/Famagusta
+- `Asia/Gaza` - Asia/Gaza
+- `Asia/Hebron` - Asia/Hebron
+- `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh
+- `Asia/Hong_Kong` - Asia/Hong_Kong
+- `Asia/Hovd` - Asia/Hovd
+- `Asia/Irkutsk` - Asia/Irkutsk
+- `Asia/Jakarta` - Asia/Jakarta
+- `Asia/Jayapura` - Asia/Jayapura
+- `Asia/Jerusalem` - Asia/Jerusalem
+- `Asia/Kabul` - Asia/Kabul
+- `Asia/Kamchatka` - Asia/Kamchatka
+- `Asia/Karachi` - Asia/Karachi
+- `Asia/Kathmandu` - Asia/Kathmandu
+- `Asia/Khandyga` - Asia/Khandyga
+- `Asia/Kolkata` - Asia/Kolkata
+- `Asia/Krasnoyarsk` - Asia/Krasnoyarsk
+- `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur
+- `Asia/Kuching` - Asia/Kuching
+- `Asia/Kuwait` - Asia/Kuwait
+- `Asia/Macau` - Asia/Macau
+- `Asia/Magadan` - Asia/Magadan
+- `Asia/Makassar` - Asia/Makassar
+- `Asia/Manila` - Asia/Manila
+- `Asia/Muscat` - Asia/Muscat
+- `Asia/Nicosia` - Asia/Nicosia
+- `Asia/Novokuznetsk` - Asia/Novokuznetsk
+- `Asia/Novosibirsk` - Asia/Novosibirsk
+- `Asia/Omsk` - Asia/Omsk
+- `Asia/Oral` - Asia/Oral
+- `Asia/Phnom_Penh` - Asia/Phnom_Penh
+- `Asia/Pontianak` - Asia/Pontianak
+- `Asia/Pyongyang` - Asia/Pyongyang
+- `Asia/Qatar` - Asia/Qatar
+- `Asia/Qostanay` - Asia/Qostanay
+- `Asia/Qyzylorda` - Asia/Qyzylorda
+- `Asia/Riyadh` - Asia/Riyadh
+- `Asia/Sakhalin` - Asia/Sakhalin
+- `Asia/Samarkand` - Asia/Samarkand
+- `Asia/Seoul` - Asia/Seoul
+- `Asia/Shanghai` - Asia/Shanghai
+- `Asia/Singapore` - Asia/Singapore
+- `Asia/Srednekolymsk` - Asia/Srednekolymsk
+- `Asia/Taipei` - Asia/Taipei
+- `Asia/Tashkent` - Asia/Tashkent
+- `Asia/Tbilisi` - Asia/Tbilisi
+- `Asia/Tehran` - Asia/Tehran
+- `Asia/Thimphu` - Asia/Thimphu
+- `Asia/Tokyo` - Asia/Tokyo
+- `Asia/Tomsk` - Asia/Tomsk
+- `Asia/Ulaanbaatar` - Asia/Ulaanbaatar
+- `Asia/Urumqi` - Asia/Urumqi
+- `Asia/Ust-Nera` - Asia/Ust-Nera
+- `Asia/Vientiane` - Asia/Vientiane
+- `Asia/Vladivostok` - Asia/Vladivostok
+- `Asia/Yakutsk` - Asia/Yakutsk
+- `Asia/Yangon` - Asia/Yangon
+- `Asia/Yekaterinburg` - Asia/Yekaterinburg
+- `Asia/Yerevan` - Asia/Yerevan
+- `Atlantic/Azores` - Atlantic/Azores
+- `Atlantic/Bermuda` - Atlantic/Bermuda
+- `Atlantic/Canary` - Atlantic/Canary
+- `Atlantic/Cape_Verde` - Atlantic/Cape_Verde
+- `Atlantic/Faroe` - Atlantic/Faroe
+- `Atlantic/Madeira` - Atlantic/Madeira
+- `Atlantic/Reykjavik` - Atlantic/Reykjavik
+- `Atlantic/South_Georgia` - Atlantic/South_Georgia
+- `Atlantic/St_Helena` - Atlantic/St_Helena
+- `Atlantic/Stanley` - Atlantic/Stanley
+- `Australia/Adelaide` - Australia/Adelaide
+- `Australia/Brisbane` - Australia/Brisbane
+- `Australia/Broken_Hill` - Australia/Broken_Hill
+- `Australia/Darwin` - Australia/Darwin
+- `Australia/Eucla` - Australia/Eucla
+- `Australia/Hobart` - Australia/Hobart
+- `Australia/Lindeman` - Australia/Lindeman
+- `Australia/Lord_Howe` - Australia/Lord_Howe
+- `Australia/Melbourne` - Australia/Melbourne
+- `Australia/Perth` - Australia/Perth
+- `Australia/Sydney` - Australia/Sydney
+- `Canada/Atlantic` - Canada/Atlantic
+- `Canada/Central` - Canada/Central
+- `Canada/Eastern` - Canada/Eastern
+- `Canada/Mountain` - Canada/Mountain
+- `Canada/Newfoundland` - Canada/Newfoundland
+- `Canada/Pacific` - Canada/Pacific
+- `Europe/Amsterdam` - Europe/Amsterdam
+- `Europe/Andorra` - Europe/Andorra
+- `Europe/Astrakhan` - Europe/Astrakhan
+- `Europe/Athens` - Europe/Athens
+- `Europe/Belgrade` - Europe/Belgrade
+- `Europe/Berlin` - Europe/Berlin
+- `Europe/Bratislava` - Europe/Bratislava
+- `Europe/Brussels` - Europe/Brussels
+- `Europe/Bucharest` - Europe/Bucharest
+- `Europe/Budapest` - Europe/Budapest
+- `Europe/Busingen` - Europe/Busingen
+- `Europe/Chisinau` - Europe/Chisinau
+- `Europe/Copenhagen` - Europe/Copenhagen
+- `Europe/Dublin` - Europe/Dublin
+- `Europe/Gibraltar` - Europe/Gibraltar
+- `Europe/Guernsey` - Europe/Guernsey
+- `Europe/Helsinki` - Europe/Helsinki
+- `Europe/Isle_of_Man` - Europe/Isle_of_Man
+- `Europe/Istanbul` - Europe/Istanbul
+- `Europe/Jersey` - Europe/Jersey
+- `Europe/Kaliningrad` - Europe/Kaliningrad
+- `Europe/Kirov` - Europe/Kirov
+- `Europe/Kyiv` - Europe/Kyiv
+- `Europe/Lisbon` - Europe/Lisbon
+- `Europe/Ljubljana` - Europe/Ljubljana
+- `Europe/London` - Europe/London
+- `Europe/Luxembourg` - Europe/Luxembourg
+- `Europe/Madrid` - Europe/Madrid
+- `Europe/Malta` - Europe/Malta
+- `Europe/Mariehamn` - Europe/Mariehamn
+- `Europe/Minsk` - Europe/Minsk
+- `Europe/Monaco` - Europe/Monaco
+- `Europe/Moscow` - Europe/Moscow
+- `Europe/Oslo` - Europe/Oslo
+- `Europe/Paris` - Europe/Paris
+- `Europe/Podgorica` - Europe/Podgorica
+- `Europe/Prague` - Europe/Prague
+- `Europe/Riga` - Europe/Riga
+- `Europe/Rome` - Europe/Rome
+- `Europe/Samara` - Europe/Samara
+- `Europe/San_Marino` - Europe/San_Marino
+- `Europe/Sarajevo` - Europe/Sarajevo
+- `Europe/Saratov` - Europe/Saratov
+- `Europe/Simferopol` - Europe/Simferopol
+- `Europe/Skopje` - Europe/Skopje
+- `Europe/Sofia` - Europe/Sofia
+- `Europe/Stockholm` - Europe/Stockholm
+- `Europe/Tallinn` - Europe/Tallinn
+- `Europe/Tirane` - Europe/Tirane
+- `Europe/Ulyanovsk` - Europe/Ulyanovsk
+- `Europe/Vaduz` - Europe/Vaduz
+- `Europe/Vatican` - Europe/Vatican
+- `Europe/Vienna` - Europe/Vienna
+- `Europe/Vilnius` - Europe/Vilnius
+- `Europe/Volgograd` - Europe/Volgograd
+- `Europe/Warsaw` - Europe/Warsaw
+- `Europe/Zagreb` - Europe/Zagreb
+- `Europe/Zurich` - Europe/Zurich
+- `GMT` - GMT
+- `Indian/Antananarivo` - Indian/Antananarivo
+- `Indian/Chagos` - Indian/Chagos
+- `Indian/Christmas` - Indian/Christmas
+- `Indian/Cocos` - Indian/Cocos
+- `Indian/Comoro` - Indian/Comoro
+- `Indian/Kerguelen` - Indian/Kerguelen
+- `Indian/Mahe` - Indian/Mahe
+- `Indian/Maldives` - Indian/Maldives
+- `Indian/Mauritius` - Indian/Mauritius
+- `Indian/Mayotte` - Indian/Mayotte
+- `Indian/Reunion` - Indian/Reunion
+- `Pacific/Apia` - Pacific/Apia
+- `Pacific/Auckland` - Pacific/Auckland
+- `Pacific/Bougainville` - Pacific/Bougainville
+- `Pacific/Chatham` - Pacific/Chatham
+- `Pacific/Chuuk` - Pacific/Chuuk
+- `Pacific/Easter` - Pacific/Easter
+- `Pacific/Efate` - Pacific/Efate
+- `Pacific/Fakaofo` - Pacific/Fakaofo
+- `Pacific/Fiji` - Pacific/Fiji
+- `Pacific/Funafuti` - Pacific/Funafuti
+- `Pacific/Galapagos` - Pacific/Galapagos
+- `Pacific/Gambier` - Pacific/Gambier
+- `Pacific/Guadalcanal` - Pacific/Guadalcanal
+- `Pacific/Guam` - Pacific/Guam
+- `Pacific/Honolulu` - Pacific/Honolulu
+- `Pacific/Kanton` - Pacific/Kanton
+- `Pacific/Kiritimati` - Pacific/Kiritimati
+- `Pacific/Kosrae` - Pacific/Kosrae
+- `Pacific/Kwajalein` - Pacific/Kwajalein
+- `Pacific/Majuro` - Pacific/Majuro
+- `Pacific/Marquesas` - Pacific/Marquesas
+- `Pacific/Midway` - Pacific/Midway
+- `Pacific/Nauru` - Pacific/Nauru
+- `Pacific/Niue` - Pacific/Niue
+- `Pacific/Norfolk` - Pacific/Norfolk
+- `Pacific/Noumea` - Pacific/Noumea
+- `Pacific/Pago_Pago` - Pacific/Pago_Pago
+- `Pacific/Palau` - Pacific/Palau
+- `Pacific/Pitcairn` - Pacific/Pitcairn
+- `Pacific/Pohnpei` - Pacific/Pohnpei
+- `Pacific/Port_Moresby` - Pacific/Port_Moresby
+- `Pacific/Rarotonga` - Pacific/Rarotonga
+- `Pacific/Saipan` - Pacific/Saipan
+- `Pacific/Tahiti` - Pacific/Tahiti
+- `Pacific/Tarawa` - Pacific/Tarawa
+- `Pacific/Tongatapu` - Pacific/Tongatapu
+- `Pacific/Wake` - Pacific/Wake
+- `Pacific/Wallis` - Pacific/Wallis
+- `US/Alaska` - US/Alaska
+- `US/Arizona` - US/Arizona
+- `US/Central` - US/Central
+- `US/Eastern` - US/Eastern
+- `US/Hawaii` - US/Hawaii
+- `US/Mountain` - US/Mountain
+- `US/Pacific` - US/Pacific
+- `UTC` - UTC
+
+
+
+
+
+External source.
+
+
+
+
+
+External id.
+
+
+
+
+
+Is issue type enabled.
+
+
+
+
+
+Is time tracking enabled.
+
+
+
+
+
+Default state.
+
+
+
+
+
+Estimate.
@@ -67,6 +625,7 @@ Description of the project.
+
@@ -74,13 +633,15 @@ Description of the project.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description": "example-description"
+ "name": "Example Name",
+ "description": "Example description",
+ "identifier": "PROJ-123",
+ "project_lead": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -91,12 +652,14 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description': 'example-description'
-}
+ "name": "Example Name",
+ "description": "Example description",
+ "identifier": "PROJ-123",
+ "project_lead": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -105,17 +668,22 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid", {
- method: "PATCH",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- description: "example-description",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ description: "Example description",
+ identifier: "PROJ-123",
+ project_lead: "550e8400-e29b-41d4-a716-446655440000",
+ }),
+ }
+);
const data = await response.json();
```
@@ -126,15 +694,19 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "identifier": "PROJ-123",
+ "network": 2,
+ "project_lead": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/state/add-state.md b/docs/api-reference/state/add-state.md
index 468383d..fb66d21 100644
--- a/docs/api-reference/state/add-state.md
+++ b/docs/api-reference/state/add-state.md
@@ -1,20 +1,20 @@
---
title: Create a state
-description: Create a state via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, states, workflow, status
+description: Create a state via Plane API. HTTP request format, parameters, scopes, and example responses for create a state.
+keywords: plane, plane api, rest api, api integration, state, create a state
---
# Create a state
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/states/
+ /api/v1/workspaces/{slug}/projects/{project_id}/states/
-Creates a new state in a project.
+Create a new workflow state for a project with specified name, color, and group.
@@ -22,15 +22,15 @@ Creates a new state in a project.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
@@ -45,13 +45,60 @@ The unique identifier of the project.
-Name of the state.
+Name.
+
+
+
+
+
+Description.
-Hex color code for the state (e.g., "#eb5757").
+Color.
+
+
+
+
+
+Sequence.
+
+
+
+
+
+- `backlog` - Backlog
+- `unstarted` - Unstarted
+- `started` - Started
+- `completed` - Completed
+- `cancelled` - Cancelled
+- `triage` - Triage
+
+
+
+
+
+Is triage.
+
+
+
+
+
+Default.
+
+
+
+
+
+External source.
+
+
+
+
+
+External id.
@@ -67,6 +114,7 @@ Hex color code for the state (e.g., "#eb5757").
+
@@ -74,13 +122,16 @@ Hex color code for the state (e.g., "#eb5757").
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "color": "example-color"
+ "name": "Example Name",
+ "color": "#ff0000",
+ "group": "backlog",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -91,12 +142,15 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'color': 'example-color'
-}
+ "name": "Example Name",
+ "color": "#ff0000",
+ "group": "backlog",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -105,36 +159,46 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/", {
- method: "POST",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- color: "example-color",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ name: "Example Name",
+ color: "#ff0000",
+ group: "backlog",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
+ }),
+ }
+);
const data = await response.json();
```
-
+
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "color": "#f39c12",
+ "group": "started",
+ "sequence": 2,
+ "default": false,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/state/delete-state.md b/docs/api-reference/state/delete-state.md
index 89c909f..51f6159 100644
--- a/docs/api-reference/state/delete-state.md
+++ b/docs/api-reference/state/delete-state.md
@@ -1,20 +1,20 @@
---
title: Delete a state
-description: Delete a workflow state from a project via Plane API. The state must not be in use by any work items. Returns 204 on success.
-keywords: plane, plane api, rest api, api integration, states, workflow, status
+description: Delete a state via Plane API. HTTP request format, parameters, scopes, and example responses for delete a state.
+keywords: plane, plane api, rest api, api integration, state, delete a state
---
# Delete a state
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/states/{state_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/states/{state_id}/
-Permanently deletes a state from a project. This action cannot be undone.
+Permanently remove a workflow state from a project. Default states and states with existing work items cannot be deleted.
@@ -22,21 +22,21 @@ Permanently deletes a state from a project. This action cannot be undone.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
-The unique identifier for the state.
+State ID
@@ -52,6 +52,7 @@ The unique identifier for the state.
+
@@ -59,8 +60,8 @@ The unique identifier for the state.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/state-uuid/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/550e8400-e29b-41d4-a716-446655440001/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,10 +72,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/state-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/state-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/550e8400-e29b-41d4-a716-446655440001/",
{
method: "DELETE",
headers: {
@@ -90,7 +91,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -98,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/state/get-state-detail.md b/docs/api-reference/state/get-state-detail.md
index 6107d2b..d0295b1 100644
--- a/docs/api-reference/state/get-state-detail.md
+++ b/docs/api-reference/state/get-state-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a state
-description: Get retrieve a state details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane, plane api, rest api, api integration, states, workflow, status
+description: Retrieve a state via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a state.
+keywords: plane, plane api, rest api, api integration, state, retrieve a state
---
# Retrieve a state
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/states/{state_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/states/{state_id}/
-Retrieves the details of an existing state by its ID.
+Retrieve details of a specific state.
@@ -22,21 +22,21 @@ Retrieves the details of an existing state by its ID.
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
-The unique identifier for the state.
+State ID
@@ -52,6 +52,7 @@ The unique identifier for the state.
+
@@ -59,7 +60,7 @@ The unique identifier for the state.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/state-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/state-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/state-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/550e8400-e29b-41d4-a716-446655440001/",
{
method: "GET",
headers: {
@@ -100,15 +101,19 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "color": "#f39c12",
+ "group": "started",
+ "sequence": 2,
+ "default": false,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/state/list-states.md b/docs/api-reference/state/list-states.md
index 81e50e2..47bd03e 100644
--- a/docs/api-reference/state/list-states.md
+++ b/docs/api-reference/state/list-states.md
@@ -1,20 +1,20 @@
---
title: List all states
-description: List all states via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, states, workflow, status
+description: List all states via Plane API. HTTP request format, parameters, scopes, and example responses for list all states.
+keywords: plane, plane api, rest api, api integration, state, list all states
---
# List all states
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/states/
+ /api/v1/workspaces/{slug}/projects/{project_id}/states/
-Returns a list of all states in a project. States are returned in sequence order within their state groups.
+Retrieve all workflow states for a project.
@@ -22,15 +22,48 @@ Returns a list of all states in a project. States are returned in sequence order
-
+
-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
-
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
-The unique identifier of the project.
+Pagination cursor for getting next set of results
+
+
+
+
+
+Comma-separated list of related fields to expand in response
+
+
+
+
+
+Comma-separated list of fields to include in response
+
+
+
+
+
+Number of results per page (default: 20, max: 100)
@@ -46,6 +79,7 @@ The unique identifier of the project.
+
@@ -53,8 +87,8 @@ The unique identifier of the project.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/?cursor=20:1:0&expand=assignees" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +99,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/?cursor=20:1:0&expand=assignees",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +109,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/?cursor=20:1:0&expand=assignees",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -91,15 +128,31 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "color": "#ffa500",
+ "group": "started",
+ "sequence": 2
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/state/update-state-detail.md b/docs/api-reference/state/update-state-detail.md
index 0a6908b..db2819c 100644
--- a/docs/api-reference/state/update-state-detail.md
+++ b/docs/api-reference/state/update-state-detail.md
@@ -1,20 +1,20 @@
---
title: Update a state
-description: Update a state via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, states, workflow, status
+description: Update a state via Plane API. HTTP request format, parameters, scopes, and example responses for update a state.
+keywords: plane, plane api, rest api, api integration, state, update a state
---
# Update a state
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/states/{state_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/states/{state_id}/
-Updates an existing state by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Partially update an existing workflow state's properties like name, color, or group.
@@ -22,21 +22,21 @@ Updates an existing state by setting the values of the parameters passed. Any pa
-
+
-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
-
+
-The unique identifier of the project.
+Workspace slug
-The unique identifier for the state.
+State ID
@@ -49,9 +49,62 @@ The unique identifier for the state.
-
+
+
+Name.
+
+
+
+
+
+Description.
+
+
+
+
-Name of the state.
+Color.
+
+
+
+
+
+Sequence.
+
+
+
+
+
+- `backlog` - Backlog
+- `unstarted` - Unstarted
+- `started` - Started
+- `completed` - Completed
+- `cancelled` - Cancelled
+- `triage` - Triage
+
+
+
+
+
+Is triage.
+
+
+
+
+
+Default.
+
+
+
+
+
+External source.
+
+
+
+
+
+External id.
@@ -67,6 +120,7 @@ Name of the state.
+
@@ -74,12 +128,16 @@ Name of the state.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/state-uuid/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/550e8400-e29b-41d4-a716-446655440001/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name"
+ "name": "Example Name",
+ "color": "#00ff00",
+ "group": "backlog",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
}'
```
@@ -90,11 +148,15 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/state-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/550e8400-e29b-41d4-a716-446655440001/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name'
-}
+ "name": "Example Name",
+ "color": "#00ff00",
+ "group": "backlog",
+ "external_id": "550e8400-e29b-41d4-a716-446655440000",
+ "external_source": "github"
+ }
)
print(response.json())
```
@@ -104,7 +166,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/states/state-uuid/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/states/550e8400-e29b-41d4-a716-446655440001/",
{
method: "PATCH",
headers: {
@@ -112,7 +174,11 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
+ name: "Example Name",
+ color: "#00ff00",
+ group: "backlog",
+ external_id: "550e8400-e29b-41d4-a716-446655440000",
+ external_source: "github",
}),
}
);
@@ -126,15 +192,19 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "color": "#f39c12",
+ "group": "started",
+ "sequence": 2,
+ "default": false,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/sticky/add-sticky.md b/docs/api-reference/sticky/add-sticky.md
index 2fd1dbc..87922f2 100644
--- a/docs/api-reference/sticky/add-sticky.md
+++ b/docs/api-reference/sticky/add-sticky.md
@@ -1,20 +1,20 @@
---
title: Create a sticky
-description: Create a sticky via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane api, create sticky, add note, sticky note, quick capture, rest api, api integration
+description: Create a sticky via Plane API. HTTP request format, parameters, scopes, and example responses for create a sticky.
+keywords: plane, plane api, rest api, api integration, sticky, create a sticky
---
# Create a sticky
POST
- /api/v1/workspaces/{workspace_slug}/stickies/
+ /api/v1/workspaces/{slug}/stickies/
-Creates a new sticky note in a workspace.
+Create a new sticky in the workspace
@@ -22,9 +22,9 @@ Creates a new sticky note in a workspace.
-
+
-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`.
+Workspace slug
@@ -37,33 +37,69 @@ The workspace_slug represents the unique workspace identifier for a workspace in
-
+
-Name of the sticky.
+Deleted at.
-
+
-HTML-formatted content of the sticky.
+Name.
-
+
-Logo properties and visual configuration.
+Description.
-
+
-Text color for the sticky (hex code).
+Description html.
-
+
-Background color for the sticky (hex code).
+Description stripped.
+
+
+
+
+
+Logo props.
+
+
+
+
+
+Color.
+
+
+
+
+
+Background color.
+
+
+
+
+
+Sort order.
+
+
+
+
+
+Created by.
+
+
+
+
+
+Updated by.
@@ -79,6 +115,7 @@ Background color for the sticky (hex code).
+
@@ -91,11 +128,17 @@ curl -X POST \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description_html": "example-description_html",
- "logo_props": "example-logo_props",
- "color": "example-color",
- "background_color": "example-background_color"
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "logo_props": "example-value",
+ "color": "Example Name",
+ "background_color": "Example Name",
+ "sort_order": 1,
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -109,12 +152,18 @@ response = requests.post(
"https://api.plane.so/api/v1/workspaces/my-workspace/stickies/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description_html': 'example-description_html',
- 'logo_props': 'example-logo_props',
- 'color': 'example-color',
- 'background_color': 'example-background_color'
-}
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "logo_props": "example-value",
+ "color": "Example Name",
+ "background_color": "Example Name",
+ "sort_order": 1,
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -130,11 +179,17 @@ const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspac
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- description_html: "example-description_html",
- logo_props: "example-logo_props",
- color: "example-color",
- background_color: "example-background_color",
+ deleted_at: "2024-01-01T00:00:00Z",
+ name: "Example Name",
+ description: "example-value",
+ description_html: "Example content
",
+ description_stripped: "Example description",
+ logo_props: "example-value",
+ color: "Example Name",
+ background_color: "Example Name",
+ sort_order: 1,
+ created_by: "550e8400-e29b-41d4-a716-446655440000",
+ updated_by: "550e8400-e29b-41d4-a716-446655440000",
}),
});
const data = await response.json();
@@ -147,7 +202,9 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description_html": "Example content
",
"created_at": "2024-01-01T00:00:00Z"
}
```
@@ -155,4 +212,5 @@ const data = await response.json();
+
diff --git a/docs/api-reference/sticky/delete-sticky.md b/docs/api-reference/sticky/delete-sticky.md
index 4eae162..871a8ba 100644
--- a/docs/api-reference/sticky/delete-sticky.md
+++ b/docs/api-reference/sticky/delete-sticky.md
@@ -1,20 +1,20 @@
---
title: Delete a sticky
-description: Delete a sticky note via Plane API. Permanently removes the note from your workspace. Returns 204 on success.
-keywords: plane api, delete sticky, remove note, sticky note, rest api, api integration
+description: Delete a sticky via Plane API. HTTP request format, parameters, scopes, and example responses for delete a sticky.
+keywords: plane, plane api, rest api, api integration, sticky, delete a sticky
---
# Delete a sticky
DELETE
- /api/v1/workspaces/{workspace_slug}/stickies/{sticky_id}/
+ /api/v1/workspaces/{slug}/stickies/{pk}/
-Permanently deletes a sticky from a workspace. This action cannot be undone.
+Delete a sticky by its ID
@@ -22,15 +22,15 @@ Permanently deletes a sticky from a workspace. This action cannot be undone.
-
+
-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`.
+A UUID string identifying this Sticky.
-
+
-The unique identifier for the sticky.
+Workspace slug
@@ -46,6 +46,7 @@ The unique identifier for the sticky.
+
@@ -53,7 +54,7 @@ The unique identifier for the sticky.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/{sticky_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,23 +66,26 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/{sticky_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/stickies/{sticky_id}/", {
- method: "DELETE",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
-const data = await response.json();
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
```
@@ -89,11 +93,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/sticky/get-sticky-detail.md b/docs/api-reference/sticky/get-sticky-detail.md
index 8b071fc..f4af6ef 100644
--- a/docs/api-reference/sticky/get-sticky-detail.md
+++ b/docs/api-reference/sticky/get-sticky-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a sticky
-description: Get retrieve a sticky details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane api, get sticky detail, retrieve note, sticky note, rest api, api integration
+description: Retrieve a sticky via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a sticky.
+keywords: plane, plane api, rest api, api integration, sticky, retrieve a sticky
---
# Retrieve a sticky
GET
- /api/v1/workspaces/{workspace_slug}/stickies/{sticky_id}/
+ /api/v1/workspaces/{slug}/stickies/{pk}/
-Retrieves the details of an existing sticky by its ID.
+Retrieve a sticky by its ID
@@ -22,15 +22,15 @@ Retrieves the details of an existing sticky by its ID.
-
+
-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`.
+A UUID string identifying this Sticky.
-
+
-The unique identifier for the sticky.
+Workspace slug
@@ -46,6 +46,7 @@ The unique identifier for the sticky.
+
@@ -53,8 +54,8 @@ The unique identifier for the sticky.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/{sticky_id}/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +66,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/{sticky_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +76,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/stickies/{sticky_id}/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -91,7 +95,9 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description_html": "Example content
",
"created_at": "2024-01-01T00:00:00Z"
}
```
@@ -99,4 +105,5 @@ const data = await response.json();
+
diff --git a/docs/api-reference/sticky/list-stickies.md b/docs/api-reference/sticky/list-stickies.md
index d057bbd..5b083cf 100644
--- a/docs/api-reference/sticky/list-stickies.md
+++ b/docs/api-reference/sticky/list-stickies.md
@@ -1,20 +1,20 @@
---
title: List all stickies
-description: List all stickies via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane api, list stickies, get all notes, sticky notes, quick notes, rest api, api integration
+description: List all stickies via Plane API. HTTP request format, parameters, scopes, and example responses for list all stickies.
+keywords: plane, plane api, rest api, api integration, sticky, list all stickies
---
# List all stickies
GET
- /api/v1/workspaces/{workspace_slug}/stickies/
+ /api/v1/workspaces/{slug}/stickies/
-Returns a list of all stickies in a workspace.
+List all stickies in the workspace
@@ -22,30 +22,9 @@ Returns a list of all stickies in a workspace.
-
+
-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`.
-
-
-
-
-
-
-
-
-### Query Parameters
-
-
-
-
-
-Number of results to return per page.
-
-
-
-
-
-Number of results to skip for pagination.
+Workspace slug
@@ -61,6 +40,7 @@ Number of results to skip for pagination.
+
@@ -69,7 +49,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
"https://api.plane.so/api/v1/workspaces/my-workspace/stickies/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -105,13 +85,33 @@ const data = await response.json();
```json
-{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ {
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description_html": "Example content
",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
+ }
+]
```
+
diff --git a/docs/api-reference/sticky/update-sticky-detail.md b/docs/api-reference/sticky/update-sticky-detail.md
index 8463ca3..ed1763e 100644
--- a/docs/api-reference/sticky/update-sticky-detail.md
+++ b/docs/api-reference/sticky/update-sticky-detail.md
@@ -1,20 +1,20 @@
---
title: Update a sticky
-description: Update a sticky via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane api, update sticky, modify note, sticky note, rest api, api integration
+description: Update a sticky via Plane API. HTTP request format, parameters, scopes, and example responses for update a sticky.
+keywords: plane, plane api, rest api, api integration, sticky, update a sticky
---
# Update a sticky
PATCH
- /api/v1/workspaces/{workspace_slug}/stickies/{sticky_id}/
+ /api/v1/workspaces/{slug}/stickies/{pk}/
-Updates an existing sticky by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Update a sticky by its ID
@@ -22,15 +22,15 @@ Updates an existing sticky by setting the values of the parameters passed. Any p
-
+
-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`.
+A UUID string identifying this Sticky.
-
+
-The unique identifier for the sticky.
+Workspace slug
@@ -43,33 +43,69 @@ The unique identifier for the sticky.
-
+
-Name of the sticky.
+Deleted at.
-
+
-HTML-formatted content of the sticky.
+Name.
-
+
-Logo properties and visual configuration.
+Description.
-
+
-Text color for the sticky (hex code).
+Description html.
-
+
-Background color for the sticky (hex code).
+Description stripped.
+
+
+
+
+
+Logo props.
+
+
+
+
+
+Color.
+
+
+
+
+
+Background color.
+
+
+
+
+
+Sort order.
+
+
+
+
+
+Created by.
+
+
+
+
+
+Updated by.
@@ -85,6 +121,7 @@ Background color for the sticky (hex code).
+
@@ -92,16 +129,22 @@ Background color for the sticky (hex code).
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/{sticky_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description_html": "example-description_html",
- "logo_props": "example-logo_props",
- "color": "example-color",
- "background_color": "example-background_color"
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "logo_props": "example-value",
+ "color": "Example Name",
+ "background_color": "Example Name",
+ "sort_order": 1,
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -112,15 +155,21 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/{sticky_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description_html': 'example-description_html',
- 'logo_props': 'example-logo_props',
- 'color': 'example-color',
- 'background_color': 'example-background_color'
-}
+ "deleted_at": "2024-01-01T00:00:00Z",
+ "name": "Example Name",
+ "description": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "logo_props": "example-value",
+ "color": "Example Name",
+ "background_color": "Example Name",
+ "sort_order": 1,
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -129,20 +178,29 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/stickies/{sticky_id}/", {
- method: "PATCH",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- description_html: "example-description_html",
- logo_props: "example-logo_props",
- color: "example-color",
- background_color: "example-background_color",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/stickies/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ deleted_at: "2024-01-01T00:00:00Z",
+ name: "Example Name",
+ description: "example-value",
+ description_html: "Example content
",
+ description_stripped: "Example description",
+ logo_props: "example-value",
+ color: "Example Name",
+ background_color: "Example Name",
+ sort_order: 1,
+ created_by: "550e8400-e29b-41d4-a716-446655440000",
+ updated_by: "550e8400-e29b-41d4-a716-446655440000",
+ }),
+ }
+);
const data = await response.json();
```
@@ -153,7 +211,9 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description_html": "Example content
",
"created_at": "2024-01-01T00:00:00Z"
}
```
@@ -161,4 +221,5 @@ const data = await response.json();
+
diff --git a/docs/api-reference/teamspace/add-projects-to-teamspace.md b/docs/api-reference/teamspace/add-projects-to-teamspace.md
index ce5cb26..5230008 100644
--- a/docs/api-reference/teamspace/add-projects-to-teamspace.md
+++ b/docs/api-reference/teamspace/add-projects-to-teamspace.md
@@ -1,20 +1,20 @@
---
title: Add projects to teamspace
-description: Create projects to teamspace via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane api, add projects to teamspace, team project management, team collaboration, workspace teams, rest api, api integration
+description: Add projects to teamspace via Plane API. HTTP request format, parameters, scopes, and example responses for add projects to teamspace.
+keywords: plane, plane api, rest api, api integration, teamspace, add projects to teamspace
---
# Add projects to teamspace
POST
- /api/v1/workspaces/{workspace_slug}/teamspaces/{teamspace_id}/projects/
+ /api/v1/workspaces/{slug}/teamspaces/{teamspace_id}/projects/
-Adds projects to a teamspace
+Add projects to a teamspace
@@ -22,12 +22,16 @@ Adds projects to a teamspace
-
+
+
+Workspace slug
+Teamspace ID
+
@@ -39,9 +43,9 @@ Adds projects to a teamspace
-
+
-Array of project IDs to add to the teamspace
+Project ids.
@@ -57,6 +61,7 @@ Array of project IDs to add to the teamspace
+
@@ -64,12 +69,14 @@ Array of project IDs to add to the teamspace
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/projects/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/projects/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "project_ids": "example-project_ids"
+ "project_ids": [
+ "550e8400-e29b-41d4-a716-446655440000"
+ ]
}'
```
@@ -80,11 +87,13 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/projects/",
headers={"X-API-Key": "your-api-key"},
json={
- 'project_ids': 'example-project_ids'
-}
+ "project_ids": [
+"550e8400-e29b-41d4-a716-446655440000"
+ ]
+ }
)
print(response.json())
```
@@ -94,7 +103,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/projects/",
{
method: "POST",
headers: {
@@ -102,7 +111,7 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- project_ids: "example-project_ids",
+ project_ids: ["550e8400-e29b-41d4-a716-446655440000"],
}),
}
);
@@ -112,19 +121,23 @@ const data = await response.json();
-
+
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "identifier": "PROJ-123",
+ "network": 2,
+ "project_lead": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z"
}
```
+
diff --git a/docs/api-reference/teamspace/add-teamspace-members.md b/docs/api-reference/teamspace/add-teamspace-members.md
index 499ba7f..05c7c14 100644
--- a/docs/api-reference/teamspace/add-teamspace-members.md
+++ b/docs/api-reference/teamspace/add-teamspace-members.md
@@ -1,20 +1,20 @@
---
title: Add members to teamspace
-description: Create members to teamspace via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane api, add teamspace members, invite team members, team management, workspace teams, rest api, api integration
+description: Add members to teamspace via Plane API. HTTP request format, parameters, scopes, and example responses for add members to teamspace.
+keywords: plane, plane api, rest api, api integration, teamspace, add members to teamspace
---
# Add members to teamspace
POST
- /api/v1/workspaces/{workspace_slug}/teamspaces/{teamspace_id}/members/
+ /api/v1/workspaces/{slug}/teamspaces/{teamspace_id}/members/
-Adds members to a teamspace
+Add members to a teamspace
@@ -22,15 +22,15 @@ Adds members to a teamspace
-
+
-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`.
+Workspace slug
-The unique identifier for the teamspace.
+Teamspace ID
@@ -43,9 +43,9 @@ The unique identifier for the teamspace.
-
+
-Array of user IDs to add to the teamspace.
+Member ids.
@@ -61,6 +61,7 @@ Array of user IDs to add to the teamspace.
+
@@ -68,12 +69,14 @@ Array of user IDs to add to the teamspace.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/members/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/members/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "member_ids": "example-member_ids"
+ "member_ids": [
+ "550e8400-e29b-41d4-a716-446655440000"
+ ]
}'
```
@@ -84,11 +87,13 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/members/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/members/",
headers={"X-API-Key": "your-api-key"},
json={
- 'member_ids': 'example-member_ids'
-}
+ "member_ids": [
+"550e8400-e29b-41d4-a716-446655440000"
+ ]
+ }
)
print(response.json())
```
@@ -97,32 +102,41 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/members/", {
- method: "POST",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- member_ids: "example-member_ids",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/members/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ member_ids: ["550e8400-e29b-41d4-a716-446655440000"],
+ }),
+ }
+);
const data = await response.json();
```
-
+
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "first_name": "John",
+ "last_name": "Doe",
+ "email": "user@example.com",
+ "avatar": "https://example.com/assets/example-image.png",
+ "avatar_url": "https://example.com/assets/example-image.png",
+ "display_name": "Example Name"
}
```
+
diff --git a/docs/api-reference/teamspace/add-teamspace.md b/docs/api-reference/teamspace/add-teamspace.md
index 16f9800..8c9bea6 100644
--- a/docs/api-reference/teamspace/add-teamspace.md
+++ b/docs/api-reference/teamspace/add-teamspace.md
@@ -1,20 +1,20 @@
---
title: Create a teamspace
-description: Create a teamspace via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane api, create teamspace, add team, team management, workspace teams, rest api, api integration
+description: Create a teamspace via Plane API. HTTP request format, parameters, scopes, and example responses for create a teamspace.
+keywords: plane, plane api, rest api, api integration, teamspace, create a teamspace
---
# Create a teamspace
POST
- /api/v1/workspaces/{workspace_slug}/teamspaces/
+ /api/v1/workspaces/{slug}/teamspaces/
-Creates a new teamspace in a workspace.
+Create a new teamspace in the workspace
@@ -22,9 +22,9 @@ Creates a new teamspace in a workspace.
-
+
-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`.
+Workspace slug
@@ -37,45 +37,51 @@ The workspace_slug represents the unique workspace identifier for a workspace in
+
+
+Logo props.
+
+
+
-Name of the teamspace.
+Name.
-
+
-JSON representation of the teamspace description.
+Description json.
-
+
-HTML-formatted description of the teamspace.
+Description html.
-
+
-Stripped version of the HTML description.
+Description stripped.
-
+
-Binary representation of the description.
+Created by.
-
+
-Logo properties for the teamspace.
+Updated by.
-
+
-ID of the user who leads the teamspace.
+Lead.
@@ -91,6 +97,7 @@ ID of the user who leads the teamspace.
+
@@ -103,13 +110,14 @@ curl -X POST \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description_json": "example-description_json",
- "description_html": "example-description_html",
- "description_stripped": "example-description_stripped",
- "description_binary": "example-description_binary",
- "logo_props": "example-logo_props",
- "lead": "example-lead"
+ "logo_props": "example-value",
+ "name": "Example Name",
+ "description_json": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "lead": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -123,14 +131,15 @@ response = requests.post(
"https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description_json': 'example-description_json',
- 'description_html': 'example-description_html',
- 'description_stripped': 'example-description_stripped',
- 'description_binary': 'example-description_binary',
- 'logo_props': 'example-logo_props',
- 'lead': 'example-lead'
-}
+ "logo_props": "example-value",
+ "name": "Example Name",
+ "description_json": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "lead": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -146,13 +155,14 @@ const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspac
"Content-Type": "application/json",
},
body: JSON.stringify({
- name: "example-name",
- description_json: "example-description_json",
- description_html: "example-description_html",
- description_stripped: "example-description_stripped",
- description_binary: "example-description_binary",
- logo_props: "example-logo_props",
- lead: "example-lead",
+ logo_props: "example-value",
+ name: "Example Name",
+ description_json: "example-value",
+ description_html: "Example content
",
+ description_stripped: "Example description",
+ created_by: "550e8400-e29b-41d4-a716-446655440000",
+ updated_by: "550e8400-e29b-41d4-a716-446655440000",
+ lead: "550e8400-e29b-41d4-a716-446655440000",
}),
});
const data = await response.json();
@@ -165,12 +175,14 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description"
}
```
+
diff --git a/docs/api-reference/teamspace/delete-teamspace.md b/docs/api-reference/teamspace/delete-teamspace.md
index 02f7857..411349c 100644
--- a/docs/api-reference/teamspace/delete-teamspace.md
+++ b/docs/api-reference/teamspace/delete-teamspace.md
@@ -1,20 +1,20 @@
---
title: Delete a teamspace
-description: Delete a teamspace via Plane API. Removes the team grouping and disassociates its members and projects. Returns 204 on success.
-keywords: plane api, delete teamspace, remove team, team management, workspace teams, rest api, api integration
+description: Delete a teamspace via Plane API. HTTP request format, parameters, scopes, and example responses for delete a teamspace.
+keywords: plane, plane api, rest api, api integration, teamspace, delete a teamspace
---
# Delete a teamspace
DELETE
- /api/v1/workspaces/{workspace_slug}/teamspaces/{teamspace_id}/
+ /api/v1/workspaces/{slug}/teamspaces/{pk}/
-Deletes a teamspace
+Delete a teamspace by its ID
@@ -22,15 +22,21 @@ Deletes a teamspace
-
+
-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`.
+Pk.
+
+
+
+
+
+Workspace slug
-The unique identifier for the teamspace.
+Teamspace ID
@@ -46,6 +52,7 @@ The unique identifier for the teamspace.
+
@@ -53,8 +60,8 @@ The unique identifier for the teamspace.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,23 +72,26 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/", {
- method: "DELETE",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
-const data = await response.json();
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
```
@@ -89,11 +99,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/teamspace/get-teamspace-detail.md b/docs/api-reference/teamspace/get-teamspace-detail.md
index b4e5473..2279834 100644
--- a/docs/api-reference/teamspace/get-teamspace-detail.md
+++ b/docs/api-reference/teamspace/get-teamspace-detail.md
@@ -1,20 +1,20 @@
---
title: Retrieve a teamspace
-description: Get retrieve a teamspace details via Plane API. Retrieve complete information for a specific resource.
-keywords: plane api, get teamspace detail, retrieve team, team management, workspace teams, rest api, api integration
+description: Retrieve a teamspace via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve a teamspace.
+keywords: plane, plane api, rest api, api integration, teamspace, retrieve a teamspace
---
# Retrieve a teamspace
GET
- /api/v1/workspaces/{workspace_slug}/teamspaces/{teamspace_id}/
+ /api/v1/workspaces/{slug}/teamspaces/{pk}/
-Retrieves the details of an existing teamspace by its ID.
+Retrieve a teamspace by its ID
@@ -22,15 +22,21 @@ Retrieves the details of an existing teamspace by its ID.
-
+
-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`.
+Pk.
+
+
+
+
+
+Workspace slug
-The unique identifier for the teamspace.
+Teamspace ID
@@ -46,6 +52,7 @@ The unique identifier for the teamspace.
+
@@ -53,8 +60,8 @@ The unique identifier for the teamspace.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -75,12 +82,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -91,12 +101,14 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description"
}
```
+
diff --git a/docs/api-reference/teamspace/list-teamspace-members.md b/docs/api-reference/teamspace/list-teamspace-members.md
index fde3bf4..898c416 100644
--- a/docs/api-reference/teamspace/list-teamspace-members.md
+++ b/docs/api-reference/teamspace/list-teamspace-members.md
@@ -1,20 +1,20 @@
---
title: List all teamspace members
-description: List all teamspace members via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane api, list teamspace members, team members, team management, workspace teams, rest api, api integration
+description: List all teamspace members via Plane API. HTTP request format, parameters, scopes, and example responses for list all teamspace members.
+keywords: plane, plane api, rest api, api integration, teamspace, list all teamspace members
---
# List all teamspace members
GET
- /api/v1/workspaces/{workspace_slug}/teamspaces/{teamspace_id}/members/
+ /api/v1/workspaces/{slug}/teamspaces/{teamspace_id}/members/
-Returns a list of all members associated with a teamspace.
+List all members in a teamspace
@@ -22,15 +22,15 @@ Returns a list of all members associated with a teamspace.
-
+
-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`.
+Workspace slug
-The unique identifier for the teamspace.
+Teamspace ID
@@ -43,15 +43,15 @@ The unique identifier for the teamspace.
-
+
-Number of results to return per page.
+Pagination cursor for getting next set of results
-
+
-Number of results to skip for pagination.
+Number of results per page (default: 20, max: 100)
@@ -67,6 +67,7 @@ Number of results to skip for pagination.
+
@@ -74,7 +75,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/members/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/members/?cursor=20:1:0&per_page=20" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -86,7 +87,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/members/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/members/?cursor=20:1:0&per_page=20",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -96,12 +97,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/members/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/members/?cursor=20:1:0&per_page=20",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -112,12 +116,29 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/teamspace/list-teamspace-projects.md b/docs/api-reference/teamspace/list-teamspace-projects.md
index 7198a16..673d638 100644
--- a/docs/api-reference/teamspace/list-teamspace-projects.md
+++ b/docs/api-reference/teamspace/list-teamspace-projects.md
@@ -1,20 +1,20 @@
---
title: List teamspace projects
-description: List teamspace projects via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane api, teamspace projects, team project management, team collaboration, workspace teams, rest api, api integration
+description: List teamspace projects via Plane API. HTTP request format, parameters, scopes, and example responses for list teamspace projects.
+keywords: plane, plane api, rest api, api integration, teamspace, list teamspace projects
---
# List teamspace projects
GET
- /api/v1/workspaces/{workspace_slug}/teamspaces/{teamspace_id}/projects/
+ /api/v1/workspaces/{slug}/teamspaces/{teamspace_id}/projects/
-Gets all the projects associated with a teamspace
+List all projects in a teamspace
@@ -22,32 +22,15 @@ Gets all the projects associated with a teamspace
-
-
-
-
-### Query Parameters
-
-
-
-
-
-Number of results to return per page.
+Workspace slug
-
+
-Number of results to skip for pagination.
+Teamspace ID
@@ -63,6 +46,7 @@ Number of results to skip for pagination.
+
@@ -70,7 +54,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/projects/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/projects/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -82,7 +66,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/projects/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -93,7 +77,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/projects/",
{
method: "GET",
headers: {
@@ -111,15 +95,31 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "identifier": "PROJ-123",
+ "network": 2
+ }
+ ]
}
```
+
diff --git a/docs/api-reference/teamspace/list-teamspaces.md b/docs/api-reference/teamspace/list-teamspaces.md
index b975e59..dda2866 100644
--- a/docs/api-reference/teamspace/list-teamspaces.md
+++ b/docs/api-reference/teamspace/list-teamspaces.md
@@ -1,20 +1,20 @@
---
title: List all teamspaces
-description: List all teamspaces via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane api, list teamspaces, get all teams, team management, workspace teams, rest api, api integration
+description: List all teamspaces via Plane API. HTTP request format, parameters, scopes, and example responses for list all teamspaces.
+keywords: plane, plane api, rest api, api integration, teamspace, list all teamspaces
---
# List all teamspaces
GET
- /api/v1/workspaces/{workspace_slug}/teamspaces/
+ /api/v1/workspaces/{slug}/teamspaces/
-Returns a list of all teamspaces in a workspace.
+List all teamspaces in the workspace
@@ -22,9 +22,9 @@ Returns a list of all teamspaces in a workspace.
-
+
-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`.
+Workspace slug
@@ -37,15 +37,15 @@ The workspace_slug represents the unique workspace identifier for a workspace in
-
+
-Number of results to return per page.
+Pagination cursor for getting next set of results
-
+
-Number of results to skip for pagination.
+Number of results per page (default: 20, max: 100)
@@ -61,6 +61,7 @@ Number of results to skip for pagination.
+
@@ -68,7 +69,7 @@ Number of results to skip for pagination.
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/?cursor=20:1:0&per_page=20" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -80,7 +81,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/?cursor=20:1:0&per_page=20",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -90,12 +91,15 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/", {
- method: "GET",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/?cursor=20:1:0&per_page=20",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
const data = await response.json();
```
@@ -105,13 +109,33 @@ const data = await response.json();
```json
-{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ {
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
+ }
+]
```
+
diff --git a/docs/api-reference/teamspace/remove-projects-from-teamspace.md b/docs/api-reference/teamspace/remove-projects-from-teamspace.md
index bb2b246..be751e0 100644
--- a/docs/api-reference/teamspace/remove-projects-from-teamspace.md
+++ b/docs/api-reference/teamspace/remove-projects-from-teamspace.md
@@ -1,20 +1,20 @@
---
title: Remove projects from teamspace
-description: Delete projects from teamspace via Plane API. HTTP DELETE request for removing resources.
-keywords: plane api, remove projects from teamspace, team project management, team collaboration, workspace teams, rest api, api integration
+description: Remove projects from teamspace via Plane API. HTTP request format, parameters, scopes, and example responses for remove projects from teamspace.
+keywords: plane, plane api, rest api, api integration, teamspace, remove projects from teamspace
---
# Remove projects from teamspace
DELETE
- /api/v1/workspaces/{workspace_slug}/teamspaces/{teamspace_id}/projects/
+ /api/v1/workspaces/{slug}/teamspaces/{teamspace_id}/projects/
-Removes one or more projects from a teamspace.
+Remove projects from a teamspace by its ID
@@ -22,30 +22,15 @@ Removes one or more projects from a teamspace.
-
+
-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`.
+Workspace slug
-The unique identifier for the teamspace.
-
-
-
-
-
-
-
-
-### Body Parameters
-
-
-
-
-
-Array of project IDs to remove from the teamspace.
+Teamspace ID
@@ -61,6 +46,7 @@ Array of project IDs to remove from the teamspace.
+
@@ -68,7 +54,7 @@ Array of project IDs to remove from the teamspace.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/projects/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/projects/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -80,10 +66,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/projects/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -91,7 +77,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/projects/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/projects/",
{
method: "DELETE",
headers: {
@@ -99,7 +85,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -107,11 +93,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/teamspace/remove-teamspace-members.md b/docs/api-reference/teamspace/remove-teamspace-members.md
index 4036d6b..9df05a2 100644
--- a/docs/api-reference/teamspace/remove-teamspace-members.md
+++ b/docs/api-reference/teamspace/remove-teamspace-members.md
@@ -1,20 +1,20 @@
---
title: Remove members from teamspace
-description: Delete members from teamspace via Plane API. HTTP DELETE request for removing resources.
-keywords: plane api, remove teamspace members, team management, workspace teams, rest api, api integration
+description: Remove members from teamspace via Plane API. HTTP request format, parameters, scopes, and example responses for remove members from teamspace.
+keywords: plane, plane api, rest api, api integration, teamspace, remove members from teamspace
---
# Remove members from teamspace
DELETE
- /api/v1/workspaces/{workspace_slug}/teamspaces/{teamspace_id}/members/
+ /api/v1/workspaces/{slug}/teamspaces/{teamspace_id}/members/
-Removes members from a teamspace
+Delete members from a teamspace by its ID
@@ -22,30 +22,15 @@ Removes members from a teamspace
-
+
-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`.
+Workspace slug
-The unique identifier for the teamspace.
-
-
-
-
-
-
-
-
-### Body Parameters
-
-
-
-
-
-Array of user IDs to remove from the teamspace.
+Teamspace ID
@@ -61,6 +46,7 @@ Array of user IDs to remove from the teamspace.
+
@@ -68,7 +54,7 @@ Array of user IDs to remove from the teamspace.
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/members/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/members/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -80,23 +66,26 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/members/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/members/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/members/", {
- method: "DELETE",
- headers: {
- "X-API-Key": "your-api-key",
- },
-});
-const data = await response.json();
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440001/members/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
```
@@ -104,11 +93,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/teamspace/update-teamspace-detail.md b/docs/api-reference/teamspace/update-teamspace-detail.md
index ba59bbb..8953478 100644
--- a/docs/api-reference/teamspace/update-teamspace-detail.md
+++ b/docs/api-reference/teamspace/update-teamspace-detail.md
@@ -1,20 +1,20 @@
---
title: Update a teamspace
-description: Update a teamspace via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane api, update teamspace, modify team, team management, workspace teams, rest api, api integration
+description: Update a teamspace via Plane API. HTTP request format, parameters, scopes, and example responses for update a teamspace.
+keywords: plane, plane api, rest api, api integration, teamspace, update a teamspace
---
# Update a teamspace
PATCH
- /api/v1/workspaces/{workspace_slug}/teamspaces/{teamspace_id}/
+ /api/v1/workspaces/{slug}/teamspaces/{pk}/
-Updates an existing teamspace by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
+Update a teamspace by its ID
@@ -22,15 +22,21 @@ Updates an existing teamspace by setting the values of the parameters passed. An
-
+
-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`.
+Pk.
+
+
+
+
+
+Workspace slug
-The unique identifier for the teamspace.
+Teamspace ID
@@ -43,45 +49,51 @@ The unique identifier for the teamspace.
-
+
-Name of the teamspace.
+Logo props.
-
+
-JSON representation of the teamspace description.
+Name.
-
+
-HTML-formatted description of the teamspace.
+Description json.
-
+
-Stripped version of the HTML description.
+Description html.
-
+
-Binary representation of the description.
+Description stripped.
-
+
-Logo properties for the teamspace
+Created by.
-
+
-ID of the user who leads the teamspace.
+Updated by.
+
+
+
+
+
+Lead.
@@ -97,6 +109,7 @@ ID of the user who leads the teamspace.
+
@@ -104,18 +117,19 @@ ID of the user who leads the teamspace.
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "name": "example-name",
- "description_json": "example-description_json",
- "description_html": "example-description_html",
- "description_stripped": "example-description_stripped",
- "description_binary": "example-description_binary",
- "logo_props": "example-logo_props",
- "lead": "example-lead"
+ "logo_props": "example-value",
+ "name": "Example Name",
+ "description_json": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "lead": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -126,17 +140,18 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'name': 'example-name',
- 'description_json': 'example-description_json',
- 'description_html': 'example-description_html',
- 'description_stripped': 'example-description_stripped',
- 'description_binary': 'example-description_binary',
- 'logo_props': 'example-logo_props',
- 'lead': 'example-lead'
-}
+ "logo_props": "example-value",
+ "name": "Example Name",
+ "description_json": "example-value",
+ "description_html": "Example content
",
+ "description_stripped": "Example description",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "lead": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -145,22 +160,26 @@ print(response.json())
```javascript
-const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/{teamspace_id}/", {
- method: "PATCH",
- headers: {
- "X-API-Key": "your-api-key",
- "Content-Type": "application/json",
- },
- body: JSON.stringify({
- name: "example-name",
- description_json: "example-description_json",
- description_html: "example-description_html",
- description_stripped: "example-description_stripped",
- description_binary: "example-description_binary",
- logo_props: "example-logo_props",
- lead: "example-lead",
- }),
-});
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/teamspaces/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ logo_props: "example-value",
+ name: "Example Name",
+ description_json: "example-value",
+ description_html: "Example content
",
+ description_stripped: "Example description",
+ created_by: "550e8400-e29b-41d4-a716-446655440000",
+ updated_by: "550e8400-e29b-41d4-a716-446655440000",
+ lead: "550e8400-e29b-41d4-a716-446655440000",
+ }),
+ }
+);
const data = await response.json();
```
@@ -171,12 +190,14 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description": "Example description"
}
```
+
diff --git a/docs/api-reference/user/get-current-user.md b/docs/api-reference/user/get-current-user.md
index 77d0d9c..e83f13e 100644
--- a/docs/api-reference/user/get-current-user.md
+++ b/docs/api-reference/user/get-current-user.md
@@ -1,7 +1,7 @@
---
title: Retrieve current user
-description: List retrieve current user via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane api, get current user, user profile, authenticated user, user details, rest api, api integration
+description: Retrieve current user via Plane API. HTTP request format, parameters, scopes, and example responses for retrieve current user.
+keywords: plane, plane api, rest api, api integration, user, retrieve current user
---
# Retrieve current user
@@ -14,7 +14,7 @@ keywords: plane api, get current user, user profile, authenticated user, user de
-Retrieves information about the currently authenticated user.
+Retrieve the authenticated user's profile information including basic details.
@@ -25,6 +25,7 @@ Retrieves information about the currently authenticated user.
+
@@ -33,7 +34,8 @@ Retrieves information about the currently authenticated user.
```bash
curl -X GET \
"https://api.plane.so/api/v1/users/me/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -69,12 +71,18 @@ const data = await response.json();
```json
{
- "id": "resource-uuid",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "first_name": "John",
+ "last_name": "Doe",
+ "email": "user@example.com",
+ "avatar": "https://example.com/assets/example-image.png",
+ "avatar_url": "https://example.com/assets/example-image.png",
+ "display_name": "Example Name"
}
```
+
diff --git a/docs/api-reference/work-item-pages/add-work-item-page.md b/docs/api-reference/work-item-pages/add-work-item-page.md
new file mode 100644
index 0000000..3ca70a0
--- /dev/null
+++ b/docs/api-reference/work-item-pages/add-work-item-page.md
@@ -0,0 +1,160 @@
+---
+title: Create work item page link
+description: Create work item page link via Plane API. HTTP request format, parameters, scopes, and example responses for create work item page link.
+keywords: plane, plane api, rest api, api integration, work item pages, create work item page link
+---
+
+# Create work item page link
+
+
+ POST
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{work_item_id}/pages/
+
+
+
+
+
+Link a page to a work item.
+
+
+
+### Path Parameters
+
+
+
+
+
+Issue ID
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+Work item id.
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+ID of the page to link to the work item
+
+
+
+
+
+
+
+
+### Scopes
+
+API key authentication or an OAuth token with equivalent access.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/pages/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "page_id": "550e8400-e29b-41d4-a716-446655440000"
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.post(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/pages/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "page_id": "550e8400-e29b-41d4-a716-446655440000"
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/pages/",
+ {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ page_id: "550e8400-e29b-41d4-a716-446655440000",
+ }),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "page": {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description_html": "Example content
",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "is_global": false,
+ "logo_props": {}
+ },
+ "issue": "550e8400-e29b-41d4-a716-446655440000",
+ "project": "550e8400-e29b-41d4-a716-446655440000",
+ "workspace": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/work-item-pages/delete-work-item-page.md b/docs/api-reference/work-item-pages/delete-work-item-page.md
new file mode 100644
index 0000000..b267f25
--- /dev/null
+++ b/docs/api-reference/work-item-pages/delete-work-item-page.md
@@ -0,0 +1,120 @@
+---
+title: Delete work item page link
+description: Delete work item page link via Plane API. HTTP request format, parameters, scopes, and example responses for delete work item page link.
+keywords: plane, plane api, rest api, api integration, work item pages, delete work item page link
+---
+
+# Delete work item page link
+
+
+ DELETE
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{work_item_id}/pages/{pk}/
+
+
+
+
+
+Remove a page link from a work item.
+
+
+
+### Path Parameters
+
+
+
+
+
+Issue ID
+
+
+
+
+
+Page ID
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+Work item id.
+
+
+
+
+
+
+
+
+### Scopes
+
+API key authentication or an OAuth token with equivalent access.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/pages/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.delete(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/pages/550e8400-e29b-41d4-a716-446655440000/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/pages/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/work-item-pages/get-work-item-page-detail.md b/docs/api-reference/work-item-pages/get-work-item-page-detail.md
new file mode 100644
index 0000000..c289822
--- /dev/null
+++ b/docs/api-reference/work-item-pages/get-work-item-page-detail.md
@@ -0,0 +1,140 @@
+---
+title: Get work item page link
+description: Get work item page link via Plane API. HTTP request format, parameters, scopes, and example responses for get work item page link.
+keywords: plane, plane api, rest api, api integration, work item pages, get work item page link
+---
+
+# Get work item page link
+
+
+ GET
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{work_item_id}/pages/{pk}/
+
+
+
+
+
+Retrieve details of a specific page link for a work item.
+
+
+
+### Path Parameters
+
+
+
+
+
+Issue ID
+
+
+
+
+
+Page ID
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+Work item id.
+
+
+
+
+
+
+
+
+### Scopes
+
+API key authentication or an OAuth token with equivalent access.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/pages/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/pages/550e8400-e29b-41d4-a716-446655440000/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/pages/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "page": {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description_html": "Example content
",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "is_global": false,
+ "logo_props": {}
+ },
+ "issue": "550e8400-e29b-41d4-a716-446655440000",
+ "project": "550e8400-e29b-41d4-a716-446655440000",
+ "workspace": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000"
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/work-item-pages/list-work-item-pages.md b/docs/api-reference/work-item-pages/list-work-item-pages.md
new file mode 100644
index 0000000..dbd31c9
--- /dev/null
+++ b/docs/api-reference/work-item-pages/list-work-item-pages.md
@@ -0,0 +1,162 @@
+---
+title: List work item pages
+description: List work item pages via Plane API. HTTP request format, parameters, scopes, and example responses for list work item pages.
+keywords: plane, plane api, rest api, api integration, work item pages, list work item pages
+---
+
+# List work item pages
+
+
+ GET
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{work_item_id}/pages/
+
+
+
+
+
+Retrieve all page links associated with a work item.
+
+
+
+### Path Parameters
+
+
+
+
+
+Issue ID
+
+
+
+
+
+Project ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+Work item id.
+
+
+
+
+
+
+
+
+### Query Parameters
+
+
+
+
+
+Pagination cursor for getting next set of results
+
+
+
+
+
+Field to order results by. Prefix with '-' for descending order
+
+
+
+
+
+Number of results per page (default: 20, max: 100)
+
+
+
+
+
+
+
+
+### Scopes
+
+API key authentication or an OAuth token with equivalent access.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/pages/?cursor=20:1:0&order_by=-created_at" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/pages/?cursor=20:1:0&order_by=-created_at",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/pages/?cursor=20:1:0&order_by=-created_at",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "grouped_by": "state",
+ "sub_grouped_by": "priority",
+ "total_count": 150,
+ "next_cursor": "20:1:0",
+ "prev_cursor": "20:0:0",
+ "next_page_results": true,
+ "prev_page_results": false,
+ "count": 20,
+ "total_pages": 8,
+ "total_results": 150,
+ "extra_stats": null,
+ "results": [
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "created_at": "2024-01-01T00:00:00Z"
+ }
+ ]
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/work-item-pages/overview.md b/docs/api-reference/work-item-pages/overview.md
new file mode 100644
index 0000000..139c09c
--- /dev/null
+++ b/docs/api-reference/work-item-pages/overview.md
@@ -0,0 +1,85 @@
+---
+title: Overview
+description: Plane Work Item Pages API overview. Learn how to link pages to work items using the Plane API.
+keywords: plane, plane api, rest api, api integration, work item pages, wiki pages
+---
+
+# Overview
+
+Work item pages create links between work items and wiki pages so related documentation stays close to execution.
+
+[Learn more about Work Items](https://docs.plane.so/core-concepts/issues)
+
+
+
+
+## The Work Item Page Link Object
+
+### Attributes
+
+- `id` _string_
+
+ Id.
+
+- `page` _object_
+
+ Lightweight page serializer for work item page links.
+
+Provides essential page information including identifiers,
+name, timestamps, and visual properties for work item page associations.
+
+- `issue` _string_
+
+ Issue.
+
+- `project` _string_
+
+ Project.
+
+- `workspace` _string_
+
+ Workspace.
+
+- `created_at` _string_
+
+ Created at.
+
+- `updated_at` _string_
+
+ Updated at.
+
+- `created_by` _string_
+
+ Created by.
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "page": {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "name": "Example Name",
+ "description_html": "Example content
",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "is_global": false,
+ "logo_props": {}
+ },
+ "issue": "550e8400-e29b-41d4-a716-446655440000",
+ "project": "550e8400-e29b-41d4-a716-446655440000",
+ "workspace": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "created_by": "550e8400-e29b-41d4-a716-446655440000"
+}
+```
+
+
+
+
+
diff --git a/docs/api-reference/worklogs/create-worklog.md b/docs/api-reference/worklogs/create-worklog.md
index 8d83ae6..d827c10 100644
--- a/docs/api-reference/worklogs/create-worklog.md
+++ b/docs/api-reference/worklogs/create-worklog.md
@@ -1,20 +1,20 @@
---
title: Create a worklog
-description: Create a worklog via Plane API. HTTP POST request format, required fields, and example responses.
-keywords: plane, plane api, rest api, api integration, time tracking, worklogs, time management
+description: Create a worklog via Plane API. HTTP request format, parameters, scopes, and example responses for create a worklog.
+keywords: plane, plane api, rest api, api integration, worklogs, create a worklog
---
# Create a worklog
POST
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/worklogs/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/worklogs/
-Creates a new worklog entry for a work item.
+Create a new worklog entry
@@ -22,21 +22,21 @@ Creates a new worklog entry for a work item.
-
+
-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`.
+Issue id.
-The unique identifier of the project
+Project ID
-
+
-The unique identifier of the work item
+Workspace slug
@@ -49,15 +49,27 @@ The unique identifier of the work item
-
+
-Description of the work done during the worklog.
+Description.
-
+
-Time spent on the issue in minutes.
+Duration.
+
+
+
+
+
+Created by.
+
+
+
+
+
+Updated by.
@@ -73,6 +85,7 @@ Time spent on the issue in minutes.
+
@@ -80,13 +93,15 @@ Time spent on the issue in minutes.
```bash
curl -X POST \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/worklogs/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/worklogs/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "description": "example-description",
- "duration": 1
+ "description": "Example description",
+ "duration": 1,
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -97,12 +112,14 @@ curl -X POST \
import requests
response = requests.post(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/worklogs/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/worklogs/",
headers={"X-API-Key": "your-api-key"},
json={
- 'description': 'example-description',
- 'duration': 1
-}
+ "description": "Example description",
+ "duration": 1,
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -112,7 +129,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/worklogs/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/worklogs/",
{
method: "POST",
headers: {
@@ -120,8 +137,10 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- description: "example-description",
+ description: "Example description",
duration: 1,
+ created_by: "550e8400-e29b-41d4-a716-446655440000",
+ updated_by: "550e8400-e29b-41d4-a716-446655440000",
}),
}
);
@@ -135,15 +154,21 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "description": "Example description",
+ "duration": 1,
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "project_id": "550e8400-e29b-41d4-a716-446655440000",
+ "workspace_id": "550e8400-e29b-41d4-a716-446655440000",
+ "logged_by": "550e8400-e29b-41d4-a716-446655440000"
}
```
+
diff --git a/docs/api-reference/worklogs/delete-worklog.md b/docs/api-reference/worklogs/delete-worklog.md
index 1163904..8b4fca4 100644
--- a/docs/api-reference/worklogs/delete-worklog.md
+++ b/docs/api-reference/worklogs/delete-worklog.md
@@ -1,20 +1,20 @@
---
title: Delete a worklog
-description: Delete a time tracking worklog entry via Plane API. Removes the logged time from the work item. Returns 204 on success.
-keywords: plane, plane api, rest api, api integration, time tracking, worklogs, time management
+description: Delete a worklog via Plane API. HTTP request format, parameters, scopes, and example responses for delete a worklog.
+keywords: plane, plane api, rest api, api integration, worklogs, delete a worklog
---
# Delete a worklog
DELETE
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/worklogs/{worklog_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/worklogs/{pk}/
-Delete a specific worklog entry from an issue.
+Delete a worklog entry
@@ -22,27 +22,27 @@ Delete a specific worklog entry from an issue.
-
+
-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`.
+Issue id.
-
+
-The unique identifier of the project
+Pk.
-
+
-The unique identifier of the work item
+Project ID
-
+
-The unique identifier of the worklog
+Workspace slug
@@ -58,6 +58,7 @@ The unique identifier of the worklog
+
@@ -65,7 +66,7 @@ The unique identifier of the worklog
```bash
curl -X DELETE \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/worklogs/{worklog_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/worklogs/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -77,10 +78,10 @@ curl -X DELETE \
import requests
response = requests.delete(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/worklogs/{worklog_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/worklogs/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"}
)
-print(response.json())
+print(response.status_code)
```
@@ -88,7 +89,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/worklogs/{worklog_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/worklogs/550e8400-e29b-41d4-a716-446655440000/",
{
method: "DELETE",
headers: {
@@ -96,7 +97,7 @@ const response = await fetch(
},
}
);
-const data = await response.json();
+console.log(response.status);
```
@@ -104,11 +105,10 @@ const data = await response.json();
-```json
-// 204 No Content
-```
+No response body.
+
diff --git a/docs/api-reference/worklogs/get-total-time.md b/docs/api-reference/worklogs/get-total-time.md
index de1f73e..d84acea 100644
--- a/docs/api-reference/worklogs/get-total-time.md
+++ b/docs/api-reference/worklogs/get-total-time.md
@@ -1,20 +1,20 @@
---
title: Get total time for each work item
-description: List total time for each work item via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, time tracking, worklogs, time management
+description: Get total time for each work item via Plane API. HTTP request format, parameters, scopes, and example responses for get total time for each work item.
+keywords: plane, plane api, rest api, api integration, worklogs, get total time for each work item
---
# Get total time for each work item
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/total-worklogs/
+ /api/v1/workspaces/{slug}/projects/{project_id}/total-worklogs/
-Aggregates the worklogs and provides the total time spent on each issue in the project.
+Get project worklog summary
@@ -22,15 +22,15 @@ Aggregates the worklogs and provides the total time spent on each issue in the p
-
+
-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
-
+
-The unique identifier of the project
+Workspace slug
@@ -46,6 +46,7 @@ The unique identifier of the project
+
@@ -53,7 +54,7 @@ The unique identifier of the project
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/total-worklogs/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/total-worklogs/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -65,7 +66,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/total-worklogs/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/total-worklogs/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -76,7 +77,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/total-worklogs/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/total-worklogs/",
{
method: "GET",
headers: {
@@ -93,16 +94,16 @@ const data = await response.json();
```json
-{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ {
+ "issue_id": "550e8400-e29b-41d4-a716-446655440000",
+ "duration": 1
+ }
+]
```
+
diff --git a/docs/api-reference/worklogs/get-worklogs-for-issue.md b/docs/api-reference/worklogs/get-worklogs-for-issue.md
index aa23004..e6e4d92 100644
--- a/docs/api-reference/worklogs/get-worklogs-for-issue.md
+++ b/docs/api-reference/worklogs/get-worklogs-for-issue.md
@@ -1,20 +1,20 @@
---
title: List all worklogs for a work item
-description: List all worklogs for a work item via Plane API. HTTP GET request with pagination, filtering, and query parameters.
-keywords: plane, plane api, rest api, api integration, work items, issues, tasks, time tracking, worklogs, time management
+description: List all worklogs for a work item via Plane API. HTTP request format, parameters, scopes, and example responses for list all worklogs for a work item.
+keywords: plane, plane api, rest api, api integration, worklogs, list all worklogs for a work item
---
# List all worklogs for a work item
GET
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/worklogs/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/worklogs/
-Returns a list of all worklogs for a specific work item.
+List worklog entries
@@ -22,21 +22,21 @@ Returns a list of all worklogs for a specific work item.
-
+
-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`.
+Issue id.
-The unique identifier of the project
+Project ID
-
+
-The unique identifier of the work item
+Workspace slug
@@ -52,6 +52,7 @@ The unique identifier of the work item
+
@@ -59,8 +60,8 @@ The unique identifier of the work item
```bash
curl -X GET \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/worklogs/" \
- -H "X-API-Key: $PLANE_API_KEY"
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/worklogs/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
```
@@ -71,7 +72,7 @@ curl -X GET \
import requests
response = requests.get(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/worklogs/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/worklogs/",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())
@@ -82,7 +83,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/worklogs/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/worklogs/",
{
method: "GET",
headers: {
@@ -99,16 +100,24 @@ const data = await response.json();
```json
-{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
-}
+[
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "description": "Example description",
+ "duration": 1,
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "project_id": "550e8400-e29b-41d4-a716-446655440000",
+ "workspace_id": "550e8400-e29b-41d4-a716-446655440000",
+ "logged_by": "550e8400-e29b-41d4-a716-446655440000"
+ }
+]
```
+
diff --git a/docs/api-reference/worklogs/update-worklog.md b/docs/api-reference/worklogs/update-worklog.md
index 1d02bc9..a53773f 100644
--- a/docs/api-reference/worklogs/update-worklog.md
+++ b/docs/api-reference/worklogs/update-worklog.md
@@ -1,20 +1,20 @@
---
title: Update a worklog
-description: Update a worklog via Plane API. HTTP PATCH request format, editable fields, and example responses.
-keywords: plane, plane api, rest api, api integration, time tracking, worklogs, time management
+description: Update a worklog via Plane API. HTTP request format, parameters, scopes, and example responses for update a worklog.
+keywords: plane, plane api, rest api, api integration, worklogs, update a worklog
---
# Update a worklog
PATCH
- /api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-items/{work_item_id}/worklogs/{worklog_id}/
+ /api/v1/workspaces/{slug}/projects/{project_id}/work-items/{issue_id}/worklogs/{pk}/
-Update an existing worklog entry. You can change the description or duration of the worklog.
+Update a worklog entry
@@ -22,27 +22,27 @@ Update an existing worklog entry. You can change the description or duration of
-
+
-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`.
+Issue id.
-
+
-The unique identifier of the project
+Pk.
-
+
-The unique identifier of the work item
+Project ID
-
+
-The unique identifier of the worklog
+Workspace slug
@@ -55,15 +55,27 @@ The unique identifier of the worklog
-
+
-Description of the work done during the worklog
+Description.
-
+
-Time spent on the issue in minutes
+Duration.
+
+
+
+
+
+Created by.
+
+
+
+
+
+Updated by.
@@ -79,6 +91,7 @@ Time spent on the issue in minutes
+
@@ -86,13 +99,15 @@ Time spent on the issue in minutes
```bash
curl -X PATCH \
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/worklogs/{worklog_id}/" \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/worklogs/550e8400-e29b-41d4-a716-446655440000/" \
-H "X-API-Key: $PLANE_API_KEY" \
# Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
- "description": "example-description",
- "duration": 1
+ "description": "Example description",
+ "duration": 1,
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
}'
```
@@ -103,12 +118,14 @@ curl -X PATCH \
import requests
response = requests.patch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/worklogs/{worklog_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/worklogs/550e8400-e29b-41d4-a716-446655440000/",
headers={"X-API-Key": "your-api-key"},
json={
- 'description': 'example-description',
- 'duration': 1
-}
+ "description": "Example description",
+ "duration": 1,
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000"
+ }
)
print(response.json())
```
@@ -118,7 +135,7 @@ print(response.json())
```javascript
const response = await fetch(
- "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-items/work-item-uuid/worklogs/{worklog_id}/",
+ "https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-items/550e8400-e29b-41d4-a716-446655440001/worklogs/550e8400-e29b-41d4-a716-446655440000/",
{
method: "PATCH",
headers: {
@@ -126,8 +143,10 @@ const response = await fetch(
"Content-Type": "application/json",
},
body: JSON.stringify({
- description: "example-description",
+ description: "Example description",
duration: 1,
+ created_by: "550e8400-e29b-41d4-a716-446655440000",
+ updated_by: "550e8400-e29b-41d4-a716-446655440000",
}),
}
);
@@ -141,15 +160,21 @@ const data = await response.json();
```json
{
- "id": "project-uuid",
- "name": "Project Name",
- "identifier": "PROJ",
- "description": "Project description",
- "created_at": "2024-01-01T00:00:00Z"
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "description": "Example description",
+ "duration": 1,
+ "created_by": "550e8400-e29b-41d4-a716-446655440000",
+ "updated_by": "550e8400-e29b-41d4-a716-446655440000",
+ "project_id": "550e8400-e29b-41d4-a716-446655440000",
+ "workspace_id": "550e8400-e29b-41d4-a716-446655440000",
+ "logged_by": "550e8400-e29b-41d4-a716-446655440000"
}
```
+
diff --git a/docs/api-reference/workspace-features/get-workspace-features.md b/docs/api-reference/workspace-features/get-workspace-features.md
new file mode 100644
index 0000000..a469a4b
--- /dev/null
+++ b/docs/api-reference/workspace-features/get-workspace-features.md
@@ -0,0 +1,102 @@
+---
+title: Get workspace features
+description: Get workspace features via Plane API. HTTP request format, parameters, scopes, and example responses for get workspace features.
+keywords: plane, plane api, rest api, api integration, workspace features, get workspace features
+---
+
+# Get workspace features
+
+
+ GET
+ /api/v1/workspaces/{slug}/features/
+
+
+
+
+
+Get the features of a workspace
+
+
+
+### Path Parameters
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+`workspaces.features:read`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/features/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/features/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/features/", {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+});
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "project_grouping": true,
+ "initiatives": true,
+ "teams": true,
+ "customers": true,
+ "wiki": true,
+ "pi": true
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/workspace-features/overview.md b/docs/api-reference/workspace-features/overview.md
new file mode 100644
index 0000000..079f5e3
--- /dev/null
+++ b/docs/api-reference/workspace-features/overview.md
@@ -0,0 +1,63 @@
+---
+title: Overview
+description: Plane Workspace Features API overview. Learn how to inspect and update workspace feature flags with the Plane API.
+keywords: plane, plane api, rest api, api integration, workspace features, feature flags
+---
+
+# Overview
+
+Workspace features control which major Plane capabilities are enabled for a workspace.
+
+[Learn more about using the Plane API](https://developers.plane.so/api-reference/introduction)
+
+
+
+
+## The Workspace Feature Object
+
+### Attributes
+
+- `project_grouping` _boolean_
+
+ Project grouping.
+
+- `initiatives` _boolean_
+
+ Initiatives.
+
+- `teams` _boolean_
+
+ Teams.
+
+- `customers` _boolean_
+
+ Customers.
+
+- `wiki` _boolean_
+
+ Wiki.
+
+- `pi` _boolean_
+
+ Pi.
+
+
+
+
+
+
+```json
+{
+ "project_grouping": true,
+ "initiatives": true,
+ "teams": true,
+ "customers": true,
+ "wiki": true,
+ "pi": true
+}
+```
+
+
+
+
+
diff --git a/docs/api-reference/workspace-features/update-workspace-features.md b/docs/api-reference/workspace-features/update-workspace-features.md
new file mode 100644
index 0000000..61d1fbc
--- /dev/null
+++ b/docs/api-reference/workspace-features/update-workspace-features.md
@@ -0,0 +1,173 @@
+---
+title: Update workspace features
+description: Update workspace features via Plane API. HTTP request format, parameters, scopes, and example responses for update workspace features.
+keywords: plane, plane api, rest api, api integration, workspace features, update workspace features
+---
+
+# Update workspace features
+
+
+ PATCH
+ /api/v1/workspaces/{slug}/features/
+
+
+
+
+
+Update the features of a workspace
+
+
+
+### Path Parameters
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Project grouping.
+
+
+
+
+
+Initiatives.
+
+
+
+
+
+Teams.
+
+
+
+
+
+Customers.
+
+
+
+
+
+Wiki.
+
+
+
+
+
+Pi.
+
+
+
+
+
+
+
+
+### Scopes
+
+`workspaces.features:write`
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X PATCH \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/features/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "project_grouping": true,
+ "initiatives": true,
+ "teams": true,
+ "customers": true,
+ "wiki": true,
+ "pi": true
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.patch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/features/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "project_grouping": true,
+ "initiatives": true,
+ "teams": true,
+ "customers": true,
+ "wiki": true,
+ "pi": true
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/features/", {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ project_grouping: true,
+ initiatives: true,
+ teams: true,
+ customers: true,
+ wiki: true,
+ pi: true,
+ }),
+});
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "project_grouping": true,
+ "initiatives": true,
+ "teams": true,
+ "customers": true,
+ "wiki": true,
+ "pi": true
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/workspace-invitations/add-workspace-invitation.md b/docs/api-reference/workspace-invitations/add-workspace-invitation.md
new file mode 100644
index 0000000..8b29887
--- /dev/null
+++ b/docs/api-reference/workspace-invitations/add-workspace-invitation.md
@@ -0,0 +1,140 @@
+---
+title: Create workspace invitation
+description: Create workspace invitation via Plane API. HTTP request format, parameters, scopes, and example responses for create workspace invitation.
+keywords: plane, plane api, rest api, api integration, workspace invitations, create workspace invitation
+---
+
+# Create workspace invitation
+
+
+ POST
+ /api/v1/workspaces/{slug}/invitations/
+
+
+
+
+
+Create a workspace invite
+
+
+
+### Path Parameters
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Email.
+
+
+
+
+
+- `20` - Admin
+- `15` - Member
+- `5` - Guest
+
+
+
+
+
+
+
+
+### Scopes
+
+Workspace admin or owner permission required.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X POST \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "email": "Example Name",
+ "role": 20
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.post(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "email": "Example Name",
+ "role": 20
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/invitations/", {
+ method: "POST",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ email: "Example Name",
+ role: 20,
+ }),
+});
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "email": "Example Name",
+ "role": 20,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "responded_at": "2024-01-01T00:00:00Z",
+ "accepted": true
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/workspace-invitations/delete-workspace-invitation.md b/docs/api-reference/workspace-invitations/delete-workspace-invitation.md
new file mode 100644
index 0000000..556fa28
--- /dev/null
+++ b/docs/api-reference/workspace-invitations/delete-workspace-invitation.md
@@ -0,0 +1,102 @@
+---
+title: Delete workspace invitation
+description: Delete workspace invitation via Plane API. HTTP request format, parameters, scopes, and example responses for delete workspace invitation.
+keywords: plane, plane api, rest api, api integration, workspace invitations, delete workspace invitation
+---
+
+# Delete workspace invitation
+
+
+ DELETE
+ /api/v1/workspaces/{slug}/invitations/{pk}/
+
+
+
+
+
+Delete a workspace invite
+
+
+
+### Path Parameters
+
+
+
+
+
+Workspace invite ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+Workspace admin or owner permission required.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X DELETE \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.delete(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/550e8400-e29b-41d4-a716-446655440000/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.status_code)
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "DELETE",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+console.log(response.status);
+```
+
+
+
+
+
+
+No response body.
+
+
+
+
+
+
diff --git a/docs/api-reference/workspace-invitations/get-workspace-invitation-detail.md b/docs/api-reference/workspace-invitations/get-workspace-invitation-detail.md
new file mode 100644
index 0000000..08cdd46
--- /dev/null
+++ b/docs/api-reference/workspace-invitations/get-workspace-invitation-detail.md
@@ -0,0 +1,112 @@
+---
+title: Get workspace invitation
+description: Get workspace invitation via Plane API. HTTP request format, parameters, scopes, and example responses for get workspace invitation.
+keywords: plane, plane api, rest api, api integration, workspace invitations, get workspace invitation
+---
+
+# Get workspace invitation
+
+
+ GET
+ /api/v1/workspaces/{slug}/invitations/{pk}/
+
+
+
+
+
+Get a workspace invite by ID
+
+
+
+### Path Parameters
+
+
+
+
+
+Workspace invite ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+Workspace admin or owner permission required.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/550e8400-e29b-41d4-a716-446655440000/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "email": "Example Name",
+ "role": 20,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "responded_at": "2024-01-01T00:00:00Z",
+ "accepted": true
+}
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/workspace-invitations/list-workspace-invitations.md b/docs/api-reference/workspace-invitations/list-workspace-invitations.md
new file mode 100644
index 0000000..169c95a
--- /dev/null
+++ b/docs/api-reference/workspace-invitations/list-workspace-invitations.md
@@ -0,0 +1,105 @@
+---
+title: List workspace invitations
+description: List workspace invitations via Plane API. HTTP request format, parameters, scopes, and example responses for list workspace invitations.
+keywords: plane, plane api, rest api, api integration, workspace invitations, list workspace invitations
+---
+
+# List workspace invitations
+
+
+ GET
+ /api/v1/workspaces/{slug}/invitations/
+
+
+
+
+
+List all workspace invites for a workspace
+
+
+
+### Path Parameters
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Scopes
+
+Workspace admin or owner permission required.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X GET \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+```
+
+
+
+
+```python
+import requests
+
+response = requests.get(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/",
+ headers={"X-API-Key": "your-api-key"}
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch("https://api.plane.so/api/v1/workspaces/my-workspace/invitations/", {
+ method: "GET",
+ headers: {
+ "X-API-Key": "your-api-key",
+ },
+});
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+[
+ {
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "email": "Example Name",
+ "role": 20,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "responded_at": "2024-01-01T00:00:00Z",
+ "accepted": true
+ }
+]
+```
+
+
+
+
+
+
diff --git a/docs/api-reference/workspace-invitations/overview.md b/docs/api-reference/workspace-invitations/overview.md
new file mode 100644
index 0000000..f187290
--- /dev/null
+++ b/docs/api-reference/workspace-invitations/overview.md
@@ -0,0 +1,70 @@
+---
+title: Overview
+description: Plane Workspace Invitations API overview. Learn how to create and manage workspace invitations with the Plane API.
+keywords: plane, plane api, rest api, api integration, workspace invitations, member invites
+---
+
+# Overview
+
+Workspace invitations let admins invite users to join a workspace with specific access settings.
+
+[Learn more about Members](https://developers.plane.so/api-reference/members/overview)
+
+
+
+
+## The Workspace Invitation Object
+
+### Attributes
+
+- `id` _string_
+
+ Id.
+
+- `email` _string_
+
+ Email.
+
+- `role` _integer_
+ - `20` - Admin
+
+* `15` - Member
+* `5` - Guest
+
+- `created_at` _string_
+
+ Created at.
+
+- `updated_at` _string_
+
+ Updated at.
+
+- `responded_at` _string_
+
+ Responded at.
+
+- `accepted` _boolean_
+
+ Accepted.
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "email": "Example Name",
+ "role": 20,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "responded_at": "2024-01-01T00:00:00Z",
+ "accepted": true
+}
+```
+
+
+
+
+
diff --git a/docs/api-reference/workspace-invitations/update-workspace-invitation.md b/docs/api-reference/workspace-invitations/update-workspace-invitation.md
new file mode 100644
index 0000000..85aeb5b
--- /dev/null
+++ b/docs/api-reference/workspace-invitations/update-workspace-invitation.md
@@ -0,0 +1,149 @@
+---
+title: Update workspace invitation
+description: Update workspace invitation via Plane API. HTTP request format, parameters, scopes, and example responses for update workspace invitation.
+keywords: plane, plane api, rest api, api integration, workspace invitations, update workspace invitation
+---
+
+# Update workspace invitation
+
+
+ PATCH
+ /api/v1/workspaces/{slug}/invitations/{pk}/
+
+
+
+
+
+Update a workspace invite
+
+
+
+### Path Parameters
+
+
+
+
+
+Workspace invite ID
+
+
+
+
+
+Workspace slug
+
+
+
+
+
+
+
+
+### Body Parameters
+
+
+
+
+
+Email.
+
+
+
+
+
+- `20` - Admin
+- `15` - Member
+- `5` - Guest
+
+
+
+
+
+
+
+
+### Scopes
+
+Workspace admin or owner permission required.
+
+
+
+
+
+
+
+
+
+
+```bash
+curl -X PATCH \
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/550e8400-e29b-41d4-a716-446655440000/" \
+ -H "X-API-Key: $PLANE_API_KEY" \
+ # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "email": "Example Name",
+ "role": 20
+}'
+```
+
+
+
+
+```python
+import requests
+
+response = requests.patch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/550e8400-e29b-41d4-a716-446655440000/",
+ headers={"X-API-Key": "your-api-key"},
+ json={
+ "email": "Example Name",
+ "role": 20
+ }
+)
+print(response.json())
+```
+
+
+
+
+```javascript
+const response = await fetch(
+ "https://api.plane.so/api/v1/workspaces/my-workspace/invitations/550e8400-e29b-41d4-a716-446655440000/",
+ {
+ method: "PATCH",
+ headers: {
+ "X-API-Key": "your-api-key",
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ email: "Example Name",
+ role: 20,
+ }),
+ }
+);
+const data = await response.json();
+```
+
+
+
+
+
+
+```json
+{
+ "id": "550e8400-e29b-41d4-a716-446655440000",
+ "email": "Example Name",
+ "role": 20,
+ "created_at": "2024-01-01T00:00:00Z",
+ "updated_at": "2024-01-01T00:00:00Z",
+ "responded_at": "2024-01-01T00:00:00Z",
+ "accepted": true
+}
+```
+
+
+
+
+
+
diff --git a/docs/dev-tools/build-plane-app/oauth-scopes.md b/docs/dev-tools/build-plane-app/oauth-scopes.md
index b1888a4..a28a35d 100644
--- a/docs/dev-tools/build-plane-app/oauth-scopes.md
+++ b/docs/dev-tools/build-plane-app/oauth-scopes.md
@@ -97,6 +97,7 @@ This document lists all OAuth scopes available when building a Plane app. Reques
| Scope | Description |
| --------------------------- | ------------------------------------ |
| `workspaces.members:read` | Read workspace members |
+| `workspaces.members:write` | Manage workspace members |
| `workspaces.features:read` | Read workspace features |
| `workspaces.features:write` | Create and update workspace features |