API — Ký file
Tài khoản
Số dư
₫0
API Token
Khuyến nghị dùng Authorization: Bearer <token>
. Nếu lộ
token, bấm “Đổi token”.
Tổng quan
- Kích thước tối đa mỗi tệp: 100 MB
- Định dạng hỗ trợ:
.cab, .cat, .dll, .efi, .exe, .js, .msi, .msp, .mst, .msu, .ocx, .ps1, .scr, .sys, .vbs
- Đơn giá: ₫399,000 / tệp hợp lệ
- Luồng mới :
auto
(tải lên → tự ký nếu đủ tiền → trả URL tải)
Ký nhanh 1 bước (Auto)
Endpoint: POST https://qisoft.org/api/sign/auto
cURL
curl -s -X POST "https://qisoft.org/api/sign/auto" \ -H "Authorization: Bearer YOUR_TOKEN" \ -F "file=@C:/path/to/app.exe" # Response mẫu { "ok": true, "job_id": 40, "download_url": "https://qisoft.org/api/sign/result/40", "filename": "app-signed.exe", "size_bytes": 1234567, "balance_vnd": 49028560 } # Tải file đã ký auth="Authorization: Bearer YOUR_TOKEN" curl -s -OJ "https://qisoft.org/api/sign/result/40" -H "$auth"
Python
import requests import os BASE = "https://qisoft.org" TOKEN = "YOUR_TOKEN" HEADERS = {"X-API-Key": TOKEN} # 🔹 Đường dẫn file EXE cần ký EXE_PATH = r"C:\path\to\app.exe" # Kiểm tra file tồn tại if not os.path.exists(EXE_PATH): raise FileNotFoundError(f"Không tìm thấy file: {EXE_PATH}") # 1) Upload & auto-sign with open(EXE_PATH, "rb") as f: r = requests.post(f"{BASE}/api/sign/auto", headers=HEADERS, files={"file": (os.path.basename(EXE_PATH), f, "application/octet-stream")}, timeout=600) data = r.json() assert data.get("ok"), data print("API:", data) # 2) Download file đã ký u = data["download_url"] res = requests.get(u, headers=HEADERS, stream=True, timeout=600) res.raise_for_status() fn = res.headers.get("Content-Disposition"," ").split("filename=")[-1].strip('"') or data["filename"] with open(fn, "wb") as out: for chunk in res.iter_content(262144): if chunk: out.write(chunk) print("✅ Saved:", fn)
Lỗi thường gặp
400 no_file / unsupported_extension / file_too_large
: thiếu file, đuôi không hỗ trợ, vượt 100MB400 no_files / invalid_temp_id
: thiếu/ saitemp_id[]
ở luồng cũ402 insufficient_funds
: số dư không đủ500 sign_failed
: jsign/KMS/TSA lỗi (xemdetail
trong JSON)