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



Authentication
- Cache authentication tokens
- Implement token refresh logic
- Handle expired tokens gracefully

Error Handling
- Implement exponential backoff
- Handle rate limits appropriately
- Log detailed error responses

Performance
- Use pagination for large datasets
- Minimize API calls
- Implement caching where appropriate

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?



- Support Portal

Updated on: 20/01/2025

Was this article helpful?

Share your feedback

Cancel

Thank you!