import os
from gcore import Gcore
client = Gcore(
api_key=os.environ.get("GCORE_API_KEY"), # This is the default and can be omitted
)
s3_storage_created = client.storage.object_storages.create(
location_name="s-region-1",
name="my-storage-prod",
)
print(s3_storage_created.id)package main
import (
"context"
"fmt"
"github.com/G-Core/gcore-go"
"github.com/G-Core/gcore-go/option"
"github.com/G-Core/gcore-go/storage"
)
func main() {
client := gcore.NewClient(
option.WithAPIKey("My API Key"),
)
s3StorageCreated, err := client.Storage.ObjectStorages.New(context.TODO(), storage.ObjectStorageNewParams{
LocationName: "s-region-1",
Name: "my-storage-prod",
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", s3StorageCreated.ID)
}
curl --request POST \
--url https://api.gcore.com/storage/v4/object_storages \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"location_name": "s-region-1",
"name": "my-storage-prod"
}
'const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({location_name: 's-region-1', name: 'my-storage-prod'})
};
fetch('https://api.gcore.com/storage/v4/object_storages', 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.gcore.com/storage/v4/object_storages",
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([
'location_name' => 's-region-1',
'name' => 'my-storage-prod'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://api.gcore.com/storage/v4/object_storages")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"location_name\": \"s-region-1\",\n \"name\": \"my-storage-prod\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/storage/v4/object_storages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"location_name\": \"s-region-1\",\n \"name\": \"my-storage-prod\"\n}"
response = http.request(request)
puts response.read_body{
"access_keys": [
{
"access_key": "AKIAIOSFODNN7EXAMPLE",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}
],
"address": "luxembourg-2.storage.example.com",
"created_at": "2025-08-05T09:17:02Z",
"full_name": "696-my-storage-prod",
"id": 1,
"location_name": "luxembourg-2",
"name": "my-storage-prod",
"provisioning_status": "active"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Create S3-compatible storage
Creates a new S3-compatible storage instance in the specified location and returns the storage details including credentials.
import os
from gcore import Gcore
client = Gcore(
api_key=os.environ.get("GCORE_API_KEY"), # This is the default and can be omitted
)
s3_storage_created = client.storage.object_storages.create(
location_name="s-region-1",
name="my-storage-prod",
)
print(s3_storage_created.id)package main
import (
"context"
"fmt"
"github.com/G-Core/gcore-go"
"github.com/G-Core/gcore-go/option"
"github.com/G-Core/gcore-go/storage"
)
func main() {
client := gcore.NewClient(
option.WithAPIKey("My API Key"),
)
s3StorageCreated, err := client.Storage.ObjectStorages.New(context.TODO(), storage.ObjectStorageNewParams{
LocationName: "s-region-1",
Name: "my-storage-prod",
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", s3StorageCreated.ID)
}
curl --request POST \
--url https://api.gcore.com/storage/v4/object_storages \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"location_name": "s-region-1",
"name": "my-storage-prod"
}
'const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({location_name: 's-region-1', name: 'my-storage-prod'})
};
fetch('https://api.gcore.com/storage/v4/object_storages', 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.gcore.com/storage/v4/object_storages",
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([
'location_name' => 's-region-1',
'name' => 'my-storage-prod'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://api.gcore.com/storage/v4/object_storages")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"location_name\": \"s-region-1\",\n \"name\": \"my-storage-prod\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/storage/v4/object_storages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"location_name\": \"s-region-1\",\n \"name\": \"my-storage-prod\"\n}"
response = http.request(request)
puts response.read_body{
"access_keys": [
{
"access_key": "AKIAIOSFODNN7EXAMPLE",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}
],
"address": "luxembourg-2.storage.example.com",
"created_at": "2025-08-05T09:17:02Z",
"full_name": "696-my-storage-prod",
"id": 1,
"location_name": "luxembourg-2",
"name": "my-storage-prod",
"provisioning_status": "active"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
API key for authentication. Make sure to include the word apikey, followed by a single space and then your token.
Example: apikey 1234_abcdef
Body
Response
S3StorageResV4
S3 access keys
Show child attributes
Show child attributes
Full hostname/address for accessing the storage endpoint
"luxembourg-2.storage.example.com"
ISO 8601 timestamp when the storage was created
"2025-08-05T09:17:02Z"
Read-only internal full name of the storage, composed as "{client_id}-{name}".
Used internally by the backend. Clients should continue to identify the storage by name.
"696-my-storage-prod"
Unique identifier for the storage instance
1
Geographic location code where the storage is provisioned
"luxembourg-2"
User-defined name for the storage instance, as supplied at creation time.
"my-storage-prod"
Lifecycle status of the storage. Use this to check readiness before operations.
creating, active, updating, deleting, deleted "active"
Was this page helpful?