Quote3D Dokümantasyonuna Hoş Geldiniz! ⏳

Kod Örnekleri

Çok sayıda programlama diliyle Quote3D API'sini uygulamanıza nasıl entegre edeceğinizi öğrenin. Hızlıca başlamak için bu örnekleri kopyalayıp yapıştırabilirsiniz.

Not: YOUR_TOKEN_HERE'i gerçek API token'ınızla değiştirin. FILE_ID_HERE ve QUOTE_ID_HERE'i API yanıtlarınızdan gerçek ID'lerle değiştirin.

Kimlik Doğrulama

API isteklerinizi nasıl kimlik doğrulayacağınız

cURL
curl -X GET "https://api.quote3d.com/v2/user" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json"
Python
import requests

url = "https://api.quote3d.com/v2/user"
headers = {
    "Authorization": "Bearer YOUR_TOKEN_HERE",
    "Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
print(response.json())
JavaScript (Fetch)
const response = await fetch('https://api.quote3d.com/v2/user', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
log.info('User data', { data });
TypeScript
interface UserResponse {
  user_id: string;
  email: string;
  plan: string;
  quotes_used: number;
  quotes_limit: number;
}

const response = await fetch('https://api.quote3d.com/v2/user', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE',
    'Content-Type': 'application/json'
  }
});

const data: UserResponse = await response.json();
log.info('User data', { data });

Dosya Yükleme

Bir 3D model dosyası (STL, 3MF, OBJ) yükleyin

cURL
curl -X POST "https://api.quote3d.com/v2/file" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -F "[email protected]"
Python
import requests

url = "https://api.quote3d.com/v2/file"
headers = {
    "Authorization": "Bearer YOUR_TOKEN_HERE"
}

with open('model.stl', 'rb') as f:
    files = {'file': ('model.stl', f, 'application/octet-stream')}
    response = requests.post(url, headers=headers, files=files)
    print(response.json())
JavaScript (Fetch)
const formData = new FormData();
formData.append('file', fileInput.files[0]);

const response = await fetch('https://api.quote3d.com/v2/file', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE'
  },
  body: formData
});

const data = await response.json();
log.info('File data', { data });

Genel Dosya Yükleme

upload_id kullanarak kimlik doğrulaması olmadan bir dosya yükleyin

1. Adım: Yükleme Kimliği Al (cURL)
curl -X GET "https://api.quote3d.com/v2/file/upload-id" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"
Adım 2: Dosya Yükleme (cURL)
curl -X POST "https://api.quote3d.com/v2/file/public/UPLOAD_ID_HERE" \
  -F "[email protected]"
JavaScript (Tam Akış)
// Step 1: Get upload ID
const uploadIdResponse = await fetch('https://api.quote3d.com/v2/file/upload-id', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE'
  }
});
const { upload_id } = await uploadIdResponse.json();

// Step 2: Upload file (no auth required)
const formData = new FormData();
formData.append('file', fileInput.files[0]);

const uploadResponse = await fetch(`${baseUrl}/v2/file/public/${upload_id}`, {
  method: 'POST',
  body: formData
});

const result = await uploadResponse.json();
log.info('Upload result', { result });

Fiyat Teklifi Oluşturma

Bir 3D model için asenkron fiyat teklifi hesaplamasını başlatın. Tüm parametreler isteğe bağlıdır; sağlanmazsa Dashboard Slice Profile değerleriniz kullanılır. Endpoint önce bir iş döndürür; ardından tamamlanan kompakt sonucu GET /v2/jobs/JOB_ID_HERE, detaylı kaydedilmiş teklifi ise GET /v2/quotes/QUOTE_ID_HERE üzerinden alabilirsiniz. Para birimi varsayılan olarak dashboard ayarlarınızdan alınır ancak istekte geçersiz kılınabilir (örn. 'USD', 'EUR', 'TRY'). filament_type parametresi Dashboard Malzeme Profilinizden bir malzeme adıyla eşleşmelidir.

Minimal İstek (Dashboard Profillerini Kullanır)
# Minimal request - uses all settings from Dashboard Slice Profile
curl -X POST "https://api.quote3d.com/v2/file/quote/FILE_ID_HERE" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "material_config": {
      "filament_type": "PLA",
      "color": "Beyaz"
    }
  }'
Belirli Yazıcı Kimliği ile İstek
# Uses settings from a specific Printer Profile instead of defaults
curl -X POST "https://api.quote3d.com/v2/file/quote/FILE_ID_HERE" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "printer_id": "YOUR_PRINTER_ID_HERE",
    "quantity": 1,
    "material_config": {
      "filament_type": "PLA",
      "color": "Beyaz"
    }
  }'
Özel Parametrelerle Tam İstek
# Full request with custom parameters
# Parameters not specified will use Dashboard Slice Profile values
curl -X POST "https://api.quote3d.com/v2/file/quote/FILE_ID_HERE" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "printer_id": "YOUR_PRINTER_ID_HERE",
    "quantity": 1,
    "printer_config": {
      "bed_size_x": 210,
      "bed_size_y": 210,
      "bed_size_z": 250,
      "nozzle_diameter": 0.4,
      "nozzle_count": 1,
      "print_speed": 60,
      "max_print_speed": 120,
      "travel_speed": 150,
      "first_layer_speed": 30,
      "layer_height": 0.2,
      "min_layer_height": 0.1,
      "max_layer_height": 0.3,
      "perimeters": 3,
      "top_solid_layers": 4,
      "bottom_solid_layers": 4,
      "min_wall_count": 2,
      "max_wall_count": 5,
      "fill_density": 20,
      "infill_pattern": "grid",
      "support_material": true,
      "support_overhang_angle": 45,
      "support_density": 15,
      "acceleration_print": 800,
      "acceleration_travel": 1000,
      "acceleration_retraction": 1000,
      "jerk_print": 8,
      "jerk_travel": 20,
      "jerk_retraction": 5,
      "min_hotend_temp": 180,
      "max_hotend_temp": 260,
      "min_bed_temp": 0,
      "max_bed_temp": 100,
      "hourly_cost": 5.0
    },
    "material_config": {
      "filament_type": "PLA",
      "color": "Beyaz",
      "density": 1.24,
      "diameter": 1.75,
      "temperature": 210,
      "print_temp_min": 190,
      "print_temp_max": 230,
      "bed_temperature": 60,
      "bed_temp_min": 0,
      "bed_temp_max": 70,
      "fan_speed": 100,
      "min_fan_speed": 0,
      "retraction_distance": 6.5,
      "retraction_speed": 25,
      "price_per_kg": 20.0,
      "price_per_gram": 0.02,
      "support_cost_multiplier": 1.2
    },
    "quote_config": {
      "currency": "USD",
      "tax_rate": 20,
      "fixed_fee": 2.0,
      "energy_cost_per_kwh": 0.12,
      "hollowing": "solid",
      "post_processing": "standard"
    }
  }'
Python - Minimal İstek
import requests

# Minimal request - uses Dashboard Slice Profile settings
url = "https://api.quote3d.com/v2/file/quote/FILE_ID_HERE"
headers = {
    "Authorization": "Bearer YOUR_TOKEN_HERE",
    "Content-Type": "application/json"
}

data = {
    "material_config": {
        "filament_type": "PLA",
        "color": "Beyaz"
    }
}

job = requests.post(url, headers=headers, json=data).json()
print(job)

status_response = requests.get(f"https://api.quote3d.com{job['data']['statusUrl']}", headers=headers)
print(status_response.json())
Python - Yazıcı Kimliği ile İstek
import requests

url = "https://api.quote3d.com/v2/file/quote/FILE_ID_HERE"
headers = {
    "Authorization": "Bearer YOUR_TOKEN_HERE",
    "Content-Type": "application/json"
}

data = {
    "printer_id": "YOUR_PRINTER_ID_HERE",
    "quantity": 1,
    "material_config": {
        "filament_type": "PLA",
        "color": "Beyaz"
    }
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
Python - Tam İstek
import requests

url = "https://api.quote3d.com/v2/file/quote/FILE_ID_HERE"
headers = {
    "Authorization": "Bearer YOUR_TOKEN_HERE",
    "Content-Type": "application/json"
}

data = {
    "printer_id": "YOUR_PRINTER_ID_HERE",
    "quantity": 1,
    "printer_config": {
        "bed_size_x": 210,
        "bed_size_y": 210,
        "bed_size_z": 250,
        "nozzle_diameter": 0.4,
        "nozzle_count": 1,
        "print_speed": 60,
        "max_print_speed": 120,
        "travel_speed": 150,
        "first_layer_speed": 30,
        "layer_height": 0.2,
        "min_layer_height": 0.1,
        "max_layer_height": 0.3,
        "perimeters": 3,
        "top_solid_layers": 4,
        "bottom_solid_layers": 4,
        "min_wall_count": 2,
        "max_wall_count": 5,
        "fill_density": 20,
        "infill_pattern": "grid",
        "support_material": True,
        "support_overhang_angle": 45,
        "support_density": 15,
        "acceleration_print": 800,
        "acceleration_travel": 1000,
        "acceleration_retraction": 1000,
        "jerk_print": 8,
        "jerk_travel": 20,
        "jerk_retraction": 5,
        "min_hotend_temp": 180,
        "max_hotend_temp": 260,
        "min_bed_temp": 0,
        "max_bed_temp": 100,
        "hourly_cost": 5.0
    },
    "material_config": {
        "filament_type": "PLA",
        "color": "Beyaz",
        "density": 1.24,
        "diameter": 1.75,
        "temperature": 210,
        "print_temp_min": 190,
        "print_temp_max": 230,
        "bed_temperature": 60,
        "bed_temp_min": 0,
        "bed_temp_max": 70,
        "fan_speed": 100,
        "min_fan_speed": 0,
        "retraction_distance": 6.5,
        "retraction_speed": 25,
        "price_per_kg": 20.0,
        "price_per_gram": 0.02,
        "support_cost_multiplier": 1.2
    },
    "quote_config": {
        "currency": "USD",
        "tax_rate": 20,
        "fixed_fee": 2.0,
        "energy_cost_per_kwh": 0.12,
        "hollowing": "solid",
        "post_processing": "standard"
    }
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
JavaScript - Minimal İstek
// Minimal request - uses Dashboard Slice Profile settings
const response = await fetch('https://api.quote3d.com/v2/file/quote/FILE_ID_HERE', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    material_config: {
      filament_type: 'PLA',
      color: 'Beyaz'
    }
  })
});

const job = await response.json();
log.info('Job', { job });

const statusResponse = await fetch(`https://api.quote3d.com${job.data.statusUrl}`, {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE'
  }
});

const status = await statusResponse.json();
log.info('Job status', { status });
JavaScript - Yazıcı Kimliği ile İstek
// Uses settings from a specific Printer Profile
const response = await fetch('https://api.quote3d.com/v2/file/quote/FILE_ID_HERE', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    printer_id: 'YOUR_PRINTER_ID_HERE',
    quantity: 1,
    material_config: {
      filament_type: 'PLA',
      color: 'Beyaz'
    }
  })
});

const data = await response.json();
log.info('Data', { data });
JavaScript - Tam İstek
// Full request with custom parameters
const response = await fetch('https://api.quote3d.com/v2/file/quote/FILE_ID_HERE', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    printer_id: 'YOUR_PRINTER_ID_HERE',
    quantity: 1,
    printer_config: {
      bed_size_x: 210,
      bed_size_y: 210,
      bed_size_z: 250,
      nozzle_diameter: 0.4,
      nozzle_count: 1,
      print_speed: 60,
      max_print_speed: 120,
      travel_speed: 150,
      first_layer_speed: 30,
      layer_height: 0.2,
      min_layer_height: 0.1,
      max_layer_height: 0.3,
      perimeters: 3,
      top_solid_layers: 4,
      bottom_solid_layers: 4,
      min_wall_count: 2,
      max_wall_count: 5,
      fill_density: 20,
      infill_pattern: 'grid',
      support_material: true,
      support_overhang_angle: 45,
      support_density: 15,
      acceleration_print: 800,
      acceleration_travel: 1000,
      acceleration_retraction: 1000,
      jerk_print: 8,
      jerk_travel: 20,
      jerk_retraction: 5,
      min_hotend_temp: 180,
      max_hotend_temp: 260,
      min_bed_temp: 0,
      max_bed_temp: 100,
      hourly_cost: 5.0
    },
    material_config: {
      filament_type: 'PLA',
      color: 'Beyaz',
      density: 1.24,
      diameter: 1.75,
      temperature: 210,
      print_temp_min: 190,
      print_temp_max: 230,
      bed_temperature: 60,
      bed_temp_min: 0,
      bed_temp_max: 70,
      fan_speed: 100,
      min_fan_speed: 0,
      retraction_distance: 6.5,
      retraction_speed: 25,
      price_per_kg: 20.0,
      price_per_gram: 0.02,
      support_cost_multiplier: 1.2
    },
    quote_config: {
      currency: 'USD',
      tax_rate: 20,
      fixed_fee: 2.0,
      energy_cost_per_kwh: 0.12,
      hollowing: 'solid',
      post_processing: 'standard'
    }
  })
});

const data = await response.json();
log.info('Data', { data });
SLS Malzeme Değiştirme Parçası
{
  "material_config": {
    "filament_type": "PA12",
    "density": 1.01,
    "powder_bulk_density": 0.45,
    "price_per_gram": 0.09,
    "sls_refresh_factor": 1.15
  },
  "quote_config": {
    "post_processing": "standard"
  }
}
Kabul Edilen Yanıt (202)
{
  "success": true,
  "data": {
    "jobId": "job_01HXYZ123456789",
    "status": "queued",
    "statusUrl": "/v2/jobs/job_01HXYZ123456789",
    "estimatedTime": 120,
    "createdAt": "2026-03-14T09:30:00.000Z"
  }
}
Tamamlanan İş Sonucu (GET /v2/jobs/JOB_ID)
{
  "success": true,
  "data": {
    "jobId": "job_01HXYZ123456789",
    "status": "completed",
    "progress": 100,
    "createdAt": "2026-03-14T09:30:00.000Z",
    "startedAt": "2026-03-14T09:30:04.000Z",
    "completedAt": "2026-03-14T09:30:26.000Z",
    "result": {
      "user_id": "usr_123",
      "status": "success",
      "timestamp": "2026-03-14T09:30:26.000Z",
      "quote_duration": 22,
      "file_path": "/uploads/example.stl",
      "currency": "USD",
      "estimated_time": "2h 15m",
      "estimated_time_seconds": 8100,
      "filament_weight": 42.8,
      "filament_cost": 1.07,
      "total_price": 12.50,
      "quote_id": "job_01HXYZ123456789",
      "quantity": 2,
      "printInfo": {
        "technology": "FDM",
        "printerName": "Prusa MK4",
        "material": "PLA",
        "color": "Black",
        "layerHeight": 0.2,
        "infillDensity": 20,
        "infillPattern": "grid",
        "wallCount": 3,
        "quantity": 2,
        "hollowing": "solid",
        "postProcessing": "standard"
      },
      "modelInfo": {
        "volume": 34.5,
        "weight": 42.8,
        "bounds": {
          "x": 98.2,
          "y": 44.1,
          "z": 27.6
        }
      },
      "pricing": {
        "total": 12.5,
        "currency": "USD",
        "materialCost": 1.07
      },
      "geometricIntegrity": {
        "isValid": true,
        "description": "Model is manifold and ready for printing"
      },
      "adhesionRisk": {
        "value": 0.12,
        "needsBrim": false,
        "brimWidth": 0
      },
      "totalTravelLength": "305.3m"
    }
  }
}
Detaylı Teklif Sonucu (GET /v2/quotes/QUOTE_ID)
{
  "quote_id": "job_01HXYZ123456789",
  "file_id": "file_123",
  "result": {
    "success": true,
    "modelInfo": {
      "fileName": "example.stl",
      "fileSize": 512000,
      "triangleCount": 84200,
      "volume": 34.5,
      "surfaceArea": 98.2,
      "bounds": { "x": 98.2, "y": 44.1, "z": 27.6 },
      "weight": { "model": 39.1, "support": 3.7, "total": 42.8 }
    },
    "printInfo": {
      "printerName": "Prusa MK4",
      "material": "PLA",
      "color": "Black",
      "technology": "FDM",
      "layerHeight": 0.2,
      "infillDensity": 20,
      "infillPattern": "grid",
      "wallCount": 3,
      "postProcessing": "standard",
      "hollowing": "solid",
      "quantity": 2,
      "layerCount": 146,
      "supportVolume": 3.2,
      "filamentLength": { "model": 12500, "support": 980, "total": 13480 }
    },
    "timeEstimation": {
      "printingTime": 7940,
      "totalTime": 8100,
      "breakdown": {
        "technology": "FDM",
        "walls": 2810,
        "infill": 2180,
        "support": 760,
        "travel": 940,
        "other": 1410
      },
      "humanReadable": "2h 15m"
    },
    "pricing": {
      "materialCost": 1.07,
      "timeCost": 5.62,
      "supportCost": 0.23,
      "total": 12.5,
      "currency": "USD"
    },
    "recommendations": [
      "Use the selected orientation for lower support usage."
    ],
    "processedAt": "2026-03-14T09:30:26.000Z",
    "processingTimeMs": 22134,
    "version": "2.0"
  }
}

Yazdırılabilirlik Kontrolü

Modelinizin yazıcınıza uygun olup olmadığını kontrol edin.

cURL
curl -X POST "https://api.quote3d.com/v2/printability/FILE_ID_HERE" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "x": 210,
    "y": 210,
    "z": 250
  }'
Python
import requests

url = "https://api.quote3d.com/v2/printability/FILE_ID_HERE"
headers = {
    "Authorization": "Bearer YOUR_TOKEN_HERE",
    "Content-Type": "application/json"
}

data = {
    "x": 210,
    "y": 210,
    "z": 250
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
JavaScript
const response = await fetch('https://api.quote3d.com/v2/printability/FILE_ID_HERE', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    x: 210,
    y: 210,
    z: 250
  })
});

const data = await response.json();
log.info('Data', { data });
Yanıt Yapısı (v2)
{
  "user_id": "usr_123",
  "file_path": "/uploads/models/gearbox-housing.stl",
  "fits_printer": true,
  "technology": "FDM",
  "fits_without_orientation": false,
  "orientation_optimized": true,
  "volume": 42.15,
  "surface_area": 128.4,
  "triangle_count": 84200,
  "model_dimensions": {
    "x": 62.4,
    "y": 88.1,
    "z": 47.2
  },
  "printer_dimensions": {
    "x": 210,
    "y": 210,
    "z": 250
  },
  "original_model_dimensions": {
    "x": 88.1,
    "y": 62.4,
    "z": 47.2
  },
  "optimized_model_dimensions": {
    "x": 62.4,
    "y": 88.1,
    "z": 47.2
  },
  "orientation": {
    "rotation": {
      "x": 0,
      "y": 90,
      "z": 0
    },
    "score": 0.91,
    "support_ratio": 0.08,
    "overhang_score": 0.94
  },
  "geometric_integrity": {
    "is_valid": true,
    "open_edges": 0,
    "non_manifold_edges": 0,
    "description": "Geometry is valid and watertight"
  }
}

Fiyat Teklifi Geçmişi

Fiyat teklifi geçmişinizi alın

Tüm Teklifleri Getir (cURL)
curl -X GET "https://api.quote3d.com/v2/quotes?offset=0&limit=10" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"
Teklif Detayını Getir (cURL)
curl -X GET "https://api.quote3d.com/v2/quotes/QUOTE_ID_HERE" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"
Python
import requests

# Get all quotes
url = "https://api.quote3d.com/v2/quotes"
headers = {
    "Authorization": "Bearer YOUR_TOKEN_HERE"
}
params = {"offset": 0, "limit": 10}

response = requests.get(url, headers=headers, params=params)
quotes = response.json()
print(quotes)

# Get specific quote
quote_id = "QUOTE_ID_HERE"
quote_response = requests.get(f"{baseUrl}/v2/quotes/{quote_id}", headers=headers)
quote = quote_response.json()
print(quote)
JavaScript
// Get all quotes
const quotesResponse = await fetch('https://api.quote3d.com/v2/quotes?offset=0&limit=10', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE'
  }
});
const quotes = await quotesResponse.json();
log.info('Quotes', { quotes });

// Get specific quote
const quoteId = 'QUOTE_ID_HERE';
const quoteResponse = await fetch(`${baseUrl}/v2/quotes/${quoteId}`, {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE'
  }
});
const quote = await quoteResponse.json();
log.info('Quote', { quote });

Webhooks

Gerçek zamanlı bildirimler için webhook'lar oluşturun ve yönetin

Webhook Oluştur (cURL)
curl -X POST "https://api.quote3d.com/v2/webhooks" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-app.com/webhook",
    "events": ["quote.completed", "quote.failed"]
  }'
Python
import requests

url = "https://api.quote3d.com/v2/webhooks"
headers = {
    "Authorization": "Bearer YOUR_TOKEN_HERE",
    "Content-Type": "application/json"
}

data = {
    "url": "https://your-app.com/webhook",
    "events": ["quote.completed", "quote.failed"]
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
JavaScript
const response = await fetch('https://api.quote3d.com/v2/webhooks', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_TOKEN_HERE',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    url: 'https://your-app.com/webhook',
    events: ['quote.completed', 'quote.failed']
  })
});

const webhook = await response.json();
log.info('Webhook', { webhook });

Analitik

Analitik ve kullanım istatistiklerini alın

Teklif İstatistiklerini Getir (cURL)
curl -X GET "https://api.quote3d.com/v2/analytics/quotes" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"
Popüler Malzemeleri Getir (cURL)
curl -X GET "https://api.quote3d.com/v2/analytics/popular" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"
Python
import requests

headers = {
    "Authorization": "Bearer YOUR_TOKEN_HERE"
}

# Get quote statistics
quotes_stats = requests.get("https://api.quote3d.com/v2/analytics/quotes", headers=headers).json()
print(quotes_stats)

# Get popular materials
popular = requests.get("https://api.quote3d.com/v2/analytics/popular", headers=headers).json()
print(popular)
JavaScript
const headers = {
  'Authorization': 'Bearer YOUR_TOKEN_HERE'
};

// Get quote statistics
const quotesStats = await fetch('https://api.quote3d.com/v2/analytics/quotes', { headers }).then(r => r.json());
log.info('Quotes statistics', { quotesStats });

// Get popular materials
const popular = await fetch('https://api.quote3d.com/v2/analytics/popular', { headers }).then(r => r.json());
log.info('Popular materials', { popular });

Daha Fazla Yardıma mı İhtiyacınız Var?

Endpoint'leri doğrudan tarayıcınızda test etmek için etkileşimli API Playground'ı ziyaret edin veya ayrıntılı açıklamalar için Temel Kavramlar kılavuzunu inceleyin.