Copydium Logo
Copydium

SDK Examples

Use your language’s HTTP client to call our API—no SDKs needed. Include your API key in the X-API-Key header.

Node.js

// Node 18+ (native fetch)
const API_BASE_URL = 'https://api.copydium.com';
const API_KEY = 'sk_live_abc123def456...';

// GET: Dashboard stats
const statsRes = await fetch(API_BASE_URL + '/api/v1/reports/user/dashboard-stats', {
  headers: { 'X-API-Key': API_KEY }
});
console.log(await statsRes.json());

// POST: Create trading account
const createRes = await fetch(API_BASE_URL + '/api/v1/taccounts', {
  method: 'POST',
  headers: { 'X-API-Key': API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    serverId: 'srv_123',
    accountId: '12345678',
    tradePlatform: 'TRADE_PLATFORM_MT4',
    accountType: 'T_ACCOUNT_TYPE_FOLLOWER',
    password: 'your-password'
  })
});
console.log(await createRes.json());

Python

import requests

API_BASE_URL = 'https://api.copydium.com'
API_KEY = 'sk_live_abc123def456...'
headers = { 'X-API-Key': API_KEY }

# GET: Dashboard stats
r = requests.get(API_BASE_URL + '/api/v1/reports/user/dashboard-stats', headers=headers)
print(r.json())

# POST: Create trading account
payload = {
  'serverId': 'srv_123',
  'accountId': '12345678',
  'tradePlatform': 'TRADE_PLATFORM_MT4',
  'accountType': 'T_ACCOUNT_TYPE_FOLLOWER',
  'password': 'your-password'
}
r = requests.post(API_BASE_URL + '/api/v1/taccounts', headers={**headers, 'Content-Type': 'application/json'}, json=payload)
print(r.json())

PHP

<?php
$API_BASE_URL = 'https://api.copydium.com';
$API_KEY = 'sk_live_abc123def456...';

// GET: Dashboard stats
$ch = curl_init($API_BASE_URL . '/api/v1/reports/user/dashboard-stats');
curl_setopt_array($ch, [CURLOPT_HTTPHEADER => ["X-API-Key: $API_KEY"], CURLOPT_RETURNTRANSFER => true]);
$stats = curl_exec($ch);
curl_close($ch);
print_r($stats);

// POST: Create trading account
$payload = json_encode([
  'serverId' => 'srv_123',
  'accountId' => '12345678',
  'tradePlatform' => 'TRADE_PLATFORM_MT4',
  'accountType' => 'T_ACCOUNT_TYPE_FOLLOWER',
  'password' => 'your-password'
]);
$ch = curl_init($API_BASE_URL . '/api/v1/taccounts');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => $payload,
  CURLOPT_HTTPHEADER => ["X-API-Key: $API_KEY", 'Content-Type: application/json'],
  CURLOPT_RETURNTRANSFER => true
]);
$resp = curl_exec($ch);
curl_close($ch);
print_r($resp);

Go

package main

import ("bytes"; "fmt"; "io"; "net/http")

func main() {
  api := "https://api.copydium.com"
  key := "sk_live_abc123def456..."

  // GET: Dashboard stats
  req, _ := http.NewRequest("GET", api+"/api/v1/reports/user/dashboard-stats", nil)
  req.Header.Set("X-API-Key", key)
  res, _ := http.DefaultClient.Do(req)
  body, _ := io.ReadAll(res.Body); fmt.Println(string(body))
  res.Body.Close()

  // POST: Create trading account
  payload := []byte(`{"serverId":"srv_123","accountId":"12345678","tradePlatform":"TRADE_PLATFORM_MT4","accountType":"T_ACCOUNT_TYPE_FOLLOWER","password":"your-password"}`)
  req2, _ := http.NewRequest("POST", api+"/api/v1/taccounts", bytes.NewBuffer(payload))
  req2.Header.Set("X-API-Key", key)
  req2.Header.Set("Content-Type", "application/json")
  res2, _ := http.DefaultClient.Do(req2)
  body2, _ := io.ReadAll(res2.Body); fmt.Println(string(body2))
  res2.Body.Close()
}

Ruby

require 'net/http'; require 'uri'; require 'json'

api = 'https://api.copydium.com'
key = 'sk_live_abc123def456...'

# GET: Dashboard stats
uri = URI(api + '/api/v1/reports/user/dashboard-stats')
req = Net::HTTP::Get.new(uri); req['X-API-Key'] = key
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
puts res.body

# POST: Create trading account
uri = URI(api + '/api/v1/taccounts')
req = Net::HTTP::Post.new(uri)
req['X-API-Key'] = key; req['Content-Type'] = 'application/json'
req.body = { serverId: 'srv_123', accountId: '12345678', tradePlatform: 'TRADE_PLATFORM_MT4', accountType: 'T_ACCOUNT_TYPE_FOLLOWER', password: 'your-password' }.to_json
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
puts res.body

Java

import java.net.http.*; import java.net.*; import java.time.*;

var API_BASE_URL = "https://api.copydium.com";
var API_KEY = "sk_live_abc123def456...";
var client = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(10)).build();

// GET: Dashboard stats
var req1 = HttpRequest.newBuilder(URI.create(API_BASE_URL + "/api/v1/reports/user/dashboard-stats"))
  .header("X-API-Key", API_KEY).GET().build();
var res1 = client.send(req1, HttpResponse.BodyHandlers.ofString());
System.out.println(res1.body());

// POST: Create trading account
var body = "{" +
  ""serverId":"srv_123","accountId":"12345678","tradePlatform":"TRADE_PLATFORM_MT4","accountType":"T_ACCOUNT_TYPE_FOLLOWER","password":"your-password"}";
var req2 = HttpRequest.newBuilder(URI.create(API_BASE_URL + "/api/v1/taccounts"))
  .header("X-API-Key", API_KEY).header("Content-Type", "application/json")
  .POST(HttpRequest.BodyPublishers.ofString(body)).build();
var res2 = client.send(req2, HttpResponse.BodyHandlers.ofString());
System.out.println(res2.body());

C#

using System; using System.Net.Http; using System.Net.Http.Headers; using System.Threading.Tasks;

var api = "https://api.copydium.com";
var key = "sk_live_abc123def456...";
var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-API-Key", key);

// GET: Dashboard stats
var stats = await http.GetStringAsync(api + "/api/v1/reports/user/dashboard-stats");
Console.WriteLine(stats);

// POST: Create trading account
var json = "{" +
  ""serverId":"srv_123","accountId":"12345678","tradePlatform":"TRADE_PLATFORM_MT4","accountType":"T_ACCOUNT_TYPE_FOLLOWER","password":"your-password"}";
var content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");
var resp = await http.PostAsync(api + "/api/v1/taccounts", content);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
All requests must include your API key in the X-API-Key header. See the full API reference for all endpoints and schemas.