⚡ REST API v1.0 — Live

Office 365 Accounts
Delivered via API

Programmatic access to Office 365 stock and custom name accounts. Integrate into your bot, store, or platform in minutes.

🔑 Get Your API Key View Docs ↓
$0.05
Starting Price
500
Max per Request
E3
License Included
24/7
Availability

⚡ Quick Start

From zero to first order in 3 minutes.

Step 1 — Install requests
pip install requests
Step 2 — Get your API key from Telegram
# Open @Office365Pro_bot → send /getapikey
Step 3 — Full working example
# Custom name — 100GB (@msdn365.net)
custom = requests.post(f"{BASE}/custom_order", headers=HEADERS,
    json={"product": "custom_100gb",
          "first_name": "John", "last_name": "Doe", "username": "john.doe"},
    timeout=30).json()

# Custom name — 1TB (@365offices.com)
custom = requests.post(f"{BASE}/custom_order", headers=HEADERS,
    json={"product": "custom_1tb",
          "first_name": "John", "last_name": "Doe", "username": "john.doe"},
    timeout=30).json()

if custom["success"]:
    acc = custom["account"]
    print(acc["email"], acc["password"], acc["license"])
    print(f"Balance: ${custom['balance']}")

Authentication

Every request requires your API key in the header.

1
Get your API key
Open @Office365Pro_bot on Telegram and send /getapikey
2
Add to every request
Include the header: X-API-Key: your_key_here
3
Load your balance
Deposit USDT via Binance Pay in the bot → use balance to buy accounts
4
Make your first request
GET /api/stock — check available inventory

Products & Pricing

All accounts include Office 365 E3 license with OneDrive storage.

stock_100gb
Stock Account 100GB
Pre-created, ready to use. Instant delivery.
$0.05 / account
stock_1tb
Stock Account 1TB
Pre-created with 1TB OneDrive. Instant delivery.
$0.07 / account
custom_100gb
Custom Name 100GB
Created with your chosen name. ~15 sec delivery.
$0.075 / account
custom_1tb
Custom Name 1TB
Custom name + 1TB OneDrive. ~15 sec delivery.
$0.08 / account

API Endpoints

Base URL: https://o365.pro/api

GET /api/stock Check available inventory
Python Example
import requests

API_KEY = "YOUR_API_KEY"
HEADERS = {"X-API-Key": API_KEY}

r = requests.get("https://o365.pro/api/stock", headers=HEADERS)
data = r.json()

print(data["stock"])    # {'stock_100gb': 245, 'stock_1tb': 89}
print(data["prices"])   # {'stock_100gb': 0.05, ...}
GET /api/balance Your account balance
Python Example
r = requests.get("https://o365.pro/api/balance", headers=HEADERS)
data = r.json()

print(f"Balance: ${data['balance']}")        # Balance: $9.75
print(f"Orders:  {data['total_orders']}")   # Orders:  12
POST /api/order Buy stock accounts (instant)
Python Example
# 100GB stock accounts
r = requests.post(
    "https://o365.pro/api/order",
    headers=HEADERS,
    json={"product": "stock_100gb", "qty": 5}
)

# 1TB stock accounts
r = requests.post(
    "https://o365.pro/api/order",
    headers=HEADERS,
    json={"product": "stock_1tb", "qty": 5}
)
data = r.json()

if data["success"]:
    for acc in data["accounts"]:
        print(acc["email"], acc["password"])
    print(f"Cost: ${data['cost']} | Balance: ${data['balance']}")
else:
    print("Error:", data["error"])
POST /api/custom_order Create custom name account (~15 sec)
Python Example
# Note: this request takes ~15 seconds (license assignment)
# product options: "custom_100gb" or "custom_1tb"
r = requests.post(
    "https://o365.pro/api/custom_order",
    headers=HEADERS,
    json={
        "product":    "custom_100gb",  # or "custom_1tb"
        "first_name": "John",
        "last_name":  "Doe",
        "username":   "john.doe"
    },
    timeout=30  # important! set at least 30 sec
)
data = r.json()

if data["success"]:
    acc = data["account"]
    print(acc["email"], acc["password"], acc["license"])
    print(f"Balance: ${data['balance']}")
GET /api/orders?limit=20 Your order history (max 100)
Python Example
r = requests.get(
    "https://o365.pro/api/orders",
    headers=HEADERS,
    params={"limit": 20}
)

for order in r.json()["orders"]:
    print(order["date"], order["product"], order["email"])

HTTP Status Codes

All error responses follow the same format: {"success": false, "error": "..."}

CodeMeaningCommon Cause
200SuccessRequest completed successfully
401UnauthorizedMissing X-API-Key header
403ForbiddenInvalid or inactive API key
402Payment RequiredInsufficient balance
400Bad RequestInvalid product, qty out of range
503Service UnavailableNot enough stock available