Articles on: API

API Endpoints


Overview

Gozunga Cloud provides RESTful API endpoints for managing your cloud resources. This documentation is centered around our SiouxFalls region.


Our platform uses OpenStack at its foundation and thus existing tools that use OpenStack's APIs are compatible with our platform.

Base URLs

All API endpoints are accessible through the following base URL pattern:

https://cloud.fsd1.gozunga.com:<service-port>

Service Endpoints

Identity Service (Keystone)

Base URL: https://cloud.fsd1.gozunga.com:5000

  • Authentication and token management
  • User management


Common Operations:

# Get auth token
POST /v3/auth/tokens

# List projects
GET /v3/projects

# List users
GET /v3/users

Compute Service (Nova)

Base URL: https://cloud.fsd1.gozunga.com:8774

  • Create / Modify / Delete Cloud Instances

Common Operations:

# List servers
GET /v2.1/servers

# Create server
POST /v2.1/servers

# Get server details
GET /v2.1/servers/{server_id}

# List flavors
GET /v2.1/flavors

Block Storage (Cinder)

Base URL: https://cloud.fsd1.gozunga.com:8776

  • Volume management
  • Snapshot operations
  • Volume type management
  • Backup operations

Common Operations:

# List volumes
GET /v3/volumes

# Create volume
POST /v3/volumes

# Create snapshot
POST /v3/snapshots

Network Service (Neutron)

Base URL: https://cloud.fsd1.gozunga.com:9696

  • Network management
  • Subnet operations
  • Security group configuration
  • Router management
  • Load balancer configuration

Common Operations:

# List networks
GET /v2.0/networks

# Create port
POST /v2.0/ports

# List security groups
GET /v2.0/security-groups

Image Service (Glance)

Base URL: https://cloud.fsd1.gozunga.com:9292

  • Used for managing operating system images
  • Modify image metadata

Common Operations:

# List images
GET /v2/images

# Create image
POST /v2/images

# Upload image data
PUT /v2/images/{image_id}/file

Object Storage (S3)

Base URL: https://cloud.fsd1.gozunga.com:6780

  • Container management
  • Object operations
  • Access control
  • Large object support

Note: Use Signature v2 option if available


API Versions

Each service may support multiple API versions. Always use the latest stable version unless you have specific compatibility requirements.

Current Stable Versions:

  • Identity: v3
  • Compute: v2.1
  • Block Storage: v3
  • Network: v2.0
  • Image: v2
  • Object Storage: v1

Request Format

Headers

Content-Type: application/json
X-Auth-Token: {your_auth_token}

Example Request

curl -X GET \
https://cloud.fsd1.gozunga.com:8774/v2.1/servers \
-H 'X-Auth-Token: your_token' \
-H 'Content-Type: application/json'

Response Format

Success Response

{
"servers": [
{
"id": "server-id",
"name": "server-name",
"status": "ACTIVE"
}
]
}

Error Response

{
"error": {
"code": 404,
"message": "Resource not found",
"details": "Additional error details"
}
}

Rate Limits

  • Default rate limit: 50 requests per second
  • Burst limit: 100 requests
  • Rate limits are per project
  • Exceeded limits return 429 Too Many Requests

Headers for rate limit information:

X-Rate-Limit-Limit: 50
X-Rate-Limit-Remaining: 49
X-Rate-Limit-Reset: 1234567890

Best Practices

  1. Authentication
  • Cache authentication tokens
  • Implement token refresh logic
  • Handle expired tokens gracefully

  1. Error Handling
  • Implement exponential backoff
  • Handle rate limits appropriately
  • Log detailed error responses

  1. Performance
  • Use pagination for large datasets
  • Minimize API calls
  • Implement caching where appropriate

  1. Security
  • Always use HTTPS
  • Protect authentication tokens
  • Implement proper error handling

SDK Support

We recommend using official OpenStack SDKs using Application Credentials, available from Access → Application Credentials in our Cloud Management Portal:

First, install the required packages:

pip install python-openstacksdk

# Python OpenStack SDK
from openstack import connection

conn = connection.Connection(
auth_url='https://cloud.fsd1.gozunga.com:5000/v3',
project_name='your_project',
username='your_username',
password='your_password',
region_name='fsd1'
)

# List servers
servers = conn.compute.servers()

Need Help?

Updated on: 20/01/2025

Was this article helpful?

Share your feedback

Cancel

Thank you!