API Code Examples

Learn how to integrate with our API using these code examples in various programming languages.

Authentication Examples

Python

import requests

API_KEY = 'your_api_key_here'
BASE_URL = 'https://api.vps-provider.com/v1'

headers = {
    'Authorization': f'Bearer {API_KEY}',
    'Content-Type': 'application/json'
}

# List instances
response = requests.get(f'{BASE_URL}/instances', headers=headers)
instances = response.json()['instances']

# Create instance
instance_data = {
    'name': 'web-server-1',
    'plan': 'standard-2x',
    'region': 'us-east',
    'image': 'ubuntu-22.04'
}
response = requests.post(f'{BASE_URL}/instances', headers=headers, json=instance_data)
new_instance = response.json()['instance']

Node.js

const axios = require('axios');

const API_KEY = 'your_api_key_here';
const BASE_URL = 'https://api.vps-provider.com/v1';

const client = axios.create({
  baseURL: BASE_URL,
  headers: {
    'Authorization': `Bearer ${API_KEY}`,
    'Content-Type': 'application/json'
  }
});

// List instances
async function listInstances() {
  try {
    const response = await client.get('/instances');
    return response.data.instances;
  } catch (error) {
    console.error('Error:', error.response.data);
    throw error;
  }
}

// Create instance
async function createInstance(instanceData) {
  try {
    const response = await client.post('/instances', instanceData);
    return response.data.instance;
  } catch (error) {
    console.error('Error:', error.response.data);
    throw error;
  }
}

Instance Management

Go

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

const (
    apiKey  = "your_api_key_here"
    baseURL = "https://api.vps-provider.com/v1"
)

type Instance struct {
    ID     string `json:"id"`
    Name   string `json:"name"`
    Status string `json:"status"`
}

func createInstance(name, plan, region, image string) (*Instance, error) {
    data := map[string]string{
        "name":   name,
        "plan":   plan,
        "region": region,
        "image":  image,
    }
    
    jsonData, err := json.Marshal(data)
    if err != nil {
        return nil, err
    }

    req, err := http.NewRequest("POST", baseURL+"/instances", bytes.NewBuffer(jsonData))
    if err != nil {
        return nil, err
    }

    req.Header.Set("Authorization", "Bearer "+apiKey)
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return nil, err
    }
    defer resp.Body.Close()

    var result struct {
        Instance *Instance `json:"instance"`
    }
    if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
        return nil, err
    }

    return result.Instance, nil
}

Error Handling

Ruby

require 'net/http'
require 'json'

class APIClient
  def initialize(api_key)
    @api_key = api_key
    @base_url = 'https://api.vps-provider.com/v1'
  end

  def list_instances
    uri = URI("#{@base_url}/instances")
    request = Net::HTTP::Get.new(uri)
    make_request(request)
  rescue => e
    handle_error(e)
  end

  private

  def make_request(request)
    request['Authorization'] = "Bearer #{@api_key}"
    request['Content-Type'] = 'application/json'

    response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
      http.request(request)
    end

    handle_response(response)
  end

  def handle_response(response)
    case response
    when Net::HTTPSuccess
      JSON.parse(response.body)
    else
      raise "API Error: #{response.code} - #{response.body}"
    end
  end

  def handle_error(error)
    case error
    when Net::HTTPClientError
      raise "Client Error: #{error.message}"
    when Net::HTTPServerError
      raise "Server Error: #{error.message}"
    else
      raise "Unknown Error: #{error.message}"
    end
  end
end

Next Steps

Ready to start building? Check out our API reference for complete endpoint documentation.