curl --request POST \
--url https://api.chainstack.com/v1/projects/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My public chain project",
"description": "My public chain project description",
"type": "public"
}
'import requests
url = "https://api.chainstack.com/v1/projects/"
payload = {
"name": "My public chain project",
"description": "My public chain project description",
"type": "public"
}
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 public chain project',
description: 'My public chain project description',
type: 'public'
})
};
fetch('https://api.chainstack.com/v1/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/v1/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 public chain project',
'description' => 'My public chain project description',
'type' => 'public'
]),
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/v1/projects/"
payload := strings.NewReader("{\n \"name\": \"My public chain project\",\n \"description\": \"My public chain project description\",\n \"type\": \"public\"\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/v1/projects/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My public chain project\",\n \"description\": \"My public chain project description\",\n \"type\": \"public\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chainstack.com/v1/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 public chain project\",\n \"description\": \"My public chain project description\",\n \"type\": \"public\"\n}"
response = http.request(request)
puts response.read_body{
"id": "PR-123-456",
"name": "My public chain project",
"type": "public",
"networks": 0,
"created_at": "2020-06-15T07:38:00.747Z",
"creator": {
"id": "UR-111-111-111",
"email": "john.smith@example.com",
"first_name": "John",
"last_name": "Smith",
"organization": {
"id": "RG-123-456",
"name": "My organization"
}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {}
}
}Create a project with the Chainstack Platform API
Create a new project to organize your blockchain networks and nodes on Chainstack. Send a POST request to /v1/projects/ with the project details.
curl --request POST \
--url https://api.chainstack.com/v1/projects/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My public chain project",
"description": "My public chain project description",
"type": "public"
}
'import requests
url = "https://api.chainstack.com/v1/projects/"
payload = {
"name": "My public chain project",
"description": "My public chain project description",
"type": "public"
}
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 public chain project',
description: 'My public chain project description',
type: 'public'
})
};
fetch('https://api.chainstack.com/v1/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/v1/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 public chain project',
'description' => 'My public chain project description',
'type' => 'public'
]),
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/v1/projects/"
payload := strings.NewReader("{\n \"name\": \"My public chain project\",\n \"description\": \"My public chain project description\",\n \"type\": \"public\"\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/v1/projects/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My public chain project\",\n \"description\": \"My public chain project description\",\n \"type\": \"public\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.chainstack.com/v1/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 public chain project\",\n \"description\": \"My public chain project description\",\n \"type\": \"public\"\n}"
response = http.request(request)
puts response.read_body{
"id": "PR-123-456",
"name": "My public chain project",
"type": "public",
"networks": 0,
"created_at": "2020-06-15T07:38:00.747Z",
"creator": {
"id": "UR-111-111-111",
"email": "john.smith@example.com",
"first_name": "John",
"last_name": "Smith",
"organization": {
"id": "RG-123-456",
"name": "My organization"
}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {}
}
}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?