curl --request POST \
--url https://api.chainstack.com/v2/projects/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My project",
"description": "My project description"
}
'import requests
url = "https://api.chainstack.com/v2/projects/"
payload = {
"name": "My project",
"description": "My project description"
}
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({name: 'My project', description: 'My project description'})
};
fetch('https://api.chainstack.com/v2/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.chainstack.com/v2/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([
'name' => 'My project',
'description' => 'My project description'
]),
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.chainstack.com/v2/projects/"
payload := strings.NewReader("{\n \"name\": \"My project\",\n \"description\": \"My project description\"\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.chainstack.com/v2/projects/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My project\",\n \"description\": \"My project description\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chainstack.com/v2/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 \"name\": \"My project\",\n \"description\": \"My project description\"\n}"
response = http.request(request)
puts response.read_body{
"id": "PR-123-456-789",
"name": "My project",
"description": "My project description",
"type": "public",
"members": 0,
"networks": 0,
"creator": {
"id": "UR-111-111-111",
"email": "user@example.com",
"first_name": "John",
"last_name": "Smith",
"organization": {
"id": "RG-123-456",
"name": "My organization"
}
},
"created_at": "2023-01-01T00:00:00.000000Z"
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Create a project with the Chainstack Platform API v2
Create a new project using the Chainstack Platform API v2 to organize networks and nodes. Send a POST request to /v2/projects/ with the project payload.
curl --request POST \
--url https://api.chainstack.com/v2/projects/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My project",
"description": "My project description"
}
'import requests
url = "https://api.chainstack.com/v2/projects/"
payload = {
"name": "My project",
"description": "My project description"
}
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({name: 'My project', description: 'My project description'})
};
fetch('https://api.chainstack.com/v2/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.chainstack.com/v2/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([
'name' => 'My project',
'description' => 'My project description'
]),
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.chainstack.com/v2/projects/"
payload := strings.NewReader("{\n \"name\": \"My project\",\n \"description\": \"My project description\"\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.chainstack.com/v2/projects/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My project\",\n \"description\": \"My project description\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chainstack.com/v2/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 \"name\": \"My project\",\n \"description\": \"My project description\"\n}"
response = http.request(request)
puts response.read_body{
"id": "PR-123-456-789",
"name": "My project",
"description": "My project description",
"type": "public",
"members": 0,
"networks": 0,
"creator": {
"id": "UR-111-111-111",
"email": "user@example.com",
"first_name": "John",
"last_name": "Smith",
"organization": {
"id": "RG-123-456",
"name": "My organization"
}
},
"created_at": "2023-01-01T00:00:00.000000Z"
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Chainstack API uses API keys to authenticate requests. You can view and manage your API keys in the platform UI.
Your API keys carry many privileges, so be sure to keep them secure!
Provide your API key as the Authorization header. The value of the header consists of Bearer prefix and secret key generated through the platform UI.
curl -X GET 'https://api.chainstack.com/v1/organization/' \
--header 'Authorization: Bearer FX7CWlLg.FMpAO8cgCX2N7s41EncRru2nb5CmTZUt'
All API requests must be made over HTTPS.
Body
Response
Name of the project.
Description of the project.
Type of the project.
publicfor public chain project
public Number of members invited to the consortium project.
Only for the consortium project.
Number of networks created in the project.
Creator of the project.
Show child attributes
Show child attributes
When the project was created.
Was this page helpful?