Spaces
Create a space
POST
/
{team_id}
/
projects
Create a new project
curl --request POST \
--url https://api.superthread.com/v1/{team_id}/projects \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "My Project Title",
"description": "Project description",
"is_public": false,
"is_private": false,
"overview_page_id": "22",
"members": [
{
"user_id": "u-dsu0j19"
}
],
"is_view_only": true
}
'import requests
url = "https://api.superthread.com/v1/{team_id}/projects"
payload = {
"title": "My Project Title",
"description": "Project description",
"is_public": False,
"is_private": False,
"overview_page_id": "22",
"members": [{ "user_id": "u-dsu0j19" }],
"is_view_only": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'My Project Title',
description: 'Project description',
is_public: false,
is_private: false,
overview_page_id: '22',
members: [{user_id: 'u-dsu0j19'}],
is_view_only: true
})
};
fetch('https://api.superthread.com/v1/{team_id}/projects', 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.superthread.com/v1/{team_id}/projects",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'My Project Title',
'description' => 'Project description',
'is_public' => false,
'is_private' => false,
'overview_page_id' => '22',
'members' => [
[
'user_id' => 'u-dsu0j19'
]
],
'is_view_only' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.superthread.com/v1/{team_id}/projects"
payload := strings.NewReader("{\n \"title\": \"My Project Title\",\n \"description\": \"Project description\",\n \"is_public\": false,\n \"is_private\": false,\n \"overview_page_id\": \"22\",\n \"members\": [\n {\n \"user_id\": \"u-dsu0j19\"\n }\n ],\n \"is_view_only\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.superthread.com/v1/{team_id}/projects")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"My Project Title\",\n \"description\": \"Project description\",\n \"is_public\": false,\n \"is_private\": false,\n \"overview_page_id\": \"22\",\n \"members\": [\n {\n \"user_id\": \"u-dsu0j19\"\n }\n ],\n \"is_view_only\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superthread.com/v1/{team_id}/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"My Project Title\",\n \"description\": \"Project description\",\n \"is_public\": false,\n \"is_private\": false,\n \"overview_page_id\": \"22\",\n \"members\": [\n {\n \"user_id\": \"u-dsu0j19\"\n }\n ],\n \"is_view_only\": true\n}"
response = http.request(request)
puts response.read_body{
"project": {
"id": "421",
"team_id": "tDsu0j19",
"title": "My Project",
"description": "<string>",
"icon": {
"src": "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
"id": "<string>",
"blurhash": "LEHV6nWB2yk8pyoJadR*.7kCMdnj",
"color": "black",
"emoji": "thumbsup"
},
"overview_page_id": "<string>",
"user_id": "u-dsu0j19",
"user_id_updated": "uDsu0j19",
"user": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"user_updated": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"time_created": 1608742037016,
"time_updated": 1608742037016,
"time_expires": 1608742037016,
"members": [
{
"user_id": "u-dsu0j19",
"assigned_date": 1608742037016
}
],
"is_member": true,
"total_members": 7,
"total_members_online": 2,
"is_public": true,
"is_private": true,
"page_order": [
{}
],
"pages": [
{
"id": "<string>",
"title": "<string>",
"icon": {
"src": "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
"id": "<string>",
"blurhash": "LEHV6nWB2yk8pyoJadR*.7kCMdnj",
"color": "black",
"emoji": "thumbsup"
}
}
],
"trashed": {
"user_deleted": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"time_deleted": 1608742037016
},
"archive_page_order": [
{}
],
"archive_pages": [
{
"id": "<string>",
"title": "<string>",
"icon": {
"src": "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
"id": "<string>",
"blurhash": "LEHV6nWB2yk8pyoJadR*.7kCMdnj",
"color": "black",
"emoji": "thumbsup"
}
}
],
"board_order": {},
"boards": [
{
"id": "<string>",
"title": "<string>"
}
],
"sprints": [
{
"id": "<string>",
"title": "<string>",
"start_date": 1608742037016,
"end_date": 1608742037016
}
],
"is_view_only": true
}
}{
"error": {
"id": "err5f744ab",
"code": 403,
"sec": "SEC:000-00014",
"message": "You do not have access to this resource",
"date": 1608742037016
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Team ID is an alphanumerical string that identifies a Team. This is externally referred to as a "Workspace".
Body
application/json
Project object that needs to be created
Example:
"My Project Title"
Example:
"Project description"
Show child attributes
Show child attributes
Deprecated. Use is_private instead.
Example:
false
Example:
false
Example:
"22"
Maximum array length:
20Show child attributes
Show child attributes
Available options:
, fibonacci, exponential, tshirt Response
Newly created project
Show child attributes
Show child attributes
Previous
Update a spaceUpdate properties of a project (Space) such as its title, description, privacy
settings, and position in the sidebar. You can also set or remove custom icons
and adjust estimation systems.
All unspecified fields remain unchanged.
Next
⌘I
Create a new project
curl --request POST \
--url https://api.superthread.com/v1/{team_id}/projects \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "My Project Title",
"description": "Project description",
"is_public": false,
"is_private": false,
"overview_page_id": "22",
"members": [
{
"user_id": "u-dsu0j19"
}
],
"is_view_only": true
}
'import requests
url = "https://api.superthread.com/v1/{team_id}/projects"
payload = {
"title": "My Project Title",
"description": "Project description",
"is_public": False,
"is_private": False,
"overview_page_id": "22",
"members": [{ "user_id": "u-dsu0j19" }],
"is_view_only": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'My Project Title',
description: 'Project description',
is_public: false,
is_private: false,
overview_page_id: '22',
members: [{user_id: 'u-dsu0j19'}],
is_view_only: true
})
};
fetch('https://api.superthread.com/v1/{team_id}/projects', 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.superthread.com/v1/{team_id}/projects",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'My Project Title',
'description' => 'Project description',
'is_public' => false,
'is_private' => false,
'overview_page_id' => '22',
'members' => [
[
'user_id' => 'u-dsu0j19'
]
],
'is_view_only' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.superthread.com/v1/{team_id}/projects"
payload := strings.NewReader("{\n \"title\": \"My Project Title\",\n \"description\": \"Project description\",\n \"is_public\": false,\n \"is_private\": false,\n \"overview_page_id\": \"22\",\n \"members\": [\n {\n \"user_id\": \"u-dsu0j19\"\n }\n ],\n \"is_view_only\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.superthread.com/v1/{team_id}/projects")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"My Project Title\",\n \"description\": \"Project description\",\n \"is_public\": false,\n \"is_private\": false,\n \"overview_page_id\": \"22\",\n \"members\": [\n {\n \"user_id\": \"u-dsu0j19\"\n }\n ],\n \"is_view_only\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superthread.com/v1/{team_id}/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"My Project Title\",\n \"description\": \"Project description\",\n \"is_public\": false,\n \"is_private\": false,\n \"overview_page_id\": \"22\",\n \"members\": [\n {\n \"user_id\": \"u-dsu0j19\"\n }\n ],\n \"is_view_only\": true\n}"
response = http.request(request)
puts response.read_body{
"project": {
"id": "421",
"team_id": "tDsu0j19",
"title": "My Project",
"description": "<string>",
"icon": {
"src": "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
"id": "<string>",
"blurhash": "LEHV6nWB2yk8pyoJadR*.7kCMdnj",
"color": "black",
"emoji": "thumbsup"
},
"overview_page_id": "<string>",
"user_id": "u-dsu0j19",
"user_id_updated": "uDsu0j19",
"user": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"user_updated": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"time_created": 1608742037016,
"time_updated": 1608742037016,
"time_expires": 1608742037016,
"members": [
{
"user_id": "u-dsu0j19",
"assigned_date": 1608742037016
}
],
"is_member": true,
"total_members": 7,
"total_members_online": 2,
"is_public": true,
"is_private": true,
"page_order": [
{}
],
"pages": [
{
"id": "<string>",
"title": "<string>",
"icon": {
"src": "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
"id": "<string>",
"blurhash": "LEHV6nWB2yk8pyoJadR*.7kCMdnj",
"color": "black",
"emoji": "thumbsup"
}
}
],
"trashed": {
"user_deleted": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"time_deleted": 1608742037016
},
"archive_page_order": [
{}
],
"archive_pages": [
{
"id": "<string>",
"title": "<string>",
"icon": {
"src": "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
"id": "<string>",
"blurhash": "LEHV6nWB2yk8pyoJadR*.7kCMdnj",
"color": "black",
"emoji": "thumbsup"
}
}
],
"board_order": {},
"boards": [
{
"id": "<string>",
"title": "<string>"
}
],
"sprints": [
{
"id": "<string>",
"title": "<string>",
"start_date": 1608742037016,
"end_date": 1608742037016
}
],
"is_view_only": true
}
}{
"error": {
"id": "err5f744ab",
"code": 403,
"sec": "SEC:000-00014",
"message": "You do not have access to this resource",
"date": 1608742037016
}
}