Update module details
curl --request PATCH \
--url https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"start_date": "<string>",
"target_date": "<string>",
"status": "<string>",
"lead": "<string>",
"members": [
"<string>"
],
"external_source": "<string>",
"external_id": "<string>"
}
'import requests
url = "https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/"
payload = {
"name": "<string>",
"description": "<string>",
"start_date": "<string>",
"target_date": "<string>",
"status": "<string>",
"lead": "<string>",
"members": ["<string>"],
"external_source": "<string>",
"external_id": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
start_date: '<string>',
target_date: '<string>',
status: '<string>',
lead: '<string>',
members: ['<string>'],
external_source: '<string>',
external_id: '<string>'
})
};
fetch('https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'start_date' => '<string>',
'target_date' => '<string>',
'status' => '<string>',
'lead' => '<string>',
'members' => [
'<string>'
],
'external_source' => '<string>',
'external_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"start_date\": \"<string>\",\n \"target_date\": \"<string>\",\n \"status\": \"<string>\",\n \"lead\": \"<string>\",\n \"members\": [\n \"<string>\"\n ],\n \"external_source\": \"<string>\",\n \"external_id\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"start_date\": \"<string>\",\n \"target_date\": \"<string>\",\n \"status\": \"<string>\",\n \"lead\": \"<string>\",\n \"members\": [\n \"<string>\"\n ],\n \"external_source\": \"<string>\",\n \"external_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"start_date\": \"<string>\",\n \"target_date\": \"<string>\",\n \"status\": \"<string>\",\n \"lead\": \"<string>\",\n \"members\": [\n \"<string>\"\n ],\n \"external_source\": \"<string>\",\n \"external_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyModules
Update module details
Updates the details of a module
PATCH
/
api
/
v1
/
workspaces
/
{workspace_slug}
/
projects
/
{project_id}
/
modules
/
{module_id}
/
Update module details
curl --request PATCH \
--url https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"start_date": "<string>",
"target_date": "<string>",
"status": "<string>",
"lead": "<string>",
"members": [
"<string>"
],
"external_source": "<string>",
"external_id": "<string>"
}
'import requests
url = "https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/"
payload = {
"name": "<string>",
"description": "<string>",
"start_date": "<string>",
"target_date": "<string>",
"status": "<string>",
"lead": "<string>",
"members": ["<string>"],
"external_source": "<string>",
"external_id": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
start_date: '<string>',
target_date: '<string>',
status: '<string>',
lead: '<string>',
members: ['<string>'],
external_source: '<string>',
external_id: '<string>'
})
};
fetch('https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'start_date' => '<string>',
'target_date' => '<string>',
'status' => '<string>',
'lead' => '<string>',
'members' => [
'<string>'
],
'external_source' => '<string>',
'external_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"start_date\": \"<string>\",\n \"target_date\": \"<string>\",\n \"status\": \"<string>\",\n \"lead\": \"<string>\",\n \"members\": [\n \"<string>\"\n ],\n \"external_source\": \"<string>\",\n \"external_id\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"start_date\": \"<string>\",\n \"target_date\": \"<string>\",\n \"status\": \"<string>\",\n \"lead\": \"<string>\",\n \"members\": [\n \"<string>\"\n ],\n \"external_source\": \"<string>\",\n \"external_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/modules/{module_id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"start_date\": \"<string>\",\n \"target_date\": \"<string>\",\n \"status\": \"<string>\",\n \"lead\": \"<string>\",\n \"members\": [\n \"<string>\"\n ],\n \"external_source\": \"<string>\",\n \"external_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyPath parameters
string
required
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.string
required
The unique identifier of the project.
string
required
The unique identifier for the module.
Body parameters
string
Name of the module.
string
Description of the module.
string
Start date of the module in YYYY-MM-DD format.
string
Target date of the module in YYYY-MM-DD format.
string
Current status of the module. Possible values:
backlog, planned, in-progress, paused, completed, cancelled.string
ID of the user who leads the module.
string[]
Array of member user IDs assigned to the module.
string
External source identifier.
string
External ID from the external source.

