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` + +
+ +
+ +
+ + + + + + + + + +```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` + +
+ +
+ +
+ + + + + + + + + +```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 + +
+ + + +Asset ID + + + +
+
+ +
+ +### Scopes + +`assets:write` + +
+ +
+ +
+ + + + + + + + + +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` + +
+ +
+ +
+ + + + + + + + + +```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 + +
+ + + +Asset ID + + + +
+
+ +
+ +### Body Parameters + +
+ + + +Additional attributes to update for the asset + + + +
+
+ +
+ +### Scopes + +`assets:write` + +
+ +
+ +
+ + + + + + + + + +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` + +
+ +
+ +
+ + + + + + + + + +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()) @@ -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) ``` @@ -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()) - + ```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()) @@ -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()) @@ -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()) - + ```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) ``` @@ -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) ``` @@ -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()) @@ -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()) @@ -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) ``` - + -```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` + +
+ +
+ +
+ + + + + + + + + +```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` + +
+ +
+ +
+ + + + + + + + + +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` + +
+ +
+ +
+ + + + + + + + + +```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` + +
+ +
+ +
+ + + + + + + + + +```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()) @@ -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()) @@ -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` + +
+ +
+ +
+ + + + + + + + + +```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. + +
+ +
+ +
+ + + + + + + + + +```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. + +
+ +
+ +
+ + + + + + + + + +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. + +
+ +
+ +
+ + + + + + + + + +```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. + +
+ +
+ +
+ + + + + + + + + +```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. + +
+ +
+ +
+ + + + + + + + + +```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. + +
+ +
+ +
+ + + + + + + + + +```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()) @@ -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()) @@ -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()) @@ -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` + +
+ +
+ +
+ + + + + + + + + +```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` + +
+ +
+ +
+ + + + + + + + + +```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. + +
+ +
+ +
+ + + + + + + + + +```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. + +
+ +
+ +
+ + + + + + + + + +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. + +
+ +
+ +
+ + + + + + + + + +```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. + +
+ +
+ +
+ + + + + + + + + +```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. + +
+ +
+ +
+ + + + + + + + + +```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 |